CN113946471A - 基于对象存储的分布式文件级备份方法及系统 - Google Patents

基于对象存储的分布式文件级备份方法及系统 Download PDF

Info

Publication number
CN113946471A
CN113946471A CN202111181223.9A CN202111181223A CN113946471A CN 113946471 A CN113946471 A CN 113946471A CN 202111181223 A CN202111181223 A CN 202111181223A CN 113946471 A CN113946471 A CN 113946471A
Authority
CN
China
Prior art keywords
backup
monitoring system
server
file
main monitoring
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
CN202111181223.9A
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.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information 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 Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202111181223.9A priority Critical patent/CN113946471A/zh
Publication of CN113946471A publication Critical patent/CN113946471A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了基于对象存储的分布式文件级备份方法及系统,属于对象存储、容器镜像技术领域,本发明要解决的技术问题为随着数据量增加,备份会出现时间长、备份数据重复、多副本同步慢、备份存储成本高等,采用的技术方案为该方法是通过将数据切块的方式,将分块信息保存到任务队列进行文件级备份,并提供所有备份服务器进行消费;每次备份前会进行数据块的对比,当已经备份过md5相同的数据库,当前数据库不会进行备份,确保相同的数据只会保存一个;具体如下:生成系统镜像;系统初始化;备份任务初始化;数据备份;监控系统;备份恢复。

Description

