searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

虚机整机备份一致性方案

2023-07-05 03:39:38
99
0

备份数据一致性概念:

首先我们先来了解一下备份一致性的概念:

不一致备份:云服务器中文件或磁盘数据的备份,不在同一时间点产生。

崩溃一致性备份:云服务器中文件或磁盘数据的备份,在同一时间点产生,但不会静默数据库等应用系统、不会备份内存数据,不保证应用系统备份的一致性。

应用一致性备份:文件/磁盘数据在同一时间点,并静默数据库刷新内存数据,保证应用系统备份的一致性。

 

应用一致性备份需要在云主机中安装对应的agent才能实现

 

工作原理:

友商实现分析:

对一台虚机进行整机备份时,备份服务对所有云盘发起打快照操作,这样一组快照会被组织成一个整机的恢复点,这些快照在快照控制台是可见的。若该虚机所有盘都是ESSD,这些盘会组成一致性快照组后打快照来保障整机的一致性。对于非ESSD云盘,备份服务则是同一时间为每块盘打快照,实际快照时间点可能会略有差异,不保障所有盘的快照时间点完全相同。

 

友商有个云盘一性快照组的概念: 一致性快照组

通过创建快照一致性组,您可以为一台或多台虚机实例中的多块云盘同时创建快照。快照一致性组能够保证在业务系统跨多块云盘的场景下,数据写入云盘的时序一致性,并保证其崩溃一致性。

  • 业务系统部署在跨虚机实例的集群文件系统中,且要求时序一致性以及崩溃一致性的数据库或企业级应用的场景。例如,基于虚机自建的MySQL集群,基于多个卷搭建LVM、Oracle、SAP HANA上云场景等。
  • 大型项目、多应用协同系统等分布式应用系统所需的统一创建快照的场景。
  • 需要对同一地域下多台虚机实例的云盘数据进行批量备份,且对时序一致性有较高要求的场景。

 

分析:

针对单台虚机备份,且对一致性要求不高的场景,可以实现崩溃一致性备份,对虚机先执行冻结IO,再对每一块盘进行快照。

针对多台虚机同时进行备份,或者对时序一致性有较高要求的,需要借助ceph的一致性组特性 ,而且需要实现应用一致性

否则,只能建议关机再执行备份。

 

ceph的一致性组:

一致性组可用于数据保护(快照,备份)和远程复制(镜像)。
镜像支持
将允许在同一个一致性组中设置多个卷的镜像(即将多个RBD图像附加到同一个日志以确保一致的重放)。
快照支持
将允许在同一时间点采集同一一致性组中的多个卷的快照,以确保数据一致性。

 

常用操作:

rbd group create
创建组

rbd group ls [-p | –pool pool-name]
列出组

rbd group image add
添加镜像到组

rbd group image list
列出组的镜像

rbd group image remove
从组移除镜像

rbd group rename
组改名

rbd group rm
删除组

rbd group snap create
一致性组打快照

rbd group snap list
列出一致性组的快照

rbd group snap rm
删除一致性组的快照

rbd group snap rename
一致性组改名

rbd group snap rollback
一致性组回滚

 

实现思路:

基于kubevirt + ceph实现

单台虚机崩溃一致性备份:

1.新建一个crd,参考VirtualMachineSnapshot逻辑(不能复用VirtualMachineSnapshot,会导致单盘快照依赖整机快照)

2.调用kubevirt接口冻结虚机-》打快照 -》等各个盘快照成功后 -》 解冻虚机 -》快照进行备份

3.整机恢复,默认只恢复挂载在虚机的磁盘,新建一个crd,参考VirtualMachineRestore实现,把整个恢复任务包装起来

 

多台虚机崩溃一致性备份:

1.需要用到ceph 一致性组功能,对多个盘同时创建一致性快照

2.k8s层需要创建新的快照组crd,进行逻辑控制

3.创建一致性组

4. 云盘加入到一致性组-》打快照 -》等各个盘快照成功后 -》快照进行备份

 

应用一致性备份:

1、开发虚机内部agent,实现边缘通过虚机agent调用虚机内脚本 (涉及子网访问,部署等问题)

qemu agent 有对应的接口,可以参考qemu-guest-agent/fsfreeze-hook

2、整机备份需要把虚机的所有云盘加入一致性组

3、调用agent冻结应用 -》 打快照 -》等各个盘快照成功后 -》调用agent解冻应用 -》快照进行备份

0条评论
0 / 1000
技术分享
4文章数
0粉丝数
技术分享
4 文章 | 0 粉丝
技术分享
4文章数
0粉丝数
技术分享
4 文章 | 0 粉丝
原创

