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

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

快速全量克隆

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

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

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

全量克隆

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

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

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

链接克隆

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

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

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

快速全量克隆:

流程:

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虚拟化存储

相关推荐
Han.miracle几秒前
JavaScript 核心特性综合实战 —— 从函数到对象的深度应用
开发语言·前端·javascript
wjs20243 分钟前
C++ 文件和流
开发语言
BD_Marathon4 分钟前
注解开发依赖注入
java·开发语言
春日见7 分钟前
强化学习第一讲:强化学习是什么,强化学习分类
开发语言·jvm·人工智能·python·学习·matlab·强化学习
2501_941820498 分钟前
从权限失控到最小授权模型落地的互联网系统安全工程实践随笔与多语言语法思考
开发语言·python
宠..11 分钟前
QRadioButton方法大全
java·服务器·开发语言·数据库·qt
2501_9418204915 分钟前
面向系统降级与服务兜底机制的互联网架构设计思路与多语言工程实践分享总结
java·开发语言·spring
安如树16 分钟前
使用pnpm workspace管理多个软件包
开发语言·前端·javascript
峥无18 分钟前
《C++ STL 关联式容器完全指南:深度解析 map 与 set 的使用》
开发语言·c++·set·map
獨枭23 分钟前
C# 项目找不到命名空间的问题排查记录
开发语言·c#