本申请公开了一种数据备份方法及系统。数据备份方法包括:监控步骤:make morr i r定时监控网络负载状态;缓存步骤:当源集群收到新数据,并所述网络负载状态高时,将所述新数据缓存到所述make morr i r的etcd数据库中;输出步骤:当所述网络负载状态恢复正常后,将所述etcd数据库中的所述新数据输出到目标集群中。本技术提出一种数据备份方法及系统,本发明通过make morr i r可以自动的检测到当时网络负载情况,在负载网络恢复正常之后把已缓存的数据写入到镜像etcd集群中。并且同步复制可以保证etcd集群数据的完整性,实时性,半同步无损复制可以解决etcd集群同步过程中对i o高度依赖的问题,解决了跨机房数据备份的问题。
背景技术
随着企业对持续集成持续部署的要求越来越高,企业服务容器化是一种必然的趋势。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高度依赖的问题,解决了跨机房数据备份的问题。保障数据的完成性,即使在网络流量访问高峰,也不会影响备份的时效性。
实现思路