CN115061630A - 一种数据迁移方法、装置、设备及介质 - Google Patents

一种数据迁移方法、装置、设备及介质 Download PDF

Info

Publication number
CN115061630A
CN115061630A CN202210753350.XA CN202210753350A CN115061630A CN 115061630 A CN115061630 A CN 115061630A CN 202210753350 A CN202210753350 A CN 202210753350A CN 115061630 A CN115061630 A CN 115061630A
Authority
CN
China
Prior art keywords
file
aggregated
target
aggregation
data
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.)
Pending
Application number
CN202210753350.XA
Other languages
English (en)
Inventor
鄢婷
李楠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinan Inspur Data Technology Co Ltd
Original Assignee
Jinan Inspur Data Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jinan Inspur Data Technology Co Ltd filed Critical Jinan Inspur Data Technology Co Ltd
Priority to CN202210753350.XA priority Critical patent/CN115061630A/zh
Publication of CN115061630A publication Critical patent/CN115061630A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本申请公开了一种数据迁移方法、装置、设备及介质,涉及信息技术领域。该方法包括:获取元数据服务器发送的包含目标待聚合文件的元数据信息的第一数据包;解析所述第一数据包并根据所述第一数据包中的所述目标待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取所述目标待聚合文件;将所述目标待聚合文件写入聚合缓存中,当所述聚合缓存大小满足预设缓存大小时,则将所述聚合缓存中数据下刷至目标对象存储资源中并生成对应的聚合文件,以完成数据迁移。通过上述技术方案,采用聚合的方式减少底层对象数量,从而提升数据重构的性能并提高磁盘的利用率。综上,本申请能够在进行分布式存储系统数据迁移时提升系统性能。

Description

