具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的文件在线迁移方法流程示意图。本实施例可实现两个NAS设备之间的文件在线迁移,如图1所示,本实施例文件在线迁移方法可包括以下步骤:
步骤101、通过网络文件共享协议将源设备挂载到目标设备;
其中,源设备和目标设备均为NAS设备。
网络文件共享协议具体可以为服务器消息块(Server Message Block,SMB)协议,或网络文件***(Network File System,NFS)协议。本领域技术人员可以理解的是,实际应用中,可根据需要在NAS设备上设置支持SMB协议或NFS协议,以便通过该协议与其他设备建立网络文件共享。本领域技术人员可以理解,将源设备挂载到目标设备后,目标设备就可以访问源设备上的文件***。
步骤102、在目标设备上建立源设备上文件的镜像文件,该镜像文件初始为空文件;
步骤103、通过网络文件共享协议将源设备上文件中的数据通过网络传输迁移至目标设备上对应的镜像文件中;
步骤104、在数据迁移过程中由目标设备处理用户的访问请求。
本实施例中,源设备和目标设备均为NAS设备,需要将源设备上的文件迁移至目标设备时,可通过网络文件共享协议将源设备挂载到目标设备,然后由目标设备在自身建立源设备上文件的镜像文件,并在镜像文件建立完毕后,通过网络传输将源设备上各文件中的数据迁移至目标设备上建立的相应迁移文件中,并在数据迁移过程中由目标设备对用户的访问请求进行处理,不需要中断用户业务。
本实施例提供的文件在线迁移方法,利用网络文件共享协议将源设备挂载到目标设备,并在目标设备建立镜像文件后利用网络传输进行文件数据的迁移,且在文件迁移过程中由目标设备对用户的访问请求进行处理,从而可实现文件的在线迁移,文件迁移过程中不需要中断用户业务;本实施例提供的文件在线迁移方法不受文件迁移设备自身的限制,具有较高的兼容性,可适合不同标准或厂商的NAS设备之间的文件在线迁移,提高文件在线迁移的实用性和适用性。
图2为本发明实施例二提供的文件在线迁移方法流程示意图。本实施例文件在线迁移方法可包括以下步骤:
步骤201、目标设备通过网络文件共享协议挂载源设备;
步骤202、目标设备通过网络文件共享协议向源设备请求获取源设备上文件的元数据;
步骤203、目标设备根据获取的源设备上文件的元数据,建立与源设备上的文件对应的镜像文件,各镜像文件初始均为空文件;
步骤204、目标设备在镜像文件建立完毕后,通知管理员将用户业务切换至目标设备上对应的镜像文件中;
步骤205、目标设备通过网络文件共享协议将源设备上文件中的数据通过网络传输迁移至目标设备;
步骤206、目标设备在数据迁移过程中,对用户的访问请求进行处理;
步骤207、源设备上各文件的数据均迁移到目标设备上相应的镜像文件后,可验证数据内容,将源设备从目标设备上下线。
上述步骤201中,目标设备和源设备均为NAS设备,该两个NAS设备可以是采用相同标准的设备,或者采用不同标准的设备,也可以是不同厂商制造的,且该两个NAS设备均支持相同网络文件共享协议,这样,目标设备就可以通过网络文件共享协议将源设备挂载到目标设备,使得目标设备可以通过网络来访问源设备中的信息。
上述步骤202和步骤203中,将源设备挂载至目标设备时,具体可以通过服务器消息块(Server Message Block,SMB)协议,或网络文件***(NetworkFile System,NFS)协议来将源设备挂载到目标设备,本领域技术人员可以理解的是,实际应用中,可根据需要在NAS设备上设置支持SMB协议或NFS协议,以便通过该协议与其他设备建立网络文件共享。目标设备将源设备挂载后,就可以向源设备发送元数据请求信息,源设备接收到该元数据请求信息后,就可以将自身存储的文件的元数据返回给目标设备,其中,文件的元数据是文件的属性信息,为文件的相关描述信息,包括文件大小、文件修改信息以及文件扩展属性等,其中文件扩展属性包括文件访问路径等信息,这样,当目标设备获得源设备上的文件的元数据后,就可以建立与其属性完全相同的镜像文件,其中,建立的镜像文件是空文件,可以理解的是,当源设备上有多个文件时,需要再目标设备上相应的建立多个镜像文件,且这些镜像文件均为空文件。
实际应用中,上述步骤202和步骤203在建立镜像文件过程中,还可在目标设备上建立目标监控点,以监控源设备上文件的变化情况,并在目标设备同步与发生变化的文件对应的镜像文件。由于在建立镜像文件的过程中,源设备上的文件有可能会发生变化,例如新增了数据等,导致文件的元数据发生变化,因此,通过监控源设备上文件的变化情况,可在镜像文件建立过程中,将源设备发生变化的文件的元数据对目标设备上相应的镜像文件进行同步,确保文件属性的一致。
具体地,对源设备上文件的变化情况的监控,可通过Linux的索引节点监控(inotify)来实现,其中,Inotify是一个Linux特性,可以监控文件***操作,例如读取、写入和创建等,从而可实时监控源设备上文件的变化,该监控可设置在目标设备上,并通过网络文件共享协议来监控源设备上文件的变化。
上述步骤204中,当目标设备建立镜像文件完毕后,就可以通知管理者将用户业务切换至目标设备,以便由目标设备对用户的请求进行处理。本领域技术人员可以理解,将用户业务切换至目标设备,可以通过将用户访问的域名,即源设备上存储的文件的访问域名,指向目标设备的IP地址。实际应用中,也可由目标设备或源设备自动通知域名***更改域名对应的IP地址,以将用户的访问指向到目标设备,本实施例对此并不做特别限制。
上述步骤205和步骤206中,当用户业务切换至目标设备后,就可以通过网络文件共享协议,将源设备上各文件中的数据拷贝到目标设备上相应的镜像文件中,以实现镜像文件的数据迁移。此外,在数据迁移过程中,目标设备可接收用户的访问请求,对用户的访问请求进行处理,例如当用户读数据时,可将相应的数据从目标设备本地读取提供给用户,或者通过网络文件共享协议由目标设备从源设备上读取后再提供给用户。
上述步骤207中,当源设备数据全部迁移至目标设备后,就可以对目标设备上的数据进行验证,例如,可通过人工验证的方式来验证目标设备上的数据是否与目标设备上的数据一致,并在验证完毕后,将源设备从目标设备上卸载掉,从而完成文件的在线迁移。
此外,上述步骤203和204中建立镜像文件时,也可不建立监控点对源设备上文件变化情况进行监控,而是在目标设备还未建立完镜像文件前,目标设备可通知源设备暂停对用户的访问请求进行处理。由于镜像文件建立过程时间较短,在该较短时间内暂停对访问请求的处理,因此对用户业务正常运行影响较小。
图3为本发明实施例三提供的目标设备对用户的访问请求进行处理的流程示意图。在上述图1或图2所示实施例技术方案基础上,当目标设备建立源设备上文件的镜像文件并将用户的访问请求指向目标设备后,目标设备就可以处理用户的访问请求,具体地,如图3所示,目标设备在对用户的访问请求中的读请求进行处理时,可包括以下步骤:
步骤301、目标设备接收用户发送的读请求;
步骤302、查找目标设备上是否存在读请求所要读取的数据,是则执行步骤303,否则,执行步骤304;
步骤303、从目标设备的镜像文件读取数据,并返回给用户,结束。
步骤304、目标设备通过网络文件共享协议从源设备读取读请求所要读取的数据,返回给用户,结束。
本实施例中,用户业务切换至目标设备后,目标设备根据读请求所要请求读取的数据,确认该数据是否已经存在相应的镜像文件中,是则直接从本地读取数据,否则,可通过网络文件共享协议,从源设备中相应的文件中读取相应的数据。
本领域技术人员可以理解,目标设备在读取源设备上的数据时,可根据文件元数据中记载的扩展属性中的访问路径信息,通过网络文件共享协议,从源设备上读取文件数据。
在将源设备中文件的数据迁移至目标设备的过程中,由于用户请求的数据可能已经迁移至目标设备的镜像文件中,也有可能还没有迁移至目标设备,因此,本实施例接收到用户发送的读请求时,可判断所要请求读取的数据是否存在于目标设备,以便确定是否需要目标设备通过网络文件共享协议从源设备获取,以确保用户业务的顺利进行。
图4为本发明实施例四提供的目标设备对用户的访问请求进行处理的流程示意图。与上述图3所示实施例技术方案不同的是,本实施例在上述图1或图2所示实施例技术方案基础上,在对读请求进行处理时,若需要从源设备获取数据,可将获取的数据存储在镜像文件上,然后再返回给用户,具体可包括以下步骤:
步骤401、目标设备接收用户发送的读请求;
步骤402、查找目标设备上是否存在读请求所要读取的数据,是则执行步骤403,否则,执行步骤404;
步骤403、从目标设备的镜像文件读取数据,并返回给用户,结束。
步骤404、目标设备通过网络文件共享协议从源设备读取读请求所要读取的数据;
步骤405、将从源设备读取的数据存储在目标设备上相应的镜像文件中;
步骤406、将该数据返回给用户,结束。
本实施例中,当用户所要读取的数据不在目标设备上,需要通过网络文件共享协议从源设备读取相应的数据时,可将从源设备读取的数据存储在目标设备上建立的相应的镜像文件中后再将读取的数据返给用户,这样,可避免后续重复从源设备读取该数据,以节省数据迁移时间;此外,由于用户访问的数据经常是需要修改或访问的数据,将其存储在目标设备后,可便于用户对该数据的再次访问,以提高用户访问请求的处理效率。
图5为本发明实施例五提供的目标设备对用户的访问请求进行处理的流程示意图。在上述图1至图4任一所示实施例技术方案基础上,还包括了当目标设备接收到用户的写请求时,对用户的写请求进行处理的处理流程,具体地,如图5所示,本实施例目标设备对用户的访问请求中的写请求进行处理,可包括以下步骤:
步骤501、目标设备接收用户发送的写请求;
步骤502、在目标设备查找写请求所要写的数据对应的镜像文件中的数据是否迁移完成,是则执行步骤503,否则执行步骤504;
步骤503、直接将写请求所要写的数据写在相应的镜像文件中,结束;
步骤504、将写请求所要写的数据写到临时文件中,以便在相应的镜像文件中的数据迁移完成后再写到镜像文件中。
上述步骤502中,当接收到用户发送的写请求时,可首先确定该写请求所要写的数据对应的镜像文件中的数据是否迁移完成,其中,源设备上与该镜像文件对应的文件的数据全部拷贝到该镜像文件,则说明镜像文件中的数据迁移完成。
本实施例中,在对用户的写请求进行处理时,可将需要写到数据迁移尚未完成的镜像文件中的数据,暂时写在一个临时文件中,直到相应的镜像文件的数据迁移完成,或者整个源设备的数据全部迁移至目标设备,再将写在临时文件中的数据写入相应的镜像文件。
图6为本发明实施例六提供的目标设备对用户的访问请求进行处理的流程示意图。在上述图1至图4任一所示实施例技术方案基础上,还包括了当目标设备接收到用户的写请求时,对用户的写请求进行处理的处理流程,但图6所示实施例与上述图5所示实施例技术方案不同的是,本实施例在对用户发送的写请求进行处理时,若需要写的数据对应的镜像文件中的数据还未迁移完成,则可优先将源设备的相应文件中的数据拷贝至镜像文件,使该镜像文件的数据迁移完成后,再直接将写请求所要写的数据写在该镜像文件中,具体地,如图6所示,本实施例目标设备对用户的访问请求中的写请求进行处理时,可包括以下步骤:
步骤601、目标设备接收用户发送的写请求;
步骤602、在目标设备查找写请求所要写的数据对应的镜像文件中的数据是否迁移完成,是则执行步骤603,否则执行步骤604;
步骤603、直接将写请求所要写的数据写在相应的镜像文件中,结束;
步骤604、目标设备通过网络文件共享协议将源设备上与写请求对应的镜像文件对应的文件中的数据优先迁移至目标设备;
步骤605、在写请求对应的镜像文件对应的文件中的数据迁移完成后,将写请求所要写的数据直接写到镜像文件中。
本实施例中,当用户所要写的数据对应的镜像文件中的数据未迁移完成时,可优先对该镜像文件进行数据迁移,即优先通过网络文件共享协议将源设备上相应的文件中的数据拷贝至该镜像文件中,以便将写请求所要写的数据直接写在该镜像文件中,这样,可避免后续仍旧需要对镜像文件进行数据迁移,节省数据迁移时间,同时,也可避免镜像文件迁移完成后,还需要从临时文件中再将临时写的数据重新写到镜像文件;此外,由于用户访问的数据经常是需要修改或访问的数据,将其存储在目标设备后,可便于用户对该数据的再次访问,以提高用户访问请求的处理效率。
图7为本发明实施例七提供的文件在线迁移装置结构示意图。本实施例文件在线迁移装置为NAS设备,可实现文件的在线迁移,具体地,如图7所示,本实施装置可包括挂载模块11、镜像模块12、数据迁移模块13和业务处理模块14,其中:
挂载模块11,用于通过网络文件共享协议将源设备挂载到目标设备;
镜像模块12,用于在目标设备上建立源设备上文件的镜像文件,该镜像文件初始为空文件;
数据迁移模块13,用于通过网络文件共享协议将源设备上文件中的数据通过网络传输迁移至目标设备上对应的镜像文件中;
业务处理模块14,用于在数据迁移过程中由目标设备处理用户的访问请求。
本实施例文件在线迁移装置可集成在目标设备上,以便将源设备上的文件在线迁移至目标设备,其中目标设备和源设备均为NAS设备。
本实施例可实现NAS设备之间文件的在线迁移,其具体实现可参见上述本发明方法实施例的说明,在此不再赘述。
图8为本发明实施例八提供的文件在线迁移装置结构示意图。在上述图7所示实施例技术方案基础上,如图8所示,镜像模块12具体可包括元数据获取单元121和镜像单元122,其中:
元数据获取单元121,用于通过网络文件共享协议向源设备请求获取源设备上文件的元数据;
镜像单元122,用于根据获取的源设备上文件的元数据,建立与源设备上的文件对应的镜像文件。
此外,本发明实施例提供的装置中还可以包括:
监控模块123,用于监控源设备上文件的变化情况,并在目标设备中同步与发生变化的文件对应的镜像文件。
具体的,该监控模块可在镜像文件建立过程中,对源设备上文件的变化情况进行监控,以确保目标设备上的镜像文件与源设备上的文件的一致性。
图9为本发明实施例九提供的文件在线迁移装置中业务处理模块的结构示意图。在上述图7或图8所示实施例技术方案基础上,如图9所示,本实施例中业务处理模块14包括:读请求接收单元141、读请求查找单元142、第一读请求处理单元143和第二读请求处理单元144,其中:
读请求接收单元141,用于接收用户发送的读请求;
读请求查找单元142,用于查找目标设备是否存在该读请求所要读取的数据;
第一读请求处理单元143,用于当目标设备中存在该读请求所要读取的数据时,从目标设备上相应的镜像文件读取数据,返回给用户;
第二读请求处理单元144,用于目标设备不存在该读请求所要读取的数据时,通过网络文件共享协议从源设备读取该读请求所要读取的数据,返回给用户,或用于通过网络文件共享协议从源设备上读取读请求所要读取的数据,并存储在目标设备上建立的相应的镜像文件中后返回给用户。
本实施例可对用户发送的读请求进行处理,以确保用户的正常运行,其具体实现可参见上述本发明方法实施例三或四的说明,在此不再赘述。
图10为本发明实施例十提供的文件在线迁移装置中业务处理模块的结构示意图。在上述图7、图8或图9所示实施例技术方案基础上,如图10所示,本实施例中业务处理模块14具体还可以包括写请求接收单元145、写请求查找单元146、第一写请求处理单元147和第二写请求处理单元148,其中:
写请求接收单元145,用于接收用户发送的写请求;
写请求查找单元146,用于在目标设备中查找该写请求所要写的数据对应的镜像文件中的数据是否迁移完成;
第一写请求处理单元147,用于当写请求所要写的数据对应的镜像文件中的数据迁移完成时,直接将写请求所要写的数据写到相应的镜像文件中;
第二写请求处理单元148,用于在目标设备查找该写请求所要写的数据对应的镜像文件中的数据没有迁移完成时,将该写请求所要写的数据写到临时文件中,以便在相应的镜像文件中的数据迁移完成后再写到镜像文件中,或用于通过网络文件共享协议将源设备上与写请求对应的镜像文件对应的文件中的数据优先迁移至目标设备后,将写请求所要写的数据写到镜像文件中。
本实施例可对用户发送的写请求进行处理,其具体实现可参见上述本发明方法实施例五或六的说明,在此不再赘述。
图11为本发明实施例十一提供的文件在线迁移***结构示意图。本实施文件在线迁移***可包括目标设备10和源设备20,该目标设备10和源设备20均为NAS设备,其中该目标设备10可包括上述图7至图10任一实施例提供的文件在线迁移装置,可在目标设备10与源设备20之间实现文件的在线迁移。
本领域技术人员可以理解,上述的源设备20也可以包括上述图7-8任意实施例提供的文件在线迁移装置,对此本实施例并不做特别限制。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。