基于对象存储的分布式文件级备份方法及系统
技术领域
本发明涉及对象存储、容器镜像技术领域,具体地说是一种基于对象存储的分布式文件级备份方法及系统。
背景技术
对象存储,也叫做基于对象的存储,是用来描述解决和处理离散单元的方法的通用术语,这些离散单元被称作为对象。就像文件一样,对象包含数据,但是和文件不同的是,对象在一个层结构中不会再有层级结构。每个对象都在一个被称作存储池的扁平地址空间的同一级别里,一个对象不会属于另一个对象的下一级。文件和对象都有与它们所包含的数据相关的元数据,但是对象是以扩展元数据为特征的。每个对象都被分配一个唯一的标识符,允许一个服务器或者最终用户来检索对象,而不必知道数据的物理地址。这种方法对于在云计算环境中自动化和简化数据存储有帮助。
文件备份是指为防止系统出现操作失误或系统故障导致文件丢失,而将全部或部分文件集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。
随着互联网和大数据的发展,数据存储量呈现指数上升,越来越多的数据需要存储,文件备份成为数据存储尤其是互联网项目中必不可少的需求,现有的备份方式有磁盘备份、虚拟机备份、多副本等,它们拥有响应快、可用性高等优点,但是随着数据量增加,备份会出现时间长、备份数据重复、多副本同步慢、备份存储成本高等问题越来越突出。
发明内容
本发明的技术任务是提供一种基于对象存储的分布式文件级备份方法及系统,来解决随着数据量增加,备份会出现时间长、备份数据重复、多副本同步慢、备份存储成本高等问题。
本发明的技术任务是按以下方式实现的,一种基于对象存储的分布式文件级备份方法,该方法是通过将数据切块的方式,将分块信息保存到任务队列 (RabbitMQ队列)进行文件级备份,并提供所有备份服务器进行消费;每次备份前会进行数据块的对比,当已经备份过md5相同的数据库,当前数据库不会进行备份,确保相同的数据只会保存一个;具体如下:
生成系统镜像;
系统初始化;
备份任务初始化;
数据备份;
监控系统;
备份恢复。
作为优选,生成系统镜像具体如下:
将服务端备份系统和监控系统通过使用容器引擎docker生成一个包含端备份系统和监控系统的服务端镜像A;
同时,采用容器引擎docker生成包含客户端应用程序的镜像B。
作为优选,系统初始化具体如下:
根据具体的需求,将当前环境需要的服务端备份系统数量写入配置文件;
采用容器技术,使用服务端镜像A创建指定个数的服务端备份系统;
采用内网虚拟IP(VIP)的形式,将服务端服务器的IP地址进行固定,保证各个服务器之间网络通信正常;
客户端根据用户使用要求采用镜像B创建包含客户端的服务器,同时直接使用安装客户端应用程序的方式,将客户端和服务端的网络打通,保证双向网络通畅。
作为优选,备份任务初始化包括文件的获取和任务的发布;具体如下:
备份任务会随机向任一个备份服务器(server)发送备份任务;
备份服务器(server)收到指令后,解析指令里面对应的客户端地址,向对应的客户端应用程序(agent)发送备份指令;
客户端应用程序(agent)收到备份请求,解析请求中需要备份的文件、文件列表或者文件夹,将需要备份的文件按照4M(大小可以根据场景设置)一块进行计算md5值,并将所有的计算结果返回到辅备份系统;
备份系统将文件与分块的对应关系、分块对应的md5值及文件的元数据信息保存到元数据文件中,上传到对象存储的文件中,存放到以任务id作为文件夹的目录下;
备份服务器会将所有分块信息(包括md5值、数据块对应的文件和所在位置)发布到RabbitMQ消息队列中,供备份系统消费,备份系统在每次备份完成后,会将上传完成的信息返回,以供上层判断任一次任务id的备份任务是否完成。
作为优选,数据备份具体如下:
所有备份系统监听到消息队列有可供消费的消息时,会从队列里获取一组 (5条,具体大小可以根据数量适当调整)消息执行;
将该组消费数据的相关信息临时保存到对象存储上,文件将保存到tmp文件夹下以备份服务器虚拟IP(VIP)命名的文件中,临时文件上传完成后,采用异步线程执行真正的数据上传任务的方式,执行备份,保证消息被快速消费;
对接收到的消息进行解析,通过对象存储判断对象是否存在的方式,判断该组数据中的md5值是否存在(说明:对象存储中,数据块的存储以md5值进行命名):
若对象存储存在对应的对象,则跳过这个数据块的上传任务,进行下一块上传;
当一组消息消费完成后,先清理tmp文件夹下的临时文件,再去消息队列获取一组数据,重复执行上传流程,直到备份完成(消息队列所有消息消费完成)。
作为优选,监控系统具体如下:
每个备份服务器里存在数据备份系统和监控系统,监控系统分为主监控系统和辅监控系统;主监控系统会定期的检查所有备份服务器的可用性、备份系统的可用性、辅监控系统的状态及主监控系统的状态;监控系统分为两条监控路径,一条是主监控系统监控备份服务器、备份系统及辅监控系统;另一条是辅监控系统监控主监控系统;监控过程具体如下:
在整个备份系统部署好后,主监控任务会定时进行状态检查;具体为:主监控系统会检查备份服务器是否正常:若出现异常,主监控系统会先将出现异常的备份服务器正在执行的备份任务文件从对象存储获取下来,将任务进行组装并重新发布到消息队列中(没有文件则跳过发布),并将文件从对象存储删除,以供其他正常备份系统进行消费;发布完成后,主监控系统会将出现异常的备份服务器删除,并在所有检测任务(包括备份服务器检测、备份系统检测、辅监控系统检测整个主监控系统的检测任务)完成后使用创建好的镜像生成一个虚拟IP一样的服务器;
服务器检查完成后,主监控系统将对备份系统进行可用性检查,通过调用备份系统暴露的检查接口进行状态检测:若发现异常备份系统,主监控系统会将异常备份系统重启,并记录重启次数(如果下一次检查为正常,重启次数记录将重置为0,否则将累加1),若重启次数超过3次,主监控系统会将备份系统所在服务器删除,并使用创建好的镜像生成一个虚拟IP一样的服务器;
检测完成备份系统后,主监控系统会对辅监控系统进行检测:若检测到任一辅监控系统异常,则对辅监控系统进行重启,并记录重启次数,同备份系统一样,若重启次数达到阈值,则会发出告警;
在主监控系统检查备份服务器和备份系统的同时,辅监控系统会对主监控系统进行检查:若检查到主监控系统异常,则辅监控系统会竞争出一个主监控系统,接替主监控系统的任务。
更优地,备份恢复具体如下:
备份系统会根据任务id从对象存储获取包含这次备份所有文件、文件元数据信息及文件块的md5值的文件;
按照文件的粒度将所有需要恢复的文件信息发布到恢复数据的消息队列中;
备份系统从消息队列获取消息,解析消息中需要恢复的数据,从对象存储获取md5值对应的文件按照顺序拼接成完整的文件,并将元数据信息进行恢复;
从对象存储将临时保存数据的文件删除,同时将恢复完成的信息返回给上层应用,用于进行统计。
一种基于对象存储的分布式文件级备份系统,该系统包括任务队列 (RabbitMQ队列)、客户端应用程序(agent)及多个备份服务器,备份服务器包括监控系统(monitor)及备份系统(server),监控系统之间相互通信且随机选择一个作为主监控系统,主监控系统用于备份服务器监视、辅监控系统监视及创建,辅监控系统监视主监控系统,当发现主监控系统不可用时,从剩下的监控系统中随机选择一个作为主监控系统;当备份服务器宕机时,主监控系统会清理宕机的备份服务器并重新生成新的备份服务器,从而保证备份的高可用性和高可靠性。
作为优选,所述监控系统会每隔一段时间执行一次检查任务,监控系统检查步骤包括检查服务器状态、检查备份系统状态、检查辅监控系统状态、检查主监控系统状态,具体如下:
主监控系统先根据配置文件配置的VIP地址列表,逐个检查所有备份服务器是否正常运行:
若检测到任一个服务器出现网络不通的情况,主监控系统会先将出现问题的服务器进行删除,并使用生成的服务端镜像创建一个VIP一样的备份服务器;
当服务器检测没有问题时,再对服务器内部的备份系统进行检查,备份系统暴露健康检查接口供主监控系统检查;当发现备份系统出现问题,主监控系统会从对象存储获取以这个服务器虚拟IP(VIP)命名的对象,并将对象的内容重新发布到消息队列(RabbitMQ)中,再将尝试重启出现问题的备份系统,若重启失败,主监控系统会进行重试(最多3次重试),当重试次数达到阈值时也未能正常启动备份系统,主监控会将该备份系统所在服务器进行清理,并生成一样新的备份服务器,并重新执行一遍备份系统检测任务;
检测完成备份服务器和备份系统后,主监控系统会对辅监控系统的状态进行检查,当发现辅监控系统出现异常状态时,主监控系统会对其进行重启的操作,若重启次数达到阈值时辅监控系统还未能正常启动,则发出告警;同时,辅监控系统会定时监控主监控系统,当发现主监控系统不可用时,会通过竞争的方式从辅监控系统中选出一个作为主监控系统,并接替执行主监控系统的工作。
更优地,所述客户端应用程序(agent)将本地需要备份数据按照文件以 4M一块计算每块的md5值,将md5值和文件对应关系(文件包含的md5和文件内容顺序对应的md5顺序)发送给备份系统,备份系统将接受到的信息以备份 id在对象存储创建包括备份文件和md5对应关系的文件,并发布到消息队列 (RabbitMQ)后,所有备份系统从队列去消息进消费,备份系统根据md5值去对象存储查询是否存在对应的对象(即对象名以md5值进行命名,出现与md5 值一样名的对象时,就可判断该数据块已经存在):
若不存在,则以md5值命名进行上传;
反之则跳过上传,从而保证了对象存储存储的数据块的唯一性,减少了存储空间和上传流量。
本发明的基于对象存储的分布式文件级备份方法及系统具有以下优点:
(一)本发明采用系统化的备份,可以减轻用户上传文件的精力付出,采用分布式处理数据的方式,减少用户备份和恢复数据所需要的时间消耗,采用数据块备份的形式,进行数据重删,减少用户备份过程中流量的使用和空间使用,从而有效的提高用户的用户使用体验,同时对于存储设备而言,由于数据的高可用性和低冗余性,磁盘的擦除次数会极大的减少,增加磁盘的使用寿命;
(二)本发明的备份数据采用分块的形式,将分块信息保存到RabbitMQ 队列,提供所有备份服务器进行消费,避免由于文件大小不均匀,导致的某个服务器备份时间过长、其他服务器闲置的情况,利用RabbitMQ队列也可以避免任务中断导致整个任务重新开始;通过文件分块计算md5的形式,每个数据块上传前都会进行md5比较,减少请求流量和存储空间的使用,提高数据的利用率;
(三)本发明充分利用对象存储的高可靠性、高性能、高并发的特性,利用分布式服务器提供高并发的备份方式,文件级备份拥有备份灵活高、备份文件数量相对较少、备份速度快等特点,同时对象存储作为一种分布式存储,有着容量大、安全性高、成本低等优势;
(四)本发明有效的增加用户备份文件过程中的容错性,通过采用分布式多台服务器同时备份的方式有效的减少用户备份文件数据时所需要时间;并通过分块计算md5技术,有效避免备份过程中重复数据重复备份。
设计合理、结构简单、易于加工、体积小、使用方便、一物多用等特点,因而,具有很好的推广使用价值。
附图说明
下面结合附图对本发明进一步说明。
附图1为基于对象存储的分布式文件级备份系统各部分关系示意图;
附图2为备份任务初始化的流程框图;
附图3为数据备份的流程框图;
附图4为监控系统的流程框图;
附图5为备份恢复的流程框图。
具体实施方式
参照说明书附图和具体实施例对本发明的一种基于对象存储的分布式文件级备份方法及系统作以下详细地说明。
实施例1
本发明的基于对象存储的分布式文件级备份方法,该方法是通过将数据切块的方式,将分块信息保存到任务队列(RabbitMQ队列)进行文件级备份,并提供所有备份服务器进行消费;每次备份前会进行数据块的对比,当已经备份过md5相同的数据库,当前数据库不会进行备份,确保相同的数据只会保存一个;具体如下:
S1、生成系统镜像;
S2、系统初始化;
S3、备份任务初始化;
S4、数据备份;
S5、监控系统;
S6、备份恢复。
本实施例中步骤S1的生成系统镜像具体如下:
S101、将服务端备份系统和监控系统通过使用容器引擎docker生成一个包含端备份系统和监控系统的服务端镜像A;
S102、采用容器引擎docker生成包含客户端应用程序的镜像B。
本实施例中步骤S2的系统初始化具体如下:
S201、根据具体的需求,将当前环境需要的服务端备份系统数量写入配置文件;
S202、采用容器技术,使用服务端镜像A创建指定个数的服务端备份系统;
S203、采用内网虚拟IP(VIP)的形式,将服务端服务器的IP地址进行固定,保证各个服务器之间网络通信正常;
S204、客户端根据用户使用要求采用镜像B创建包含客户端的服务器,同时直接使用安装客户端应用程序的方式,将客户端和服务端的网络打通,保证双向网络通畅。
如附图2所示,本实施例中步骤S3的备份任务初始化包括文件的获取和任务的发布;具体如下:
①、发送需要备份的机器的地址和需要备份的文件:备份任务会随机向任一个备份服务器(server)发送备份任务;
②、将需要备份的文件发送到agent:备份服务器(server)收到指令后,解析指令里面对应的客户端地址,向对应的客户端应用程序(agent)发送备份指令;
③、按照4M一块获取需要备份文件的md5值和文件的对应关系,发送到备份系统;
④、把获取到的文件和md5值对应的关系、文件元数据信息上传到对象存储的文件中,以备份id作为文件所在目录;
⑤、把获取到的文件和md5值对应的关系上进行组装,发送到消息队列中。
如附图3所示,本实施例中步骤S4的数据备份具体如下:
①、从备份信息队列中获取一组消息(5条一组);
②、将步骤①中解析的消息,临时保存到对象存储tmp文件夹下,用于备份系统或者服务器异常时,将消息重新发布;
③、解析步骤①获取的消息,将解析到的md5值用于判断对象存储是否存在以这个md5值命名的对象:
若存在,则跳过上传;
④、调用agent获取对应数据库的数据;
⑤、将数据信息上传到对象存储,以md5值为对象名进行上传;上传完成后,重复步骤②的操作,直到将获取到的消息消费完成,才能执行⑥;
⑥、从对象存储将临时保存数据的文件删除,同时将上传完成的数据库的信息返回给上层应用,用于进行统计。
如附图4所示,本实施例中步骤S5的监控系统具体如下:
每个备份服务器里存在数据备份系统和监控系统,监控系统分为主监控系统和辅监控系统;主监控系统会定期的检查所有备份服务器的可用性、备份系统的可用性、辅监控系统的状态及主监控系统的状态;监控系统分为两条监控路径,一条是主监控系统监控备份服务器、备份系统及辅监控系统;另一条是辅监控系统监控主监控系统;监控过程具体如下:
在整个备份系统部署好后,主监控任务会定时进行状态检查;具体为:主监控系统会检查备份服务器是否正常:若出现异常,主监控系统会先将出现异常的备份服务器正在执行的备份任务文件从对象存储获取下来,将任务进行组装并重新发布到消息队列中(没有文件则跳过发布),并将文件从对象存储删除,以供其他正常备份系统进行消费;发布完成后,主监控系统会将出现异常的备份服务器删除,并在所有检测任务(包括备份服务器检测、备份系统检测、辅监控系统检测整个主监控系统的检测任务)完成后使用创建好的镜像生成一个虚拟IP一样的服务器;
服务器检查完成后,主监控系统将对备份系统进行可用性检查,通过调用备份系统暴露的检查接口进行状态检测:若发现异常备份系统,主监控系统会将异常备份系统重启,并记录重启次数(如果下一次检查为正常,重启次数记录将重置为0,否则将累加1),若重启次数超过3次,主监控系统会将备份系统所在服务器删除,并使用创建好的镜像生成一个虚拟IP一样的服务器;
检测完成备份系统后,主监控系统会对辅监控系统进行检测:若检测到任一辅监控系统异常,则对辅监控系统进行重启,并记录重启次数,同备份系统一样,若重启次数达到阈值,则会发出告警;
在主监控系统检查备份服务器和备份系统的同时,辅监控系统会对主监控系统进行检查:若检查到主监控系统异常,则辅监控系统会竞争出一个主监控系统,接替主监控系统的任务。
如附图5所示,本实施例中步骤S6的备份恢复具体如下:
①、从恢复消息队列汇总获取适当数量的消息;
②、将步骤①中解析的消息,临时保存到对象存储tmp文件夹下,用于备份系统或者服务器异常时,将消息重新发布;
③、按照消息中md5顺序从对象存储获取数据块,并将数据发送到agent 进行落盘,当所有数据都恢复完成后,将文件的数据信息(权限等)进行恢复;
④、从对象存储将临时保存数据的文件删除,同时将恢复完成的信息返回给上层应用,用于进行统计。
其中,备份执行策略可以为定时单次执行、定时周期执行,同时只能存在一种策略。
实施例2:
如附图1所示,本发明的基于对象存储的分布式文件级备份系统,该系统包括任务队列(RabbitMQ队列)、客户端应用程序(agent)及多个备份服务器,备份服务器包括监控系统(monitor)及备份系统(server),监控系统之间相互通信且随机选择一个作为主监控系统,主监控系统用于备份服务器监视、辅监控系统监视及创建,辅监控系统监视主监控系统,当发现主监控系统不可用时,从剩下的监控系统中随机选择一个作为主监控系统;当备份服务器宕机时,主监控系统会清理宕机的备份服务器并重新生成新的备份服务器,从而保证备份的高可用性和高可靠性。
本实施例中的监控系统会每隔一段时间执行一次检查任务,监控系统检查步骤包括检查服务器状态、检查备份系统状态、检查辅监控系统状态、检查主监控系统状态,具体如下:
主监控系统先根据配置文件配置的VIP地址列表,逐个检查所有备份服务器是否正常运行:
若检测到任一个服务器出现网络不通的情况,主监控系统会先将出现问题的服务器进行删除,并使用生成的服务端镜像创建一个VIP一样的备份服务器;
当服务器检测没有问题时,再对服务器内部的备份系统进行检查,备份系统暴露健康检查接口供主监控系统检查;当发现备份系统出现问题,主监控系统会从对象存储获取以这个服务器虚拟IP(VIP)命名的对象,并将对象的内容重新发布到消息队列(RabbitMQ)中,再将尝试重启出现问题的备份系统,若重启失败,主监控系统会进行重试(最多3次重试),当重试次数达到阈值时也未能正常启动备份系统,主监控会将该备份系统所在服务器进行清理,并生成一样新的备份服务器,并重新执行一遍备份系统检测任务;
检测完成备份服务器和备份系统后,主监控系统会对辅监控系统的状态进行检查,当发现辅监控系统出现异常状态时,主监控系统会对其进行重启的操作,若重启次数达到阈值时辅监控系统还未能正常启动,则发出告警;同时,辅监控系统会定时监控主监控系统,当发现主监控系统不可用时,会通过竞争的方式从辅监控系统中选出一个作为主监控系统,并接替执行主监控系统的工作。
本实施例中的客户端应用程序(agent)将本地需要备份数据按照文件以 4M一块计算每块的md5值,将md5值和文件对应关系(文件包含的md5和文件内容顺序对应的md5顺序)发送给备份系统,备份系统将接受到的信息以备份 id在对象存储创建包括备份文件和md5对应关系的文件,并发布到消息队列 (RabbitMQ)后,所有备份系统从队列去消息进消费,备份系统根据md5值去对象存储查询是否存在对应的对象(即对象名以md5值进行命名,出现与md5 值一样名的对象时,就可判断该数据块已经存在):
若不存在,则以md5值命名进行上传;
反之则跳过上传,从而保证了对象存储存储的数据块的唯一性,减少了存储空间和上传流量。
其中,该备份系统原理是:使用对象存储来作为文件备份的存储空间,充分利用对象存储的高可靠、高性能、高并发、读写快等特性,实现文件备份该备份系统的高效和可靠采用定时任务的方式进行文件定时备份,采用多服务器备份的方式实现分布式备份,从而极大的提升用户使用体验。
本发明的基于对象存储的文件级备份系统,包括以下组件和依赖:置于应用内部的插件、系统主体,对象存储SDK、消息队列、服务器、虚拟IP、docker 容器引擎、对象存储服务系统。文件上传下载SDK包括但不局限于文件上传、文件下载、文件元数据获取;消息队列包括但不局限于RabbitMQ;该备份系统包括但不局限于全量备份和增量备份;备份策略包括但不限于手动执行、定时执行。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种基于对象存储的分布式文件级备份方法,其特征在于,该方法是通过将数据切块的方式,将分块信息保存到任务队列进行文件级备份,并提供所有备份服务器进行消费;每次备份前会进行数据块的对比,当已经备份过md5相同的数据库,当前数据库不会进行备份,确保相同的数据只会保存一个;具体如下:
生成系统镜像;
系统初始化;
备份任务初始化;
数据备份;
监控系统;
备份恢复。
2.根据权利要求1所述的基于对象存储的分布式文件级备份方法,其特征在于,生成系统镜像具体如下:
将服务端备份系统和监控系统通过使用容器引擎docker生成一个包含端备份系统和监控系统的服务端镜像A;
同时,采用容器引擎docker生成包含客户端应用程序的镜像B。
3.根据权利要求1所述的基于对象存储的分布式文件级备份方法,其特征在于,系统初始化具体如下:
将当前环境需要的服务端备份系统数量写入配置文件;
采用容器技术,使用服务端镜像A创建指定个数的服务端备份系统;
采用内网虚拟IP的形式,将服务端服务器的IP地址进行固定;
客户端根据用户使用要求采用镜像B创建包含客户端的服务器,同时直接使用安装客户端应用程序的方式,将客户端和服务端的网络打通。
4.根据权利要求1所述的基于对象存储的分布式文件级备份方法,其特征在于,备份任务初始化包括文件的获取和任务的发布;具体如下:
备份任务会随机向任一个备份服务器发送备份任务;
备份服务器收到指令后,解析指令里面对应的客户端地址,向对应的客户端应用程序发送备份指令;
客户端应用程序收到备份请求,解析请求中需要备份的文件、文件列表或者文件夹,将需要备份的文件按照4M一块进行计算md5值,并将所有的计算结果返回到辅备份系统;
备份系统将文件与分块的对应关系、分块对应的md5值及文件的元数据信息保存到元数据文件中,上传到对象存储的文件中,存放到以任务id作为文件夹的目录下;
备份服务器会将所有分块信息发布到RabbitMQ消息队列中,供备份系统消费,备份系统在每次备份完成后,会将上传完成的信息返回,以供上层判断任一次任务id的备份任务是否完成。
5.根据权利要求1所述的基于对象存储的分布式文件级备份方法,其特征在于,数据备份具体如下:
所有备份系统监听到消息队列有可供消费的消息时,会从队列里获取一组消息执行;
将该组消费数据的相关信息临时保存到对象存储上,文件将保存到tmp文件夹下以备份服务器虚拟IP命名的文件中,临时文件上传完成后,采用异步线程执行真正的数据上传任务的方式,执行备份,保证消息被快速消费;
对接收到的消息进行解析,通过对象存储判断对象是否存在的方式,判断该组数据中的md5值是否存在:
若对象存储存在对应的对象,则跳过这个数据块的上传任务,进行下一块上传;
当一组消息消费完成后,先清理tmp文件夹下的临时文件,再去消息队列获取一组数据,重复执行上传流程,直到备份完成。
6.根据权利要求1所述的基于对象存储的分布式文件级备份方法,其特征在于,监控系统具体如下:
每个备份服务器里存在数据备份系统和监控系统,监控系统分为主监控系统和辅监控系统;主监控系统会定期的检查所有备份服务器的可用性、备份系统的可用性、辅监控系统的状态及主监控系统的状态;监控系统分为两条监控路径,一条是主监控系统监控备份服务器、备份系统及辅监控系统;另一条是辅监控系统监控主监控系统;监控过程具体如下:
在整个备份系统部署好后,主监控任务会定时进行状态检查;具体为:主监控系统会检查备份服务器是否正常:若出现异常,主监控系统会先将出现异常的备份服务器正在执行的备份任务文件从对象存储获取下来,将任务进行组装并重新发布到消息队列中,并将文件从对象存储删除,以供其他正常备份系统进行消费;发布完成后,主监控系统会将出现异常的备份服务器删除,并在所有检测任务完成后使用创建好的镜像生成一个虚拟IP一样的服务器;
服务器检查完成后,主监控系统将对备份系统进行可用性检查,通过调用备份系统暴露的检查接口进行状态检测:若发现异常备份系统,主监控系统会将异常备份系统重启,并记录重启次数,若重启次数超过3次,主监控系统会将备份系统所在服务器删除,并使用创建好的镜像生成一个虚拟IP一样的服务器;
检测完成备份系统后,主监控系统会对辅监控系统进行检测:若检测到任一辅监控系统异常,则对辅监控系统进行重启,并记录重启次数,同备份系统一样,若重启次数达到阈值,则会发出告警;
在主监控系统检查备份服务器和备份系统的同时,辅监控系统会对主监控系统进行检查:若检查到主监控系统异常,则辅监控系统会竞争出一个主监控系统,接替主监控系统的任务。
7.根据权利要求1-6中任一所述的基于对象存储的分布式文件级备份方法,其特征在于,备份恢复具体如下:
备份系统会根据任务id从对象存储获取包含这次备份所有文件、文件元数据信息及文件块的md5值的文件;
按照文件的粒度将所有需要恢复的文件信息发布到恢复数据的消息队列中;
备份系统从消息队列获取消息,解析消息中需要恢复的数据,从对象存储获取md5值对应的文件按照顺序拼接成完整的文件,并将元数据信息进行恢复;
从对象存储将临时保存数据的文件删除,同时将恢复完成的信息返回给上层应用,用于进行统计。
8.一种基于对象存储的分布式文件级备份系统,其特征在于,该系统包括任务队列、客户端应用程序及多个备份服务器,备份服务器包括监控系统及备份系统,监控系统之间相互通信且随机选择一个作为主监控系统,主监控系统用于备份服务器监视、辅监控系统监视及创建,辅监控系统监视主监控系统,当发现主监控系统不可用时,从剩下的监控系统中随机选择一个作为主监控系统;当备份服务器宕机时,主监控系统会清理宕机的备份服务器并重新生成新的备份服务器,从而保证备份的高可用性和高可靠性。
9.根据权利要求8所述的基于对象存储的分布式文件级备份方法,其特征在于,所述监控系统会每隔一段时间执行一次检查任务,监控系统检查步骤包括检查服务器状态、检查备份系统状态、检查辅监控系统状态、检查主监控系统状态,具体如下:
主监控系统先根据配置文件配置的VIP地址列表,逐个检查所有备份服务器是否正常运行:
若检测到任一个服务器出现网络不通的情况,主监控系统会先将出现问题的服务器进行删除,并使用生成的服务端镜像创建一个VIP一样的备份服务器;
当服务器检测没有问题时,再对服务器内部的备份系统进行检查,备份系统暴露健康检查接口供主监控系统检查;当发现备份系统出现问题,主监控系统会从对象存储获取以这个服务器虚拟IP命名的对象,并将对象的内容重新发布到消息队列中,再将尝试重启出现问题的备份系统,若重启失败,主监控系统会进行重试,当重试次数达到阈值时也未能正常启动备份系统,主监控会将该备份系统所在服务器进行清理,并生成一样新的备份服务器,并重新执行一遍备份系统检测任务;
检测完成备份服务器和备份系统后,主监控系统会对辅监控系统的状态进行检查,当发现辅监控系统出现异常状态时,主监控系统会对其进行重启的操作,若重启次数达到阈值时辅监控系统还未能正常启动,则发出告警;同时,辅监控系统会定时监控主监控系统,当发现主监控系统不可用时,会通过竞争的方式从辅监控系统中选出一个作为主监控系统,并接替执行主监控系统的工作。
10.根据权利要求8或9所述的基于对象存储的分布式文件级备份方法,其特征在于,所述客户端应用程序将本地需要备份数据按照文件以4M一块计算每块的md5值,将md5值和文件对应关系发送给备份系统,备份系统将接受到的信息以备份id在对象存储创建包括备份文件和md5对应关系的文件,并发布到消息队列后,所有备份系统从队列去消息进消费,备份系统根据md5值去对象存储查询是否存在对应的对象:
若不存在,则以md5值命名进行上传;
反之则跳过上传。
CN202111181223.9A 2021-10-11 2021-10-11 基于对象存储的分布式文件级备份方法及系统 Pending CN113946471A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111181223.9A CN113946471A (zh) 2021-10-11 2021-10-11 基于对象存储的分布式文件级备份方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111181223.9A CN113946471A (zh) 2021-10-11 2021-10-11 基于对象存储的分布式文件级备份方法及系统