一种数据迁移方法、装置、设备及介质
技术领域
本发明涉及信息技术领域,特别涉及一种数据迁移方法、装置、设备及介质。
背景技术
Ceph是一个对外部云平台提供分布式存储服务的系统,基于ceph可以对平台提供对象存储服务,块存储服务和文件系统存储服务等等其他分布式存储服务。存储系统最根本的元素是磁盘,所有数据都是存放在磁盘中,无论是HDD,SSD或者NMVE等磁盘。存储系统采用一定的算法将这些磁盘组成存储池,对外提供安全可靠的存储服务。但是分布式存储许多个项目都是百亿级别以上的海量的小文件场景,平均文件大小100KB,且有些文件大小是小于4KB的小文件;每个小文件在ceph上存储是按照一个对象进行切割存储的,即每个小文件会占一个对象,百亿文件会在集群中百亿的底层存储对象,而在磁盘故障等需要数据重构时是按照对象的粒度读取进行数据恢复的,在海量底层对象场景下磁盘故障的数据恢复就是一个灾难,其瓶颈在磁盘IO(即Input/Output)接口。
故障硬盘承载的数据重新被分配到新硬盘中,故障硬盘中的数据在其他正常硬盘中被恢复出来的过程被称为数据重构。为了减少底层数据对象数量,解决海量小文件数据恢复慢的问题,分布式存储现有思路是在Lib模块对多个小文件的数据先在内存中积攒满4M或者定时刷盘,从而减少底层的对象数,但是由于数据是在普通内存上积攒的,在进程异常或节点掉电等异常情况下会造成数据丢失,因此在无法保证数据可靠性的场景下,无法在现网使用。综上,如何能够在进行分布式存储系统数据迁移时提升系统性能的问题有待进一步解决。
发明内容
有鉴于此,本发明的目的在于提供一种数据迁移方法、装置、设备及介质,能够在进行分布式存储系统数据迁移时提升系统性能。其具体方案如下:
第一方面,本申请公开了一种数据迁移方法,包括:
获取元数据服务器发送的包含目标待聚合文件的元数据信息的第一数据包;
解析所述第一数据包并根据所述第一数据包中的所述目标待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取所述目标待聚合文件;
将所述目标待聚合文件写入聚合缓存中,当所述聚合缓存大小满足预设缓存大小时,则将所述聚合缓存中数据下刷至目标对象存储资源中并生成对应的聚合文件,以完成数据迁移。
可选的,所述获取元数据服务器发送的包含目标待聚合文件的元数据信息的第一数据包之前,还包括:
获取通过管理软件中预设接口配置的文件名聚合条件、全局聚合条件与目录聚合条件。
可选的,所述获取元数据服务器发送的包含目标待聚合文件的元数据信息的第一数据包之前,还包括:
通过元数据服务器获取目标业务请求并从所述目标业务请求对应的业务文件中筛选出符合所述文件名聚合条件的目标文件,然后将所述目标文件的元数据信息加入至预设索引表中;
通过元数据服务器根据预设周期对所述预设索引表进行扫描并筛选出所述目标文件中符合所述全局聚合条件或所述目录聚合条件的目标待聚合文件,然后将所述目标待聚合文件加入可聚合列表中并发送包含目标待聚合文件的元数据信息的第一数据包。
可选的,所述通过元数据服务器获取目标业务请求并从所述目标业务请求对应的业务文件中筛选出符合所述文件名聚合条件的目标文件,然后将所述目标文件的元数据信息加入至预设索引表中之后,还包括:
通过元数据服务器根据预设周期对所述预设索引表进行扫描并筛选出所述目标文件中不符合所述全局聚合条件与所述目录聚合条件的非待聚合文件;
通过元数据服务器将所述非待聚合文件加入非聚合列表中,并发送包含非待聚合文件的元数据信息的第二数据包。
可选的,所述通过元数据服务器将所述非待聚合文件加入非聚合列表中,并发送包含非待聚合文件的元数据信息的第二数据包之后,还包括:
获取元数据服务器发送的包含非待聚合文件的元数据信息的第二数据包;
解析所述第二数据包并根据所述第二数据包中的所述非待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取所述非待聚合文件,然后将所述非待聚合文件保存至目标对象存储资源中。
可选的,所述将所述目标待聚合文件写入聚合缓存中,包括:
根据所述目标待聚合文件的元数据信息、所述全局聚合条件与所述目录聚合条件判断所述目标待聚合文件对应的目标聚合条件,并根据所述目标聚合条件对应的聚合策略将所述目标待聚合文件写入聚合缓存中。
可选的,还包括:
获取针对所述聚合文件中待写入文件的文件写入请求并判断文件写入类型;
如果所述文件写入类型为在所述聚合文件的大小范围内的修改写类型,则直接在所述聚合文件进行写入并下刷至所述目标对象存储资源中;
如果所述文件写入类型为超出所述聚合文件的大小范围的追加写类型,则从所述聚合文件中读取所述待写入文件至缓冲区后进行追加写入得到写入后文件,然后将所述写入后文件下刷至所述目标对象存储资源中并更新对应的元数据信息。
第二方面,本申请公开了一种数据迁移装置,包括:
数据包获取模块,用于获取元数据服务器发送的包含目标待聚合文件的元数据信息的第一数据包;
待聚合文件读取模块,用于解析所述第一数据包并根据所述第一数据包中的所述目标待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取所述目标待聚合文件;
文件迁移模块,用于将所述目标待聚合文件写入聚合缓存中,当所述聚合缓存大小满足预设缓存大小时,则将所述聚合缓存中数据下刷至目标对象存储资源中并生成对应的聚合文件,以完成数据迁移。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的所述的数据迁移方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的所述的数据迁移方法的步骤。
本申请在进行数据迁移时,先获取元数据服务器发送的包含目标待聚合文件的元数据信息的第一数据包,解析所述第一数据包并根据所述第一数据包中的所述目标待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取所述目标待聚合文件,将所述目标待聚合文件写入聚合缓存中,当所述聚合缓存大小满足预设缓存大小时,则将所述聚合缓存中数据下刷至目标对象存储资源中并生成对应的聚合文件,以完成数据迁移。可见,本申请在进行分布式存储系统的数据迁移时,首先从元数据服务器获取包含目标待聚合文件的元数据信息的数据包,并通过所述目标待聚合文件的元数据信息在原对象存储资源中找到所述目标待聚合文件并将目标待聚合文件写入聚合缓存中,当聚合缓存满足预设缓存大小时,则将聚合缓存中的数据下刷至目标对象存储资源以完成数据迁移。由此,本申请在进行分布式存储系统的数据迁移时,通过后台进行目标待聚合文件从原对象存储资源中读取出,并将所述目标待聚合文件写入至聚合缓存后将聚合缓存中的数据写入至目标对象存储资源中,采用聚合的方式减少底层对象数量,从而提升数据重构的性能并提高磁盘的利用率;另一方面,将数据写入至聚合缓存当聚合缓存满足预设缓存大小则将数据执行下刷,避免了数据在普通内存上积攒的从而导致在进程异常或节点掉电等异常情况下的数据丢失问题。综上,本申请能够在进行分布式存储系统数据迁移时提升系统性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种数据迁移方法流程图;
图2为本申请提供的一种具体的数据迁移方法流程图;
图3为本申请提供的数据迁移处理流程示意图;
图4为本申请提供的一种具体的数据迁移方法流程图;
图5为本申请提供的一种数据迁移装置结构示意图;
图6为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了减少底层数据对象数量,解决海量小文件数据恢复慢的问题,分布式存储现有思路是在Lib模块对多个小文件的数据先在内存中积攒满4M或者定时刷盘,从而减少底层的对象数,但是由于数据是在普通内存上积攒的,在进程异常或节点掉电等异常情况下会造成数据丢失,因此在无法保证数据可靠性的场景下,无法在现网使用。为此,本申请提供了一种数据迁移方法能够在进行分布式存储系统数据迁移时提升系统性能。
本发明实施例公开了一种数据迁移方法,参见图1所示,该方法包括:
步骤S11:获取元数据服务器发送的包含目标待聚合文件的元数据信息的第一数据包。
在本实施例中,所述元数据服务器(即Metadata Server,MDS)为按照数据结构来组织、存储和管理数据的元数据的服务器。其中,元数据服务器保存了分布式存储系统中原对象存储资源中数据的相关元数据。可以理解的是,先由元数据服务器对目标待聚合文件的元数据信息进行打包,并将其发送至后台,后台获取到元数据服务器发送的包含目标待聚合文件的元数据信息的第一数据包。通过上述技术方案,使得后台获取到目标待聚合文件的元数据信息,以便于后续通过目标待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取出所述目标待聚合文件,并进一步将所述目标待聚合文件进行相关迁移操作。
步骤S12:解析所述第一数据包并根据所述第一数据包中的所述目标待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取所述目标待聚合文件。
在本实施例中,所述第一数据包为包含所述目标待聚合文件的元数据信息的数据包。通过解析所述第一数据包并根据所述第一数据包中的信息从分布式存储系统的原对象存储资源中读取所述目标待聚合文件。可以理解的是,所述原对象存储资源(即ObjectStorage Device,OSD)为分布式存储系统中原用作存储相关文件的对象存储资源,将所述目标待聚合文件从分布式存储系统的原对象存储资源中读取出。通过上述技术方案,根据所述目标待聚合文件的元数据信息将所述目标待聚合文件从分布式存储系统的原对象存储资源中读取出,以便于后续将所述目标待聚合文件进行聚合后在保存至目标对象存储资源中。
步骤S13:将所述目标待聚合文件写入聚合缓存中,当所述聚合缓存大小满足预设缓存大小时,则将所述聚合缓存中数据下刷至目标对象存储资源中并生成对应的聚合文件,以完成数据迁移。
在本申请实施例中,所述预设缓存大小为预先根据对应的预设接口获取的,用户可根据实际需要对所述预设缓存大小通过对应的预设接口进行自行设置,在一种具体实施方式中,预设缓存大小为4M,即将所述目标待聚合文件写入聚合缓存中,当所述聚合缓存大小满4M时,则将所述聚合缓存中数据下刷至目标对象存储资源中并生成对应的聚合文件,以完成数据迁移;反之,当所述聚合缓存大小不满4M时,则继续处理下一个文件,直到所述第一数据包中的数据全部处理完毕。通过上述技术方案,将所述目标待聚合文件进行聚合后再下刷至目标对象存储资源中,以完成数据迁移,采用聚合的方式减少底层对象数量,从而提升数据重构的性能并提高磁盘的利用率,同时避免了数据在普通内存上积攒的从而导致在进程异常或节点掉电等异常情况下的数据丢失问题。
可见,本实施例中在进行分布式存储系统的数据迁移时,首先从元数据服务器获取包含目标待聚合文件的元数据信息的数据包,并通过所述目标待聚合文件的元数据信息在原对象存储资源中找到所述目标待聚合文件并将目标待聚合文件写入聚合缓存中,当聚合缓存满足预设缓存大小时,则将聚合缓存中的数据下刷至目标对象存储资源以完成数据迁移。由此,本申请在进行分布式存储系统的数据迁移时,通过后台进行目标待聚合文件从原对象存储资源中读取出,并将所述目标待聚合文件写入至聚合缓存后将聚合缓存中的数据写入至目标对象存储资源中,采用聚合的方式减少底层对象数量,从而提升数据重构的性能并提高磁盘的利用率;另一方面,将数据写入至聚合缓存当聚合缓存满足预设缓存大小则将数据执行下刷,避免了数据在普通内存上积攒的从而导致在进程异常或节点掉电等异常情况下的数据丢失问题。综上,本申请能够在进行分布式存储系统数据迁移时提升系统性能。
参见图2所示,本发明实施例公开了一种具体的文件写入方法,相对于上一实施例,本实施例对技术方案作了进一步说明和优化。
步骤S21:获取通过管理软件中预设接口配置的文件名聚合条件、全局聚合条件与目录聚合条件。
在本实施例中,获取通过管理软件中预设接口配置的文件名聚合条件、全局聚合条件与目录聚合条件之前,还包括:通过管理软件中预设接口配置文件名聚合条件、全局聚合条件与目录聚合条件,并对接ceph底层接口。其中,所述文件名聚合条件为预先设置的符合对应文件名条件的文件,以便于通过所述文件名聚合条件对后续获取到的业务文件进行筛选,将所述符合文件名聚合条件的所述业务文件作为目标文件;所述全局聚合条件为如果用户不会频繁访问小文件,则尽可能将后台(即Backend)扫描到的小文件聚合到一个或者多个大文件中,并且写入到相同的存储池中;所述目录聚合条件为如果用户不会频繁访问该目录下的小文件,则尽可能将同一目录下的小文件聚合到一个或者多个大文件中,并且写入到相同的存储池中,需要指出的是,如果该目录下小文件数量较少则聚合效果比较差。通过上述技术方案,进行文件名聚合条件、全局聚合条件与目录聚合条件的配置并获取上述聚合条件,以便于后续对所述目标业务请求对应的业务文件进行聚合筛选以及聚合类型筛选,以将目标文件以对应的聚合类型进行聚合,提高文件迁移的效率以及数据重构的性能。
步骤S22:通过元数据服务器获取目标业务请求并从所述目标业务请求对应的业务文件中筛选出符合所述文件名聚合条件的目标文件,然后将所述目标文件的元数据信息加入至预设索引表中。
在本实施例中,元数据服务器获取到目标业务请求,并从所述目标业务请求对应的业务文件中筛选出符合文件名聚合条件的目标文件,并将目标文件的元数据信息加入至预设索引表中。具体地,当所述元数据服务器获取到通过管理软件进行设置的聚合条件,并保存上述获取的聚合条件,然后调用create函数创建索引表,按照Map<key,vec>方式存储数据,当获取到目标业务请求时,包括但不限于open,rename,setxattr等,触发响应中断,并根据聚合条件循环处理业务文件,筛选出对应的目标文件。通过上述技术方案,通过文件名聚合条件先将目标业务请求对应的业务文件进行筛选,筛选出符合条件的目标文件,加快文件迁移处理的速度,提升数据重构的性能。
步骤S23:通过元数据服务器根据预设周期对所述预设索引表进行扫描并筛选出所述目标文件中符合所述全局聚合条件或所述目录聚合条件的目标待聚合文件,然后将所述目标待聚合文件加入可聚合列表中并发送包含目标待聚合文件的元数据信息的第一数据包。
在本实施例中,元数据服务器根据预设周期扫描并筛选出所述目标文件中符合聚合条件的目标待聚合文件,并将所述目标待聚合文件加入至可聚合列表中,并发送包含目标待聚合文件的元数据信息的数据包。具体地,元数据服务器根据聚合条件周期性扫描索引表,判断文件是否符合分级聚合迁移条件,将所述目标待聚合文件加入可聚合列表并创建任务并打包发送给后台处理,当文件完成分级聚合操作后,将记录从索引表中删除。通过上述技术方案,通过所述全局聚合条件与所述目录聚合条件将所述目标文件中的目标待聚合文件筛选出来,以便于后续将所述目标待聚合文件进行聚合与迁移。
步骤S24:获取元数据服务器发送的包含目标待聚合文件的元数据信息的所述第一数据包。
步骤S25:解析所述第一数据包并根据所述第一数据包中的所述目标待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取所述目标待聚合文件。
在本实施例中,解析第一数据包并根据所述第一数据包中的所述目标待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取所述目标待聚合文件。具体地,后台获取元数据服务器的迁移任务,从原对象存储资源中读取任务中的对应的目标待聚合文件。通过上述技术方案,根据所述目标待聚合文件的元数据信息将所述目标待聚合文件从分布式存储系统的原对象存储资源中读取出,以便于后续将所述目标待聚合文件进行聚合后在保存至目标对象存储资源中。
步骤S26:将所述目标待聚合文件写入聚合缓存中,当所述聚合缓存大小满足预设缓存大小时,则将所述聚合缓存中数据下刷至目标对象存储资源中并生成对应的聚合文件,以完成数据迁移。
在本实施例中,根据所述目标待聚合文件的元数据信息、所述全局聚合条件与所述目录聚合条件判断所述目标待聚合文件对应的目标聚合条件,并根据所述目标聚合条件对应的聚合策略将所述目标待聚合文件写入聚合缓存中。具体地,后台解析元数据服务器发送的数据包,根据解析的信息判断聚合条件是全局聚合条件还是目录聚合条件,接收的文件的大小和索引号,然后循环读取该数据包的所有文件,将读取的数据按照策略写入聚合缓存,当缓存满4M后将数据下刷到目标对象存储资源,如果不满4M则继续处理下一个文件,直到该数据包中的文件全部处理完毕,当数据包中的数据处理完毕后,后台需要调用setxattr更新小文件的元数据信息给元数据服务器,元数据服务器返回更新成功或者失败,然后后台进程退出。在一种具体实施方式中,调用get_agg_obj函数获取聚合缓存所在的聚合对象agg_obj,get_agg_obj函数根据聚合策略类型,存储池和任务中第一个小文件的索引号和目录索引号,把读取的数据写入聚合缓存,当缓存满4M或者所有文件处理完成,调用aggreate_flush_obj连同对象头中索引号下刷到目标对象存储资源;调用setxattr更新小文件元数据信息aggregate_ino/offset/poolid/mtime;元数据服务器判断消息中的创建时间和元数据服务器中对应的元数据中的创建时间是否一致,一致则更新相关元数据信息,不一致则返回更新失败,且对失败的索引号信息进行回收清零。
在本实施例中,还包括:获取针对所述聚合文件中待写入文件的文件写入请求并判断文件写入类型;如果所述文件写入类型为在所述聚合文件的大小范围内的修改写类型,则直接在所述聚合文件进行写入并下刷至所述目标对象存储资源中;如果所述文件写入类型为超出所述聚合文件的大小范围的追加写类型,则从所述聚合文件中读取所述待写入文件至缓冲区后进行追加写入得到写入后文件,然后将所述写入后文件下刷至所述目标对象存储资源中并更新对应的元数据信息。具体地,通过Lib适配处理,当前端业务进行文件大小范围内的修改写,则直接在原聚合文件的位置进行修改写,然后下刷至对象存储资源中。当前端业务进行超过文件大小的数据写入时,需要读取聚合小文件数据与写入的缓冲区进行合并然后下刷到对象存储资源中,从聚合对象变为普通对象,同时元数据服务器更新文件的元数据信息。在本实施例中,数据迁移处理流程示意图如图3所示,在管理软件界面进行命令的配置;在元数据服务器进行扫描索引表并进行匹配文件迁移的条件,然后进行迁移任务的打包;在后台接收迁移任务并进行解析,同时进行目标待迁移文件的读取与写入;通过Lib适配处理,接收前端业务并进行文件的写入操作。
可见,在本实施例中,通过将目标文件进行分级加聚合的方式,减少底层对象数,从而提升数据重构性能,并且提高磁盘利用率。
参见图4所示,本发明实施例公开了一种具体的文件写入方法,相对于上一实施例,本实施例对技术方案作了进一步说明和优化。
步骤S31:获取通过管理软件中预设接口配置的文件名聚合条件、全局聚合条件与目录聚合条件。
步骤S32:通过元数据服务器获取目标业务请求并从所述目标业务请求对应的业务文件中筛选出符合所述文件名聚合条件的目标文件,然后将所述目标文件的元数据信息加入至预设索引表中。
步骤S33:通过元数据服务器根据预设周期对所述预设索引表进行扫描并筛选出所述目标文件中不符合所述全局聚合条件与所述目录聚合条件的非待聚合文件,然后将所述非待聚合文件加入非聚合列表中,并发送包含非待聚合文件的元数据信息的第二数据包。
在本实施例中,元数据服务器根据预设周期对所述预设索引表进行扫描并筛选出所述目标文件中不符合所述全局聚合条件与所述目录聚合条件的非待聚合文件,可以理解的是,所述非待聚合文件即为不需要进行聚合操作直接进行数据迁移的文件,并将所述非待聚合文件加入至非聚合列表中,并发送包含非待聚合文件的元数据信息的第二数据包。通过上述技术方案,以便于后续通过非待聚合文件的元数据信息对所述非待聚合文件进行文件迁移。
步骤S34:获取元数据服务器发送的包含非待聚合文件的元数据信息的所述第二数据包。
步骤S35:解析所述第二数据包并根据所述第二数据包中的所述非待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取所述非待聚合文件,然后将所述非待聚合文件保存至目标对象存储资源中。
在本实施例中,所述第二数据包解析并读取第二数据包中的所述非待聚合文件的元数据信息,通过所述非待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取所述非待聚合文件,并将所述非待聚合文件直接保存至目标对象存储中以完成非待聚合文件的数据迁移。
参见图5所示本申请实施例公开了一种数据迁移装置,包括:
数据包获取模块11,用于获取元数据服务器发送的包含目标待聚合文件的元数据信息的第一数据包;
待聚合文件读取模块12,用于解析所述第一数据包并根据所述第一数据包中的所述目标待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取所述目标待聚合文件;
文件迁移模块13,用于将所述目标待聚合文件写入聚合缓存中,当所述聚合缓存大小满足预设缓存大小时,则将所述聚合缓存中数据下刷至目标对象存储资源中并生成对应的聚合文件,以完成数据迁移。
可见,本实施例中在进行分布式存储系统的数据迁移时,首先从元数据服务器获取包含目标待聚合文件的元数据信息的数据包,并通过所述目标待聚合文件的元数据信息在原对象存储资源中找到所述目标待聚合文件并将目标待聚合文件写入聚合缓存中,当聚合缓存满足预设缓存大小时,则将聚合缓存中的数据下刷至目标对象存储资源以完成数据迁移。由此,本申请在进行分布式存储系统的数据迁移时,通过后台进行目标待聚合文件从原对象存储资源中读取出,并将所述目标待聚合文件写入至聚合缓存后将聚合缓存中的数据写入至目标对象存储资源中,采用聚合的方式减少底层对象数量,从而提升数据重构的性能并提高磁盘的利用率;另一方面,将数据写入至聚合缓存当聚合缓存满足预设缓存大小则将数据执行下刷,避免了数据在普通内存上积攒的从而导致在进程异常或节点掉电等异常情况下的数据丢失问题。综上,本申请能够在进行分布式存储系统数据迁移时提升系统性能。
在一些具体实施例中,所述数据迁移装置还包括:
聚合条件获取模块,用于获取通过管理软件中预设接口配置的文件名聚合条件、全局聚合条件与目录聚合条件。
在一些具体实施例中,所述数据迁移装置还包括:
目标文件筛选模块,用于通过元数据服务器获取目标业务请求并从所述目标业务请求对应的业务文件中筛选出符合所述文件名聚合条件的目标文件,然后将所述目标文件的元数据信息加入至预设索引表中;
待聚合文件包发送模块,用于通过元数据服务器根据预设周期对所述预设索引表进行扫描并筛选出所述目标文件中符合所述全局聚合条件或所述目录聚合条件的目标待聚合文件,然后将所述目标待聚合文件加入可聚合列表中并发送包含目标待聚合文件的元数据信息的第一数据包。
在一些具体实施例中,所述数据迁移装置还包括:
非待聚合文件筛选模块,用于通过元数据服务器根据预设周期对所述预设索引表进行扫描并筛选出所述目标文件中不符合所述全局聚合条件与所述目录聚合条件的非待聚合文件;
非待聚合文件包发送模块,用于通过元数据服务器将所述非待聚合文件加入非聚合列表中,并发送包含非待聚合文件的元数据信息的第二数据包。
在一些具体实施例中,所述数据迁移装置还包括:
非待聚合文件包获取模块,用于获取元数据服务器发送的包含非待聚合文件的元数据信息的第二数据包;
非待聚合文件迁移模块,用于解析所述第二数据包并根据所述第二数据包中的所述非待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取所述非待聚合文件,然后将所述非待聚合文件保存至目标对象存储资源中。
在一些具体实施例中,所述文件迁移模块13,具体用于:根据所述目标待聚合文件的元数据信息、所述全局聚合条件与所述目录聚合条件判断所述目标待聚合文件对应的目标聚合条件,并根据所述目标聚合条件对应的聚合策略将所述目标待聚合文件写入聚合缓存中。
在一些具体实施例中,所述数据迁移装置还包括:
写入请求获取模块,用于获取针对所述聚合文件中待写入文件的文件写入请求并判断文件写入类型;
文件修改写模块,用于如果所述文件写入类型为在所述聚合文件的大小范围内的修改写类型,则直接在所述聚合文件进行写入并下刷至所述目标对象存储资源中;
文件追加写模块,用于如果所述文件写入类型为超出所述聚合文件的大小范围的追加写类型,则从所述聚合文件中读取所述待写入文件至缓冲区后进行追加写入得到写入后文件,然后将所述写入后文件下刷至所述目标对象存储资源中并更新对应的元数据信息。
图6所示为本申请实施例提供的一种电子设备20。该电子设备20,具体还可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的数据迁移方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源储存的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221,计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的数据迁移方法的计算机程序外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的数据迁移方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种数据迁移方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种数据迁移方法,其特征在于,包括:
获取元数据服务器发送的包含目标待聚合文件的元数据信息的第一数据包;
解析所述第一数据包并根据所述第一数据包中的所述目标待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取所述目标待聚合文件;
将所述目标待聚合文件写入聚合缓存中,当所述聚合缓存大小满足预设缓存大小时,则将所述聚合缓存中数据下刷至目标对象存储资源中并生成对应的聚合文件,以完成数据迁移。
2.根据权利要求1所述的数据迁移方法,其特征在于,所述获取元数据服务器发送的包含目标待聚合文件的元数据信息的第一数据包之前,还包括:
获取通过管理软件中预设接口配置的文件名聚合条件、全局聚合条件与目录聚合条件。
3.根据权利要求2所述的数据迁移方法,其特征在于,所述获取元数据服务器发送的包含目标待聚合文件的元数据信息的第一数据包之前,还包括:
通过元数据服务器获取目标业务请求并从所述目标业务请求对应的业务文件中筛选出符合所述文件名聚合条件的目标文件,然后将所述目标文件的元数据信息加入至预设索引表中;
通过元数据服务器根据预设周期对所述预设索引表进行扫描并筛选出所述目标文件中符合所述全局聚合条件或所述目录聚合条件的目标待聚合文件,然后将所述目标待聚合文件加入可聚合列表中并发送包含目标待聚合文件的元数据信息的第一数据包。
4.根据权利要求3所述的数据迁移方法,其特征在于,所述通过元数据服务器获取目标业务请求并从所述目标业务请求对应的业务文件中筛选出符合所述文件名聚合条件的目标文件,然后将所述目标文件的元数据信息加入至预设索引表中之后,还包括:
通过元数据服务器根据预设周期对所述预设索引表进行扫描并筛选出所述目标文件中不符合所述全局聚合条件与所述目录聚合条件的非待聚合文件;
通过元数据服务器将所述非待聚合文件加入非聚合列表中,并发送包含非待聚合文件的元数据信息的第二数据包。
5.根据权利要求4所述的数据迁移方法,其特征在于,所述通过元数据服务器将所述非待聚合文件加入非聚合列表中,并发送包含非待聚合文件的元数据信息的第二数据包之后,还包括:
获取元数据服务器发送的包含非待聚合文件的元数据信息的第二数据包;
解析所述第二数据包并根据所述第二数据包中的所述非待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取所述非待聚合文件,然后将所述非待聚合文件保存至目标对象存储资源中。
6.根据权利要求2所述的数据迁移方法,其特征在于,所述将所述目标待聚合文件写入聚合缓存中,包括:
根据所述目标待聚合文件的元数据信息、所述全局聚合条件与所述目录聚合条件判断所述目标待聚合文件对应的目标聚合条件,并根据所述目标聚合条件对应的聚合策略将所述目标待聚合文件写入聚合缓存中。
7.根据权利要求1至6中任一项所述的数据迁移方法,其特征在于,还包括:
获取针对所述聚合文件中待写入文件的文件写入请求并判断文件写入类型;
如果所述文件写入类型为在所述聚合文件的大小范围内的修改写类型,则直接在所述聚合文件进行写入并下刷至所述目标对象存储资源中;
如果所述文件写入类型为超出所述聚合文件的大小范围的追加写类型,则从所述聚合文件中读取所述待写入文件至缓冲区后进行追加写入得到写入后文件,然后将所述写入后文件下刷至所述目标对象存储资源中并更新对应的元数据信息。
8.一种数据迁移装置,其特征在于,包括:
数据包获取模块,用于获取元数据服务器发送的包含目标待聚合文件的元数据信息的第一数据包;
待聚合文件读取模块,用于解析所述第一数据包并根据所述第一数据包中的所述目标待聚合文件的元数据信息从分布式存储系统的原对象存储资源中读取所述目标待聚合文件;
文件迁移模块,用于将所述目标待聚合文件写入聚合缓存中,当所述聚合缓存大小满足预设缓存大小时,则将所述聚合缓存中数据下刷至目标对象存储资源中并生成对应的聚合文件,以完成数据迁移。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的数据迁移方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的数据迁移方法的步骤。
CN202210753350.XA 2022-06-29 2022-06-29 一种数据迁移方法、装置、设备及介质 Pending CN115061630A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210753350.XA CN115061630A (zh) 2022-06-29 2022-06-29 一种数据迁移方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210753350.XA CN115061630A (zh) 2022-06-29 2022-06-29 一种数据迁移方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN115061630A true CN115061630A (zh) 2022-09-16