虚机整机备份一致性方案

2023-07-05 03:39:38
99
0

备份数据一致性概念:

首先我们先来了解一下备份一致性的概念:

不一致备份:云服务器中文件或磁盘数据的备份,不在同一时间点产生。

崩溃一致性备份:云服务器中文件或磁盘数据的备份,在同一时间点产生,但不会静默数据库等应用系统、不会备份内存数据,不保证应用系统备份的一致性。

应用一致性备份:文件/磁盘数据在同一时间点,并静默数据库刷新内存数据,保证应用系统备份的一致性。

 

应用一致性备份需要在云主机中安装对应的agent才能实现

 

工作原理:

友商实现分析:

对一台虚机进行整机备份时,备份服务对所有云盘发起打快照操作,这样一组快照会被组织成一个整机的恢复点,这些快照在快照控制台是可见的。若该虚机所有盘都是ESSD,这些盘会组成一致性快照组后打快照来保障整机的一致性。对于非ESSD云盘,备份服务则是同一时间为每块盘打快照,实际快照时间点可能会略有差异,不保障所有盘的快照时间点完全相同。

 

友商有个云盘一性快照组的概念: 一致性快照组

通过创建快照一致性组,您可以为一台或多台虚机实例中的多块云盘同时创建快照。快照一致性组能够保证在业务系统跨多块云盘的场景下,数据写入云盘的时序一致性,并保证其崩溃一致性。

  • 业务系统部署在跨虚机实例的集群文件系统中,且要求时序一致性以及崩溃一致性的数据库或企业级应用的场景。例如,基于虚机自建的MySQL集群,基于多个卷搭建LVM、Oracle、SAP HANA上云场景等。
  • 大型项目、多应用协同系统等分布式应用系统所需的统一创建快照的场景。
  • 需要对同一地域下多台虚机实例的云盘数据进行批量备份,且对时序一致性有较高要求的场景。

 

分析:

针对单台虚机备份,且对一致性要求不高的场景,可以实现崩溃一致性备份,对虚机先执行冻结IO,再对每一块盘进行快照。

针对多台虚机同时进行备份,或者对时序一致性有较高要求的,需要借助ceph的一致性组特性 ,而且需要实现应用一致性

否则,只能建议关机再执行备份。

 

ceph的一致性组:

一致性组可用于数据保护(快照,备份)和远程复制(镜像)。
镜像支持
将允许在同一个一致性组中设置多个卷的镜像(即将多个RBD图像附加到同一个日志以确保一致的重放)。
快照支持
将允许在同一时间点采集同一一致性组中的多个卷的快照,以确保数据一致性。

 

常用操作:

rbd group create
创建组

rbd group ls [-p | –pool pool-name]
列出组

rbd group image add
添加镜像到组

rbd group image list
列出组的镜像

rbd group image remove
从组移除镜像

rbd group rename
组改名

rbd group rm
删除组

rbd group snap create
一致性组打快照

rbd group snap list
列出一致性组的快照

rbd group snap rm
删除一致性组的快照

rbd group snap rename
一致性组改名

rbd group snap rollback
一致性组回滚

 

实现思路:

基于kubevirt + ceph实现

单台虚机崩溃一致性备份:

1.新建一个crd,参考VirtualMachineSnapshot逻辑(不能复用VirtualMachineSnapshot,会导致单盘快照依赖整机快照)

2.调用kubevirt接口冻结虚机-》打快照 -》等各个盘快照成功后 -》 解冻虚机 -》快照进行备份

3.整机恢复,默认只恢复挂载在虚机的磁盘,新建一个crd,参考VirtualMachineRestore实现,把整个恢复任务包装起来

 

多台虚机崩溃一致性备份:

1.需要用到ceph 一致性组功能,对多个盘同时创建一致性快照

2.k8s层需要创建新的快照组crd,进行逻辑控制

3.创建一致性组

4. 云盘加入到一致性组-》打快照 -》等各个盘快照成功后 -》快照进行备份

 

应用一致性备份:

1、开发虚机内部agent,实现边缘通过虚机agent调用虚机内脚本 (涉及子网访问,部署等问题)

qemu agent 有对应的接口,可以参考qemu-guest-agent/fsfreeze-hook

2、整机备份需要把虚机的所有云盘加入一致性组

3、调用agent冻结应用 -》 打快照 -》等各个盘快照成功后 -》调用agent解冻应用 -》快照进行备份

文章来自个人专栏
整机备份
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0