首页 / 专利库 / 软件 / 操作系统 / 进程 / 一种分布式文件系统的数据迁移方法、系统及相关组件

一种分布式文件系统的数据迁移方法、系统及相关组件

阅读:1032发布:2020-05-13

专利汇可以提供一种分布式文件系统的数据迁移方法、系统及相关组件专利检索,专利查询,专利分析的服务。并且本 申请 公开了一种分布式文件系统的数据迁移方法,所述迁移方法包括当数据命名空间内副本磁盘的数量发生变化时,根据数据命名空间的负载均衡性要求确定磁盘替换信息;其中,分布式文件系统包括目录命名空间和数据命名空间,数据命名空间用于提供数据存储业务,目录命名空间用于存储分布式文件系统的目录结构和数据命名空间内每一文件的文件路由;根据磁盘替换信息将原副本磁盘内的数据迁移至目标副本磁盘。本方法能够使分布式文件系统的副本磁盘的数量发生变化时,降低迁移的数据量,提高数据迁移的效率。本申请还公开了一种分布式文件系统的数据迁移系统、一种计算机可读存储介质及一种 电子 设备,具有以上有益效果。,下面是一种分布式文件系统的数据迁移方法、系统及相关组件专利的具体信息内容。

1.一种分布式文件系统的数据迁移方法,其特征在于,包括:
当数据命名空间内副本磁盘的数量发生变化时,根据所述数据命名空间的负载均衡性要求确定磁盘替换信息;其中,所述分布式文件系统包括目录命名空间和所述数据命名空间,所述数据命名空间用于提供数据存储业务,所述目录命名空间用于存储所述分布式文件系统的目录结构和所述数据命名空间内每一文件的文件路由,所述磁盘替换信息包括原副本磁盘的磁盘信息和目标副本磁盘的磁盘信息;
根据所述磁盘替换信息将所述原副本磁盘内的数据迁移至所述目标副本磁盘。
2.根据权利要求1所述数据迁移方法,其特征在于,所述目录命名空间包括第一数量个目录副本组,所述数据命名空间包括第二预设数量个数据副本组;
其中,所述目录副本组包括多个第一虚拟节点,每个所述第一虚拟节点分别与所述目录命名空间的一个第一管理进程连接,每个第一管理进程对应一个元数据盘,所述数据副本组包括多个第二虚拟节点,每个所述第二虚拟节点分别与所述数据命名空间的所有第二管理进程连接,每个第二管理进程对应一个副本磁盘。
3.根据权利要求2所述数据迁移方法,其特征在于,根据所述数据命名空间的负载均衡性要求确定磁盘替换信息之后,还包括:
根据所述磁盘替换信息将所述目录命名空间中的原文件路由更新为新文件路由,并向所述第二虚拟节点发送路由更新提示;其中,所述原文件路由为所述原副本磁盘对应的文件路由,所述新文件路由为所述目标副本磁盘对应的文件路由。
4.根据权利要求3所述数据迁移方法,其特征在于,还包括:
当所述第二虚拟节点接收到客户端发送的业务请求时,判断所述第二虚拟节点是否收到所述路由更新提示;其中,所述第二虚拟节点与所述客户端互联,所述业务请求具体为对所述原副本磁盘执行业务操作的业务请求;
若是,则通过所述第二虚拟节点按照所述新文件路由或所述原文件路由将所述业务请求转发至对应的目标数据副本组,以便将所述业务请求对应的数据同步至所述目标数据副本组。
5.根据权利要求4所述数据迁移方法,其特征在于,通过所述第二虚拟节点按照所述新文件路由或所述原文件路由将所述业务请求转发至对应的目标数据副本组之前,还包括:
判断所述原副本磁盘内的数据是否全部迁移至所述目标副本磁盘;
若是,则将所述新文件路由的标志位由不可用状态设置为可用状态;
相应的,通过所述第二虚拟节点按照所述新文件路由或所述原文件路由将所述业务请求转发至对应的目标数据副本组,以便将所述业务请求对应的数据同步至所述目标数据副本组包括:
判断所述新文件路由的标志位是否为所述可用状态;
若是,则通过所述第二虚拟节点按照所述新文件路由将所述业务请求转发至对应的新目标数据副本组,以便将所述业务请求对应的数据同步至所述新目标数据副本组;
若否,则通过所述第二虚拟节点按照所述原文件路由将所述业务请求转发至对应的原目标数据副本组,以便将所述业务请求对应的数据同步至所述原目标数据副本组。
6.根据权利要求2所述数据迁移方法,其特征在于,所述第一虚拟节点和第二虚拟节点均与业务RPC服务端全连接。
7.根据权利要求1所述数据迁移方法,其特征在于,还包括:
当接收到文件创建指令时,根据所述文件创建指令在所述目录命名空间中创建新元数据文件,并在所述数据命名空间中创建新数据文件;其中,所述新数据文件的文件名为所述新元数据文件的标识符;
建立所述新元数据文件和所述新数据文件的映射关系,并对所述新数据文件的文件句柄和索引节点进行缓存。
8.根据权利要求1所述数据迁移方法,其特征在于,还包括:
当接收到文件查询指令时,根据所述文件查询指令确定待查询文件;
判断是否为首次查询所述待查询文件;
若是,则在所述目录命名空间中查询所述待查询文件的目标路由信息,并将所述目标路由信息转码并缓存至所述待查询文件的索引节点中,以便根据所述目标路由信息查询所述数据命名空间中所述待查询文件的文件元信息。
9.根据权利要求1所述数据迁移方法,其特征在于,还包括:
当接收到文件删除指令时,根据所述文件删除指令确定待删除文件;
删除所述目录命名空间中与所述待删除文件对应的元数据文件,并删除所述数据命名空间中与所述待删除文件对应的数据文件。
10.根据权利要求9所述数据迁移方法,其特征在于,还包括:
删除缓存中所述待删除文件的索引节点和文件句柄。
11.根据权利要求1所述数据迁移方法,其特征在于,还包括:
当接收到文件读写指令时,根据所述文件读写指令确定待读写文件;
判断缓存中是否存在所述待读写文件的目标文件句柄;
若是,则利用所述目标文件句柄对所述待读写文件执行所述文件读写指令对应的读写操作;
若否,则根据所述待读写文件的路由信息获取所述数据命名空间的数据文件,并将所述待读写文件的数据文件中的所述目标文件句柄进行缓存,以便利用所述目标文件句柄对所述待读写文件执行所述文件读写指令对应的读写操作。
12.根据权利要求1至11任一项所述数据迁移方法,其特征在于,还包括:
当接收到文件更新指令时,根据所述文件更新指令确定待更新文件;
判断缓存中是否存在所述待更新文件的索引节点;
若否,则根据所述待更新文件的文件名或文件句柄确定路由信息;
根据所述待更新文件的路由信息将元数据更新操作映射到所述文件数据命名空间,以便更新所述文件数据命名空间中的数据文件。
13.一种分布式文件系统的数据迁移系统,其特征在于,包括:
替换信息确定模,用于当数据命名空间内副本磁盘的数量发生变化时,根据数据命名空间的负载均衡性要求确定磁盘替换信息;其中,所述分布式文件系统包括目录命名空间和所述数据命名空间,所述数据命名空间用于提供数据存储业务,所述目录命名空间用于存储所述分布式文件系统的目录结构和所述数据命名空间内每一文件的文件路由,所述磁盘替换信息包括原副本磁盘的磁盘信息和目标副本磁盘的磁盘信息;
迁移模块,用于根据所述磁盘替换信息将所述原副本磁盘内的数据迁移至所述目标副本磁盘。
14.根据权利要求13所述数据迁移系统,其特征在于,所述目录命名空间包括第一数量个目录副本组,所述数据命名空间包括第二预设数量个数据副本组;
其中,所述目录副本组包括多个第一虚拟节点,每个所述第一虚拟节点分别与所述目录命名空间的一个第一管理进程连接,每个第一管理进程对应一个元数据盘,所述数据副本组包括多个第二虚拟节点,每个所述第二虚拟节点分别与所述数据命名空间的所有第二管理进程连接,每个第二管理进程对应一个副本磁盘。
15.根据权利要求14所述数据迁移系统,其特征在于,还包括:
路由更新模块,用于根据所述磁盘替换信息将所述目录命名空间中的原文件路由更新为新文件路由,并向所述第二虚拟节点发送路由更新提示;其中,所述原文件路由为所述原副本磁盘对应的文件路由,所述新文件路由为所述目标副本磁盘对应的文件路由。
16.根据权利要求15所述数据迁移系统,其特征在于,还包括:
更新提示判断模块,用于当所述第二虚拟节点接收到客户端发送的业务请求时,判断所述第二虚拟节点是否收到所述路由更新提示;其中,所述第二虚拟节点与所述客户端互联,所述业务请求具体为对所述原副本磁盘执行业务操作的业务请求;
同步模块,用于当所述第二虚拟节点收到所述路由更新提示时,通过所述第二虚拟节点按照所述新文件路由或所述原文件路由将所述业务请求转发至对应的目标数据副本组,以便将所述业务请求对应的数据同步至所述目标数据副本组。
17.根据权利要求16所述数据迁移系统,其特征在于,还包括:
路由状态标志模块,用于判断所述原副本磁盘内的数据是否全部迁移至所述目标副本磁盘;若是,则将所述新文件路由的标志位由不可用状态设置为可用状态;
相应的,所述同步模块包括:
标志位判断单元,用于判断所述新文件路由的标志位是否为所述可用状态;
第一同步单元,用于当标志位为所述可用状态时,通过所述第二虚拟节点按照所述新文件路由将所述业务请求转发至对应的新目标数据副本组,以便将所述业务请求对应的数据同步至所述新目标数据副本组;
第二同步单元,用于当标志位为所述不可用状态时,通过所述第二虚拟节点按照所述原文件路由将所述业务请求转发至对应的原目标数据副本组,以便将所述业务请求对应的数据同步至所述原目标数据副本组。
18.根据权利要求14所述数据迁移系统,其特征在于,所述第一虚拟节点和第二虚拟节点均与业务RPC服务端全连接。
19.根据权利要求13所述数据迁移系统,其特征在于,还包括:
文件创建模块,用于当接收到文件创建指令时,根据所述文件创建指令在所述目录命名空间中创建新元数据文件,并在所述数据命名空间中创建新数据文件;其中,所述新数据文件的文件名为所述新元数据文件的标识符;还用于建立所述新元数据文件和所述新数据文件的映射关系,并对所述新数据文件的文件句柄和索引节点进行缓存。
20.根据权利要求13所述数据迁移系统,其特征在于,还包括:
文件查询模块,用于当接收到文件查询指令时,根据所述文件查询指令确定待查询文件;还用于判断是否为首次查询所述待查询文件;若是,则在所述目录命名空间中查询所述待查询文件的目标路由信息,并将所述目标路由信息转码并缓存至所述待查询文件的索引节点中,以便根据所述目标路由信息查询所述数据命名空间中所述待查询文件的文件元信息。
21.根据权利要求13所述数据迁移系统,其特征在于,还包括:
文件删除模块,用于当接收到文件删除指令时,根据所述文件删除指令确定待删除文件;还用于删除所述目录命名空间中与所述待删除文件对应的元数据文件,并删除所述数据命名空间中与所述待删除文件对应的数据文件。
22.根据权利要求21所述数据迁移系统,其特征在于,还包括:
缓存处理模块,用于删除缓存中所述待删除文件的索引节点和文件句柄。
23.根据权利要求13所述数据迁移系统,其特征在于,还包括:
文件读写模块,用于当接收到文件读写指令时,根据所述文件读写指令确定待读写文件;还用于判断缓存中是否存在所述待读写文件的目标文件句柄;若是,则利用所述目标文件句柄对所述待读写文件执行所述文件读写指令对应的读写操作;若否,则根据所述待读写文件的路由信息获取所述数据命名空间的数据文件,并将所述待读写文件的数据文件中的所述目标文件句柄进行缓存,以便利用所述目标文件句柄对所述待读写文件执行所述文件读写指令对应的读写操作。
24.根据权利要求13至23任一项所述数据迁移系统,其特征在于,还包括:
文件更新模块,用于当接收到文件更新指令时,根据所述文件更新指令确定待更新文件;还用于判断缓存中是否存在所述待更新文件的索引节点;若否,则根据所述待更新文件的文件名或文件句柄确定路由信息,根据所述待更新文件的路由信息将元数据更新操作映射到所述文件数据命名空间,以便更新所述文件数据命名空间中的数据文件。
25.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序
处理器,用于执行所述计算机程序时实现如权利要求1至12任一项所述分布式文件系统的数据迁移方法的步骤。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12任一项所述分布式文件系统的数据迁移方法的步骤。