Family

ID=83204694

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210753350.XA Pending CN115061630A (zh) 2022-06-29 2022-06-29 一种数据迁移方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115061630A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115827788A (zh) * 2023-02-16 2023-03-21 天翼云科技有限公司 一种数据迁移方法、装置、电子设备及可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115827788A (zh) * 2023-02-16 2023-03-21 天翼云科技有限公司 一种数据迁移方法、装置、电子设备及可读存储介质

Similar Documents

Publication Publication Date Title
KR102240557B1 (ko) 데이터 저장 방법, 장치 및 시스템
US11809726B2 (en) Distributed storage method and device
KR101137299B1 (ko) 스냅샷을 제공하는 파일 시스템에 대한 계층적 저장 관리
US10725666B2 (en) Memory-based on-demand data page generation
US7890716B2 (en) Method of managing time-based differential snapshot
US10387271B2 (en) File system storage in cloud using data and metadata merkle trees
US8386717B1 (en) Method and apparatus to free up cache memory space with a pseudo least recently used scheme
CN112565325B (zh) 镜像文件管理方法、装置及系统、计算机设备、存储介质
KR20080014800A (ko) 시간 제한적 메시지들의 효율적인 처리 방법
US11029891B2 (en) Hybrid distributed storage system to dynamically modify storage overhead and improve access performance
CN109063192B (zh) 一种高性能海量文件存储系统工作方法
CN111177159B (zh) 一种数据处理的系统、方法和数据更新设备
US10620871B1 (en) Storage scheme for a distributed storage system
CN112486918B (zh) 文件处理方法、装置、设备及介质
CN115061630A (zh) 一种数据迁移方法、装置、设备及介质
CN108415962A (zh) 一种云存储系统
CN113590027B (zh) 数据存储方法、数据获取方法、系统、设备和介质
CN113609090A (zh) 数据存储方法及装置、计算机可读存储介质、电子设备
CN113190384A (zh) 基于纠删码的数据恢复控制方法、装置、设备及介质
CN113051221A (zh) 数据存储方法、装置、介质、设备及分布式文件系统
CN111930684A (zh) 基于hdfs的小文件处理方法、装置、设备及存储介质
CN110119389B (zh) 虚拟机块设备的写操作方法、快照创建方法及装置
CN110928835A (zh) 基于海量存储的新型文件存储系统和方法
CN115905114A (zh) 元数据的批量更新方法、系统、电子设备及可读存储介质
CN115586872A (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