CN111078121A - 一种分布式存储系统数据迁移方法、系统、及相关组件 - Google Patents
一种分布式存储系统数据迁移方法、系统、及相关组件 Download PDFInfo
- Publication number
- CN111078121A CN111078121A CN201811216750.7A CN201811216750A CN111078121A CN 111078121 A CN111078121 A CN 111078121A CN 201811216750 A CN201811216750 A CN 201811216750A CN 111078121 A CN111078121 A CN 111078121A
- Authority
- CN
- China
- Prior art keywords
- data
- migration
- migrated
- service
- route
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000005012 migration Effects 0.000 title claims abstract description 247
- 238000013508 migration Methods 0.000 title claims abstract description 247
- 238000000034 method Methods 0.000 title claims abstract description 132
- 230000008569 process Effects 0.000 claims abstract description 83
- 238000007726 management method Methods 0.000 claims description 70
- 238000012795 verification Methods 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 238000013500 data storage Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 16
- 238000013507 mapping Methods 0.000 description 8
- 238000012217 deletion Methods 0.000 description 7
- 230000037430 deletion Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 239000011449 brick Substances 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000008439 repair process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012508 change request Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011038 discontinuous diafiltration by volume reduction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式存储系统数据迁移方法,涉及分布式存储技术领域,应用于新GlusterFS,在文件迁移过程中接收到对待迁移数据的业务请求时,将业务请求对应的业务数据分别写入目标文件以及目标副本磁盘,由于同时将数据写入迁移前以及迁移后的文件中,双写数据流和迁移搬迁数据流写入的对象相同,业务在副本迁移的目的磁盘上不会缺失业务写的数据,既保证了数据一致性对比中前后数据的一致性,而且业务数据的写入过程不会涉及到系统中其他额外空间,不会占用额外空间进行数据的中转,而且节省了数据中转过程的系统资源占用,实现高效的文件迁移。本发明还公开了一种数据迁移系统、可读存储介质及电子设备,具有上述有益效果。
Description
技术领域
本发明涉及分布式存储技术领域,特别涉及一种分布式存储系统数据迁移方法、系统、可读存储介质及一种电子设备。
背景技术
为了适应信息化时代成爆炸式增长的数据量,分布式存储系统以其易拓展、更适合存储海量数据的特性替代了原先使用的中心化存储系统,其中,GlusterFS作为一种开源的分布式存储系统已被广泛使用在各个领域。
原生版GlusterFS中,采用了元数据和实际数据不分离的存储方式,并基于固定的拓扑结构使得在进行数据迁移时只能以副本组为最小迁移单位,在将存储于原副本组中的文件副本转移至组成方式的新副本组中,换句话说,当使用原生版GlusterFS对数据以多副本的方式进行高冗余度保存时,每个副本组必须均以相同个数的副本组成,在副本数为3的副本组中,每个副本组由3个副本组成,而为了防止因单节点故障导致一次性多个副本不可用的情况出现,每个副本通常置于不同的物理磁盘上。也就是说每个副本组由3个副本磁盘组成,当副本组A因全局系统进行数据分布感知确定其需要进行迁移时,其目的副本组B必须也是一个3副本的副本组,即实现一个3对3的数据迁移。
但在多数实际情况下,并不会出现组成一个副本组中的所有副本磁盘均出现已存储数据大小占总大小超过阈值的情况,也就是在原生版GlusterFS中,受限于其结构,大多数进行数据迁移的情况往往是由于其中的1个出现此种情况就对整个副本组的文件副本进行搬迁,不仅使得搬迁数据量巨大,传输时间较长,迁移效率低下。
本发明应用的新GlusterFS是一种区别于原生版GlusterFS的GlusterFS,其采用了区别于原声版GlusterFS的新架构,使得其在实际数据与元数据分离的情况下,借助由虚拟化技术虚拟出的虚拟节点直接实现对每个副本磁盘的管理,副本组如何组成、由哪几个副本磁盘组成均是在逻辑层面进行的设置,不再存在固定的副本组构成方式的限制,也由此实现了可基于副本组为最小迁移单位的数据迁移操作,相较于原生版GlusterFS,拥有更灵活的文件副本管理方式、副本组构成方式、更少的数据迁移量和更短的迁移耗时。
目前的分布式存储系统(新GlusterFS)由于某些原因(比如负载均衡性要求或者磁盘容量不足等)需要进行文件迁移,即将存储于源端副本的数据写入至目的端副本。
由于文件迁移过程在系统后端完成,对业务前端基本影响不大,在进行文件迁移的同时业务前端可以继续进行任务的收发,则在进行文件迁移的过程中可能会接收到针对迁移数据的业务数据写入请求。其中,业务数据写入请求可以包括单纯的数据写入,也可以包括数据的替换、删除等改变目的文件数据的业务指令,例如文件1在从副本源端迁移至副本目的端的过程中,接收到对文件1的数据写入指令,需要将文件2中的数据写入文件1中;或者文件1在从副本源端迁移至副本目的端的过程中,接收到对文件1的数据替换指令,需要将文件1中的数据A替换为数据B;或者在文件1从副本源端迁移至副本目的端的过程中,接收到对文件1的数据删除指令,需要将文件1中的数据A删除。
目前针对数据迁移过程中的数据写入,为了保持数据迁移前后的一致性,需要在系统中开辟一个额外空间,将业务数据写入迁移空间外的额外空间,待数据迁移完成,比对迁移前后数据一致后再将额外空间中的业务数据写入至迁移后的文件中。比如将副本1中文件1中数据迁移至副本2中文件2,额外空间可以指副本1中文件1以外的空间、副本2中文件2以外的空间以及除却副本1以及副本2以外的副本空间。
而这种数据迁移中的业务数据写入方法不仅需要开辟额外空间,占用空闲系统存储资源,而且开辟额外空间的过程、将业务数据写入额外空间的过程、将额外空间的数据回放至迁移后的目标副本磁盘以及对额外空间的恢复工作都需要占用大量系统数据响应资源,造成系统资源的浪费。
因此,如何减少数据迁移过程中业务数据写入过程的系统资源占用,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种分布式存储系统数据迁移方法,该方法通过对业务数据同时写入迁移源端以及迁移目的端,业务双写既保证了数据一致性对比中前后数据的一致性,而且业务数据的写入过程不会涉及到系统中其他额外空间,节省了数据中转过程的系统资源占用;本发明的另一目的是提供一种分布式存储系统数据迁移系统、可读存储介质及一种电子设备。
为解决上述技术问题,本发明提供一种分布式存储系统数据迁移方法,应用于新GlusterFS,包括:
当将待迁移数据由原副本磁盘迁移至目标副本磁盘,且系统接收到对所述待迁移数据的业务请求时,获取所述业务请求对应的待写入业务数据;
将所述业务数据按所述业务请求的数据写入规则分别写入所述目标副本磁盘以及所述原副本磁盘的相应位置;
当所述待迁移数据迁移完毕时,向路由管理模块返回文件迁移完成信号,以使所述路由管理模块更新所述待迁移数据的路由信息。
优选地,所述将待迁移数据由原副本磁盘迁移至目标副本磁盘,包括:
发起对所述目标副本磁盘的迁移写锁请求;
接收到迁移写锁设置成功标识后,将所述待迁移数据写入所述目标副本磁盘。
优选地,将所述业务数据写入所述目标副本磁盘前,还包括:
发起对所述目标副本磁盘的业务写锁请求;
则所述将所述业务数据按所述业务请求的数据写入规则写入所述目标副本磁盘的相应位置具体为:接收到业务写锁设置成功标识后,将所述业务数据按所述业务请求的数据写入规则写入所述目标副本磁盘的相应位置。
优选地,所述分布式存储系统数据迁移方法还包括:
当确定所述待迁移数据的目标副本磁盘时,所述路由管理模块将所述目标副本磁盘的访问路径增加至所述待迁移数据的路由信息;
则所述当所述待迁移数据迁移完毕时,向路由管理模块返回文件迁移完成信号,以使所述路由管理模块更新所述待迁移数据的路由信息,具体为:当所述待迁移数据迁移完毕时,向所述路由管理模块返回文件迁移完成信号,以使所述路由管理模块删除所述待迁移数据的原副本磁盘路由信息。
优选地,所述路由管理模块将所述目标副本磁盘的访问路径增加至所述待迁移数据的路由信息前,还包括:
将新增路由信息中的所述目标副本磁盘的访问路径设置为中间状态;
对应地,当所述待迁移数据的路由信息更新完毕时,将所述目标副本磁盘的访问路径设置为可用状态。
优选地,所述分布式存储系统数据迁移方法还包括:
当对所述待迁移数据进行路由信息更新的过程中接收到对所述待迁移数据的业务请求时,存储所述业务请求;
当所述待迁移数据的路由信息更新完毕时,根据所述业务请求进行任务分发。
优选地,所述分布式存储系统数据迁移方法还包括:
对请求访问系统数据的业务请求进行路由校验;其中,所述业务请求中包括请求访问数据的访问路由;
根据系统存储路由对所述访问路由进行路由校验;
当所述系统存储路由与所述访问路由不符时,获取路由版本低的路由信息对应的系统路由信息存储空间;
对所述系统路由信息存储空间进行路由重载。
本发明公开一种数据迁移系统,应用于新GlusterFS,包括:
业务数据获取单元,用于当迁移单元将待迁移数据由原副本磁盘迁移至目标副本磁盘,且系统接收到对所述待迁移数据的业务请求时,获取所述业务请求对应的待写入业务数据;
业务数据双写单元,用于将所述业务数据按所述业务请求的数据写入规则分别写入所述目标副本磁盘以及所述原副本磁盘的相应位置;
迁移完成返回单元,用于当所述待迁移数据迁移完毕时,向路由管理模块返回文件迁移完成信号,以使所述路由管理模块更新所述待迁移数据的路由信息。
优选地,所述迁移单元包括:
迁移写锁设置子单元,用于发起对所述目标副本磁盘的迁移写锁请求;
迁移写入子单元,用于接收到迁移写锁设置成功标识后,将所述待迁移数据写入所述目标副本磁盘。
优选地,所述数据迁移系统还包括:业务写锁设置单元,用于发起对所述目标副本磁盘的业务写锁请求;
所述业务写锁设置单元与所述业务数据双写单元中目标写子单元连接,则所述目标写子单元具体用于:接收到业务写锁设置成功标识后,将所述业务数据按所述业务请求的数据写入规则写入所述目标副本磁盘的相应位置。
优选地,系统中路由管理模块具体用于:当确定所述待迁移数据的目标副本磁盘时,将所述目标副本磁盘的访问路径增加至所述待迁移数据的路由信息;
则当所述待迁移数据迁移完毕时,删除所述待迁移数据的原副本磁盘路由信息。
优选地,所述路由管理模块还用于:
将所述目标副本磁盘的访问路径增加至所述待迁移数据的路由信息前,将新增路由信息中的所述目标副本磁盘的访问路径设置为中间状态;
对应地,当所述待迁移数据的路由信息更新完毕时,将所述目标副本磁盘的访问路径设置为可用状态。
优选地,所述路由管理模块还用于:当对所述待迁移数据进行路由信息更新的过程中接收到对所述待迁移数据的业务请求时,存储所述业务请求;当所述待迁移数据的路由信息更新完毕时,根据所述业务请求进行任务分发。
优选地,所述数据迁移系统还包括:路由校验单元,用于对请求访问系统数据的业务请求进行路由校验;其中,所述业务请求中包括请求访问数据的访问路由;根据系统存储路由对所述访问路由进行路由校验;当所述系统存储路由与所述访问路由不符时,获取路由版本低的路由信息对应的系统路由信息存储空间;对所述系统路由信息存储空间进行路由重载。
本发明公开一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现所述分布式存储系统数据迁移方法的步骤。
本发明公开一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述分布式存储系统数据迁移方法的步骤。
本发明所提供的分布式存储系统数据迁移方法,在文件迁移过程中接收到对待迁移数据的业务请求时,将业务请求对应的业务数据分别写入目标文件以及目标副本磁盘,采用业务双写,由于同时将数据写入迁移前以及迁移后的文件中,双写数据流和迁移搬迁数据流写入的对象相同,业务在副本迁移的目的磁盘上不会缺失业务写的数据,既保证了数据一致性对比中前后数据的一致性,而且业务数据的写入过程不会涉及到系统中其他额外空间,不会占用额外空间进行数据的中转,而且节省了数据中转过程的系统资源占用,实现高效的文件迁移。
本发明还提供了一种数据迁移系统、可读存储介质及一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种基于的改进后的分布式文件系统架构图;
图2为本发明实施例提供的一种目录与命名分离的命名空间管理示意图;
图3为本发明实施例提供的一种原数据文件到数据文件的映射关系示意图;
图4为本发明实施例提供的一种分布式存储系统数据迁移方法的流程图;
图5为本发明实施例提供的一种数据迁移过程示意图;
图6为本发明实施例提供的一种数据写入示意图;
图7为本发明实施例提供的另一数据迁移过程示意图;
图8为本发明实施例提供的一种数据迁移系统的结构框图;
图9为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
本发明的核心是提供一种分布式存储系统数据迁移方法,该方法通过业务双写既保证了数据一致性对比中前后数据的一致性,而且业务数据的写入过程不会涉及到系统中其他额外空间,节省了数据中转过程的系统资源占用;本发明的另一核心是提供一种数据迁移系统、可读存储介质及一种电子设备,具有上述有益效果。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明适用于对等式分布式文件系统(如GlusterFS),针对当前分布式文件系统的数据副本组扩减容场景提出的,具体的,是针对于采用全局统一的命名空间管理方式的分布式文件系统(如GlusterFS)提出的一种文件迁移方案。
在分布式文件系统中,文件的组织方式呈现给用户的可理解的视图就是文件系统的命名空间。采用全局统一的命名空间管理方式分布式文件系统,在运行中采用动态子树的方式组织目录和文件,比如以CephFS为代表的集中式结构的分布式文件系统;也有采用全节点复制目录树的方式依赖本地文件系统来组织文件和目录,比如以GlusterFS为代表的分布式文件系统。由于采用全局统一命名空间的分布式文件系统的文件和目录存储在一起,而且文件的访问依赖目录结构。目录的分布方式是在全节点都有一份副本,依赖本地文件系统来组织目录和文件,这种命名空间管理方式有以下问题:目录操作涉及全节点,效率低下;部分目录的操作语义(rename)过于复杂,容易产生脑裂;文件分布信息记录在父目录的扩展属性中,无法按照文件副本粒度的执行迁移和重建;无法支持单节点的扩减容。
本发明中在发起文件迁移请求前,默认已经对分布式文件系统的架构进行了一定的改进。本实施例默认将原本采用全局统一命名空间管理方式的分布式文件系统改进为采用目录和文件分离的命名空间管理方法的分布式文件系统,具体的以GlusterFS原生版本为例,将目录和文件分离开来,使用两个命名空间管理,即存在目录命名空间和数据命名空间。目录空间存储的是元数据文件和目录,目录空间为用户提供可以理解的文件系统的统一视图,是分布式文件系统对外提供给用的视图服务。数据命名空间存储的是用户文件的实际数据内容,文件元信息和文件的扩展属性,数据命名空间是系统内部使用的文件数据的组织形式,不对用户可见。这种目录和文件分离的命名空间管理方式,提供了一种新的分布式文件系统存储引擎,目录命名操作只限于目录命名空间,简化操作,提升效率,文件迁移和重建不再依赖于上级目录,文件的分布更加灵活,可以支持单点扩减容。
将分布式文件系统的命名空间划分为目录命名空间和数据命名空间后,可以实现目录命名空间和数据命名空间的分开管理,具体的,在目录命名空间中可以存在有第一数量个目录副本组,用于存储分布式文件系统的目录结构和数据命名空间内每一文件的文件路由,一个目录副本组可以包括多个元数据盘,同一目录副本组内的元数据盘中的相同文件互相作为冗余。作为一种优选的实施方式,由于目录结构和文件路由所需要占的存储空间较小,且需要展示给用户观察分析,因此目录副本组的数量可以为一个。目录副本组可以包括多个第一虚拟节点,第一虚拟节点的数量可以根据元数据盘的数量进行设置,每个第一虚拟节点分别与目录命名空间的一个第一管理进程连接,每个第一管理进程对应一个元数据盘。进一步的,在数据命名空间中可以存在有第二数量个数据副本组,用于提供数据存储业务,一个数据副本组可以包括多个副本磁盘,同一数据副本组内的副本磁盘中的相同文件互为冗余。数据副本组可以包括多个第二虚拟节点,第二虚拟节点的数量可以根据副本磁盘的数量进行设置,每个第二虚拟节点分别与数据命名空间的所有第二管理进程连接,每个第二管理进程对应一个副本磁盘。
请见参见图1,图1为本发明基于的改进后的分布式文件系统架构图,该架构图为了支持将故障盘上的所有数据可以自由搬迁至剩余可用数据盘上面,摒弃了AFR和Brick之间的固定映射关系,对此设计了新的分布式框架。改进后的分布式框架核心理念为:Brick的概念保持不变,仍然负责接收RPC调用将数据写入数据盘,Brick不再属于任何一个副本组,独立于副本组之外单独存在,副本组仍然负责镜像功能,但是不再由2或3个Brick构成,而是由2或3个固定的虚拟子节点构成。副本组按功能类型只能存在一个,即一个存储卷内最多只有一个2副本组和一个3副本组,每个文件按副本数要求只能属于一个副本组,要么是2副本组,要么是3副本组。每个文件的具体存储位置,不再由DHT算法来决定,改用元数据单独管理,由元数据中心来决定具体的映射关系,比如:A文件属于2副本组,存储位置映射为Brick-3,Brick-4,Brick-5。当然,改进后的分布式文件系统还可以包括用于仲裁的磁盘,以便当同一副本组内的副本磁盘内的数据出现不一致的情况时,选择一个副本磁盘中的内容作为可以信任的内容。
通过上述如图1中架构的改进相当于将目录独立出来存储在目录命名空间,选用一个副本组。这样的改进可以实现目录和文件分离的命名空间管理方法:关于目录的所有操作只会分发到目录副本组,目录的路由可以存放在配置文件或者交由集群管理子系统进行持久化和更新管理,这种管理模式下,目录和文件的重命名等操作的语义会变的简单,而且不会出现目录脑裂。进一步,用户文件的数据、文件元信息和文件的扩展属性存储在文件数据命名空间,如图2所示,图2为目录与命名分离的命名空间管理示意图。文件数据命名空间提供文件的数据业务,不对用户暴露。用户看到的统一命名空间由目录命名空间提供,目录命名空间对用户提供唯一目录组织结构的视图。目录命名空间和文件数据命名空间的映射关系如图3所示,图3为原数据文件到数据文件的映射关系示意图,这样文件的数据业务不会因为架构变更和存储引擎的变更造成性能损耗,文件的其他管理操作接口只需要在映射转换后直接作用在数据命名空间。
在使用目录命名空间和数据命名空间分离的命名空间管理方式下,元数据文件就是目录命名空间中的一个目录项,大小为零,文件内容为空。元数据文件拥有自己的唯一标识符(GFID),拥有自己独立的扩展属性。元数据文件是文件呈现给用户的统一目录层次结构视图。同样,在目录和文件分离的命名空间管理方式下,数据文件是一个以元数据文件标识符为名字的文件,文件的元信息、扩展属性以及文件存储的数据都在数据文件中。数据文件对用户不可见,是分布式文件系统针对数据持久化的组织方式,是文件元信息、扩展属性和数据内容的实际载体。
总之,将分布式文件系统的目录和文件分开存储,分别对目录命名空间和数据命名空间分开管理,可以解决目录脑裂的问题,提升目录操作的效率,降低目录操作的复杂度,为文件按副本粒度的迁移和重建提供基础架构支撑,可以实现以副本磁盘为粒度的单点减扩容。
本实施例所描述的数据迁移方法,正是基于上述对于采用全局统一的命名空间管理方式的分布式文件系统的架构的改进执行的。分布式文件系统的副本磁盘的数量发生变化的应用场景可以是当某个副本磁盘出现故障进行正常的数据存储时,增加了一个新的副本磁盘来进行替代;也可以是某个副本磁盘的剩余存储空间不足时,增加一个新的容量较大的副本磁盘来进行替代,总之当副本磁盘的数量发生变化时说明分布文件系统正在进行减扩容操作。
需要说明的是,分布文件系统中各个磁盘的数据存储是按照故障域和分布均衡性要求设置的,当数据命名空间内副本磁盘的数量发生变化时,数据命名空间的分布均衡情况会受到影响,因此此时需要根据数据命名空间确定磁盘替换信息。例如,当副本磁盘A的剩余存储空间仅剩5%时,为分布文件系统增加新的大容量的空的副本磁盘B,此时根据分布均衡性要求就可以确定需要将副本磁盘A替换为副本磁盘B的磁盘替换信息。值得注意的是,此处能够确定将副本磁盘A替换为副本磁盘B的前提是,该分布式文件系统已经将目录和文件分开存储,即存在目录命名空间和数据命名空间分开管理的架构的基础上。若依旧采用全局统一的命名空间管理方式,改进前的分布式文件系统的目录实现是全局的,分布的hash运算分段记录在对应的目录的扩展属性中,因此集群中的磁盘总数必须满足副本数的整数倍,文件分布信息记录在父目录的扩展属性中,副本组在分布式文件系统中采用固定分配方式在配置文件中无法改变,在副本磁盘的数量发生变化时若要进行数据的迁移,必须按照整个副本组的粒度执行数据搬迁,造成数据迁移中需要迁移文件副本数与文件大小乘积的数据量,使得数据迁移的量很大,迁移时间很长,在执行迁移过程中数据可用性和性能都受到影响。
举例说明上述论述,例如分布式文件系统中包括副本磁盘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。数据迁移后,还会进行数据同步操作。
其中,磁盘替换信息是用于描述将哪些副本磁盘替换哪些副本磁盘的信息,磁盘替换信息包括原副本磁盘的磁盘信息和目标副本磁盘的磁盘信息。磁盘替换信息是通过分析分布式文件系统内所有的副本磁盘的存储情况,根据分布均衡性要求得到的。
请参考图4,图4为本实施例提供的分布式存储系统数据迁移方法的流程图;该方法可以包括:
步骤s410、当将待迁移数据由原副本磁盘迁移至目标副本磁盘,且系统接收到对待迁移数据的业务请求时,获取业务请求对应的待写入业务数据。
当接收到数据迁移请求后,数据迁移请求指示将原副本磁盘中的待迁移数据迁移至目标副本磁盘中。
数据迁移即将原副本磁盘中的数据迁移至另一个磁盘的过程,以三副本为例,文件A的路由为R1[disk1,disk2,disk3],业务读写文件A的过程中,因为均衡性要求文件A的第三个副本需要迁移到disk8,在完成数据搬迁以后,文件A的分发路径由R1[disk1,disk2,disk3]变为R2[disk1,disk2,disk8]。文件迁移按照副本粒度执行,在接收到文件迁移请求后,启动文件迁移进程,将原副本磁盘中目标文件的待迁移数据迁移至目标副本磁盘的目标副本磁盘中。
具体的数据迁移的过程具体可以参照以下介绍:
当数据命名空间内副本磁盘的数量发生变化时,为了保持分布式文件系统内部的冗余度要求,存在副本磁盘之间进行替换的操作,具体的是利用目标副本磁盘替代原副本磁盘继续提供数据存储服务,需要将原副本磁盘内的数据迁移至目标副本磁盘。可以根据磁盘替换信息中原副本磁盘的磁盘信息和目标副本磁盘的磁盘信息,确定数据迁移的路径。
当数据命名空间内副本磁盘的数量发生变化时,根据数据命名空间的负载均衡性要求确定磁盘替换信息;其中,分布式文件系统包括目录命名空间和数据命名空间,数据命名空间用于提供数据存储业务,目录命名空间用于存储分布式文件系统的目录结构和数据命名空间内每一文件的文件路由,磁盘替换信息包括原副本磁盘的磁盘信息和目标副本磁盘的磁盘信息;根据磁盘替换信息将原副本磁盘内的数据迁移至目标副本磁盘。
需要说明的是,当原副本磁盘是由于自身存储空间不足时,利用目标副本磁盘替代原副本磁盘,可以直接将原副本磁盘内的数据迁移至目标副本磁盘得到新的副本组,以便保持新副本组内所有副本磁盘的数据一致性。当由于原副本磁盘出现故障或磁盘破损导致的副本磁盘的数量发生变化时,原副本磁盘原本所归属的副本组内的其他副本磁盘中的数据是相同的,因此可以将原副本磁盘原本所归属的副本组内的其他副本磁盘中的数据迁移至目标副本磁盘,虽然上述两种情况迁移数据的两个副本磁盘不同,但是实际上由于同一副本组内数据的一致性,因此迁移的数据都可以视为原副本磁盘内的数据。
数据迁移过程在系统后端执行,对系统前端的业务交流影响较小。在数据迁移进程中可能会接收到对待迁移数据的业务请求,需要对待迁移数据进行业务数据的写入。
步骤s420、将业务数据按业务请求的数据写入规则分别写入目标副本磁盘以及原副本磁盘的相应位置。
由于迁移过程前后需要保持数据的一致性,即迁移前数据与迁移后数据一致,为实现这一目的当前将业务数据写入额外空间中,不仅会增加系统负担,而且会大大增加数据迁移的资源占用。
本实施例直接将业务数据同时写入原副本磁盘以及目标副本磁盘中,在数据从文件迁移的源端搬迁到迁移的目的端的过程中,业务的写分发到迁移源端的响应表明数据写入同时同步当前请求到迁移目的端,即业务在迁移的过程中执行业务双写。这样在迁移完成进行数据一致性的比对中,直接对原迁移数据+业务数据的组合进行数据一致性的比对,不仅不会占用额外空间,造成系统资源的浪费;而且直接将业务数据写入目标副本磁盘中,实现了业务数据一次性的写入,无需再执行先写入额外空间的数据再进行回迁的过程,避免了系统资源的浪费的同时保证了数据迁移前后数据的一致性。
业务数据写入原副本磁盘中待迁移数据的存储空间以及目标磁盘的该待迁移数据的写入空间中,业务请求的数据写入规则即,比如业务请求为在数据2后增加数据3,则对应的数据写入规则即将数据3写入数据2后的存储空间中。
步骤s430、当待迁移数据迁移完毕时,向路由管理模块返回文件迁移完成信号,以使路由管理模块更新待迁移数据的路由信息。
分布式文件系统中访问文件需要的逻辑位置到物理存储位置的映射关系就是文件路由,也称之为文件分布信息。使用hash引擎的存储系统,文件路由就是hash运算结果,采用树形引擎的分布式存储系统,文件路由就是树形结果索引。比如GlusterFS这种分布式文件系统中,文件路由就是其根据文件名运算出来的hash值。本发明中的文件路由指的是文件分布的一组磁盘索引,比如fileA的文件路由信息是[disk1,disk2,disk3](以三副本为例)。
当待迁移数据迁移完毕时,向路由管理模块返回文件迁移完成信号,路由管理模块便可以更新待迁移数据的路由信息,更新的路由信息可以包括对原副本磁盘的删除以及对目标副本磁盘路由信息的添加,其中,后者可以在得到磁盘替换信息,确定目标副本磁盘后完成,在此不做限定。具体的路由更新过程可以参照以下介绍:磁盘信息中包括磁盘索引,可以根据磁盘替换信息将原副本磁盘的磁盘索引更新为目标副本磁盘的磁盘索引。由于文件路由不是通过一次hash运算直接定位,而是先到虚拟节点拿到的是副本组信息,在扩减容中副本组的一级映射关系没变,变更的是副本组中记录的磁盘索引的变更,因此调整文件路由实际调整的是文件路由中记录的磁盘索引,因此对于一个文件而言其副本组是运行动态确定的,副本组记录的磁盘索引信息是可以随时更新,而且可以只更新其中的一个副本所在的磁盘索引。需要说明的是,文件路由存储于目录命名空间,由于本实施例的分布式文件系统的目录命名空间与数据命名空间是分离的,因此文件路由的更改不会存在语义复杂产生脑裂的情况。
基于上述介绍,如图5所示为本实施例提供的数据迁移过程示意图,例如将数据1,2,3,4,5迁移至目标磁盘,数据迁移过程的目的是将原副本磁盘中数据1,2,3,4,5分别迁移至目标磁盘中空间1,2,3,4,5中,若在进行数据3的写入过程中,此时数据1以及数据2已写入目标副本磁盘中对应的空间1以及空间2中,接收到对待迁移数据2的数据替换请求时,请求将待迁移数据2替换为数据2.1,此时,如图6提供的数据写入示意图,将数据2.1替换原副本磁盘中存储待迁移数据2的空间,将数据2替换为数据2.1,同时将数据2.1写入目标副本磁盘中数据2写入的空间2中。此时原副本磁盘中存储的待迁移数据由数据2替换为数据2.1,目标副本磁盘中数据2也替换为数据2.1,在整个数据迁移过程完成后进行迁移前后数据一致性比对过程中,将原副本磁盘中存储的待迁移数据1,2.1,3,4,5与目标副本磁盘中存储的写入数据1,2.1,3,4,5进行比对,一致则完成整体数据迁移过程。
迁移过程与业务写入过程可以同时完成,本实施例中仅对业务数据写入过程进行限定,迁移写入过程可以参照目前的迁移写方法。
基于上述介绍,本实施例提供的分布式存储系统数据迁移方法,在文件迁移过程中接收到对待迁移数据的业务请求时,将业务请求对应的业务数据分别写入目标文件以及目标副本磁盘,采用业务双写,由于同时将数据写入迁移前以及迁移后的文件中,双写数据流和迁移搬迁数据流写入的对象相同,业务在副本迁移的目的磁盘上不会缺失业务写的数据,既保证了数据一致性对比中前后数据的一致性,而且业务数据的写入过程不会涉及到系统中其他额外空间,不会占用额外空间进行数据的中转,而且节省了数据中转过程的系统资源占用,实现高效的文件迁移。
由于在目标副本磁盘端,迁移数据以及业务数据同时写入时,可能会出现业务数据与迁移数据互相覆盖,造成数据一致性问题。例如,将数据1,2,3,4,5迁移至目标磁盘,数据迁移过程的目的是将原副本磁盘中数据1,2,3,4,5分别迁移至目标磁盘中空间1,2,3,4,5中,若在进行数据3的写入过程同时接收到将数据2替换为数据2.1的业务请求,如图7所示为本实施例提供的另一数据迁移过程示意图,数据迁移将数据2写入空间2,业务请求将数据2.1写入空间2以及原数据2的存储空间,可能会出现业务数据2.1已写入空间2,但数据迁移的指令在业务数据写入原副本磁盘之前生成,则此时在目标副本磁盘中数据2会产生数据覆盖,将空间2中的数据2.1替换为数据2,而在原副本磁盘中会将数据2替换为数据2.1,最后在原副本磁盘中存储的为数据2.1,但在目标副本磁盘中存储的为数据2,产生数据不一致。
为避免上述情况出现的数据覆盖问题,优选地,可以利用排它锁进行写入保护。
排它锁可以设置于文件迁移过程,保证文件迁移过程中迁移数据的一致性;也可以设置于业务写入过程中,保证在进行业务数据的写入过程中不会产生迁移数据覆盖的情况。
具体优选地,可以在生成数据迁移请求后发起对目标副本磁盘的迁移写锁请求;接收到迁移写锁设置成功标识后,将待迁移数据写入目标副本磁盘。
在发起数据迁移请求后,对目的副本磁盘设置迁移写锁,在迁移写入过程中禁止其他业务数据写入该目的副本磁盘中,直到迁移写入完成锁资源释放后还可以对目的副本磁盘进行其他业务写入。则将待迁移数据由原副本磁盘迁移至目标副本磁盘的过程具体为:发起对目标副本磁盘的迁移写锁请求;接收到迁移写锁设置成功标识后,将待迁移数据写入目标副本磁盘。
另外,优选地,也可以在进行业务写入时设置业务写锁,防止在业务对目的副本磁盘的写入过程中迁移写入的数据覆盖。则将业务数据写入目标副本磁盘前可以还包括:发起对目标副本磁盘的业务写锁请求;则将业务数据按业务请求的数据写入规则写入目标副本磁盘的相应位置具体为:接收到业务写锁设置成功标识后,将业务数据按业务请求的数据写入规则写入目标副本磁盘的相应位置。
例如,在获取到将原副本磁盘的数据1写入目标副本磁盘中的指令时,生成原副本磁盘对目标副本磁盘的迁移写锁,之后再将原副本磁盘中数据1写入目标副本磁盘中对应空间中。若在迁移数据写入过程中接收到对数据1的删除业务时,删除业务由于迁移写锁的设置会无法立即完成删除任务,当迁移写入完成,锁资源释放后,再完成数据1的删除任务,由此可见通过迁移锁的设置可以防止两数据同时对同一空间的数据写入,避免了数据覆盖问题的出现,业务锁的设置同理,在此不再赘述。
迁移数据流和业务数据流在双写中使用排他锁保障写入一致性,两种写使用区间排他锁保障写入过程有序性;双写过程中为了避免和迁移写产生相互覆盖造成的数据一致性问题,双写和迁移写通过排他锁协调写入顺序,保障双写和迁移写的一致性。
基于上述实施例,由于数据迁移过程利用目标副本磁盘替代原副本磁盘,因此原本访问原副本磁盘的路径应及时进行相应的改变,为加快目标副本磁盘的响应速率,尽量实现迁移数据业务功能的无缝衔接,优选地,可以当确定待迁移数据的目标副本磁盘时,路由管理模块将目标副本磁盘的访问路径增加至待迁移数据的路由信息;则当待迁移数据迁移完毕时,向路由管理模块返回文件迁移完成信号,以使路由管理模块更新待迁移数据的路由信息,具体为:当待迁移数据迁移完毕时,向路由管理模块返回文件迁移完成信号,以使路由管理模块删除待迁移数据的原副本磁盘路由信息。在确定目标副本磁盘后将其添加至路由信息中,在数据迁移完成后即可只进行原路由信息的删除,可以大大加快迁移数据的响应时间,避免由于数据路由信息更新造成的业务响应慢的问题。
其中,为避免在路由更新过程中数据请求访问过程出现路径错误的情况,优选地,路由管理模块将目标副本磁盘的访问路径增加至待迁移数据的路由信息前,可以将新增路由信息中的目标副本磁盘的访问路径设置为中间状态;对应地,当待迁移数据的路由信息更新完毕时,将目标副本磁盘的访问路径设置为可用状态。在中间状态中处于不可访问状态,以避免访问路径出错,在可用状态时,路由已更新完毕,因此可以正常进行数据访问。
另外,基于上述实施例,若对待迁移数据进行路由信息更新的过程中接收到对待迁移数据的业务请求时,为避免这些业务请求在数据不可访问状态下的废弃,优选地,可以存储业务请求;当待迁移数据的路由信息更新完毕时,根据业务请求进行任务分发。保证在数据可访问时对这些业务请求的及时响应,避免重要业务请求的无响应状态。
基于上述实施例,在数据迁移完成后为避免出现部分数据没有迁移成功的情况导致数据一致性比对过程中出现的问题,在接收到对系统数据的访问请求时,可以对请求访问系统数据的业务请求进行路由校验;其中,业务请求中包括请求访问数据的访问路由;根据系统存储路由对访问路由进行路由校验;当系统存储路由与访问路由不符时,获取路由版本低的路由信息对应的系统路由信息存储空间;对系统路由信息存储空间进行路由重载。
GlusterFS实现按照副本粒度的数据迁移后,因为多客户端下,执行迁移和业务可能不在一个客户端上,这种场景需要保证数据迁移完成数据搬迁执行文件路由切换后,业务能够按照新的文件路由进行分发。在副本组切换中根据切图完成数据业务的分发路径的变更,无法保障业务在切换副本后所有业务客户端业务按照新的副本分发,有概率出现业务分发到老副本组的场景,即系统前端生成的业务请求仍以原副本文件进行业务请求,并不能完全保障所有场景下的数据一致性。为了解决这样的问题,优选地,可以通过进行路由校验保障路由的正确性。
具体地,在迁移完成数据搬迁后,一旦文件路由执行完路由切换,服务端路由信息中的路由版本增加一个计数,在迁移完成后对业务的路由增加版本校验,发现版本不一致返回特殊错误码,客户端重新加载路由,业务按照新加载的路由执行重试。通过路由校验可以兜底业务在路由切换后的一致性,保障业务按照新的文件路由执行分发。
为加深对本发明提供的技术方案的了解,本实施例以实际文件迁移过程为例对本发明提供的文件迁移方法进行介绍,主要分为文件迁移过程中业务数据的双写过程、路由切换过程以及路由校验过程。
具体地,文件迁移的双写流程可以参照下述介绍:
1)业务写迁移的源端副本如果返回正确则将请求对迁移目的副本对应区域的写锁请求;
2)如果业务获得迁移目的端的写锁,执行业务数据同步到迁移目的端;
3)迁移目的端业务数据同步完成且结果正确则向业务上层返回,如果同步失败则产生指控,标记迁移副本写失败;
4)迁移写在数据写入迁移目的端之前去请求对迁移目的端的写锁;
5)如果迁移写获得迁移目的端的写锁则执行数据搬迁,否则等待锁资源释放;
6)迁移写和双写的锁资源所属域需要和副本组管理层的修复锁的域保持一致,防止迁移过程出现修复导致的数据一致性问题。
路由切换流程具体过程可以为:
1)路由管理模块将路由信息变更请求下发到文件系统客户端;
2)文件系统客户端将路由信息和路由版本更新到目录命名空间里进行持久化;
3)路由信息在目录命名空间更新成功,服务端反向广播所有打开该文件的客户端更目标副本磁盘路由;
4)客户端更新完路由信息后重发业务请求。
具体地,路由校验过程具体可以为:
1)业务到达服务端在路由校验模块进行路由信息和路由版本校验,路由版本低的到目录命名空间重载路由信息并更新缓存路由信息,业务被拦截返回重载路由错误码;
2)业务端根据重载路由错误码到目录命名空间进行路由查询并更新缓存路由信息;
3)路由信息更新成功后因为路由校验被阻塞的业务请求需要重新分发;
4)文件查询流程中发现文件路由版本不一致触发路由反向修复。
文件迁移完成数据搬迁后,迁移协程执行文件路由切换,为了保障路由切换后业务分不会分发到老路由(迁移源节点)造成新路由(迁移目的端)上的数据缺失产生一致性问题,在路由切换时服务端更新路由版本,业务分发携带的路由版本和服务端记录的路由版本不一致则执行路由重载,业务请求此时按照新的路由进行业务重试,从而保障业务只会分发到最新路由节点。
基于上述介绍,对数据迁移过程中的业务数据写入采用业务双写,在迁移写数据写入目标副本的同时,将业务数据同时写入原副本以及目标副本;同时迁移数据流和业务数据流在双写中使用排他锁保障写入一致性,路由切换完成后使用路由校验技术兜底业务不写入老路由所在节点。迁移完成数据搬迁后执行路由切换时服务端更新路由版本,并对业务执行路由校验,版本不一致时执行路由重载,业务按照重载后的新路由执行重试,保障业务在路由切换后不会分发到老路由,路由校验并在版本不一致时触发路由修复,兜底性保障了数据迁移过程中的数据一致性。
请参考图8,图8为本实施例提供的数据迁移系统的结构框图;主要可以包括:业务数据获取单元810、业务数据双写单元820以及迁移完成返回单元830。本实施例提供的数据迁移系统可与上述分布式存储系统数据迁移方法相互对照。
其中,业务数据获取单元810主要用于当迁移单元将待迁移数据由原副本磁盘迁移至目标副本磁盘,且系统接收到对待迁移数据的业务请求时,获取业务请求对应的待写入业务数据;
业务数据双写单元820主要用于将业务数据按业务请求的数据写入规则分别写入目标副本磁盘以及原副本磁盘的相应位置。
迁移完成返回单元830主要用于当待迁移数据迁移完毕时,向路由管理模块返回文件迁移完成信号,以使路由管理模块更新待迁移数据的路由信息。
本实施例提供的数据迁移系统在通过双写单元在数据迁移过程中接收到对待迁移数据的业务请求时,将业务请求对应的业务数据分别写入原副本磁盘以及目标副本磁盘,既保证了数据一致性对比中前后数据的一致性,而且业务数据的写入过程不会涉及到系统中其他额外空间,不会占用额外空间进行数据的中转,而且节省了数据中转过程的系统资源占用,实现高效的数据迁移。
优选地,上述实施例中迁移单元具体可以包括:
迁移写锁设置子单元,用于发起对目标副本磁盘的迁移写锁请求;
迁移写入子单元,用于接收到迁移写锁设置成功标识后,将待迁移数据写入目标副本磁盘。
优选地,数据迁移系统可以还包括:业务写锁设置单元,用于发起对目标副本磁盘的业务写锁请求;
业务写锁设置单元与业务数据双写单元中目标写子单元连接,则目标写子单元具体用于:接收到业务写锁设置成功标识后,将业务数据按业务请求的数据写入规则写入目标副本磁盘的相应位置。
优选地,系统中路由管理模块具体用于:当确定待迁移数据的目标副本磁盘时,将目标副本磁盘的访问路径增加至待迁移数据的路由信息;则当待迁移数据迁移完毕时,删除待迁移数据的原副本磁盘路由信息。
优选地,路由管理模块还用于:将新增路由信息中的目标副本磁盘的访问路径设置为中间状态;对应地,当待迁移数据的路由信息更新完毕时,将目标副本磁盘的访问路径设置为可用状态。
优选地,路由管理模块还用于:当对待迁移数据进行路由信息更新的过程中接收到对待迁移数据的业务请求时,存储业务请求;当待迁移数据的路由信息更新完毕时,根据业务请求进行任务分发。
优选地,数据迁移系统可以还包括:路由校验单元,用于对请求访问系统数据的业务请求进行路由校验;其中,业务请求中包括请求访问数据的访问路由;根据系统存储路由对访问路由进行路由校验;当系统存储路由与访问路由不符时,获取路由版本低的路由信息对应的系统路由信息存储空间;对系统路由信息存储空间进行路由重载。
本实施例提供一种电子设备,包括:存储器以及处理器。
其中,存储器用于存储程序;
处理器用于执行程序时实现如上述分布式存储系统数据迁移方法的步骤,具体可参照上述实施例中对分布式存储系统数据迁移方法的介绍。
请参考图9,为本实施例提供的电子设备的结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在电子设备301上执行存储介质330中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上面图4所描述的分布式存储系统数据迁移方法中的步骤可以由电子设备的结构实现。
本实施例公开一种可读存储介质,其上存储有程序,程序被处理器执行时实现如分布式存储系统数据迁移方法的步骤,具体可参照上述实施例中对分布式存储系统数据迁移方法的介绍。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的分布式存储系统数据迁移方法、数据迁移系统、电子设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (16)
1.一种分布式存储系统数据迁移方法,其特征在于,应用于新GlusterFS,包括:
当将待迁移数据由原副本磁盘迁移至目标副本磁盘,且系统接收到对所述待迁移数据的业务请求时,获取所述业务请求对应的待写入业务数据;
将所述业务数据按所述业务请求的数据写入规则分别写入所述目标副本磁盘以及所述原副本磁盘的相应位置;
当所述待迁移数据迁移完毕时,向路由管理模块返回文件迁移完成信号,以使所述路由管理模块更新所述待迁移数据的路由信息。
2.如权利要求1所述的分布式存储系统数据迁移方法,其特征在于,所述将待迁移数据由原副本磁盘迁移至目标副本磁盘,包括:
发起对所述目标副本磁盘的迁移写锁请求;
接收到迁移写锁设置成功标识后,将所述待迁移数据写入所述目标副本磁盘。
3.如权利要求1所述的分布式存储系统数据迁移方法,其特征在于,将所述业务数据写入所述目标副本磁盘前,还包括:
发起对所述目标副本磁盘的业务写锁请求;
则所述将所述业务数据按所述业务请求的数据写入规则写入所述目标副本磁盘的相应位置具体为:接收到业务写锁设置成功标识后,将所述业务数据按所述业务请求的数据写入规则写入所述目标副本磁盘的相应位置。
4.如权利要求1所述的分布式存储系统数据迁移方法,其特征在于,还包括:
当确定所述待迁移数据的目标副本磁盘时,所述路由管理模块将所述目标副本磁盘的访问路径增加至所述待迁移数据的路由信息;
则所述当所述待迁移数据迁移完毕时,向路由管理模块返回文件迁移完成信号,以使所述路由管理模块更新所述待迁移数据的路由信息,具体为:当所述待迁移数据迁移完毕时,向所述路由管理模块返回文件迁移完成信号,以使所述路由管理模块删除所述待迁移数据的原副本磁盘路由信息。
5.如权利要求4所述的分布式存储系统数据迁移方法,其特征在于,所述路由管理模块将所述目标副本磁盘的访问路径增加至所述待迁移数据的路由信息前,还包括:
将新增路由信息中的所述目标副本磁盘的访问路径设置为中间状态;
对应地,当所述待迁移数据的路由信息更新完毕时,将所述目标副本磁盘的访问路径设置为可用状态。
6.如权利要求1所述的分布式存储系统数据迁移方法,其特征在于,还包括:
当对所述待迁移数据进行路由信息更新的过程中接收到对所述待迁移数据的业务请求时,存储所述业务请求;
当所述待迁移数据的路由信息更新完毕时,根据所述业务请求进行任务分发。
7.如权利要求1至6任一项所述的分布式存储系统数据迁移方法,其特征在于,还包括:
对请求访问系统数据的业务请求进行路由校验;其中,所述业务请求中包括请求访问数据的访问路由;
根据系统存储路由对所述访问路由进行路由校验;
当所述系统存储路由与所述访问路由不符时,获取路由版本低的路由信息对应的系统路由信息存储空间;
对所述系统路由信息存储空间进行路由重载。
8.一种数据迁移系统,其特征在于,应用于新GlusterFS,包括:
业务数据获取单元,用于当迁移单元将待迁移数据由原副本磁盘迁移至目标副本磁盘,且系统接收到对所述待迁移数据的业务请求时,获取所述业务请求对应的待写入业务数据;
业务数据双写单元,用于将所述业务数据按所述业务请求的数据写入规则分别写入所述目标副本磁盘以及所述原副本磁盘的相应位置;
迁移完成返回单元,用于当所述待迁移数据迁移完毕时,向路由管理模块返回文件迁移完成信号,以使所述路由管理模块更新所述待迁移数据的路由信息。
9.如权利要求8所述的数据迁移系统,其特征在于,所述迁移单元包括:
迁移写锁设置子单元,用于发起对所述目标副本磁盘的迁移写锁请求;
迁移写入子单元,用于接收到迁移写锁设置成功标识后,将所述待迁移数据写入所述目标副本磁盘。
10.如权利要求8所述的数据迁移系统,其特征在于,还包括:业务写锁设置单元,用于发起对所述目标副本磁盘的业务写锁请求;
所述业务写锁设置单元与所述业务数据双写单元中目标写子单元连接,则所述目标写子单元具体用于:接收到业务写锁设置成功标识后,将所述业务数据按所述业务请求的数据写入规则写入所述目标副本磁盘的相应位置。
11.如权利要求8所述的数据迁移系统,其特征在于,系统中路由管理模块具体用于:当确定所述待迁移数据的目标副本磁盘时,将所述目标副本磁盘的访问路径增加至所述待迁移数据的路由信息;
则当所述待迁移数据迁移完毕时,删除所述待迁移数据的原副本磁盘路由信息。
12.如权利要求11所述的数据迁移系统,其特征在于,所述路由管理模块还用于:
将所述目标副本磁盘的访问路径增加至所述待迁移数据的路由信息前,将新增路由信息中的所述目标副本磁盘的访问路径设置为中间状态;
对应地,当所述待迁移数据的路由信息更新完毕时,将所述目标副本磁盘的访问路径设置为可用状态。
13.如权利要求8所述的数据迁移系统,其特征在于,所述路由管理模块还用于:当对所述待迁移数据进行路由信息更新的过程中接收到对所述待迁移数据的业务请求时,存储所述业务请求;当所述待迁移数据的路由信息更新完毕时,根据所述业务请求进行任务分发。
14.如权利要求8所述的数据迁移系统,其特征在于,还包括:路由校验单元,用于对请求访问系统数据的业务请求进行路由校验;其中,所述业务请求中包括请求访问数据的访问路由;根据系统存储路由对所述访问路由进行路由校验;当所述系统存储路由与所述访问路由不符时,获取路由版本低的路由信息对应的系统路由信息存储空间;对所述系统路由信息存储空间进行路由重载。
15.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述分布式存储系统数据迁移方法的步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述分布式存储系统数据迁移方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811216750.7A CN111078121B (zh) | 2018-10-18 | 2018-10-18 | 一种分布式存储系统数据迁移方法、系统、及相关组件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811216750.7A CN111078121B (zh) | 2018-10-18 | 2018-10-18 | 一种分布式存储系统数据迁移方法、系统、及相关组件 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078121A true CN111078121A (zh) | 2020-04-28 |
CN111078121B CN111078121B (zh) | 2024-08-20 |
Family
ID=70309128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811216750.7A Active CN111078121B (zh) | 2018-10-18 | 2018-10-18 | 一种分布式存储系统数据迁移方法、系统、及相关组件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078121B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651521A (zh) * | 2020-05-27 | 2020-09-11 | 山大地纬软件股份有限公司 | 一种电子合同区块链结构、电子合同签署装置及方法 |
CN111708629A (zh) * | 2020-04-30 | 2020-09-25 | 咪咕文化科技有限公司 | 一种资源分配方法、装置、电子设备和存储介质 |
CN111913663A (zh) * | 2020-07-29 | 2020-11-10 | 星辰天合(北京)数据科技有限公司 | 存储卷在线迁移的方法、装置和存储卷在线迁移的系统 |
CN112558881A (zh) * | 2020-12-18 | 2021-03-26 | 上海七牛信息技术有限公司 | 一种迁移存储系统的方法及系统 |
CN112596671A (zh) * | 2020-12-16 | 2021-04-02 | 东软集团股份有限公司 | 数据存储的方法、装置、存储介质及电子设备 |
CN113190523A (zh) * | 2021-04-08 | 2021-07-30 | 金钱猫科技股份有限公司 | 一种基于多客户端协同的分布式文件系统、方法和客户端 |
CN113434598A (zh) * | 2021-06-28 | 2021-09-24 | 青岛海尔科技有限公司 | 实现数据双写的方法、装置与电子装置 |
CN114281267A (zh) * | 2021-12-30 | 2022-04-05 | 西北工业大学 | 分布式存储系统间的数据迁移方法和装置 |
CN114415970A (zh) * | 2022-03-25 | 2022-04-29 | 北京金山云网络技术有限公司 | 分布式存储系统的磁盘故障处理方法、装置及服务器 |
CN114489474A (zh) * | 2021-12-01 | 2022-05-13 | 湖南麒麟信安科技股份有限公司 | 一种解决GlusterFS IO阻塞造成文件系统挂起的方法及系统 |
CN115454932A (zh) * | 2022-09-16 | 2022-12-09 | 北京火山引擎科技有限公司 | 一种数据处理方法及装置 |
CN115698974A (zh) * | 2020-06-10 | 2023-02-03 | 万迪斯科股份有限公司 | 用于迁移活动文件系统的方法、设备和系统 |
CN115982101A (zh) * | 2023-03-17 | 2023-04-18 | 智者四海(北京)技术有限公司 | 基于多机房副本放置策略的机房数据迁移方法与装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050154849A1 (en) * | 2004-01-13 | 2005-07-14 | Naoki Watanabe | Data-migration method |
US7386546B1 (en) * | 2002-07-09 | 2008-06-10 | Network Appliance, Inc. | Metadirectory namespace and method for use of the same |
CN101334785A (zh) * | 2008-07-30 | 2008-12-31 | 浙江大学 | 分布式文件系统虚拟目录组织及命名空间管理的方法 |
CN101945131A (zh) * | 2010-09-16 | 2011-01-12 | 华中科技大学 | 一种基于存储虚拟化的数据迁移方法 |
CN102103629A (zh) * | 2010-12-14 | 2011-06-22 | 西北工业大学 | 在线数据迁移方法 |
CN107391050A (zh) * | 2017-09-14 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种数据迁移方法、系统、装置和计算机可读存储介质 |
CN107807797A (zh) * | 2017-11-17 | 2018-03-16 | 北京联想超融合科技有限公司 | 数据写入的方法、装置及服务器 |
CN108132949A (zh) * | 2016-12-01 | 2018-06-08 | 腾讯科技(深圳)有限公司 | 数据库集群中数据迁移的方法及装置 |
-
2018
- 2018-10-18 CN CN201811216750.7A patent/CN111078121B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7386546B1 (en) * | 2002-07-09 | 2008-06-10 | Network Appliance, Inc. | Metadirectory namespace and method for use of the same |
US20050154849A1 (en) * | 2004-01-13 | 2005-07-14 | Naoki Watanabe | Data-migration method |
CN101334785A (zh) * | 2008-07-30 | 2008-12-31 | 浙江大学 | 分布式文件系统虚拟目录组织及命名空间管理的方法 |
CN101945131A (zh) * | 2010-09-16 | 2011-01-12 | 华中科技大学 | 一种基于存储虚拟化的数据迁移方法 |
CN102103629A (zh) * | 2010-12-14 | 2011-06-22 | 西北工业大学 | 在线数据迁移方法 |
CN108132949A (zh) * | 2016-12-01 | 2018-06-08 | 腾讯科技(深圳)有限公司 | 数据库集群中数据迁移的方法及装置 |
CN107391050A (zh) * | 2017-09-14 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种数据迁移方法、系统、装置和计算机可读存储介质 |
CN107807797A (zh) * | 2017-11-17 | 2018-03-16 | 北京联想超融合科技有限公司 | 数据写入的方法、装置及服务器 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708629A (zh) * | 2020-04-30 | 2020-09-25 | 咪咕文化科技有限公司 | 一种资源分配方法、装置、电子设备和存储介质 |
CN111708629B (zh) * | 2020-04-30 | 2023-09-19 | 咪咕文化科技有限公司 | 一种资源分配方法、装置、电子设备和存储介质 |
CN111651521A (zh) * | 2020-05-27 | 2020-09-11 | 山大地纬软件股份有限公司 | 一种电子合同区块链结构、电子合同签署装置及方法 |
CN111651521B (zh) * | 2020-05-27 | 2023-10-17 | 山大地纬软件股份有限公司 | 一种电子合同区块链结构、电子合同签署装置及方法 |
CN115698974A (zh) * | 2020-06-10 | 2023-02-03 | 万迪斯科股份有限公司 | 用于迁移活动文件系统的方法、设备和系统 |
CN115698974B (zh) * | 2020-06-10 | 2023-12-15 | 西拉塔股份有限公司 | 用于迁移活动文件系统的方法、设备和系统 |
CN111913663A (zh) * | 2020-07-29 | 2020-11-10 | 星辰天合(北京)数据科技有限公司 | 存储卷在线迁移的方法、装置和存储卷在线迁移的系统 |
CN112596671A (zh) * | 2020-12-16 | 2021-04-02 | 东软集团股份有限公司 | 数据存储的方法、装置、存储介质及电子设备 |
CN112596671B (zh) * | 2020-12-16 | 2024-07-09 | 东软集团股份有限公司 | 数据存储的方法、装置、存储介质及电子设备 |
CN112558881A (zh) * | 2020-12-18 | 2021-03-26 | 上海七牛信息技术有限公司 | 一种迁移存储系统的方法及系统 |
CN113190523A (zh) * | 2021-04-08 | 2021-07-30 | 金钱猫科技股份有限公司 | 一种基于多客户端协同的分布式文件系统、方法和客户端 |
CN113434598B (zh) * | 2021-06-28 | 2024-03-22 | 青岛海尔科技有限公司 | 实现数据双写的方法、装置与电子装置 |
CN113434598A (zh) * | 2021-06-28 | 2021-09-24 | 青岛海尔科技有限公司 | 实现数据双写的方法、装置与电子装置 |
CN114489474A (zh) * | 2021-12-01 | 2022-05-13 | 湖南麒麟信安科技股份有限公司 | 一种解决GlusterFS IO阻塞造成文件系统挂起的方法及系统 |
CN114489474B (zh) * | 2021-12-01 | 2024-04-09 | 湖南麒麟信安科技股份有限公司 | 一种解决GlusterFS IO阻塞造成文件系统挂起的方法及系统 |
CN114281267A (zh) * | 2021-12-30 | 2022-04-05 | 西北工业大学 | 分布式存储系统间的数据迁移方法和装置 |
CN114281267B (zh) * | 2021-12-30 | 2024-04-26 | 西北工业大学 | 分布式存储系统间的数据迁移方法和装置 |
CN114415970A (zh) * | 2022-03-25 | 2022-04-29 | 北京金山云网络技术有限公司 | 分布式存储系统的磁盘故障处理方法、装置及服务器 |
CN115454932A (zh) * | 2022-09-16 | 2022-12-09 | 北京火山引擎科技有限公司 | 一种数据处理方法及装置 |
CN115982101A (zh) * | 2023-03-17 | 2023-04-18 | 智者四海(北京)技术有限公司 | 基于多机房副本放置策略的机房数据迁移方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111078121B (zh) | 2024-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078121B (zh) | 一种分布式存储系统数据迁移方法、系统、及相关组件 | |
US11153380B2 (en) | Continuous backup of data in a distributed data store | |
EP3811596B1 (en) | Hierarchical namespace with strong consistency and horizontal scalability | |
US10831720B2 (en) | Cloud storage distributed file system | |
EP3803618B1 (en) | Distributed transactions in cloud storage with hierarchical namespace | |
EP3811229B1 (en) | Hierarchical namespace service with distributed name resolution caching and synchronization | |
KR101597384B1 (ko) | 분할되고 확장가능하며 사용가능한 구조적 저장소에서의 파티션 관리 | |
US9558207B1 (en) | Versioning of database partition maps | |
US20190370362A1 (en) | Multi-protocol cloud storage for big data and analytics | |
US9558194B1 (en) | Scalable object store | |
US8386540B1 (en) | Scalable relational database service | |
US20080235300A1 (en) | Data migration processing device | |
EP3788489B1 (en) | Data replication in a distributed storage system | |
JP2013541057A (ja) | マップリデュース即時分散ファイルシステム | |
US11151162B2 (en) | Timestamp consistency for synchronous replication | |
CN111078120A (zh) | 一种分布式文件系统的数据迁移方法、系统及相关组件 | |
US10387384B1 (en) | Method and system for semantic metadata compression in a two-tier storage system using copy-on-write | |
Stamatakis et al. | Scalability of replicated metadata services in distributed file systems | |
Arrieta-Salinas et al. | Epidemia: Variable consistency for transactional cloud databases | |
Lin et al. | A low-latency metadata service for geo-distributed file systems | |
Shu | Distributed Storage Systems | |
CN115878269A (zh) | 集群迁移方法、相关装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |