掌桥专利:专业的专利平台
掌桥专利
首页

一种数据备份方法及系统

文献发布时间:2023-06-19 11:39:06


一种数据备份方法及系统

技术领域

本申请涉及数据备份技术领域,尤其涉及一种数据备份方法及系统。

背景技术

随着企业对持续集成持续部署的要求越来越高,企业服务容器化是一种必然的趋势。kubernetes作为使用最广泛的容器治理方案,对数据安全性的要求也越来越高,为了提高集群的稳定性,保障kubernetes集群的数据安全也成了亟需解决的问题。作为kubernetes集群的数据仓库etcd,保障etcd集群中的数据安全是解决问题的重要途径。etcd集群虽然可以互相备份,但是为了确保万无一失etcd的异地备份因需要解决。异地备份对数据的实时行要求很高。ETCD是k8s集群极为重要的一块服务,存储了集群所有的数据信息。同理,如果发生灾难或者etcd的数据丢失,都会影响集群数据的恢复。目前应用最多的方式是建设一个etcd集群,多个节点,节点之后数据互相同步。ETCD使用Raft协议来维护集群内各个节点状态的一致性。简单说,ETCD集群是一个分布式系统,由多个节点相互通信构成整体对外服务,每个节点都存储了完整的数据,并且通过Raft协议保证每个节点维护的数据是一致的。如图2所示,现有技术中,当一个节点接收到写入数字请求之后,需要其他的节点全部写入信息之后才能返回数据。并且集群内部的数据同步效率取决于节点磁盘的io和网络的io,如果当前kubernetes集群内的变更操作频繁,如果节点的磁盘io有延迟的情况,会导致返回超时的情况。

因此,针对以上现状,本发明提出一种数据备份方法及系统,本发明通过makemorrir可以自动的检测到当时网络负载情况,如果当时网络负载高,会自动开始缓存,存储此时的数据,同时检车网络负载,在负载降低之后把已经缓存的数据写入到镜像etcd集群中。并且同步复制可以保证etcd集群数据的完整性,实时性,半同步无损复制可以解决etcd集群同步过程中对io高度依赖的问题,解决了跨机房数据备份的问题。保障数据的完成性,即使在网络流量访问高峰,也不会影响备份的时效性。

发明内容

本申请实施例提供了一种数据备份方法及系统,以至少解决相关技术中主观因素影响的问题。

本发明提供了一种数据备份方法,包括:

监控步骤:make morrir定时监控网络负载状态;

缓存步骤:当源集群收到新数据,并所述网络负载状态高时,将所述新数据缓存到所述make morrir的etcd数据库中;

输出步骤:当所述网络负载状态恢复正常后,将所述etcd数据库中的所述新数据输出到目标集群中。

上述的数据备份方法,所述make morrir包括,etcd数据库与探测网络负载状态的探测接口。

上述的数据备份方法,所述监控步骤包括,make morrir通过所述探测接口定时监控网络负载状态。

上述的数据备份方法,所述缓存步骤包括,当源集群收到新数据,并所述探测接口探测到所述网络负载状态高时,所述make morrir使用hash算法获取所述新数据的hash值,并通过所述hash值为所述新数据做标记后,将所述新数据缓存到所述make morrir的所述etcd数据库中。

上述的数据备份方法,所述输出步骤包括,所述make morrir通过所述探测接口继续定期监控所述网络负载状态,当所述探测接口探测到所述网络负载状态恢复正常后,将所述etcd数据库中的所述新数据输出到目标集群中。

本发明还提供一种数据备份系统,其中,适用于上述所述的数据备份方法,所述数据备份系统包括:

监控单元:make morrir定时监控网络负载状态;

缓存单元:当源集群收到新数据,并所述网络负载状态高时,将所述新数据缓存到所述make morrir的etcd数据库中;

输出单元:当所述网络负载状态恢复正常后,将所述etcd数据库中的所述新数据输出到目标集群中。

上述的数据备份系统,所述make morrir包括,etcd数据库与探测网络负载状态的探测接口。

上述的数据备份系统,所述监控单元中的所述make morrir通过所述监控单元中的所述探测接口定时监控网络负载状态。

上述的数据备份系统,当源集群收到新数据,并所述探测接口探测到所述网络负载状态高时,所述make morrir使用hash算法获取所述新数据的hash值,并通过所述hash值为所述新数据做标记后,通过缓存单元将所述新数据缓存到所述make morrir的所述etcd数据库中。

上述的数据备份系统,所述make morrir通过所述探测接口继续定期监控所述网络负载状态,当所述探测接口探测到所述网络负载状态恢复正常后,通过输出单元将所述etcd数据库中的所述新数据输出到目标集群中。

相比于相关技术,本发明提出一种数据备份方法及系统,本发明通过make morrir可以自动的检测到当时网络负载情况,如果当时网络负载高,会自动开始缓存,存储此时的数据,同时检车网络负载,在负载降低之后把已经缓存的数据写入到镜像etcd集群中。并且同步复制可以保证etcd集群数据的完整性,实时性,半同步无损复制可以解决etcd集群同步过程中对io高度依赖的问题,解决了跨机房数据备份的问题。保障数据的完成性,即使在网络流量访问高峰,也不会影响备份的时效性。

本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的数据备份方法流程图;

图2是根据本申请实施例的现有技术框架图;

图3是根据本申请实施例的架构框架图;

图4为本发明的数据备份系统的结构示意图;

图5是根据本申请实施例的电子设备的框架图。

其中,附图标记为:

监控单元:51;

缓存单元:52;

输出单元:53;

81:处理器;

82:存储器;

83:通信接口;

80:总线。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。

除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。

本发明基于etcd集群,下面进行简要的介绍。

Etcd是一个分布式的,一致的key-value存储,主要用途是共享配置和服务发现。Etcd已经在很多分布式系统中得到广泛的使用。所有的分布式系统,都面临的一个问题是多个节点之间的数据共享问题,这个和团队协作的道理是一样的,成员可以分头干活,但总是需要共享一些必须的信息,比如谁是leader,都有哪些成员,依赖任务之间的顺序协调等。所以分布式系统要么自己实现一个可靠的共享存储来同步信息(比如Elasticsearch),要么依赖一个可靠的共享存储服务,而Etcd就是这样一个服务。Etcd提供以下功能,存储以及获取数据的接口,它通过协议保证Etcd集群中的多个节点数据的强一致性。用于存储元信息以及共享配置;监听机制,客户端可以监听某个key或者某些key的变更(v2和v3的机制不同,参看后面文章)。用于监听和推送变更;key的过期以及续约机制,客户端通过定时刷新来实现续约(v2和v3的实现机制也不一样)。用于集群监控以及服务注册发现;提供原子的CAS(Compare-and-Swap)和CAD(Compare-and-Delete)支持(v2通过接口参数实现,v3通过批量事务实现)。用于分布式锁以及leader选举。etcd是一个可靠的分布式KV存储,其底层使用Raft算法保证一致性,主要用于共享配置和服务发现。etcd是CoreOS公司发起的一个开源项目。目前提供配置共享和服务发现功能的组件还是比较多的,其中应用最广泛、大家最熟悉的应该就是ZooKeeper了,很多开源项目都在不同程度上依赖了ZooKeeper,例如,Dubbo、Kafka。在Golang社区中,etcd是唯一一个可以媲美ZooKeeper的组件,在有些方面,etcd甚至超越了ZooKeeper,给开发者眼前一亮的感觉。etcd作为一个优秀的分布式KV存储产品,其底层的etcd-raft模块实现了Raft协议,可以帮助开发者快速实现最终一致性功能。etcd以其高性能、易维护、Raft实现等优点,受到越来越多的开发人员的青睐,在Golang社区中声名大噪。etcd的代码中有很多亮点,为了提高整体性能,其实现中使用了大量的goroutine和Channel。etcd 3中开始使用BoltDB作为底层的持久存储,使用BTree索引加速查询,还提供了可靠的Watcher功能,同时提供了基于GRPC的新版本客户端。当然,etcd 3依然兼容etcd 2的内存存储和HTTP API。同一个etcd的集群的节点如果分布在不同的机房中,那么对每台服务器的磁盘io以及网络io的要求很高,用这种方式做备份,只适合在同一个机房中,不适合跨机房的备份方式,但是在实际生产中,异地机房备份也是非常重要的一个方面。因此可以在备份过程中,为etcd配置一个镜像集群,该镜像集群可以和原集群配置不一致,可以是相同的集群配置,也可以是单一一个节点。两个etcd集群使用make morrir程序连接。在两个集群备份的过程中make morrir程序最为关键,make morrir程序可以读取源etcd集群的数据,同步或者半同步写入目的etcd集群中,用来解决etcd集群的跨机房的备份问题。

kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在build或release的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。类似地,容器比虚拟机轻量、更“透明”,这更便于监控和管理。Kubernetes有以下特点,支持公有云,私有云,混合云,多重云(multi-cloud);模块化,插件化,可挂载,可组合;自动部署,自动重启,自动复制,自动伸缩/扩展。Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。

本发明提出一种数据备份方法及系统,本发明通过make morrir可以自动的检测到当时网络负载情况,如果当时网络负载高,会自动开始缓存,存储此时的数据,同时检车网络负载,在负载降低之后把已经缓存的数据写入到镜像etcd集群中。并且同步复制可以保证etcd集群数据的完整性,实时性,半同步无损复制可以解决etcd集群同步过程中对io高度依赖的问题,解决了跨机房数据备份的问题。保障数据的完成性,即使在网络流量访问高峰,也不会影响备份的时效性。

下面将数据备份为例对本申请实施例进行说明。

实施例一