说明书全文

一种分布式文件系统的数据迁移方法、系统及相关组件

技术领域

[0001] 本发明涉及分布式存储技术领域,特别涉及一种分布式文件系统的数据迁移方法、系统、一种计算机可读存储介质及一种电子设备。

背景技术

[0002] 随着计算机技术的快速发展,分布式文件系统的应用越来越广泛,如GlusterFS分布式文件系统。
[0003] 现有的GlusterFS分布式文件系统框架结构采用全局统一命名空间,文件和目录在一起。每一数据盘对应一个管理进程Brick,每个管理进程负责接收RPC(Remote Procedure Call,远程过程调用)的调用将数据写入数据盘,每一个管理进程只属于一个副本组,一个副本组一般由2或3个管理进程组成镜像关系,类似于RAID(Redundant Arrays of Independent Drives,磁盘阵列)。每个文件只存储于一个副本组内,文件分布采用一致性哈希DHT(Distributed Hash Table,分布式哈希表)算法
[0004] 这种框架结构存在一定的缺点,当其中一个数据盘损坏时,需要对该数据盘对应的整个副本组进行迁移,文件路由的改变必须是一个数据副本组的所有磁盘都变化,即迁移只能按照副本组粒度进行,没有损坏的数据盘中的文件也需要进行迁移,迁移工作量较大,工作效率较低。
[0005] 因此,如何使分布式文件系统的副本磁盘的数量发生变化时,降低迁移的数据量,提高数据迁移的效率是本领域技术人员目前需要解决的技术问题。

发明内容

