kvm几种快照的创建与删除
kevin.Zhu 发布于:2021-6-7 16:20 分类:文摘 有 21 人浏览,获得评论 0 条
https://blog.csdn.net/huangwei2014/article/details/88019853
[root@localhost ~]# virsh snapshot-create vm2
错误:不支持的配置:存储类型 vda 不支持磁盘 raw 的内部快照
[root@localhost ~]# virsh domblklist vm2
目标 源
------------------------------------------------
vda /disk3/vm2.raw
hda /disk3/vm2.iso
最好是用.qcow2的磁盘格式创建虚拟机
查看所有虚拟机
[root@localhost ~]# virsh list --all
Id 名称 状态
----------------------------------------------------
2 vm1 running
一、内置快照
1、创建
虚拟机关机状态
virsh snapshot-create-as vm1 centos1_sn1
虚拟机开机状态
virsh snapshot-create-as vm1 centos1_sn2
显示vm1的所有快照
[root@localhost ~]# virsh snapshot-list vm1
名称 生成时间 状态
------------------------------------------------------------
centos1_sn1 2019-02-28 10:15:47 +0800 running
centos1_sn2 2019-02-28 10:15:23 +0800 shutoff
其中running代表是开机状态创建的,shutoff是关机状态创建的
2、回滚
virsh snapshot-revert --domain vm1 centos1_sn1
3、快照删除
virsh snapshot-delete vm1 centos1_sn1
或者
virsh snapshot-delete --domain vm1 --snapshotname centos1_sn1
二、外置磁盘快照
准备工作
virsh destroy vm1 关闭虚拟机
[root@localhost ~]# virsh domblklist vm1
目标 源
------------------------------------------------
vda /disk3/vm1.qcow2
hda -
可以看到,当前所使用磁盘为vm1.qcow2,之前说过,外置磁盘快照创建时,会保存正在使用磁盘作为backing file(此磁盘不再接受新数据,只保存快照前的数据),并创建一个新的磁盘作为overlays以等待写入新数据
1、创建
[root@localhost ~]# virsh snapshot-create-as --domain vm1 vm1_sn1 --disk-only --diskspec vda,snapshot=external,file=/disk3/vm1_sn.qcow2 --atomic
已生成域快照 vm1_sn1
其中/disk3/vm1_sn.qcow2是新生成的磁盘快照
[root@localhost ~]# virsh domblklist vm1
目标 源
------------------------------------------------
vda /disk3/vm1_sn.qcow2
hda -
且正在使用的磁盘也已经更新到新创建的磁盘中去了
2、删除
-》查看磁盘快照
[root@localhost ~]# virsh snapshot-list vm1
名称 生成时间 状态
------------------------------------------------------------
vm1_sn1 2019-02-28 10:28:04 +0800 shutoff
vm1_sn2 2019-02-28 10:42:21 +0800 shutoff
vm1_sn3 2019-02-28 10:42:31 +0800 shutoff
-》外置磁盘快照是不能随便删除的,因为每个快照都有保存相应的数据
[root@localhost ~]# virsh snapshot-delete vm1 vm1_sn1
错误:删除快照失败:vm1_sn1
错误:不支持的配置:尚不支持 1 外部磁盘快照删除
-》查看虚拟机的完整快照链
[root@localhost ~]# virsh domblklist vm1
目标 源
------------------------------------------------
vda /disk3/vm1_sn3.qcow2
hda -
[root@localhost ~]# qemu-img info --backing-chain /disk3/vm1_sn
vm1_sn2.qcow2 vm1_sn3.qcow2 vm1_sn.qcow2
一定要选择当前使用的磁盘也就是 vm1_sn3.qcow2
[root@localhost ~]# qemu-img info --backing-chain /disk3/vm1_sn3.qcow2
image: /disk3/vm1_sn3.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
backing file: /disk3/vm1_sn2.qcow2
backing file format: qcow2
Format specific information:
compat: 1.1
lazy refcounts: false
image: /disk3/vm1_sn2.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
backing file: /disk3/vm1_sn.qcow2
backing file format: qcow2
Format specific information:
compat: 1.1
lazy refcounts: false
image: /disk3/vm1_sn.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K
cluster_size: 65536
backing file: /disk3/vm1.qcow2
backing file format: qcow2
Format specific information:
compat: 1.1
lazy refcounts: false
通过每个磁盘快照的信息中的backing file可以很容易画出快照链
vm1.qcow2 <- vm1_sn.qcow2 <- vm1_sn2.qcow2 <- vm1_sn3.qcow2
下面介绍如何进行外置快照的合并以缩短链长
两种合并方式:
1)blockcommit向下合并(合并overlay到backing file)
现在:[vm1.qcow2] <- vm1_sn.qcow2 <- vm1_sn2.qcow2 <- vm1_sn3.qcow2
目标:[vm1.qcow2] <- vm1_sn.qcow2 <-------------------- - vm1_sn3.qcow2
[root@localhost ~]# virsh blockcommit --domain vm1 vda --base /disk3/vm1.qcow2 --top /disk3/vm1_sn3.qcow2 --wait --verbose
错误:不支持的配置:这个 QEMU 二进制文件不支持在线指派
原因:
A qemu1.3以下版本不支持live blockcommit,
B qemu2.0以下版本不支持合并'Active'层(最顶部的overlay,即当前使用磁盘)至backing_files
2)blockpull向上合并与blockcommit正好相反
目标还是一样
[root@localhost ~]# virsh blockpull --domain vm1 --path /disk3/vm1_sn3.qcow2 --base /disk3/vm1.qcow2 --wait --verbose
错误:不支持的配置:这个 QEMU 二进制中不支持块任务
好正式开始讲解如何进行外置快照的删除
现在有的快照
[base] <- vm1_sn <- vm1_sn1 <-vm1_sn2 <-vm1_sn3
现在要删除sn2这个快照
步骤:(1)复制sn2数据到后端sn1,
commit是向后端合并
(2)复制sn2数据到前端sn3
rebase是向前端合并
[root@localhost ~]# qemu-img commit /disk3/vm1_sn2.qcow2
Image committed.
[root@localhost ~]# qemu-img rebase -u -b /disk3/vm1_sn.qcow2 /disk3/vm1_sn3.qcow2
###########-u此模式下仅仅修改指向到backing file名字,不复制数据
[root@localhost ~]# qemu-img rebase -b /disk3/vm1_sn.qcow2 /disk3/vm1_sn3.qcow2
###########去掉-u将把数据也一并复制过去
[root@localhost ~]# virsh snapshot-list vm1
名称 生成时间 状态
------------------------------------------------------------
vm1_sn1 2019-02-28 10:28:04 +0800 shutoff
vm1_sn2 2019-02-28 10:42:21 +0800 shutoff
vm1_sn3 2019-02-28 10:42:31 +0800 shutoff
#清理掉不用的快照
[root@localhost ~]# virsh snapshot-delete --domain vm1 vm1_sn2 --metadata
已删除域快照 vm1_sn2
[root@localhost ~]# virsh snapshot-list vm1
名称 生成时间 状态
------------------------------------------------------------
vm1_sn1 2019-02-28 10:28:04 +0800 shutoff
vm1_sn3 2019-02-28 10:42:31 +0800 shutoff
3、回滚(外置磁盘快照的回滚是暂不支持的)
[root@localhost ~]# virsh snapshot-revert --domain vm1 vm1_sn3
错误:不支持的配置:revert to external snapshot not supported yet
-
存档
- 2024年2月(1)
- 2024年1月(15)
- 2023年12月(2)
- 2023年11月(7)
- 2023年10月(5)
- 2023年8月(1)
- 2023年6月(3)
- 2023年5月(1)
- 2023年4月(4)
- 2023年3月(14)
- 2023年2月(8)
- 2023年1月(10)
- 2022年12月(21)
- 2022年11月(24)
- 2022年10月(16)
- 2022年9月(16)
- 2022年8月(31)
- 2022年7月(25)
- 2022年6月(10)
- 2022年5月(20)
- 2022年4月(32)
- 2022年3月(16)
- 2022年2月(9)
- 2022年1月(13)
- 2021年12月(7)
- 2021年11月(16)
- 2021年10月(8)
- 2021年9月(12)
- 2021年8月(12)
- 2021年7月(21)
- 2021年6月(13)
- 2021年5月(20)
- 2021年4月(19)
- 2021年3月(9)
- 2021年2月(3)
- 2021年1月(10)
- 2020年12月(16)
- 2020年11月(13)
- 2020年10月(2)
- 2020年9月(17)
- 2020年8月(4)
- 2020年7月(15)
- 2020年6月(5)
- 2020年5月(1)
- 2020年4月(21)
- 2020年3月(44)
- 2020年2月(20)
- 2020年1月(12)
- 2019年12月(9)
- 2019年11月(13)
- 2019年10月(44)
- 2019年9月(18)
- 2019年8月(15)
- 2019年7月(6)
- 2019年6月(17)
- 2019年5月(10)
- 2019年4月(24)
- 2019年3月(6)
- 2019年2月(2)
- 2019年1月(9)
- 2018年12月(16)
- 2018年11月(6)
- 2018年10月(10)
- 2018年9月(7)
- 2018年8月(8)
- 2018年7月(13)
- 2018年6月(20)
- 2018年5月(22)
- 2018年4月(25)
- 2018年3月(34)
- 2018年2月(9)
- 2018年1月(29)
- 2017年12月(13)
- 2017年11月(29)
- 2017年10月(19)
- 2017年9月(24)
- 2017年8月(27)
- 2017年7月(21)
- 2017年6月(35)
- 2017年5月(61)
- 2017年4月(17)
- 2017年3月(5)
- 2016年8月(1)
- 2014年3月(12)
- 2014年2月(25)
- 2014年1月(22)
- 2013年12月(29)
- 2013年11月(19)
- 2013年10月(18)
- 2013年9月(23)
- 2013年8月(24)
- 2013年7月(22)
- 2013年6月(15)
- 2013年5月(11)
- 2013年4月(36)
- 2013年3月(28)
- 2013年2月(35)
- 2013年1月(627)
-
最新文章
- docker 容器镜像日志满了,解决方案
- sshd_config 中文手册:关于ssh 设置的相关总结(ssh最大连接数、ssh连接时长、安全性配置等)
- 如何在 Linux 中使用 SSH ProxyJump 和 SSH ProxyCommand
- ubuntu - apt-get更新非交互式
- /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found
- Golang中,Aes加解密
- Go实现MD5加密的三种方法小结
- go语言 跟 php nodejs通用的加解密代码
- Win10/11 更改 WSL Docker Desktop 存储路径
- go语言使用vscodedebug 输入数据怎么调试
- ubuntu18.04安装Go语言
- 一键生成ssl证书脚本
- 一键生成自签名SSL秘钥证书
- nginx根据不同的域名将反向代理的tcp连接分流到不同的后端服务器上
- WSL2支持systemctl命令
- WSL 双系统端口映射,网络穿透最新教程
- 使用apt-mirror搭建debian本地仓库 apt源 debian源
- vscode设置打开多个标签页
- 使用IPTABLES实现对特定IP,端口流量的精确统计
- 开源免费的知识库文档管理系统(合集+排名)
- Windows 10(21H2)+ LTSC 2021 最新版MSDN官方简体中文原版ISO镜像下载地址
- Typora语法学习-自我总结笔记
- win7原版下载地址
- 解决在 Win7 旗舰版虚拟机中安装 VMware Tools 失败问题
- windows安装QT
- 使用pkg打包zx编写的nodejs程序
- nodejs库-inquirer.js
- 在nodejs代码中使用 import 替代require
- konva教程
- konva中文文档
-
热门文章