本实施例提供了数据备份方法。请参照图1至图3,图1是根据本申请实施例的数据备份方法流程图;图2是根据本申请实施例的现有技术框架图;图3是根据本申请实施例的架构框架图,如图所示,数据备份方法包括如下步骤:

监控步骤S1:make morrir定时监控网络负载状态;

缓存步骤S2:当源集群收到新数据,并所述网络负载状态高时,将所述新数据缓存到所述make morrir的etcd数据库中;

输出步骤S3:当所述网络负载状态恢复正常后,将所述etcd数据库中的所述新数据输出到目标集群中。

实施例中,所述make morrir包括,etcd数据库与探测网络负载状态的探测接口。

具体实施中,首先在etcd集群中,make morrir程序在源集群中伪装成一个透明节点,只进行查询行为,不参与etcd的选主和投票。在目标集群中,作为一个客户端写入数据。

实施例中,所述监控步骤S1包括,make morrir通过所述探测接口定时监控网络负载状态。

实施例中,所述缓存步骤S2包括,当源集群收到新数据,并所述探测接口探测到所述网络负载状态高时,所述make morrir使用hash算法获取所述新数据的hash值,并通过所述hash值为所述新数据做标记后,将所述新数据缓存到所述make morrir的所述etcd数据库中。

具体实施中,当源集群收到新数据,并所述探测接口探测到所述网络负载状态高时,make morrir读取etcd集群中的数据变更,并使用hash算法获取新数据的hash值,并通过hash值为新数据做标记后,将新数据缓存到make morrir的etcd数据库中。

实施例中,所述输出步骤S3包括,所述make morrir通过所述探测接口继续定期监控所述网络负载状态,当所述探测接口探测到所述网络负载状态恢复正常后,将所述etcd数据库中的所述新数据输出到目标集群中。

具体实施中,新数据缓存到make morrir的etcd数据库中之后,make morrir通过探测接口继续定期监控网络负载状态,当探测接口探测到网络负载状态恢复正常后,将所述etcd数据库中的所述新数据输出到目标集群中,etcd会根据往前网络io以及磁盘io自动选择启用半同步复制还是同步复制模式。

由此,本发明提出一种数据备份方法及系统,本发明通过make morrir可以自动的检测到当时网络负载情况,如果当时网络负载高,会自动开始缓存,存储此时的数据,同时检车网络负载,在负载降低之后把已经缓存的数据写入到镜像etcd集群中。并且同步复制可以保证etcd集群数据的完整性,实时性,半同步无损复制可以解决etcd集群同步过程中对io高度依赖的问题,解决了跨机房数据备份的问题。保障数据的完成性,即使在网络流量访问高峰,也不会影响备份的时效性。

实施例二

请参照图4,图4为本发明的数据备份系统的结构示意图。如图4所示,发明的数据备份系统,适用于上述的数据备份方法,数据备份系统包括:

监控单元51:make morrir定时监控网络负载状态;

缓存单元52:当源集群收到新数据,并所述网络负载状态高时,将所述新数据缓存到所述make morrir的etcd数据库中;

输出单元53:当所述网络负载状态恢复正常后,将所述etcd数据库中的所述新数据输出到目标集群中。

在本实施例中,所述make morrir包括,etcd数据库与探测网络负载状态的探测接口。

在本实施例中,所述监控单元51中的所述make morrir通过所述监控单元51中的所述探测接口定时监控网络负载状态。

在本实施例中,当源集群收到新数据,并所述探测接口探测到所述网络负载状态高时,所述make morrir使用hash算法获取所述新数据的hash值,并通过所述hash值为所述新数据做标记后,通过缓存单元52将所述新数据缓存到所述make morrir的所述etcd数据库中。

在本实施例中,所述make morrir通过所述探测接口继续定期监控所述网络负载状态,当所述探测接口探测到所述网络负载状态恢复正常后,通过输出单元53将所述etcd数据库中的所述新数据输出到目标集群中。

实施例四

结合图5所示,本实施例揭示了一种电子设备的一种具体实施方式。电子设备可以包括处理器81以及存储有计算机程序指令的存储器82。

具体地,上述处理器81可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。

其中,存储器82可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器82可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在数据处理装置的内部或外部。在特定实施例中,存储器82是非易失性(Non-Volatile)存储器。在特定实施例中,存储器82包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(RandomAccess Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为FPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EFPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。

存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器81所执行的可能的计算机程序指令。

处理器81通过读取并执行存储器82中存储的计算机程序指令,以实现上述实施例中的任意数据备份方法。

在其中一些实施例中,电子设备还可包括通信接口83和总线80。其中,如图5所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。

通信接口83用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信端口83还可以实现与其他部件例如:外接设备、图像/数据备份设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。

总线80包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。总线80包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(ControlBus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线80可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(FrontSide Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。

电子设备可连接数据备份系统,从而实现结合图1至图3描述的方法。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 系统数据的备份方法和采用该备份方法的中央空调机组
  • 数据备份方法及系统、数据恢复方法及系统和移动终端
技术分类

06120113008348