[0006] 本申请的目的是提供一种分布式文件系统的数据迁移方法、系统、一种计算机可读存储介质及一种电子设备,能够使分布式文件系统的副本磁盘的数量发生变化时,降低迁移的数据量,提高数据迁移的效率。
[0007] 为解决上述技术问题,本申请提供一种分布式文件系统的数据迁移方法,该数据迁移方法包括:
[0008] 当数据命名空间内副本磁盘的数量发生变化时,根据数据命名空间的负载均衡性要求确定磁盘替换信息;其中,分布式文件系统包括目录命名空间和数据命名空间,数据命名空间用于提供数据存储业务,目录命名空间用于存储分布式文件系统的目录结构和数据命名空间内每一文件的文件路由,磁盘替换信息包括原副本磁盘的磁盘信息和目标副本磁盘的磁盘信息;
[0009] 根据磁盘替换信息将原副本磁盘内的数据迁移至目标副本磁盘。
[0010] 可选的,目录命名空间包括第一数量个目录副本组,数据命名空间包括第二预设数量个数据副本组;
[0011] 其中,目录副本组包括多个第一虚拟节点,每个第一虚拟节点分别与目录命名空间的一个第一管理进程连接,每个第一管理进程对应一个元数据盘,数据副本组包括多个第二虚拟节点,每个第二虚拟节点分别与数据命名空间的所有第二管理进程连接,每个第二管理进程对应一个副本磁盘。
[0012] 可选的,根据数据命名空间的负载均衡性要求确定磁盘替换信息之后,还包括:
[0013] 根据磁盘替换信息将目录命名空间中的原文件路由更新为新文件路由,并向第二虚拟节点发送路由更新提示;其中,所述原文件路由为所述原副本磁盘对应的文件路由,所述新文件路由为所述目标副本磁盘对应的文件路由。
[0014] 可选的,还包括:
[0015] 当所述第二虚拟节点接收到客户端发送的业务请求时,判断第二虚拟节点是否收到路由更新提示;其中,第二虚拟节点与客户端互联,业务请求具体为对原副本磁盘执行业务操作的业务请求;
[0016] 若是,则通过第二虚拟节点按照新文件路由或原文件路由将业务请求转发至对应的目标数据副本组,以便将业务请求对应的数据同步至目标数据副本组。
[0017] 可选的,通过第二虚拟节点按照新文件路由或原文件路由将业务请求转发至对应的目标数据副本组之前,还包括:
[0018] 判断原副本磁盘内的数据是否全部迁移至目标副本磁盘;
[0019] 若是,则将新文件路由的标志位由不可用状态设置为可用状态;
[0020] 相应的,通过第二虚拟节点按照新文件路由或原文件路由将业务请求转发至对应的目标数据副本组,以便将业务请求对应的数据同步至目标数据副本组包括:
[0021] 判断新文件路由的标志位是否为可用状态;
[0022] 若是,则通过第二虚拟节点按照新文件路由将业务请求转发至对应的新目标数据副本组,以便将业务请求对应的数据同步至新目标数据副本组;
[0023] 若否,则通过第二虚拟节点按照原文件路由将业务请求转发至对应的原目标数据副本组,以便将业务请求对应的数据同步至原目标数据副本组。
[0024] 可选的,第一虚拟节点和第二虚拟节点均与业务RPC服务端全连接。
[0025] 可选的,还包括:
[0026] 当接收到文件创建指令时,根据文件创建指令在目录命名空间中创建新元数据文件,并在数据命名空间中创建新数据文件;其中,新数据文件的文件名为新元数据文件的标识符;
[0027] 建立新元数据文件和新数据文件的映射关系,并对新数据文件的文件句柄和索引节点进行缓存。
[0028] 可选的,还包括:
[0029] 当接收到文件查询指令时,根据文件查询指令确定待查询文件;
[0030] 判断是否为首次查询待查询文件;
[0031] 若是,则在目录命名空间中查询待查询文件的目标路由信息,并将目标路由信息转码并缓存至待查询文件的索引节点中,以便根据目标路由信息查询数据命名空间中待查询文件的文件元信息。
[0032] 可选的,还包括:
[0033] 当接收到文件删除指令时,根据文件删除指令确定待删除文件;
[0034] 删除目录命名空间中与待删除文件对应的元数据文件,并删除数据命名空间中与待删除文件对应的数据文件。
[0035] 可选的,还包括:
[0036] 删除缓存中待删除文件的索引节点和文件句柄。
[0037] 可选的,还包括:
[0038] 当接收到文件读写指令时,根据文件读写指令确定待读写文件;
[0039] 判断缓存中是否存在待读写文件的目标文件句柄;
[0040] 若是,则利用目标文件句柄对待读写文件执行文件读写指令对应的读写操作;
[0041] 若否,则根据待读写文件的路由信息获取数据命名空间的数据文件,并将待读写文件的数据文件中的目标文件句柄进行缓存,以便利用目标文件句柄对待读写文件执行文件读写指令对应的读写操作。
[0042] 可选的,还包括:
[0043] 当接收到文件更新指令时,根据文件更新指令确定待更新文件;
[0044] 判断缓存中是否存在待更新文件的索引节点;
[0045] 若否,则根据待更新文件的文件名或文件句柄确定路由信息;
[0046] 根据待更新文件的路由信息将元数据更新操作映射到文件数据命名空间,以便更新文件数据命名空间中的数据文件。
[0047] 本申请还提供了一种分布式文件系统的数据迁移系统,该系统包括:
[0048] 替换信息确定模块,用于当数据命名空间内副本磁盘的数量发生变化时,根据数据命名空间的负载均衡性要求确定磁盘替换信息;其中,分布式文件系统包括目录命名空间和数据命名空间,数据命名空间用于提供数据存储业务,目录命名空间用于存储分布式文件系统的目录结构和数据命名空间内每一文件的文件路由,磁盘替换信息包括原副本磁盘的磁盘信息和目标副本磁盘的磁盘信息;
[0049] 迁移模块,用于根据磁盘替换信息将原副本磁盘内的数据迁移至目标副本磁盘。
[0050] 可选的,目录命名空间包括第一数量个目录副本组,数据命名空间包括第二预设数量个数据副本组;
[0051] 其中,目录副本组包括多个第一虚拟节点,每个第一虚拟节点分别与目录命名空间的一个第一管理进程连接,每个第一管理进程对应一个元数据盘,数据副本组包括多个第二虚拟节点,每个第二虚拟节点分别与数据命名空间的所有第二管理进程连接,每个第二管理进程对应一个副本磁盘。
[0052] 可选的,还包括:
[0053] 路由更新模块,用于根据磁盘替换信息将目录命名空间中的原文件路由更新为新文件路由,并向第二虚拟节点发送路由更新提示;其中,所述原文件路由为所述原副本磁盘对应的文件路由,所述新文件路由为所述目标副本磁盘对应的文件路由。
[0054] 可选的,还包括:
[0055] 更新提示判断模块,用于当第二虚拟节点接收到客户端发送的业务请求时,判断第二虚拟节点是否收到路由更新提示;其中,第二虚拟节点与客户端互联,业务请求具体为对原副本磁盘执行业务操作的业务请求;
[0056] 同步模块,用于当第二虚拟节点收到路由更新提示时,通过第二虚拟节点按照新文件路由或原文件路由将业务请求转发至对应的目标数据副本组,以便将业务请求对应的数据同步至目标数据副本组。
[0057] 可选的,还包括:
[0058] 路由状态标志模块,用于判断原副本磁盘内的数据是否全部迁移至目标副本磁盘;若是,则将新文件路由的标志位由不可用状态设置为可用状态;
[0059] 相应的,同步模块包括:
[0060] 标志位判断单元,用于判断新文件路由的标志位是否为可用状态;
[0061] 第一同步单元,用于当标志位为可用状态时,通过第二虚拟节点按照新文件路由将业务请求转发至对应的新目标数据副本组,以便将业务请求对应的数据同步至新目标数据副本组;
[0062] 第二同步单元,用于当标志位为不可用状态时,通过第二虚拟节点按照原文件路由将业务请求转发至对应的原目标数据副本组,以便将业务请求对应的数据同步至原目标数据副本组。
[0063] 可选的,第一虚拟节点和第二虚拟节点均与业务RPC服务端全连接。
[0064] 可选的,还包括:
[0065] 文件创建模块,用于当接收到文件创建指令时,根据文件创建指令在目录命名空间中创建新元数据文件,并在数据命名空间中创建新数据文件;其中,新数据文件的文件名为新元数据文件的标识符;还用于建立新元数据文件和新数据文件的映射关系,并对新数据文件的文件句柄和索引节点进行缓存。
[0066] 可选的,还包括:
[0067] 文件查询模块,用于当接收到文件查询指令时,根据文件查询指令确定待查询文件;还用于判断是否为首次查询待查询文件;若是,则在目录命名空间中查询待查询文件的目标路由信息,并将目标路由信息转码并缓存至待查询文件的索引节点中,以便根据目标路由信息查询数据命名空间中待查询文件的文件元信息。
[0068] 可选的,还包括:
[0069] 文件删除模块,用于当接收到文件删除指令时,根据文件删除指令确定待删除文件;还用于删除目录命名空间中与待删除文件对应的元数据文件,并删除数据命名空间中与待删除文件对应的数据文件。
[0070] 可选的,还包括:
[0071] 缓存处理模块,用于删除缓存中待删除文件的索引节点和文件句柄。
[0072] 可选的,还包括:
[0073] 文件读写模块,用于当接收到文件读写指令时,根据文件读写指令确定待读写文件;还用于判断缓存中是否存在待读写文件的目标文件句柄;若是,则利用目标文件句柄对待读写文件执行文件读写指令对应的读写操作;若否,则根据待读写文件的路由信息获取数据命名空间的数据文件,并将待读写文件的数据文件中的目标文件句柄进行缓存,以便利用目标文件句柄对待读写文件执行文件读写指令对应的读写操作。
[0074] 可选的,还包括:
[0075] 文件更新模块,用于当接收到文件更新指令时,根据文件更新指令确定待更新文件;还用于判断缓存中是否存在待更新文件的索引节点;若否,则根据待更新文件的文件名或文件句柄确定路由信息,根据待更新文件的路由信息将元数据更新操作映射到文件数据命名空间,以便更新文件数据命名空间中的数据文件。
[0076] 本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述分布式文件系统的数据迁移方法执行的步骤。
[0077] 本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述分布式文件系统的数据迁移方法执行的步骤。
[0078] 本发明提供了一种分布式文件系统的数据迁移方法,包括当数据命名空间内副本磁盘的数量发生变化时,根据数据命名空间的负载均衡性要求确定磁盘替换信息;其中,所述分布式文件系统包括目录命名空间和所述数据命名空间,所述数据命名空间用于提供数据存储业务,所述目录命名空间用于存储所述分布式文件系统的目录结构和所述数据命名空间内每一文件的文件路由,所述磁盘替换信息包括原副本磁盘的磁盘信息和目标副本磁盘的磁盘信息;根据所述磁盘替换信息将所述原副本磁盘内的数据迁移至所述目标副本磁盘。
[0079] 本申请将目录命名空间和数据命名空间分离,通过所述数据命名空间提供数据存储业务,所述目录命名空间用于存储整个系统的目录结构和所述数据命名空间内每一文件的路由信息。相对于现有技术中全局统一命名空间的技术方案,这种将目录命名空间和数据命名空间分离的分布式文件系统的架构可以灵活改变元数据文件和数据文件,即可以仅涉及原副本磁盘与目标副本磁盘之间的数据迁移,原副本磁盘对应的原数据副本组的其他磁盘无需参与数据迁移。应用本申请的数据同步方式,当数据命名空间中一个数据盘损坏时,可以单独对该数据盘中的文件副本进行迁移,即迁移可以按照副本粒度进行,没有损坏的数据盘中的文件不需要进行迁移,减小了迁移工作量,提高了工作效率。本申请同时还提供了一种分布式文件系统的数据迁移系统、一种计算机可读存储介质和一种电子设备,具有上述有益效果,在此不再赘述。附图说明
[0080] 为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0081] 图1为本申请实施例所提供的一种分布式文件系统的数据迁移方法的流程图
[0082] 图2为改进前的分布式文件系统架构图;
[0083] 图3为改进后的分布式文件系统架构图;
[0084] 图4为目录与命名分离的命名空间管理示意图;
[0085] 图5为元数据文件到数据文件的映射关系示意图;
[0086] 图6为本申请实施例所提供的一种分布式文件系统的数据同步方法的流程图;
[0087] 图7为本申请实施例所提供的一种分布式文件系统的数据迁移系统的结构示意图。

