CN117992283A - 云主机备份方法、装置、计算机设备及存储介质 - Google Patents
云主机备份方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117992283A CN117992283A CN202410223686.4A CN202410223686A CN117992283A CN 117992283 A CN117992283 A CN 117992283A CN 202410223686 A CN202410223686 A CN 202410223686A CN 117992283 A CN117992283 A CN 117992283A
- Authority
- CN
- China
- Prior art keywords
- backup
- cloud
- hard disk
- data
- cloud hard
- 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
Links
- 238000003860 storage Methods 0.000 title claims abstract description 210
- 238000000034 method Methods 0.000 title claims abstract description 112
- 239000012634 fragment Substances 0.000 claims description 101
- 238000004519 manufacturing process Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 31
- 230000015654 memory Effects 0.000 claims description 29
- 238000011084 recovery Methods 0.000 claims description 26
- 230000002159 abnormal effect Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 claims description 6
- 239000003818 cinder Substances 0.000 description 39
- 230000006870 function Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机技术领域,公开了一种云主机备份方法、装置、计算机设备及存储介质,该方法包括:在接收到云主机备份指令的情况下,控制云主机备份指令对应的云主机停止对云主机挂载的云硬盘进行读写操作,其中,云硬盘用于存储云主机的系统和数据;获取云硬盘快照信息,并获取云硬盘对应的云硬盘信息,其中,云硬盘快照信息用于描述云硬盘快照的对应信息,云硬盘信息用于描述云硬盘的对应信息;根据云硬盘快照信息和云硬盘信息,向第二组件发送第一调用指令,其中,第一调用指令用于指示第二组件对云主机的云硬盘进行备份。本发明解决了对云主机进行备份时方法单一,操作复杂且成本过高的问题。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种云主机备份方法、装置、计算机设备及存储介质。
背景技术
硬件故障、软件错误、网络问题等原因会使云主机发生存储故障,会导致云主机的业务数据丢失或不可用。在这种情况下,如果没有对云主机进行备份,则需要重新构建云主机环境并进行恢复数据等操作,这将会花费更长的时间,从而导致云主机的业务中断时间更长,给企业带来重大的损失和影响。因此,需要对云主机的数据进行备份,一旦出现存储故障,就可以使用备份数据快速恢复云主机,减少业务停机时间,从而减少损失和影响。
当前对云主机进行备份时,大多采用“OpenStack+备份一体机”的方案,OpenStack是一种基于云计算技术的开源软件平台,它提供了一整套构建和管理私有云和公有云所需的组件。备份一体机是一种集备份软件、存储设备和备份介质于一身的设备,它具有数据备份、恢复和管理等多项功能。然而,采用“OpenStack+备份一体机”的方案对云主机进行备份时,操作复杂,且对于中小型的云主机来说,该方案的成本过高。
因此,相关技术存在对云主机进行备份时方法单一,操作复杂且成本过高的问题。
发明内容
有鉴于此,本发明提供了一种云主机备份方法、装置、计算机设备及存储介质,以解决对云主机进行备份时方法单一,操作复杂且成本过高的问题。
第一方面,本发明提供了一种云主机备份方法,该方法应用于第一组件,该方法包括:
在接收到云主机备份指令的情况下,控制云主机备份指令对应的云主机停止对云主机挂载的云硬盘进行读写操作,其中,云硬盘用于存储云主机的系统和数据;
获取云硬盘快照信息,并获取云硬盘对应的云硬盘信息,其中,云硬盘快照信息用于描述云硬盘快照的对应信息,云硬盘信息用于描述云硬盘的对应信息;
根据云硬盘快照信息和云硬盘信息,向第二组件发送第一调用指令,其中,第一调用指令用于指示第二组件对云主机的云硬盘进行备份。
本实施例提供的云主机备份方法,第一组件控制云主机停止读写操作,避免在对云主机备份过程中,读写导致备份失败。根据云硬盘快照信息和云硬盘信息,调用第二组件,利用第二对云主机的云硬盘进行备份。仅利用第一组件和第二组件便实现了对云主机的云硬盘进行备份,操作简单、成本低。解决了相关技术存在对云主机进行备份时方法单一,操作复杂且成本过高的问题。
在一种可选的实施方式中,在向第二组件发送第一调用指令之后,方法还包括:
获取备份恢复请求,其中,备份恢复请求包含待恢复云主机;
在待恢复云主机为原云主机的情况下,判断原云主机是否处于接入状态,其中,原云主机为备份过的云主机,原云主机挂载有原云硬盘;
如果原云主机处于接入状态,则控制原云主机关机,并向第二组件发送第二调用指令,其中,第二调用指令用于指示第二组件将备份数据恢复到原云主机;
获取原云硬盘的状态,判断原云硬盘的状态是否为可用状态,如果是,则获取预设元数据,利用预设元数据设置原云硬盘的设置策略,并控制原云主机开机;
在待恢复云主机为待创建云主机的情况下,获取备份云硬盘的备份状态,并判断备份状态是否为可用状态,其中,备份云硬盘用于存储备份数据;
如果备份状态是可用状态,则向第二组件发送第三调用指令,其中,第三调用指令用于指示第二组件将备份数据恢复到待创建云主机。
在本实施方式中,备份恢复请求中的待恢复云主机既可以是原云主机也可以是待创建云主机。本发明利用第一组件和第二组件,既支持将待恢复数据恢复到原云主机,又支持利用待恢复数据创建待创建云主机,将待恢复数据恢复到待创建云主机上。
第二方面,本发明提供了一种云主机备份方法,该方法应用于第二组件,该方法包括:
获取云主机备份指令,并根据云主机备份指令得到备份类型和目标备份存储集群;
在云主机备份指令对应的云主机停止对云主机挂载的云硬盘进行读写操作之后,对所有云硬盘进行快照,得到云硬盘快照和云硬盘快照信息,其中,云硬盘用于存储云主机的系统和数据,云硬盘快照信息用于描述云硬盘快照的对应信息;
将云硬盘快照信息发送给第一组件;
在接收到第一调用指令的情况下,根据备份类型和云硬盘快照,在目标备份存储集群中,对云主机的云硬盘进行备份。
本实施例提供的云主机备份方法,本发明支持指定目标备份存储集群和多种备份类型,本发明备份方式多样、灵活。第二组件根据指定的备份类型,利用云硬盘快照在目标备份存储集群中,对云主机的云硬盘进行备份。仅利用第一组件和第二组件便实现了对云主机的云硬盘进行备份,操作简单、成本低。解决了相关技术存在对云主机进行备份时方法单一,操作复杂且成本过高的问题。
在一种可选的实施方式中,根据备份类型和云硬盘快照,在目标备份存储集群中,对云主机的云硬盘进行备份,包括:
在备份类型为全量备份的情况下,在目标备份存储集群中创建备份云硬盘,其中,备份云硬盘用于创建备份云主机,备份云主机会挂载备份云硬盘;
根据云硬盘快照得到待备份数据;
根据预设备份策略,将待备份数据写入备份云硬盘。
在本实施方式中,第二组件在目标备份存储集群中创建备份云硬盘,并将待备份数据写入备份云硬盘。实现了对云主机进行全量备份,丰富了本发明的备份方式。
在一种可选的实施方式中,根据备份类型和云硬盘快照,在目标备份存储集群中,对云主机的云硬盘进行备份,包括:
在备份类型为增量备份的情况下,从目标备份存储集群中的备份云硬盘中获取第一历史备份数据和第一历史备份数据的有效状态;
在有效状态为正常状态的情况下,根据云硬盘快照和第一历史备份数据确定第一增量数据,并将第一增量数据作为待备份数据;
在有效状态为异常状态的情况下,从备份云硬盘中获取第二历史备份数据,根据云硬盘快照和第二历史备份数据确定第二增量数据,并将第二增量数据作为待备份数据,其中,第二历史备份数据存入备份云硬盘的时间早于第一历史备份数据;
根据预设备份策略,将待备份数据写入备份云硬盘。
在本实施方式中,根据云硬盘快照和备份云硬盘中的备份数据,确定增量数据,并将增量数据写入备份云硬盘,实现了对云主机进行增量备份,丰富了本发明的备份方式。并且,相较于已有增量备份方法,本发明即便第一历史备份数据异常依然可以确定增量数据。
在一种可选的实施方式中,根据预设备份策略,将待备份数据写入备份云硬盘,包括:
根据预设规则和预设片段大小,将待备份数据划分成第一预设数量个数据片段,其中,每个数据片段的大小为预设片段大小;
生成数据片段对应的索引表和元数据文件,其中,索引表包含每个数据片段的索引值,索引值用于确定数据片段,元数据文件包含每个数据片段的目标完整性校验值;
根据备份任务调度和协调机制调用目标备份存储集群中的第二预设数量个备份节点,根据索引表,将数据片段并行传输至对应的备份节点,并控制备份节点并行处理数据片段;
在备份节点并行处理数据片段的过程中,解压数据片段,得到需要写入备份节点的待写入数据;
根据待写入数据得到待写入数据的当前完整性校验值,并判断当前完整性校验值和目标完整性校验值是否一致;
如果一致,将待写入数据写入对应的备份节点。
在本实施方式中,将待备份数据划分为数据片段,将数据片段并行传输至对应的备份节点,并控制备份节点并行处理数据片段。通过将待备份数据分片并进行并行传输,可以实现并发备份,提高数据备份的效率和速度。
在一种可选的实施方式中,在对云主机的云硬盘进行备份之后,方法还包括:
获取第二调用指令,根据第二调用指令得到原云主机,其中,原云主机为备份过的云主机,原云主机挂载有原云硬盘;
从备份云硬盘中获取第一待恢复数据,并将第一待恢复数据写入对应的原云硬盘;
调整原云硬盘的状态为可用状态;
获取第三调用指令,根据第三调用指令得到待创建云主机;
从备份云硬盘中获取第二待恢复数据,并获取待创建云主机对应的目标生产存储集群;
根据第二待恢复数据,在目标生产存储集群中创建新建云硬盘,其中,新建云硬盘包含第二待恢复数据,新建云硬盘用于创建待创建云主机。
在本实施方式中,第二组件既支持将备份云硬盘中的待恢复数据恢复到原云主机,又支持利用待恢复数据创建新建云硬盘,将待恢复数据恢复到新建云硬盘上,能够尽快恢复云主机业务,减少业务停机时间。
在一种可选的实施方式中,方法还包括:
获取备份云硬盘中备份数据的访问频率,并获取第一频率阈值和第二频率阈值;
根据访问频率将备份数据划分为不同的数据分片,并生成数据分片的索引信息;
获取云硬盘的存储空间和存储空间的读取速度,并获取第一速度阈值和第二速度阈值;
根据读取速度将存储空间划分为第一存储区间、第二存储区间以及第三存储区间,其中,第一存储区间的读取速度大于或等于第二速度阈值,第二存储区间的读取速度小于或等于第一速度阈值,第三存储区间的读取速度小于第二速度阈值且大于第一速度阈值;
将对应访问频率大于或等于第二频率阈值的数据分片放入第一存储区间;
将对应访问频率小于或等于第一频率阈值的数据分片放入第二存储区间;
将对应访问频率大于第一频率阈值且小于第二频率阈值的数据分片放入第三存储区间;
当从备份云硬盘中获取待恢复数据时,先获取目标索引信息,并将目标索引信息对应的数据分片进行拼接,得到待恢复数据,其中,目标索引信息包含于索引信息。
在本实施方式中,第二组件通过统计备份云硬盘中备份数据的还原请求调用次数,计算访问频率,按照访问频率高低划分数据分片,并合理调度数据分片迁移到对应的存储区间,节约了存储资源、提升了备份数据还原的速率。
第三方面,本发明提供了一种云主机备份装置,该装置包括:
第一控制模块,用于在接收到云主机备份指令的情况下,控制云主机备份指令对应的云主机停止对云主机挂载的云硬盘进行读写操作,其中,云硬盘用于存储云主机的系统和数据;
第一获取模块,用于获取云硬盘快照信息,并获取云硬盘对应的云硬盘信息,其中,云硬盘快照信息用于描述云硬盘快照的对应信息,云硬盘信息用于描述云硬盘的对应信息;
第一发送模块,用于根据云硬盘快照信息和云硬盘信息,向第二组件发送第一调用指令,其中,第一调用指令用于指示第二组件对云主机的云硬盘进行备份。
第四方面,本发明提供了一种云主机备份装置,该装置包括:
第二获取模块,用于获取云主机备份指令,并根据云主机备份指令得到备份类型和目标备份存储集群;
快照模块,用于在云主机备份指令对应的云主机停止对云主机挂载的云硬盘进行读写操作之后,对所有云硬盘进行快照,得到云硬盘快照和云硬盘快照信息,其中,云硬盘用于存储云主机的系统和数据,云硬盘快照信息用于描述云硬盘快照的对应信息;
第二发送模块,用于将云硬盘快照信息发送给第一组件;
备份模块,用于在接收到第一调用指令的情况下,根据备份类型和云硬盘快照,在目标备份存储集群中,对云主机的云硬盘进行备份。
第五方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的云主机备份方法。
第六方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的云主机备份方法。
附图说明
为了更清楚地说明本发明具体实施方式或相关技术中的技术方案,下面将对具体实施方式或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的云主机备份方法的架构图;
图2是根据本发明实施例的应用于第一组件的云主机备份方法的流程示意图;
图3是根据本发明实施例的对云主机进行整机备份的流程图;
图4是根据本发明实施例的将备份数据恢复到原云主机的流程图;
图5是根据本发明实施例的将备份数据恢复到待创建云主机的流程图;
图6是根据本发明实施例的应用于第二组件的云主机备份方法的流程示意图;
图7是根据本发明实施例的增量备份的流程示意图;
图8是根据本发明实施例的部署在第一组件的云主机备份装置的结构框图;
图9是根据本发明实施例的部署在第二组件的云主机备份装置的结构框图;
图10是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明从实施架构上强调存储隔离,即一套生产存储集群对接多个备份存储集群,为生产存储集群虚拟机(Virtual Machine,VM)的整机备份、云硬盘备份等提供存储空间。如图1所示,用户通过域名访问Internet(互联网)时,通过域名系统(Domain NameSystem,DNS)将域名转化为浮动IP,通过浮动IP访问OpenStack资源池,OpenStack资源池包含生产存储集群A、备份存储集群B、生产存储集群C,其中,生产存储集群A包含虚拟机(VM),VM整机中包含系统盘、数据盘1以及数据盘2,备份存储集群B中包含备份虚拟机,备份虚拟机中包含备份系统盘、备份数据盘3以及备份数据盘4。对生产存储集群A中的虚拟机(VM)进行整机备份,将备份存储到备份存储集群B中,当生产存储集群A发生故障,导致客户云主机业务中断,如果故障修复的快,可以使用云主机备份恢复功能,将备份存储集群B中的备份数据恢复到生产存储集群A中虚拟机(VM)的云硬盘上,云硬盘包括系统盘和各个数据盘。当生产存储集群A长时间故障时,可以使用云主机备份恢复至新云主机功能,可在正常的生产存储集群上进行还原新云主机,例如:生产存储集群C,将备份存储集群B中的备份数据恢复到生产存储集群C,在生产存储集群C中新建对应云硬盘,并创建云主机挂载这些云硬盘。
基于上述内容,本发明实施例提供了一种云主机备份方法,基于OpenStack云平台中的nova组件和cinder组件,nova是OpenStack云平台中负责虚拟机计算资源管理的组件,cinder是OpenStack云平台中负责提供块存储服务的组件,管理数据卷(volume)从创建到删除的整个生命周期。设计nova和cinder云主机备份操作执行组件协作流程,在存储侧对备份与还原的速度进行提升,并且针对增量备份的缺陷进行改进,提出一种增量备份变种。本发明从功能上提供了,云主机整机备份、云主机恢复和备份恢复至新云主机三种功能。云主机整机备份功能实现了用户可指定备份到特定备份存储集群,支持全量、增量和差异三种备份策略;云主机恢复强调在原云主机原云硬盘数据的恢复,该功能适合生产存储集群故障能够快速修复的场景;备份恢复至新云主机功能实现了按照用户对存储故障云主机所挂载的云硬盘做的云硬盘备份在好的生产存储集群上创建出新云硬盘并挂载给新云主机使用,该功能适用于生产存储集群故障一时难以解决,但是用户业务急切需要恢复运行的场景。以达到备份策略多样、功能丰富,用户操作简便,仅利用OpenStack云平台降低了备份成本的效果。
根据本发明实施例,提供了一种云主机备份方法实施例,需要说明的是,在附图的流程图示出的步骤可以在具有数据处理能力的计算机设备中执行,例如:电脑、服务器等,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种云主机备份方法,可用于上述的计算机设备,图2是根据本发明实施例的云主机备份方法的流程图,该方法应用于第一组件,如图2所示,该流程包括如下步骤:
步骤S201,在接收到云主机备份指令的情况下,控制云主机备份指令对应的云主机停止对云主机挂载的云硬盘进行读写操作,其中,云硬盘用于存储云主机的系统和数据。
具体地,按照图1构建本发明的云生产环境部署架构,并基于OpenStack云平台对云生产环境部署架构中生产存储集群中的云主机进行备份,主要用到了OpenStack中的nova组件和cinder组件,其中,nova组件为第一组件,cinder组件为第二组件。
结合如图3所示进行说明,用户下发云主机备份指令,例如:云主机整机备份请求,nova组件接收到该云主机备份指令之后,云主机备份指令对应的云主机如果处于运行状态,nova组件调用QGA在云主机内执行freeze filesystem(冻结文件系统)指令将云主机文件系统冻结,阻止云主机对挂载的云硬盘进行IO(输入/输出,Input/Output),云硬盘包括:系统盘和数据盘,系统盘保存云主机的系统,数据盘保存云主机运行过程中产生的数据。QGA的全称为QEMU GUEST AGENT是一款用于与QEMU虚拟机进行通信的工具,它在虚拟机中运行并提供一套API(Application Programming Interface,应用程序编程接口),使得虚拟机与宿主机之间可以进行数据交互和通信。调用cinder组件对云主机所挂载的云硬盘中每个卷(volume)打印快照,得到云硬盘快照。另外,当cinder组件对云硬盘中卷(volume)快照结束后,nova组件再次利用QGA对云主机文件系统执行解冻,恢复云主机对挂载的云硬盘进行IO。
步骤S202,获取云硬盘快照信息,并获取云硬盘对应的云硬盘信息,其中,云硬盘快照信息用于描述云硬盘快照的对应信息,云硬盘信息用于描述云硬盘的对应信息。
具体地,nova组件从glance数据库中获取0Kb快照,0Kb快照中记录着云硬盘快照的云硬盘快照信息,云硬盘快照信息用于描述云硬盘快照的对应信息,例如:云硬盘快照的名称、ID、地址等信息,glance数据库只是用来对云硬盘快照进行管理,指挥cinder生成云硬盘快照、备份云硬盘快照等,而不需要保存云硬盘快照的数据,因此,glance数据库只需要保存上述云硬盘快照的对应信息。云硬盘快照的对应信息数据量比较小,本领域技术人员习惯将其称作0Kb快照。nova组件获取云主机中云硬盘对应的云硬盘信息,云硬盘信息用于描述云硬盘的对应信息,例如:云硬盘的名称、ID、序列号等。nova组件获取云硬盘快照信息和云硬盘信息,便于后续根据这些信息调用cinder组件,对指定的云硬盘快照进行备份。
步骤S203,根据云硬盘快照信息和云硬盘信息,向第二组件发送第一调用指令,其中,第一调用指令用于指示第二组件对云主机的云硬盘进行备份。
具体地,nova组件利用云硬盘快照信息和云硬盘快照对应的云硬盘信息,向cinder组件发送第一调用指令,通过第一调用指令调用cinder组件,根据用户指定的目标备份存储集群和备份类型,对云主机的云硬盘进行备份,例如:根据云硬盘快照中的数据在目标备份存储集群中创建对应的备份云硬盘,例如:备份系统盘和备份数据盘。备份类型例如:增量备份、全量备份、差异备份等。
如图3所示,在cinder组件完成对云主机的云硬盘进行备份后,nova组件会清理glance数据库中的0Kb快照。
本实施例提供的云主机备份方法,第一组件控制云主机停止读写操作,避免在对云主机备份过程中,读写导致备份失败。根据云硬盘快照信息和云硬盘信息,调用第二组件,利用第二对云主机的云硬盘进行备份。仅利用第一组件和第二组件便实现了对云主机的云硬盘进行备份,操作简单、成本低。解决了相关技术存在对云主机进行备份时方法单一,操作复杂且成本过高的问题。
在一些可选的实施方式中,在向第二组件发送第一调用指令之后,方法还包括:
获取备份恢复请求,其中,备份恢复请求包含待恢复云主机;
在待恢复云主机为原云主机的情况下,判断原云主机是否处于接入状态,其中,原云主机为备份过的云主机,原云主机挂载有原云硬盘;
如果原云主机处于接入状态,则控制原云主机关机,并向第二组件发送第二调用指令,其中,第二调用指令用于指示第二组件将备份数据恢复到原云主机;
获取原云硬盘的状态,判断原云硬盘的状态是否为可用状态,如果是,则获取预设元数据,利用预设元数据设置原云硬盘的设置策略,并控制原云主机开机;
在待恢复云主机为待创建云主机的情况下,获取备份云硬盘的备份状态,并判断备份状态是否为可用状态,其中,备份云硬盘用于存储备份数据;
如果备份状态是可用状态,则向第二组件发送第三调用指令,其中,第三调用指令用于指示第二组件将备份数据恢复到待创建云主机。
具体地,结合图1进行说明,当生产存储集群A发生故障,导致客户云主机业务中断,如果故障修复的快,用户会下发备份恢复请求,将备份存储集群B中的备份数据恢复到生产存储集群A中虚拟机(VM)的云硬盘上,云硬盘包括系统盘和各个数据盘。当生产存储集群A长时间故障时,用户会下发备份恢复请求,使用云主机备份恢复至新云主机,例如:生产存储集群C,将备份存储集群B中的备份数据恢复到生产存储集群C,在生产存储集群C中新建对应云硬盘,并创建云主机挂载这些云硬盘,具体包括:
用户会下发备份恢复请求,备份恢复请求中包含待恢复云主机,待恢复云主机可以为原云主机,也可以为待创建云主机,其中,原云主机就是步骤S201-步骤S203调用第二组件进行备份的云主机,待创建云主机是源主机之外的新云主机,此时新云主机并未创建,暂时称作待创建云主机。
在待恢复云主机为原云主机的情况下,nova组件会检查(check)原云主机是否还存在,可以通过判断原云主机是否处于接入状态来判断其是否还存在,如果原云主机不处于接入状态,则原云主机不存在,不支持恢复到原云主机并生成反馈信息。如果原云主机处于接入状态,则原云主机存在,nova组件会控制原云主机关机,并向cinder组件发送第二调用指令,调用cinder组件将目标备份存储集群中的备份数据恢复到原云主机。上述过程如图4所示:用户下发请求:备份恢复至原云主机,nova组件check原云主机是否还在。原云主机还在,则关机。调用cinder用备份恢复原云硬盘数据。
nova组件轮询原云主机中的原云硬盘的状态,判断原云硬盘的状态是否为可用状态(in-use状态),如果所有云硬盘都成了in-use状态,才说明原云主机的所有原云硬盘数据完成恢复。nova组件需要将当前原云硬盘的关键元数据恢复到备份时刻,因此,nova组件需要获取原云主机备份时刻的关键元数据即预设元数据,例如:是否设置了蓝屏策略、云硬盘的IO策略中IO大小等,利用预设元数据设置原云硬盘的设置策略,设置策略例如:蓝屏策略、IO策略等。设置完毕后,控制原云主机开机,客户业务运行。上述过程如图4所示:nova轮询检查这些被恢复云硬盘所处状态,直到所有云硬盘状态均变为in-use,此时云主机数据恢复。nova将云主机关键数据恢复至备份时刻。云主机开机,用户业务恢复运行。
在待恢复云主机为待创建云主机的情况下,nova组件首先向目标备份存储集群中的cinder backup(cinder备份)请求获得云硬盘备份详情,云硬盘备份详情中包含备份云硬盘的备份状态,判断备份状态是否为可用状态,只有所有备份云硬盘的备份状态均可用才可进行备份恢复至新云主机即待创建云主机。
如果备份状态是可用状态,nova组件向第二组件发送第三调用指令,再次调用cinder组件,cinder组件会根据备份云硬盘中的备份数据,在用户指定的目标生产存储集群中创建新建云硬盘,nova组件创建该待创建云主机,使得待创建云主机挂载这些新建云硬盘,至此备份数据就恢复到待创建云主机上。上述过程如图5所示:用户下发请求:备份恢复至新云主机。nova请求获得云硬盘备份详情,判断status(状态)是否为available(可用),请求利用备份数据新建云硬盘到用户指定存储,利用邢建云硬盘创建新云主机。
在本实施方式中,备份恢复请求中的待恢复云主机既可以是原云主机也可以是待创建云主机。本发明利用第一组件和第二组件,既支持将待恢复数据恢复到原云主机,又支持利用待恢复数据创建待创建云主机,将待恢复数据恢复到待创建云主机上。
在本实施例中提供了一种云主机备份方法,可用于上述的计算机设备,图6是根据本发明实施例的云主机备份方法的流程图,该方法应用于第二组件,如图6所示,该流程包括如下步骤:
步骤S601,获取云主机备份指令,并根据云主机备份指令得到备份类型和目标备份存储集群。
具体地,nova组件为第一组件,cinder组件为第二组件。
结合图3对本实施例进行说明。用户下发云主机备份指令,例如:云主机整机备份请求,第一组件和第二组件均会得到该云主机备份指令。第一组件控制云主机备份指令对应的云主机停止对云主机挂载的云硬盘进行读写操作后,会调用cinder组件对云主机所挂载的云硬盘中每个卷(volume)打印快照,得到云硬盘快照。
第二组件从云主机备份指令中得到用户指定的备份类型和目标备份存储集群,备份类型例如:增量备份、全量备份、差异备份等,用户指定目标备份存储集群来保存云硬盘的备份数据。
步骤S602,在云主机备份指令对应的云主机停止对云主机挂载的云硬盘进行读写操作之后,对所有云硬盘进行快照,得到云硬盘快照和云硬盘快照信息,其中,云硬盘用于存储云主机的系统和数据,云硬盘快照信息用于描述云硬盘快照的对应信息。
具体地,在云主机备份指令对应的云主机停止对云主机挂载的云硬盘进行读写操作之后,第二组件对云主机所挂载的云硬盘中每个数据卷(volume)打印快照,得到云硬盘快照,并生成云硬盘快照的名称、ID、地址等信息作为云硬盘快照信息,云硬盘包括:系统盘和数据盘,系统盘保存云主机的系统,数据盘保存云主机运行过程中产生的数据。
步骤S603,将云硬盘快照信息发送给第一组件。
具体地,将云硬盘快照信息发送给glance数据库,将云硬盘快照信息整理后保存在glance数据库中,glance数据库会根据云硬盘快照信息创建0Kb快照,nova组件会从glance数据库获取该0Kb快照,进而得到云硬盘快照信息。上述过程如图3所示,glance创建0Kb快照。
步骤S604,在接收到第一调用指令的情况下,根据备份类型和云硬盘快照,在目标备份存储集群中,对云主机的云硬盘进行备份。
具体地,第一组件利用glance数据库中第二组件生成的云硬盘快照信息和云硬盘快照对应的云硬盘信息调用第二组件,根据用户指定的备份类型和云硬盘快照,在目标备份存储集群中,对云主机的云硬盘进行备份。结合图3进行说明,cinder组件根据用户指定的备份存储集群和备份策略创建对应卷备份,例如:如果备份类型是全量备份,则第二组件根据云硬盘快照在目标备份存储集群生成备份云硬盘,将所有云硬盘快照的数据写入对应的备份云硬盘;如果备份类型是增量备份,则根据云硬盘快照和目标备份存储集群中保存的已有备份数据,确定云硬盘快照相对于已有备份数据的增量数据,可以根据日志中数据对应时间确定增量数据,并将增量数据写入目标备份存储集群;如果备份类型是差异备份,则将云硬盘快照和已有备份数据进行对比,确定差异数据,将差异数据写入目标备份存储集群。
在完成对云主机的云硬盘进行备份后,第二组件会清除备份过程中的云硬盘快照,第一组件会清楚glance数据库中保存的云硬盘快照信息和0Kb快照。如图3所示:cinder组件所有卷备份创建成功后,清理卷快照。Nova清理0kb快照。
本实施例提供的云主机备份方法,本发明支持指定目标备份存储集群和多种备份类型,本发明备份方式多样、灵活。第二组件根据指定的备份类型,利用云硬盘快照在目标备份存储集群中,对云主机的云硬盘进行备份。仅利用第一组件和第二组件便实现了对云主机的云硬盘进行备份,操作简单、成本低。解决了相关技术存在对云主机进行备份时方法单一,操作复杂且成本过高的问题。
在一些可选的实施方式中,根据备份类型和云硬盘快照,在目标备份存储集群中,对云主机的云硬盘进行备份,包括:
在备份类型为全量备份的情况下,在目标备份存储集群中创建备份云硬盘,其中,备份云硬盘用于创建备份云主机,备份云主机会挂载备份云硬盘;
根据云硬盘快照得到待备份数据;
根据预设备份策略,将待备份数据写入备份云硬盘。
具体地,在用户指定的备份类型为全量备份的情况下,即需要将云主机中的所有数据都进行备份,cinder组件会根据云硬盘的架构,在目标备份存储集群中创建备份云硬盘,例如:如图1所示,生产存储集群A中的虚拟机(VM)为需要备份的云主机,该云主机中存在系统盘、数据盘1以及数据盘2,如果备份存储集群B为目标备份存储集群,则cinder组件会在备份存储集群B中对应创建备份系统盘、备份数据盘3以及备份数据盘4。之后,nova组件会根据备份系统盘、备份数据盘3以及备份数据盘4创建备份虚拟机即备份云主机,备份云主机会挂载这些备份云硬盘。
因为备份类型为全量备份,cinder组件直接将云硬盘快照中的所有数据作为待备份数据。根据预设备份策略,将待备份数据写入对应的备份云硬盘,例如:将待备份数据中的系统写入备份系统盘,将待备份数据中云主机运行过程中的数据写入备份数据盘。预设备份策略例如:将待备份数据串行写入备份云硬盘,即将待备份数据依次写入对应的备份云硬盘;将待备份数据并行写入备份云硬盘,即将待备份数据进行分组,不同分组的待备份数据同时写入对应的备份云硬盘。
在本实施方式中,第二组件在目标备份存储集群中创建备份云硬盘,并将待备份数据写入备份云硬盘。实现了对云主机进行全量备份,丰富了本发明的备份方式。
在一些可选的实施方式中,根据备份类型和云硬盘快照,在目标备份存储集群中,对云主机的云硬盘进行备份,包括:
在备份类型为增量备份的情况下,从目标备份存储集群中的备份云硬盘中获取第一历史备份数据和第一历史备份数据的有效状态;
在有效状态为正常状态的情况下,根据云硬盘快照和第一历史备份数据确定第一增量数据,并将第一增量数据作为待备份数据;
在有效状态为异常状态的情况下,从备份云硬盘中获取第二历史备份数据,根据云硬盘快照和第二历史备份数据确定第二增量数据,并将第二增量数据作为待备份数据,其中,第二历史备份数据存入备份云硬盘的时间早于第一历史备份数据;
根据预设备份策略,将待备份数据写入备份云硬盘。
具体地,本实施例由cinder组件执行。在云平台应用中,备份包含creating(创建)和error(错误)两种状态,传统增量备份是一个链式结构,一旦parent backup(父备份)的状态不是创建状态,子备份就无法创建。本发明提出一种全新的增量备份方式linkedtreebackup(关联树备份),利用linked treebackup进行备份,如果在创建子备份时发现父备份的状态是不可用的时候,可以向父备份的上一代备份进行追溯,并依据父备份的上一代备份为基准创建子备份,这样就可以解决传统增量备份,上代备份不可用,后续就无法创建增量备份的问题。
在用户指定的备份类型为增量备份的情况下,即云主机在某一备份时刻已经被备份过了,需要将该备份时刻之后产生的数据进行备份。如图7所示,目标备份存储集群中存在base_backup0全量(始祖备份)、backup1初代增量、backup2二代增量、backup3三代增量、backup4四代增量、backup5五代增量,其中,base_backup0表示初始时刻对云主机进行的全量备份,backup1表示在初始时刻之后,备份时刻1对云主机之后产生的数据进行备份后生成的初代增量,backup2表示在备份时刻1之后,备份时刻2对云主机再之后产生的数据进行备份后生成的二代增量……
结合图7对本实施例进行说明:cinder组件从目标备份存储集群中的备份云硬盘中获取与当前时刻最接近的备份数据作为第一历史备份数据,并获取第一历史备份数据的有效状态,例如:如果距离当前最近的时刻为初始时刻,则第一历史备份数据为base_backup0,如果距离当前最近的时刻为备份时刻3,则第一历史备份数据为backup3。有效状态如图7所示,base_backup0的有效状态为正常备份、backup1和backup2为正常备份、backup3为异常备份即三代增量为错误状态,其中,目标备份存储集群会记录每次备份的状态,正常备份表示备份数据能够正常访问、能够用于恢复云主机,异常备份表示不能正常访问、不能恢复云主机。
在第一历史备份数据的有效状态为正常状态的情况下,例如:如果第一历史备份数据为backup1,为正常备份即正常状态,则将云硬盘快照中的数据与第一历史备份数据进行对比,确定相对于第一历史备份数据,云硬盘快照中新增的第一增量数据,并将第一增量数据作为待备份数据。对比方式例如:根据日志中记录的时间戳,将第一历史备份数据中最晚时间戳之后的云硬盘快照中的数据作为第一增量数据。
在第一历史备份数据的有效状态为异常状态的情况下,例如:如果第一历史备份数据为backup3,为异常备份即异常状态,需要从备份云硬盘中获取第一历史备份数据前一个备份时刻的历史备份数据,例如:backup3前一个备份时刻的备份数据为backup2,则第二历史备份数据为backup2。将云硬盘快照中的数据与第二历史备份数据进行对比,确定相对于第二历史备份数据,云硬盘快照中新增的第二增量数据,并将第二增量数据作为待备份数据。
根据预设备份策略,将待备份数据写入备份云硬盘,预设备份策略例如:将待备份数据串行写入备份云硬盘,即将待备份数据依次写入对应的备份云硬盘;将待备份数据并行写入备份云硬盘,即将待备份数据进行分组,不同分组的待备份数据同时写入对应的备份云硬盘。
在本实施方式中,根据云硬盘快照和备份云硬盘中的备份数据,确定增量数据,并将增量数据写入备份云硬盘,实现了对云主机进行增量备份,丰富了本发明的备份方式。并且,相较于已有增量备份方法,本发明即便第一历史备份数据异常依然可以确定增量数据。
在一些可选的实施方式中,根据预设备份策略,将待备份数据写入备份云硬盘,包括:
根据预设规则和预设片段大小,将待备份数据划分成第一预设数量个数据片段,其中,每个数据片段的大小为预设片段大小;
生成数据片段对应的索引表和元数据文件,其中,索引表包含每个数据片段的索引值,索引值用于确定数据片段,元数据文件包含每个数据片段的目标完整性校验值;
根据备份任务调度和协调机制调用目标备份存储集群中的第二预设数量个备份节点,根据索引表,将数据片段并行传输至对应的备份节点,并控制备份节点并行处理数据片段;
在备份节点并行处理数据片段的过程中,解压数据片段,得到需要写入备份节点的待写入数据;
根据待写入数据得到待写入数据的当前完整性校验值,并判断当前完整性校验值和目标完整性校验值是否一致;
如果一致,将待写入数据写入对应的备份节点。
具体地,本实施例由cinder组件执行。为了提升在目标备份存储集群中创建云主机备份的速度,本实施例提出预设备份策略,通过将待备份数据分成多个数据片段,每个数据片段由不同的备份节点并行传输和处理。通过合理划分数据片段和并行传输,用以提高吞吐量和整体备份速度。
设定划分数据片段时的预设规则和预设片段大小,预设规则例如:平均划分,使每个数据片段的数据大小适中且适中,使得每个备份节点能够分担较为均衡的工作量;根据备份节点的处理能力进行划分,使传输速度大、存储空间大的备份节点处理数据更大的数据片段。预设片段大小例如:50GB、100GB、200GB等,可根据待备份数据总大小设定。根据预设规则和预设片段大小,将待备份数据划分成第一预设数量个数据片段,第一预设数量表示多个,根据实际需求设定,例如:如果待备份数据是大小为1000GB的云硬盘数据,目标备份存储集群中有10个备份节点,可以将待备份数据划分为10个大小相等的数据片段,第一预设数量等于10,每个数据片段的大小为100GB,即预设规则为平均划分、预设片段大小为100GB。这样,备份节点就可以同时并行传输与存储这10个数据片段,提升备份的效率和速度。
为了确保对待备份数据并行传输的正确性和完整性,需要对数据进行索引和元数据管理。生成数据片段对应的索引表和元数据文件,并由备份节点维护相应的索引表和元数据文件,索引表包含每个数据片段的索引值,索引值例如:每个数据片段的编号、大小、所属云硬盘的uuid(通用唯一识别码,Universally Unique Identifier)、所在节点的位置,相关联的数据片段的编号,索引值可以快速找到所需的数据片段,从而提高数据的访问效率。元数据文件主要记录数据完整性校验信息,包含每个数据片段的目标完整性校验值,例如:哈希(hash)值或签名。目标完整性校验值可以被用于识别和验证数据片段的完整性,以确保备份数据的一致性和可靠性。
对于众多云硬盘同时发送备份请求这种大规模的数据片段和并行传输,需要一个备份任务调度和协调机制来管理备份节点之间的资源分配和任务执行。可以使用中心化的调度器或分布式协调器来实现任务分配和进度监控。根据备份任务调度和协调机制调用目标备份存储集群中的第二预设数量个备份节点,第二预设数量表示多个,具体数值根据实际情况设定。利用备份节点根据索引表,将数据片段并行传输至对应的备份节点,并控制备份节点并行处理数据片段,其中,并行传输是指在备份过程中,同时使用多个备份节点并行传输数据片段的过程,每个备份节点负责处理和传输一个或多个数据分片。通过并行传输,可以同时利用多个备份节点的存储、计算能力和网络带宽,加快备份速度,提高系统的吞吐量。例如:假设当前备份集群部分备份节点出现异常,剩余有5个备份节点可用,第二预设数量等于5,那么可以将10个数据片段平均分配给这些备份节点,每个备份节点负责处理和传输2个数据片段,这样,这5个备份节点可以同时并行地处理和传输各自负责的数据片段,从而实现更快的备份速度。
在备份节点上,可以采用并行处理的方式对接收到的数据片段进行解压、校验和写入,具体包括:先解压数据片段,得到数据片段中需要写入备份节点的待写入数据。根据待写入数据得到待写入数据的当前完整性校验值,例如:将哈希值作为校验值,利用哈希算法计算待写入数据的当前完整性校验值。判断当前完整性校验值和元数据文件中对应的目标完整性校验值是否一致,如果一致,表示该数据片段数据完整,将待写入数据写入对应的备份节点。这样可以充分利用多核处理器或分布式计算资源,并提高备份节点的计算效率。
在本实施方式中,将待备份数据划分为数据片段,将数据片段并行传输至对应的备份节点,并控制备份节点并行处理数据片段。通过将待备份数据分片并进行并行传输,可以实现并发备份,提高数据备份的效率和速度。
在一些可选的实施方式中,在对云主机的云硬盘进行备份之后,方法还包括:
获取第二调用指令,根据第二调用指令得到原云主机,其中,原云主机为备份过的云主机,原云主机挂载有原云硬盘;
从备份云硬盘中获取第一待恢复数据,并将第一待恢复数据写入对应的原云硬盘;
调整原云硬盘的状态为可用状态;
获取第三调用指令,根据第三调用指令得到待创建云主机;
从备份云硬盘中获取第二待恢复数据,并获取待创建云主机对应的目标生产存储集群;
根据第二待恢复数据,在目标生产存储集群中创建新建云硬盘,其中,新建云硬盘包含第二待恢复数据,新建云硬盘用于创建待创建云主机。
具体地,在用户指定的待恢复云主机为原云主机的情况下,nova组件会向cinder组件发送第二调用指令,调用cinder组件将目标备份存储集群中的备份数据恢复到原云主机。
cinder组件获取到第二调用指令后,从第二调用指令中确定用户指定的待恢复云主机为原云主机,原云主机挂载有原云硬盘。cinder组件从目标备份存储集群中备份云主机挂载的备份云硬盘中获取第一待恢复数据,并将第一待恢复数据写入对应的原云硬盘,第一待恢复数据为备份云硬盘中保存的原云主机的系统和运行过程的数据,能够使原云主机恢复客户云主机业务。将第一待恢复数据写入对应的原云硬盘之后,调整原云硬盘的状态为可用状态,nova确定原云硬盘的状态为可用状态后,会控制原云主机开机,恢复客户云主机业务。
在用户指定的待恢复云主机为待创建云主机的情况下,nova组件向第二组件发送第三调用指令,再次调用cinder组件,cinder组件会根据备份云硬盘中的备份数据,在用户指定的目标生产存储集群中创建新建云硬盘。cinder组件获取第三调用指令,从第三调用指令中确定用户指定的待恢复云主机为待创建云主机。cinder组件从目标备份存储集群中备份云主机挂载的备份云硬盘中获取第二待恢复数据,第二待恢复数据为备份云硬盘中保存的原云主机的系统和运行过程的数据,能够在用户指定的目标生产存储集群中创建新建云硬盘,新建云硬盘包括新建系统盘和新建数据盘,cinder组件将原云主机的系统写入新建系统盘,将原云主机运行过程的数据写入新建数据盘。后续nova组件会根据新建云硬盘创建待创建云主机,使得待创建云主机挂载上述新建云硬盘。
在本实施方式中,第二组件既支持将备份云硬盘中的待恢复数据恢复到原云主机,又支持利用待恢复数据创建新建云硬盘,将待恢复数据恢复到新建云硬盘上,能够尽快恢复云主机业务,减少业务停机时间。
在一些可选的实施方式中,方法还包括:
获取备份云硬盘中备份数据的访问频率,并获取第一频率阈值和第二频率阈值;
根据访问频率将备份数据划分为不同的数据分片,并生成数据分片的索引信息;
获取云硬盘的存储空间和存储空间的读取速度,并获取第一速度阈值和第二速度阈值;
根据读取速度将存储空间划分为第一存储区间、第二存储区间以及第三存储区间,其中,第一存储区间的读取速度大于或等于第二速度阈值,第二存储区间的读取速度小于或等于第一速度阈值,第三存储区间的读取速度小于第二速度阈值且大于第一速度阈值;
将对应访问频率大于或等于第二频率阈值的数据分片放入第一存储区间;
将对应访问频率小于或等于第一频率阈值的数据分片放入第二存储区间;
将对应访问频率大于第一频率阈值且小于第二频率阈值的数据分片放入第三存储区间;
当从备份云硬盘中获取待恢复数据时,先获取目标索引信息,并将目标索引信息对应的数据分片进行拼接,得到待恢复数据,其中,目标索引信息包含于索引信息。
具体地,本实施例由cinder组件执行。云硬盘备份存储侧提升备份还原速度。在云硬盘数据还原过程中,根据数据分片的访问频率和重要性,采用智能的还原策略。将较不常访问的数据分片存储在具有较低的成本和较慢的访问速度的存储空间中;而将常访问的数据片段存储在具有更高的成本和更快的访问速度的存储空间中。通过智能的数据管理和调度,可以在满足性能需求的同时降低存储成本。
获取备份云硬盘中备份数据的还原请求次数即访问频率,并获取第一频率阈值和第二频率阈值,第一频率阈值例如:每月5次,第二频率阈值例如:每月10次。根据访问频率将备份数据划分为不同的数据分片,例如:将每月访问次数少于5次的数据划分为一类数据分片;将每月访问次数大于10次的数据划分为另一类数据分片;将每月访问次数在5-10次之间的数据划分为又一类数据分片。生成每个数据分片的索引信息,索引信息例如:序号、ID、名称等,通过索引信息能够区分每个数据分片。
获取云硬盘的存储空间和存储空间的读取速度,并获取第一速度阈值和第二速度阈值,第一速度阈值例如:200MB/s,第二速度阈值例如:500MB/s。对云硬盘存储空间划分存储层级,划分为第一存储区间、第二存储区间以及第三存储区间。第三存储区间的读取速度小于等于200MB/s,属于成本较低、访问速度较慢的高性价比存储层,适用于保存不常访问的数据分片;第二存储区间的读取速度大于200MB/s小于500MB/s,属于性能和成本之间取得平衡的高性能存储层,适用于保存中等访问频率的数据分片;第一存储区间的读取速度大于等于500MB/s,属于性能最高但成本最高的高性能存储层,适用于经常访问的数据分片。
通过对数据分片所执行的还原请求次数进行统计分析访问频繁,通过对数据分片打标签的形式标记该数据分片应该被分配到哪个存储区间。将对应访问频率大于或等于第二频率阈值的数据分片放入第一存储区间;将对应访问频率小于或等于第一频率阈值的数据分片放入第二存储区间;将对应访问频率大于第一频率阈值且小于第二频率阈值的数据分片放入第三存储区间。
另外,本发明设置了一个每周定时任务,该定时任务根据平时收集统计得到的各数据分片还原请求执行频率来对这些数据分片进行迁移,自动将数据分片从一个层级转移到另一个层级,确保数据分片能够在合适的存储区间上进行管理和存储。通过统计学习云硬盘数据还原请求对以往数据分片的访问频率能够更有经验更智能地动态调整数据分片的存储位置,使得以后云硬盘还原变得更加快速。
当从备份云硬盘中获取待恢复数据时,先获取目标索引信息,通过目标索引信息快速找到所需的数据分片,将目标索引信息对应的数据分片按照相应的顺序组装起来,最终还原成完整的云硬盘数据即待恢复数据。
在本实施方式中,第二组件通过统计备份云硬盘中备份数据的还原请求调用次数,计算访问频率,按照访问频率高低划分数据分片,并合理调度数据分片迁移到对应的存储区间,节约了存储资源、提升了备份数据还原的速率。
在本实施例中还提供了一种云主机备份装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种云主机备份装置,该装置部署在第一组件,如图8所示,包括:
第一控制模块801,用于在接收到云主机备份指令的情况下,控制云主机备份指令对应的云主机停止对云主机挂载的云硬盘进行读写操作,其中,云硬盘用于存储云主机的系统和数据;
第一获取模块802,用于获取云硬盘快照信息,并获取云硬盘对应的云硬盘信息,其中,云硬盘快照信息用于描述云硬盘快照的对应信息,云硬盘信息用于描述云硬盘的对应信息;
第一发送模块803,用于根据云硬盘快照信息和云硬盘信息,向第二组件发送第一调用指令,其中,第一调用指令用于指示第二组件对云主机的云硬盘进行备份。
在一些可选的实施方式中,该装置还包括:
第三获取模块,用于获取备份恢复请求,其中,备份恢复请求包含待恢复云主机;
判断模块,用于在待恢复云主机为原云主机的情况下,判断原云主机是否处于接入状态,其中,原云主机为备份过的云主机,原云主机挂载有原云硬盘;
第二控制模块,用于如果原云主机处于接入状态,则控制原云主机关机,并向第二组件发送第二调用指令,其中,第二调用指令用于指示第二组件将备份数据恢复到原云主机;
第四获取模块,用于获取原云硬盘的状态,判断原云硬盘的状态是否为可用状态,如果是,则获取预设元数据,利用预设元数据设置原云硬盘的设置策略,并控制原云主机开机;
第五获取模块,用于在待恢复云主机为待创建云主机的情况下,获取备份云硬盘的备份状态,并判断备份状态是否为可用状态,其中,备份云硬盘用于存储备份数据;
第三发送模块,用于如果备份状态是可用状态,则向第二组件发送第三调用指令,其中,第三调用指令用于指示第二组件将备份数据恢复到待创建云主机。
本实施例提供一种云主机备份装置,该装置部署在第二组件,如图9所示,包括:
第二获取模块901,用于获取云主机备份指令,并根据云主机备份指令得到备份类型和目标备份存储集群;
快照模块902,用于在云主机备份指令对应的云主机停止对云主机挂载的云硬盘进行读写操作之后,对所有云硬盘进行快照,得到云硬盘快照和云硬盘快照信息,其中,云硬盘用于存储云主机的系统和数据,云硬盘快照信息用于描述云硬盘快照的对应信息;
第二发送模块903,用于将云硬盘快照信息发送给第一组件;
备份模块904,用于在接收到第一调用指令的情况下,根据备份类型和云硬盘快照,在目标备份存储集群中,对云主机的云硬盘进行备份。
在一些可选的实施方式中,备份模块904包括:
创建单元,用于在备份类型为全量备份的情况下,在目标备份存储集群中创建备份云硬盘,其中,备份云硬盘用于创建备份云主机,备份云主机会挂载备份云硬盘;
得到单元,用于根据云硬盘快照得到待备份数据;
第一写入单元,用于根据预设备份策略,将待备份数据写入备份云硬盘。
在一些可选的实施方式中,备份模块904包括:
第一获取单元,用于在备份类型为增量备份的情况下,从目标备份存储集群中的备份云硬盘中获取第一历史备份数据和第一历史备份数据的有效状态;
确定单元,用于在有效状态为正常状态的情况下,根据云硬盘快照和第一历史备份数据确定第一增量数据,并将第一增量数据作为待备份数据;
第二获取单元,用于在有效状态为异常状态的情况下,从备份云硬盘中获取第二历史备份数据,根据云硬盘快照和第二历史备份数据确定第二增量数据,并将第二增量数据作为待备份数据,其中,第二历史备份数据存入备份云硬盘的时间早于第一历史备份数据;
第二写入单元,用于根据预设备份策略,将待备份数据写入备份云硬盘。
在一些可选的实施方式中,第二写入单元包括;
划分子模块,用于根据预设规则和预设片段大小,将待备份数据划分成第一预设数量个数据片段,其中,每个数据片段的大小为预设片段大小;
生成子模块,用于生成数据片段对应的索引表和元数据文件,其中,索引表包含每个数据片段的索引值,索引值用于确定数据片段,元数据文件包含每个数据片段的目标完整性校验值;
调用子模块,用于根据备份任务调度和协调机制调用目标备份存储集群中的第二预设数量个备份节点,根据索引表,将数据片段并行传输至对应的备份节点,并控制备份节点并行处理数据片段;
解压子模块,用于在备份节点并行处理数据片段的过程中,解压数据片段,得到需要写入备份节点的待写入数据;
判断子模块,用于根据待写入数据得到待写入数据的当前完整性校验值,并判断当前完整性校验值和目标完整性校验值是否一致;
写入子模块,用于如果一致,将待写入数据写入对应的备份节点。
在一些可选的实施方式中,该装置还包括:
第六获取模块,用于获取第二调用指令,根据第二调用指令得到原云主机,其中,原云主机为备份过的云主机,原云主机挂载有原云硬盘;
写入模块,用于从备份云硬盘中获取第一待恢复数据,并将第一待恢复数据写入对应的原云硬盘;
调整模块,用于调整原云硬盘的状态为可用状态;
第七获取模块,用于获取第三调用指令,根据第三调用指令得到待创建云主机;
第八获取模块,用于从备份云硬盘中获取第二待恢复数据,并获取待创建云主机对应的目标生产存储集群;
创建模块,用于根据第二待恢复数据,在目标生产存储集群中创建新建云硬盘,其中,新建云硬盘包含第二待恢复数据,新建云硬盘用于创建待创建云主机。
在一些可选的实施方式中,该装置还包括:
第九获取模块,用于获取备份云硬盘中备份数据的访问频率,并获取第一频率阈值和第二频率阈值;
第一划分模块,用于根据访问频率将备份数据划分为不同的数据分片,并生成数据分片的索引信息;
第十获取模块,用于获取云硬盘的存储空间和存储空间的读取速度,并获取第一速度阈值和第二速度阈值;
第二划分模块,用于根据读取速度将存储空间划分为第一存储区间、第二存储区间以及第三存储区间,其中,第一存储区间的读取速度大于或等于第二速度阈值,第二存储区间的读取速度小于或等于第一速度阈值,第三存储区间的读取速度小于第二速度阈值且大于第一速度阈值;
第一放入模块,用于将对应访问频率大于或等于第二频率阈值的数据分片放入第一存储区间;
第二放入模块,用于将对应访问频率小于或等于第一频率阈值的数据分片放入第二存储区间;
第三放入模块,用于将对应访问频率大于第一频率阈值且小于第二频率阈值的数据分片放入第三存储区间;
拼接模块,用于当从备份云硬盘中获取待恢复数据时,先获取目标索引信息,并将目标索引信息对应的数据分片进行拼接,得到待恢复数据,其中,目标索引信息包含于索引信息。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的云主机备份装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图8和图9所示的云主机备份装置。
请参阅图10,图10是本发明可选实施例提供的一种计算机设备的结构示意图,如图10所示,该计算机设备包括:一个或多个处理器11、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图10中以一个处理器11为例。
处理器11可以是中央处理器,网络处理器或其组合。其中,处理器11还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器11执行的指令,以使至少一个处理器11执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器11远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (12)
1.一种云主机备份方法,其特征在于,所述方法应用于第一组件,所述方法包括:
在接收到云主机备份指令的情况下,控制所述云主机备份指令对应的云主机停止对所述云主机挂载的云硬盘进行读写操作,其中,所述云硬盘用于存储所述云主机的系统和数据;
获取云硬盘快照信息,并获取所述云硬盘对应的云硬盘信息,其中,所述云硬盘快照信息用于描述所述云硬盘快照的对应信息,所述云硬盘信息用于描述所述云硬盘的对应信息;
根据所述云硬盘快照信息和所述云硬盘信息,向第二组件发送第一调用指令,其中,所述第一调用指令用于指示所述第二组件对所述云主机的所述云硬盘进行备份。
2.根据权利要求1所述的方法,其特征在于,在所述向第二组件发送第一调用指令之后,所述方法还包括:
获取备份恢复请求,其中,所述备份恢复请求包含待恢复云主机;
在所述待恢复云主机为原云主机的情况下,判断所述原云主机是否处于接入状态,其中,所述原云主机为备份过的云主机,所述原云主机挂载有原云硬盘;
如果所述原云主机处于接入状态,则控制所述原云主机关机,并向所述第二组件发送第二调用指令,其中,所述第二调用指令用于指示所述第二组件将备份数据恢复到所述原云主机;
获取所述原云硬盘的状态,判断所述原云硬盘的状态是否为可用状态,如果是,则获取预设元数据,利用所述预设元数据设置所述原云硬盘的设置策略,并控制所述原云主机开机;
在所述待恢复云主机为待创建云主机的情况下,获取备份云硬盘的备份状态,并判断所述备份状态是否为可用状态,其中,所述备份云硬盘用于存储所述备份数据;
如果所述备份状态是可用状态,则向所述第二组件发送第三调用指令,其中,所述第三调用指令用于指示所述第二组件将所述备份数据恢复到所述待创建云主机。
3.一种云主机备份方法,其特征在于,所述方法应用于第二组件,所述方法包括:
获取云主机备份指令,并根据所述云主机备份指令得到备份类型和目标备份存储集群;
在所述云主机备份指令对应的云主机停止对所述云主机挂载的云硬盘进行读写操作之后,对所有所述云硬盘进行快照,得到云硬盘快照和云硬盘快照信息,其中,所述云硬盘用于存储所述云主机的系统和数据,所述云硬盘快照信息用于描述所述云硬盘快照的对应信息;
将所述云硬盘快照信息发送给第一组件;
在接收到第一调用指令的情况下,根据所述备份类型和所述云硬盘快照,在所述目标备份存储集群中,对所述云主机的所述云硬盘进行备份。
4.根据权利要求3所述的方法,其特征在于,所述根据所述备份类型和所述云硬盘快照,在所述目标备份存储集群中,对所述云主机的所述云硬盘进行备份,包括:
在所述备份类型为全量备份的情况下,在所述目标备份存储集群中创建备份云硬盘,其中,所述备份云硬盘用于创建备份云主机,所述备份云主机会挂载所述备份云硬盘;
根据所述云硬盘快照得到待备份数据;
根据预设备份策略,将所述待备份数据写入所述备份云硬盘。
5.根据权利要求3所述的方法,其特征在于,所述根据所述备份类型和所述云硬盘快照,在所述目标备份存储集群中,对所述云主机的所述云硬盘进行备份,包括:
在所述备份类型为增量备份的情况下,从所述目标备份存储集群中的备份云硬盘中获取第一历史备份数据和所述第一历史备份数据的有效状态;
在所述有效状态为正常状态的情况下,根据所述云硬盘快照和所述第一历史备份数据确定第一增量数据,并将所述第一增量数据作为待备份数据;
在所述有效状态为异常状态的情况下,从所述备份云硬盘中获取第二历史备份数据,根据所述云硬盘快照和所述第二历史备份数据确定第二增量数据,并将所述第二增量数据作为所述待备份数据,其中,所述第二历史备份数据存入所述备份云硬盘的时间早于所述第一历史备份数据;
根据预设备份策略,将所述待备份数据写入所述备份云硬盘。
6.根据权利要求4或5所述的方法,其特征在于,所述根据预设备份策略,将所述待备份数据写入所述备份云硬盘,包括:
根据预设规则和预设片段大小,将所述待备份数据划分成第一预设数量个数据片段,其中,每个所述数据片段的大小为所述预设片段大小;
生成所述数据片段对应的索引表和元数据文件,其中,所述索引表包含每个所述数据片段的索引值,所述索引值用于确定所述数据片段,所述元数据文件包含每个所述数据片段的目标完整性校验值;
根据备份任务调度和协调机制调用目标备份存储集群中的第二预设数量个备份节点,根据所述索引表,将所述数据片段并行传输至对应的所述备份节点,并控制所述备份节点并行处理所述数据片段;
在所述备份节点并行处理所述数据片段的过程中,解压所述数据片段,得到需要写入所述备份节点的待写入数据;
根据所述待写入数据得到所述待写入数据的当前完整性校验值,并判断所述当前完整性校验值和所述目标完整性校验值是否一致;
如果一致,将所述待写入数据写入对应的所述备份节点。
7.根据权利要求4或5所述的方法,其特征在于,在所述对所述云主机的所述云硬盘进行备份之后,所述方法还包括:
获取第二调用指令,根据所述第二调用指令得到原云主机,其中,所述原云主机为备份过的云主机,所述原云主机挂载有原云硬盘;
从所述备份云硬盘中获取第一待恢复数据,并将所述第一待恢复数据写入对应的所述原云硬盘;
调整所述原云硬盘的状态为可用状态;
获取第三调用指令,根据所述第三调用指令得到待创建云主机;
从所述备份云硬盘中获取第二待恢复数据,并获取所述待创建云主机对应的目标生产存储集群;
根据所述第二待恢复数据,在所述目标生产存储集群中创建新建云硬盘,其中,所述新建云硬盘包含所述第二待恢复数据,所述新建云硬盘用于创建所述待创建云主机。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
获取所述备份云硬盘中备份数据的访问频率,并获取第一频率阈值和第二频率阈值;
根据所述访问频率将所述备份数据划分为不同的数据分片,并生成所述数据分片的索引信息;
获取所述云硬盘的存储空间和所述存储空间的读取速度,并获取第一速度阈值和第二速度阈值;
根据所述读取速度将所述存储空间划分为第一存储区间、第二存储区间以及第三存储区间,其中,所述第一存储区间的读取速度大于或等于所述第二速度阈值,所述第二存储区间的读取速度小于或等于所述第一速度阈值,所述第三存储区间的读取速度小于所述第二速度阈值且大于所述第一速度阈值;
将对应访问频率大于或等于所述第二频率阈值的数据分片放入所述第一存储区间;
将对应访问频率小于或等于所述第一频率阈值的数据分片放入所述第二存储区间;
将对应访问频率大于所述第一频率阈值且小于所述第二频率阈值的数据分片放入所述第三存储区间;
当从所述备份云硬盘中获取所述待恢复数据时,先获取目标索引信息,并将所述目标索引信息对应的数据分片进行拼接,得到所述待恢复数据,其中,所述目标索引信息包含于所述索引信息。
9.一种云主机备份装置,其特征在于,所述装置部署在应第一组件,所述装置包括:
第一控制模块,用于在接收到云主机备份指令的情况下,控制所述云主机备份指令对应的云主机停止对所述云主机挂载的云硬盘进行读写操作,其中,所述云硬盘用于存储所述云主机的系统和数据;
第一获取模块,用于获取云硬盘快照信息,并获取所述云硬盘对应的云硬盘信息,其中,所述云硬盘快照信息用于描述所述云硬盘快照的对应信息,所述云硬盘信息用于描述所述云硬盘的对应信息;
第一发送模块,用于根据所述云硬盘快照信息和所述云硬盘信息,向第二组件发送第一调用指令,其中,所述第一调用指令用于指示所述第二组件对所述云主机的所述云硬盘进行备份。
10.一种云主机备份装置,其特征在于,所述装置部署在第二组件,所述装置包括:
第二获取模块,用于获取云主机备份指令,并根据所述云主机备份指令得到备份类型和目标备份存储集群;
快照模块,用于在所述云主机备份指令对应的云主机停止对所述云主机挂载的云硬盘进行读写操作之后,对所有所述云硬盘进行快照,得到云硬盘快照和云硬盘快照信息,其中,所述云硬盘用于存储所述云主机的系统和数据,所述云硬盘快照信息用于描述所述云硬盘快照的对应信息;
第二发送模块,用于将所述云硬盘快照信息发送给第一组件;
备份模块,用于在接收到第一调用指令的情况下,根据所述备份类型和所述云硬盘快照,在所述目标备份存储集群中,对所述云主机的所述云硬盘进行备份。
11.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至8中任一项所述的云主机备份方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至8中任一项所述的云主机备份方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410223686.4A CN117992283A (zh) | 2024-02-28 | 2024-02-28 | 云主机备份方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410223686.4A CN117992283A (zh) | 2024-02-28 | 2024-02-28 | 云主机备份方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117992283A true CN117992283A (zh) | 2024-05-07 |
Family
ID=90888578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410223686.4A Pending CN117992283A (zh) | 2024-02-28 | 2024-02-28 | 云主机备份方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117992283A (zh) |
-
2024
- 2024-02-28 CN CN202410223686.4A patent/CN117992283A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797395B2 (en) | Application migration between environments | |
US11074143B2 (en) | Data backup and disaster recovery between environments | |
US20210224293A1 (en) | File system operation handling during cutover and steady state | |
US11663085B2 (en) | Application backup and management | |
CA2885059C (en) | Retrieving point-in-time copies of a source database for creating virtual databases | |
US10430284B2 (en) | Creating a full backup image from incremental backups | |
US10642633B1 (en) | Intelligent backups with dynamic proxy in virtualized environment | |
US9075771B1 (en) | Techniques for managing disaster recovery sites | |
US9377964B2 (en) | Systems and methods for improving snapshot performance | |
US11366682B1 (en) | Automatic snapshotting for recovery of instances with local storage | |
US20210406135A1 (en) | Automated development of recovery plans | |
CN110543385A (zh) | 一种虚拟化备份方法和虚拟化备份还原方法 | |
CN114661420B (zh) | 基于Kubernetes容器平台的应用保护方法、装置及系统 | |
CN115858086A (zh) | 数据恢复方法、数据恢复系统、设备及存储介质 | |
CN117992283A (zh) | 云主机备份方法、装置、计算机设备及存储介质 | |
US11474707B2 (en) | Data loss recovery in a secondary storage controller from a primary storage controller | |
CN112148532A (zh) | 硬盘数据的批量恢复方法、装置、存储介质及电子设备 | |
US20240095010A1 (en) | Configuration management for non-disruptive update of a data management system | |
US11892917B2 (en) | Application recovery configuration validation | |
US20230252045A1 (en) | Life cycle management for standby databases | |
US20240103975A1 (en) | Dynamic resource scaling for large-scale backups | |
US20240095230A1 (en) | Prechecking for non-disruptive update of a data management system | |
US20240160534A1 (en) | Snappable recovery chain over generic managed volume | |
WO2023121874A1 (en) | Backup, restore, and migration of cloud managed configuration properties | |
CN116775596A (zh) | 数据迁移方法及装置、服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |