虚拟机克隆的三种方式:全量克隆、快速全量克隆、链接克隆

虚拟机克隆的三种方式:全量克隆、快速全量克隆、链接克隆

快速全量克隆

特点:虚拟机启动快、拍平后数据独立

场景:快速发放独立的虚拟机,减少等待虚拟机部署完成时间,能够快速提供用户使用虚拟机。

实现方式:通过对源虚拟机打快照创建克隆卷,克隆卷创建完成后虚拟机即部署成功,可供用户开机使用,后台再起异步拍平克隆卷任务对克隆虚拟机的克隆卷进行拍平及删除原卷快照操作。

全量克隆

特点:虚拟机启动慢、数据最终独立

场景:克隆的虚拟机需要与源虚拟机完全隔离,无耦合关联。

实现方式:通过创建目标卷,在后台将源虚拟机挂载的原卷在主机上进行数据拷贝,拷贝完成后虚拟机才能开机供用户使用。

链接克隆

特点:虚拟机启动快、克隆虚拟机共用系统卷、数据非独立

场景:教育实训等场景需要快速发放虚拟机提供使用,克隆出的虚拟机共用系统卷(母卷)。

实现方式:对源虚拟机系统卷进行创建快照、目的虚拟机根据快照创建克隆卷。非系统卷仅创建新的卷。

快速全量克隆:

流程:

1、 虚拟机克隆/模板部署传入参数cloneMode为约定的数值

2、 遍历虚拟机绑定的卷,对卷创建快照、克隆卷

3、 虚拟机克隆成功,开机使用

4、 起异步拍平任务对克隆虚拟机的克隆卷进行拍平,删除源虚拟机原卷快照

**限制:**当前只支持分布式块存储到分布式块存储虚拟机克隆的快速全量克隆,具体限制查看下边《 限制汇总》。

全量克隆:

流程:

1、 虚拟机克隆/模板部署传入参数cloneMode为约定的数值

2、 遍历虚拟机绑定的卷,根据卷所在的存储类型创建目标卷

3、 通过cna调用qemu-img convert将原卷数据拷贝到目标卷中

4、 数据拷贝完成后虚拟机克隆成功,开机使用

**限制:**无

链接克隆:

流程:

1、 模板部署虚拟机传入参数cloneMode为约定的数值

2、 赋值isLinkClone为true

3、 遍历虚拟机绑定的卷,如果是系统卷,则创建快照、克隆卷;如果是非系统卷,则创建新卷

4、 查询卷创建是否完成,完成后开机使用

**限制:**当前只支持模板部署链接克隆虚拟机。

限制汇总

当前不同的克隆模式存在一些限制:

1 快速全量克隆

只有离线克隆才支持快速全量克隆模式;

只有源虚拟机/模板、目标虚拟机/模板的卷类型都为分布式块存储(FOS)才支持;

克隆/部署虚拟机的目标卷磁盘模式为独立非持久时不生效;

模板部署虚拟机时调整了卷容量(只有模板部署能调整卷容量)时不生效;

2 全量克隆

开机克隆只支持全量克隆模式;

3 链接克隆

只有模板部署虚拟机才支持链接克隆模式;

FOS->其他、其他->FOS不支持链接克隆;

链接克隆虚拟机的一些限制:

不支持克隆虚拟机;

系统盘不支持扩容;

不支持创建快照;

不支持迁移磁盘、虚拟机;

裸设备映射虚拟机不支持链接克隆;

不支持链接克隆虚拟机的容灾;

概念

拍平:

是一个术语,通常指的是将虚拟机的所有快照合并到基础磁盘中,使得虚拟机不再依赖于任何快照。此操作也被称为"合并"。 拍平 操作会消耗大量时间和存储资源,并且在这个过程中原始数据可能会受到影响。

FOS: 是分布式存储

Vims: 是ipsan虚拟化存储

相关推荐
q5673152326 分钟前
在 Bash 中获取 Python 模块变量列
开发语言·python·bash
许野平1 小时前
Rust: 利用 chrono 库实现日期和字符串互相转换
开发语言·后端·rust·字符串·转换·日期·chrono
也无晴也无风雨1 小时前
在JS中, 0 == [0] 吗
开发语言·javascript
狂奔solar1 小时前
yelp数据集上识别潜在的热门商家
开发语言·python
blammmp2 小时前
Java:数据结构-枚举
java·开发语言·数据结构
何曾参静谧2 小时前
「C/C++」C/C++ 指针篇 之 指针运算
c语言·开发语言·c++
暗黑起源喵2 小时前
设计模式-工厂设计模式
java·开发语言·设计模式
WaaTong2 小时前
Java反射
java·开发语言·反射
Troc_wangpeng2 小时前
R language 关于二维平面直角坐标系的制作
开发语言·机器学习
努力的家伙是不讨厌的2 小时前
解析json导出csv或者直接入库
开发语言·python·json