具体实施方式

[0088] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0089] 下面请参见图1,图1为本申请实施例所提供的一种分布式文件系统的数据迁移方法的流程图。
[0090] 具体步骤可以包括:
[0091] S101:当数据命名空间内副本磁盘的数量发生变化时,根据数据命名空间的负载均衡性要求确定磁盘替换信息;
[0092] 其中,分布式文件系统包括目录命名空间和数据命名空间,数据命名空间用于提供数据存储业务,目录命名空间用于存储分布式文件系统的目录结构和数据命名空间内每一文件的文件路由,磁盘替换信息包括原副本磁盘的磁盘信息和目标副本磁盘的磁盘信息。
[0093] 需要说明的是,本实施例是针对现有技术中分布式文件系统的数据副本组扩减容场景提出的,具体的,是针对于采用全局统一的命名空间管理方式的分布式文件系统(如GlusterFS)提出的一种数据迁移方案。
[0094] 在分布式文件系统中,文件的组织方式呈现给用户的可理解的视图就是文件系统的命名空间。采用全局统一的命名空间管理方式分布式文件系统,在运行中采用动态子树的方式组织目录和文件,比如以CephFS为代表的集中式结构的分布式文件系统;也有采用全节点复制目录树的方式依赖本地文件系统来组织文件和目录,比如以GlusterFS为代表的分布式文件系统。由于采用全局统一命名空间的分布式文件系统的文件和目录存储在一起,而且文件的访问依赖目录结构。目录的分布方式是在全节点都有一份副本,依赖本地文件系统来组织目录和文件,这种命名空间管理方式有以下问题:目录操作涉及全节点,效率低下;部分目录的操作语义(rename)过于复杂,容易产生脑裂;文件分布信息记录在父目录的扩展属性中,无法按照文件副本粒度的执行迁移和重建;无法支持单节点的扩减容。
[0095] 基于上述缺点,本实施例在在执行S101之前,默认已经对分布式文件系统的架构进行了一定的改进。本实施例默认将原本采用全局统一命名空间管理方式的分布式文件系统改进为采用目录和文件分离的命名空间管理方法的分布式文件系统,具体的以GlusterFS原生版本为例,将目录和文件分离开来,使用两个命名空间管理,即存在目录命名空间和数据命名空间。目录空间存储的是元数据文件和目录,目录空间为用户提供可以理解的文件系统的统一视图,是分布式文件系统对外提供给用的视图服务。数据命名空间存储的是用户文件的实际数据内容,文件元信息和文件的扩展属性,数据命名空间是系统内部使用的文件数据的组织形式,不对用户可见。这种目录和文件分离的命名空间管理方式,提供了一种新的分布式文件系统存储引擎,目录命名操作只限于目录命名空间,简化操作,提升效率,文件迁移和重建不再依赖于上级目录,文件的分布更加灵活,可以支持单点扩减容。
[0096] 将分布式文件系统的命名空间划分为目录命名空间和数据命名空间后,可以实现目录命名空间和数据命名空间的分开管理,具体的,在目录命名空间中可以存在有第一数量个目录副本组,用于存储分布式文件系统的目录结构和数据命名空间内每一文件的文件路由,一个目录副本组可以包括多个元数据盘,同一目录副本组内的元数据盘中的相同文件互相作为冗余。作为一种优选的实施方式,由于目录结构和文件路由所需要占的存储空间较小,且需要展示给用户观察分析,因此目录副本组的数量可以为一个。目录副本组可以包括多个第一虚拟节点,第一虚拟节点的数量可以根据元数据盘的数量进行设置,每个第一虚拟节点分别与目录命名空间的一个第一管理进程连接,每个第一管理进程对应一个元数据盘。进一步的,在数据命名空间中可以存在有第二数量个数据副本组,用于提供数据存储业务,一个数据副本组可以包括多个副本磁盘,同一数据副本组内的副本磁盘中的相同文件互为冗余。数据副本组可以包括多个第二虚拟节点,第二虚拟节点的数量可以根据副本磁盘的数量进行设置,每个第二虚拟节点分别与数据命名空间的所有第二管理进程连接,每个第二管理进程对应一个副本磁盘。
[0097] 下面通过实际应用中的例子来说明改进前的分布式文件系统和本实施例中改进后的分布式文件系统的架构。
[0098] 请见参见图2,图2为改进前的分布式文件系统架构图,改进前的分布式框架的核心理念为:每一块数据盘对应一个管理进程称之为Brick,负责接收RPC调用将数据写入数据盘,每一个Brick只能属于一个副本组,一个副本组一般由2或3个Brick组成镜像关系,类似于RAID1,每个文件只能存储于一个副本组内,文件分布算法采用一致性哈希DHT算法。因此,当数据盘brick-4损坏时,当前副本组AFR-1的映射关系是固定的,需要将整个副本组迁移到AFR-0,这样的话Brick-3和Brick-5的数据空间也无法使用了,否则只能带故障运行,等待人工介入。故改进前的分布式文件系统,由于目录和文件存在一起无法满足数据重建的需求,仅将Brick-4上的数据搬迁至其他可用数据盘上面;也无法满足按照副本粒度的数据迁移(平衡)需求。
[0099] 请见参见图3,图3为改进后的分布式文件系统架构图,该架构图为了支持将故障盘上的所有数据可以自由搬迁至剩余可用数据盘上面,摒弃了AFR和Brick之间的固定映射关系,对此设计了新的分布式框架。改进后的分布式框架核心理念为:Brick的概念保持不变,仍然负责接收RPC调用将数据写入数据盘,Brick不再属于任何一个副本组,独立于副本组之外单独存在,副本组仍然负责镜像功能,但是不再由2或3个Brick构成,而是由2或3个固定的虚拟子节点构成。图3中AFR-DIR为目录命名空间,AFR-Data为数据命名空间,mclient为用于元数据管理的第一虚拟节点,vclnt为用于实际数据管理的第二虚拟节点,clnt_mgmt意味着第二虚拟节点的数据可以集中收发。副本组按功能类型只能存在一个,即一个存储卷内最多只有一个2副本组和一个3副本组,每个文件按副本数要求只能属于一个副本组,要么是2副本组,要么是3副本组。每个文件的具体存储位置,不再由DHT算法来决定,改用元数据单独管理,由元数据中心来决定具体的映射关系,比如:A文件属于2副本组,存储位置映射为Brick-3,Brick-4,Brick-5。当然,改进后的分布式文件系统还可以包括用于仲裁的磁盘,以便当同一副本组内的副本磁盘内的数据出现不一致的情况时,选择一个副本磁盘中的内容作为可以信任的内容。
[0100] 通过上述如图3中架构的改进相当于将目录独立出来存储在目录命名空间,选用一个副本组。这样的改进可以实现目录和文件分离的命名空间管理方法:关于目录的所有操作只会分发到目录副本组,目录的路由可以存放在配置文件或者交由集群管理子系统进行持久化和更新管理,这种管理模式下,目录和文件的重命名等操作的语义会变的简单,而且不会出现目录脑裂。进一步,用户文件的数据、文件元信息和文件的扩展属性存储在文件数据命名空间,如图4所示,图4为目录与命名分离的命名空间管理示意图。文件数据命名空间提供文件的数据业务,不对用户暴露。用户看到的统一命名空间由目录命名空间提供,目录命名空间对用户提供唯一目录组织结构的视图。目录命名空间和文件数据命名空间的映射关系如图5所示,图5为元数据文件到数据文件的映射关系示意图,这样文件的数据业务不会因为架构变更和存储引擎的变更造成性能损耗,文件的其他管理操作接口只需要在映射转换后直接作用在数据命名空间。
[0101] 在使用目录命名空间和数据命名空间分离的命名空间管理方式下,元数据文件就是目录命名空间中的一个目录项,大小为零,文件内容为空。元数据文件拥有自己的唯一标识符(GFID),拥有自己独立的扩展属性。元数据文件是文件呈现给用户的统一目录层次结构视图。同样,在目录和文件分离的命名空间管理方式下,数据文件是一个以元数据文件标识符为名字的文件,文件的元信息、扩展属性以及文件存储的数据都在数据文件中。数据文件对用户不可见,是分布式文件系统针对数据持久化的组织方式,是文件元信息、扩展属性和数据内容的实际载体。
[0102] 总之,将分布式文件系统的目录和文件分开存储,分别对目录命名空间和数据命名空间分开管理,可以解决目录脑裂的问题,提升目录操作的效率,降低目录操作的复杂度,为文件按副本粒度的迁移和重建提供基础架构支撑,可以实现以副本磁盘为粒度的单点减扩容。
[0103] 本实施例所描述的数据迁移方法,正是基于上述对于采用全局统一的命名空间管理方式的分布式文件系统的架构的改进执行的。分布式文件系统的副本磁盘的数量发生变化的应用场景可以是当某个副本磁盘出现故障进行正常的数据存储时,增加了一个新的副本磁盘来进行替代;也可以是某个副本磁盘的剩余存储空间不足时,增加一个新的容量较大的副本磁盘来进行替代,总之当副本磁盘的数量发生变化时说明分布文件系统正在进行减扩容操作。
[0104] 需要说明的是,分布文件系统中各个磁盘的数据存储是按照故障域和分布均衡性要求设置的,当数据命名空间内副本磁盘的数量发生变化时,数据命名空间的分布均衡情况会受到影响,因此此时需要根据数据命名空间确定磁盘替换信息。例如,当副本磁盘A的剩余存储空间仅剩5%时,为分布文件系统增加新的大容量的空的副本磁盘B,此时根据分布均衡性要求就可以确定需要将副本磁盘A替换为副本磁盘B的磁盘替换信息。值得注意的是,此处能够确定将副本磁盘A替换为副本磁盘B的前提是,该分布式文件系统已经将目录和文件分开存储,即存在目录命名空间和数据命名空间分开管理的架构的基础上。若依旧采用全局统一的命名空间管理方式,改进前的分布式文件系统的目录实现是全局的,分布的hash运算分段记录在对应的目录的扩展属性中,因此集群中的磁盘总数必须满足副本数的整数倍,文件分布信息记录在父目录的扩展属性中,副本组在分布式文件系统中采用固定分配方式在配置文件中无法改变,在副本磁盘的数量发生变化时若要进行数据的迁移,必须按照整个副本组的粒度执行数据搬迁,造成数据迁移中需要迁移文件副本数与文件大小乘积的数据量,使得数据迁移的量很大,迁移时间很长,在执行迁移过程中数据可用性和性能都受到影响。
[0105] 举例说明上述论述,例如分布式文件系统中包括副本磁盘a、b、c、d、e、f,副本磁盘a、b、c为第一副本组,当副本磁盘a出现故障后,若分布式文件系统采用全局统一的命名空间管理方式,由于上层的运维图固定写死无法灵活改变,因此为了使第一副本组内的数据的冗余度依旧为3,需要重新选择三个副本磁盘d、e、f组成新的第一副本组,将副本磁盘a、b、c中的数据迁移至d、e、f。但是,若使用本实施提供的将目录与文件分开存储的分布式文件系统,由于目录存在于目录管理空间,数据存储在数据管理空间,因此副本组内的副本磁盘可以任意改变,即,当副本磁盘a出现故障后,可以从d、e、f中选择一个符合分布均衡性要求的副本磁盘d来替代副本磁盘a,只涉及副本磁盘d的数据迁移,新的第一副本组的副本磁盘为b、c、d。当然,数据迁移后,还会包括目录命名空间中文件路由的更新及数据同步操作,将在后续的实施例中进一步的描述。
[0106] 本步骤中提到的磁盘替换信息是用于描述将哪些副本磁盘替换哪些副本磁盘的信息,磁盘替换信息包括原副本磁盘的磁盘信息和目标副本磁盘的磁盘信息。磁盘替换信息是通过分析分布式文件系统内所有的副本磁盘的存储情况,根据分布均衡性要求得到的。
[0107] S102:根据磁盘替换信息将原副本磁盘内的数据迁移至目标副本磁盘。
[0108] 其中,在S101的基础上,当数据命名空间内副本磁盘的数量发生变化时,为了保持分布式文件系统内部的冗余度要求,存在副本磁盘之间进行替换的操作,具体的是利用目标副本磁盘替代原副本磁盘继续提供数据存储服务,因此需要将原副本磁盘内的数据迁移至目标副本磁盘。可以根据磁盘替换信息中原副本磁盘的磁盘信息和目标副本磁盘的磁盘信息,确定数据迁移的路径。
[0109] 需要说明的是,当原副本磁盘是由于自身存储空间不足时,利用目标副本磁盘替代原副本磁盘,可以直接将原副本磁盘内的数据迁移至目标副本磁盘得到新的副本组,以便保持新副本组内所有副本磁盘的数据一致性。当由于原副本磁盘出现故障或磁盘破损导致的副本磁盘的数量发生变化时,原副本磁盘原本所归属的副本组内的其他副本磁盘中的数据是相同的,因此可以将原副本磁盘原本所归属的副本组内的其他副本磁盘中的数据迁移至目标副本磁盘,虽然上述两种情况迁移数据的两个副本磁盘不同,但是实际上由于同一副本组内数据的一致性,因此迁移的数据都可以视为原副本磁盘内的数据。
[0110] 本申请将目录命名空间和数据命名空间分离,通过数据命名空间提供数据存储业务,目录命名空间用于存储整个系统的目录结构和数据命名空间内每一文件的路由信息。相对于现有技术中全局统一命名空间的技术方案,这种将目录命名空间和数据命名空间分离的分布式文件系统的架构可以灵活改变元数据文件和数据文件,即可以仅涉及原副本磁盘与目标副本磁盘之间的数据迁移,原副本磁盘对应的原数据副本组的其他磁盘无需参与数据迁移。应用本申请的数据同步方式,当数据命名空间中一个数据盘损坏时,可以单独对该数据盘中的文件副本进行迁移,即迁移可以按照副本粒度进行,没有损坏的数据盘中的文件不需要进行迁移,减小了迁移工作量,提高了工作效率。
[0111] 下面请参见图6,图6为本申请实施例所提供的一种分布式文件系统的数据同步方法的流程图;本实施例在图1对应的实施例的基础上对于改进后的分布式文件系统的数据同步操作进行了进一步的解释,图2对应的实施例可以与图1对应的实施例进行结合得到更优选的实施例,对于分布式文件系统架构上的改进的描述与上一实施例基本一致,可以相互参见,此处不再赘述。
[0112] 数据同步方法的具体步骤可以包括:
[0113] S201:根据磁盘替换信息将目录命名空间中的原文件路由更新为新文件路由,并向第二虚拟节点发送路由更新提示。
[0114] 其中,分布式文件系统中访问文件需要的逻辑位置到物理存储位置的映射关系就是文件路由,也称之为文件分布信息。使用hash引擎的存储系统,文件路由就是hash运算结果,采用树形引擎的分布式存储系统,文件路由就是树形结果索引。比如GlusterFS这种分布式文件系统中,文件路由就是其根据文件名运算出来的hash值。本发明中的文件路由指的是文件分布的一组磁盘索引,比如fileA的文件路由信息是[disk1,disk2,disk3](以三副本为例)。
[0115] 在本实施例中,由于利用目标副本磁盘替代原副本磁盘,因此原本访问原副本磁盘的路径应该进行相应的改变,即根据磁盘替换信息将目录命名空间中的原文件路由更新为新文件路由。原文件路由为原副本磁盘对应的文件路由,新文件路由为目标副本磁盘对应的文件路由具体的,磁盘信息中包括磁盘索引,可以根据磁盘替换信息将原副本磁盘的磁盘索引更新为目标副本磁盘的磁盘索引。由于文件路由不是通过一次hash运算直接定位,而是先到虚拟节点拿到的是副本组信息,在扩减容中副本组的一级映射关系没变,变更的是副本组中记录的磁盘索引的变更,因此调整文件路由实际调整的是文件路由中记录的磁盘索引,因此对于一个文件而言其副本组是运行动态确定的,副本组记录的磁盘索引信息是可以随时更新,而且可以只更新其中的一个副本所在的磁盘索引。需要说明的是,文件路由存储于目录命名空间,由于本实施例的分布式文件系统的目录命名空间与数据命名空间是分离的,因此文件路由的更改不会存在语义复杂产生脑裂的情况。
[0116] 需要说明的是,本实施例中与客户端互联的第二虚拟节点所起到的作用是将客户端的业务请求转发至对应的副本组的副本磁盘,由于本实施例可以以副本组为粒度进行数据的迁移,因此需要虚拟节点用于灵活切换副本组。第二虚拟节点上可以预先存有文件路由,当接收到业务请求后直接按照自身存储的文件路由进行转发,而不用向目录命名空间查询文件路由,省去了繁琐的步骤。但是当文件路由变化时,若虚拟节点依旧按照原文件路由进行业务请求的转发,会出现错误的情况,因此本步骤向第二虚拟节点发送路由更新提示,用于告知第二虚拟节点本分布式文件系统的文件路由发生了变化,需要根据实际情况选择对应的副本组进行业务请求的转发。
[0117] S202:当所述第二虚拟节点接收到客户端发送的业务请求时,判断第二虚拟节点是否收到路由更新提示;若是,则进入S203;若否,则进入S204;
[0118] 其中,当接收到业务请求时,需要判断是否收到路由更新提示,若没有收到路由更新提示,则可以按照预先存在第二虚拟节点的原文件路由将业务请求转发至对应的原目标数据副本组。而当接受到路由提示信息时,说明分布式文件系统的副本磁盘的访问路径发生了变化。而由于将原副本磁盘的数据迁移至目标副本磁盘是需要一定的时间段的,因此此时应该根据数据迁移的实际情况灵活选择转发业务请求的遵循的路由信息。
[0119] 改进前的分布式存储系统中采用一致性哈希方法来实现数据的打散分布,避免数据访问热点的出现,但是一致性哈希在节点扩减容场景会造成大量节点的调整和数据分布的调整,由此产生大量的数据迁移工作。本申请为了解决这个问题,采用虚拟节点的方式改进一致性哈希算法,这样在存储节点扩减容的时候只需要变更虚拟节点和物理节点的映射关系即可,尽可能的减少数据分布信息的变更和数据迁移工作。虚拟节点可以看成是数据分布的逻辑映射,在数据访问中先通过逻辑映射访问虚拟节点,然后从虚拟节点获取其实际运行过程中指向的物理位置关系。
[0120] S203:通过第二虚拟节点按照新文件路由或原文件路由将业务请求转发至对应的目标数据副本组,以便将业务请求对应的数据同步至目标数据副本组。
[0121] 数据同步业务的处理流程为:分布式文件系统根据业务操作类型准备相关接口参数,客户端将业务请求按照固定的虚拟节点地址分发到虚拟节点(具体为第二虚拟节点)并注册异步回调处理函数,虚拟节点接受请求后根据路由算法选择副本组(路由信息)并将请求下发到路由信息指定的RPC服务端。RPC服务端将请求交由本节点的注册的业务处理模块进行处理,RPC服务端等待底层服务模块处理完成响应文件系统客户端。客户端调用请求分发时注册的回调函数向虚拟节点返回结果,当虚拟节点感知副本组发生更新的时候,先到目录命名空间执行路由信息查询并更新本地缓存的路由信息,然后按照新的路由信息执行业务重试。在这个处理流程中,虚拟节点是在业务请求运行中动态分发业务请求,客户端只需要和虚拟节点交互,不影响上层业务的逻辑。如果文件的实际物理存储位置发生变更,意味着虚拟节点分发路径的变化,这种场景下,虚拟节点需要更改副本组到物理存储磁盘的映射关系。在业务分发中根据业务运行时路由变更的阶段决定按照原文件路由分发还是按照新文件路由分发。
[0122] 作为一种优选的实施方式,在S203之前还可以存在以下步骤:
[0123] 判断原副本磁盘内的数据是否全部迁移至目标副本磁盘;若是,则将新文件路由的标志位由不可用状态设置为可用状态。
[0124] 上述在S202与S203之间增加的步骤的目的是,对于数据迁移的程度进行标记,当原副本磁盘内的数据尚未完全迁移至目标副本磁盘时,需要将标志位设置为不可用状态,即将其变更为中间态路由,此时文件业务依旧按照迁移以前的文件路由分发。当原副本磁盘内的数据尚完全迁移至目标副本磁盘时,可以将标志位设置为可用状态,此时文件业务按照迁移后的文件路由分发。
[0125] 相应的,在该优选的实施方式的基础上S203可以细化为以下操作:
[0126] 步骤一:判断新文件路由的标志位是否为可用状态;若是,则进入步骤二;若否,则进入步骤三;
[0127] 步骤二:通过第二虚拟节点按照新文件路由将业务请求转发至对应的新目标数据副本组,以便将业务请求对应的数据同步至新目标数据副本组;
[0128] 步骤三:通过第二虚拟节点按照原文件路由将业务请求转发至对应的原目标数据副本组,以便将业务请求对应的数据同步至原目标数据副本组。
[0129] S204:通过第二虚拟节点按照原文件路由将业务请求转发至对应的原目标数据副本组,以便将业务请求对应的数据同步至原目标数据副本组。
[0130] 当然,本实施例默认,第一虚拟节点和第二虚拟节点均与业务RPC(Remote Procedure Call Protocol,远程过程调用协议)服务端全连接,这是能够实现动态副本组管理、切换的基础。
[0131] 由于本申请的实施例将分布式文件系统的目录命名空间和数据命名空间进行了分离,目录命名空间分离之后,文件的创建、删除、查询、文件元数据更新、读写等操作也有了相应的改进,具体实施方式请见下面的几个实施例:
[0132] 一、文件创建
[0133] 步骤1:当接收到文件创建指令时,根据文件创建指令在目录命名空间中创建新元数据文件,并在数据命名空间中创建新数据文件;其中,新数据文件的文件名为新元数据文件的标识符;
[0134] 步骤2:建立新元数据文件和新数据文件的映射关系,并对新数据文件的文件句柄和索引节点进行缓存。
[0135] 其中,本实施例在文件创建的过程中使用全局唯一的标识符作为目录命名空间到数据命名空间的映射转换主键值,完成文件名到元数据文件,元数据文件标识符到数据文件名,数据文件名到数据文件标识符的映射关系,而且这个映射关系可以逆向查询。
[0136] 二、文件查询
[0137] 步骤1:当接收到文件查询指令时,根据文件查询指令确定待查询文件;
[0138] 步骤2:判断是否为首次查询待查询文件;若是,则进入步骤3;
[0139] 步骤3:在目录命名空间中查询待查询文件的目标路由信息,并将目标路由信息转码并缓存至待查询文件的索引节点中,以便根据目标路由信息查询数据命名空间中待查询文件的文件元信息。
[0140] 三、文件删除
[0141] 步骤1:当接收到文件删除指令时,根据文件删除指令确定待删除文件;
[0142] 步骤2:删除目录命名空间中与待删除文件对应的元数据文件,并删除数据命名空间中与待删除文件对应的数据文件。
[0143] 步骤3:删除缓存中待删除文件的索引节点和文件句柄。
[0144] 四、文件读写
[0145] 步骤1:当接收到文件读写指令时,根据文件读写指令确定待读写文件;
[0146] 步骤2:判断缓存中是否存在待读写文件的目标文件句柄;若是,则进入步骤3;若否,则进入步骤4;
[0147] 步骤3:利用目标文件句柄对待读写文件执行文件读写指令对应的读写操作;
[0148] 步骤4:根据待读写文件的路由信息获取数据命名空间的数据文件,并将待读写文件的数据文件中的目标文件句柄进行缓存,以便利用目标文件句柄对待读写文件执行文件读写指令对应的读写操作。
[0149] 五、文件更新
[0150] 步骤1:当接收到文件更新指令时,根据文件更新指令确定待更新文件;
[0151] 步骤2:判断缓存中是否存在待更新文件的索引节点;若否,则进入步骤3;
[0152] 步骤3:根据待更新文件的文件名或文件句柄确定路由信息;
[0153] 步骤4:根据待更新文件的路由信息将元数据更新操作映射到文件数据命名空间,以便更新文件数据命名空间中的数据文件。
[0154] 请参见图7,图7为本申请实施例所提供的一种分布式文件系统的数据迁移系统的结构示意图;
[0155] 该系统可以包括:
[0156] 替换信息确定模块100,用于当数据命名空间内副本磁盘的数量发生变化时,根据数据命名空间的负载均衡性要求确定磁盘替换信息;其中,分布式文件系统包括目录命名空间和数据命名空间,数据命名空间用于提供数据存储业务,目录命名空间用于存储分布式文件系统的目录结构和数据命名空间内每一文件的文件路由,磁盘替换信息包括原副本磁盘的磁盘信息和目标副本磁盘的磁盘信息;
[0157] 迁移模块200,用于根据磁盘替换信息将原副本磁盘内的数据迁移至目标副本磁盘。
[0158] 本实施例将目录命名空间和数据命名空间分离,通过所述数据命名空间提供数据存储业务,所述目录命名空间用于存储整个系统的目录结构和所述数据命名空间内每一文件的路由信息。相对于现有技术中全局统一命名空间的技术方案,这种将目录命名空间和数据命名空间分离的分布式文件系统的架构可以灵活改变元数据文件和数据文件,即可以仅涉及原副本磁盘与目标副本磁盘之间的数据迁移,原副本磁盘对应的原数据副本组的其他磁盘无需参与数据迁移。应用本申请的数据同步方式,当数据命名空间中一个数据盘损坏时,可以单独对该数据盘中的文件副本进行迁移,即迁移可以按照副本粒度进行,没有损坏的数据盘中的文件不需要进行迁移,减小了迁移工作量,提高了工作效率。
[0159] 进一步的,目录命名空间包括第一数量个目录副本组,数据命名空间包括第二预设数量个数据副本组;
[0160] 其中,目录副本组包括多个第一虚拟节点,每个第一虚拟节点分别与目录命名空间的一个第一管理进程连接,每个第一管理进程对应一个元数据盘,数据副本组包括多个第二虚拟节点,每个第二虚拟节点分别与数据命名空间的所有第二管理进程连接,每个第二管理进程对应一个副本磁盘。
[0161] 进一步的,还包括:
[0162] 路由更新模块,用于根据磁盘替换信息将目录命名空间中的原文件路由更新为新文件路由,并向第二虚拟节点发送路由更新提示;其中,所述原文件路由为所述原副本磁盘对应的文件路由,所述新文件路由为所述目标副本磁盘对应的文件路由。
[0163] 进一步的,还包括:
[0164] 更新提示判断模块,用于当所述第二虚拟节点接收到客户端发送的业务请求时,判断第二虚拟节点是否收到路由更新提示;其中,第二虚拟节点与客户端互联,所述业务请求具体为对所述原副本磁盘执行业务操作的业务请求;
[0165] 同步模块,用于当第二虚拟节点收到路由更新提示时,通过第二虚拟节点按照新文件路由或原文件路由将业务请求转发至对应的目标数据副本组,以便将业务请求对应的数据同步至目标数据副本组。
[0166] 进一步的,还包括:
[0167] 路由状态标志模块,用于判断原副本磁盘内的数据是否全部迁移至目标副本磁盘;若是,则将新文件路由的标志位由不可用状态设置为可用状态;
[0168] 相应的,同步模块包括:
[0169] 标志位判断单元,用于判断新文件路由的标志位是否为可用状态;
[0170] 第一同步单元,用于当标志位为可用状态时,通过第二虚拟节点按照新文件路由将业务请求转发至对应的新目标数据副本组,以便将业务请求对应的数据同步至新目标数据副本组;
[0171] 第二同步单元,用于当标志位为不可用状态时,通过第二虚拟节点按照原文件路由将业务请求转发至对应的原目标数据副本组,以便将业务请求对应的数据同步至原目标数据副本组。
[0172] 进一步的,第一虚拟节点和第二虚拟节点均与业务RPC服务端全连接。
[0173] 进一步的,还包括:
[0174] 文件创建模块,用于当接收到文件创建指令时,根据文件创建指令在目录命名空间中创建新元数据文件,并在数据命名空间中创建新数据文件;其中,新数据文件的文件名为新元数据文件的标识符;还用于建立新元数据文件和新数据文件的映射关系,并对新数据文件的文件句柄和索引节点进行缓存。
[0175] 进一步的,还包括:
[0176] 文件查询模块,用于当接收到文件查询指令时,根据文件查询指令确定待查询文件;还用于判断是否为首次查询待查询文件;若是,则在目录命名空间中查询待查询文件的目标路由信息,并将目标路由信息转码并缓存至待查询文件的索引节点中,以便根据目标路由信息查询数据命名空间中待查询文件的文件元信息。
[0177] 进一步的,还包括:
[0178] 文件删除模块,用于当接收到文件删除指令时,根据文件删除指令确定待删除文件;还用于删除目录命名空间中与待删除文件对应的元数据文件,并删除数据命名空间中与待删除文件对应的数据文件。
[0179] 进一步的,还包括:
[0180] 缓存处理模块,用于删除缓存中待删除文件的索引节点和文件句柄。
[0181] 进一步的,还包括:
[0182] 文件读写模块,用于当接收到文件读写指令时,根据文件读写指令确定待读写文件;还用于判断缓存中是否存在待读写文件的目标文件句柄;若是,则利用目标文件句柄对待读写文件执行文件读写指令对应的读写操作;若否,则根据待读写文件的路由信息获取数据命名空间的数据文件,并将待读写文件的数据文件中的目标文件句柄进行缓存,以便利用目标文件句柄对待读写文件执行文件读写指令对应的读写操作。
[0183] 进一步的,还包括:
[0184] 文件更新模块,用于当接收到文件更新指令时,根据文件更新指令确定待更新文件;还用于判断缓存中是否存在待更新文件的索引节点;若否,则根据待更新文件的文件名或文件句柄确定路由信息,根据待更新文件的路由信息将元数据更新操作映射到文件数据命名空间,以便更新文件数据命名空间中的数据文件。
[0185] 由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
[0186] 本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘只读存储器(Read-Only Memory ,ROM)、随机存取存储器(RandomAccess Memory ,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0187] 本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
[0188] 说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
[0189] 还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