Publications (1)

Publication Number Publication Date
CN113946471A true CN113946471A (zh) 2022-01-18

Family

ID=79330316

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111181223.9A Pending CN113946471A (zh) 2021-10-11 2021-10-11 基于对象存储的分布式文件级备份方法及系统

Country Status (1)

Country Link
CN (1) CN113946471A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112799881A (zh) * 2021-01-26 2021-05-14 浪潮云信息技术股份公司 一种云文件存储系统的备份与恢复装置及方法
CN114546721A (zh) * 2022-02-17 2022-05-27 中国银联股份有限公司 集群中应用程序的备份方法、系统及计算机可读存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112799881A (zh) * 2021-01-26 2021-05-14 浪潮云信息技术股份公司 一种云文件存储系统的备份与恢复装置及方法
CN114546721A (zh) * 2022-02-17 2022-05-27 中国银联股份有限公司 集群中应用程序的备份方法、系统及计算机可读存储介质
CN114546721B (zh) * 2022-02-17 2024-05-07 中国银联股份有限公司 集群中应用程序的备份方法、系统及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN105389230B (zh) 一种结合快照技术的持续数据保护系统及方法
US9268659B2 (en) Detecting failover in a database mirroring environment
US10817478B2 (en) System and method for supporting persistent store versioning and integrity in a distributed data grid
US8707098B2 (en) Recovery procedure for a data storage system
CN101566959B (zh) 利用卷快照防止在失败的恢复操作中的文件损坏
US9411682B2 (en) Scrubbing procedure for a data storage system
US8856091B2 (en) Method and apparatus for sequencing transactions globally in distributed database cluster
CN107357688B (zh) 分布式系统及其故障恢复方法和装置
US20070061379A1 (en) Method and apparatus for sequencing transactions globally in a distributed database cluster
US20050028026A1 (en) Method and system for backing up and restoring data of a node in a distributed system
JP2005317017A (ja) アプライアンス・ベースの業務継続アーキテクチャにおけるバックアップ・システム障害後の再同期時間の最短化
CN101136728A (zh) 群集系统和用于备份群集系统中的副本的方法
CN113946471A (zh) 基于对象存储的分布式文件级备份方法及系统
JP2000047894A (ja) 計算機システム
CN110858168B (zh) 集群节点故障处理方法、装置及集群节点
CN113986450A (zh) 一种虚拟机备份方法及装置
CN117992283A (zh) 云主机备份方法、装置、计算机设备及存储介质
US8782006B1 (en) Method and apparatus for file sharing between continuous and scheduled backups
CN111752892B (zh) 分布式文件系统及其实现方法、管理系统、设备及介质
CN115314361B (zh) 一种服务器集群管理方法及其相关组件
US7065539B2 (en) Data transfer method
CN116382850B (zh) 一种利用多存储心跳检测的虚拟机高可用管理装置及系统
CN114691424A (zh) 一种文件存储分布式增量备份方法及系统
CN113868022A (zh) 一种数据库的主从切换方法及装置
KR100988107B1 (ko) 분산 파일 시스템 및 복제본 상태 매칭을 이용한 파일일관성 관리 방법

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