什么是虚拟机快照?
- 我们在真机桌面的desktop和server其实并不是真实的虚拟机,而是由虚拟机得到的快照。
- 快照相当于给人拍照,我们看(读)的是真实的人(虚拟机),而p图p的是拍的照片(写的时候是给快照中写。)reset重置的过程相当于删掉照片(快照),再照一张。
- 由一个虚拟机可以得到多个快照,虚拟机称为母盘,默认情况下生成的快照和虚拟机一模一样,如果母盘被改或被删除,则生成的快照不可用。
快照有什么作用?
为了解决我们在虚拟机中误删重要文件而导致虚拟机崩溃的问题,我们可以利用虚拟机中生成快照,平时操作快照虚拟机,当操作不当时,只需删除快照虚拟机即可。
生成快照的两种方式
首先,我的原始虚拟机even两个重要文件的路径如下:
- 1.命令加手动
[root@foundation1 ~]# qemu-img create -f qcow2 -b /var/lib/libvirt/images/even.qcow2 /var/lib/libvirt/images/kuaizhao.qcow2
其中,参数-f qcow2表示虚拟机的硬盘类型为qcow2,-b /var/lib/libvirt/images/even.qcow2表示要快照的虚拟机是此目录下的even,-b表示备份(backup)。最后的路径为新生成快照的路径。
下图中,快照文件kuaizhao.qcow2已经生成。
接下来我们在虚拟机管理界面添加快照虚拟机。
在本地选择刚才创建的快照文件。
内存大小和cpu核数
填写快照虚拟机的名字
快照虚拟机kuaizhao就创建好了!
- 2.编写脚本生成快照虚拟机
我们在/mnt下写一个脚本,写入以下内容。
[root@foundation1 mnt]# vim vm_snap.sh //脚本编写命令
[root@foundation1 mnt]# sh vm_snap.sh even hahaha //脚本执行语句
注意:1.$1是脚本后跟的第一串字符,$2是脚本后跟的第二串字符。
2.要想没有上面的输出,以及添加上判定条件,脚本可以升级为以下这版:
当输入不符合要求时,会报错提示:
查看快照虚拟机的信息
du -sh /var/lib/libvirt/images/kuaizhao.qcow2 //查看快照虚拟机的大小
file /var/lib/libvirt/images/kuaizhao.qcow2
virsh undefine 虚拟机名称 //删除虚拟机
rm -fr /var/lib/libvirt/images/虚拟机名称.qcow2 //删除硬盘信息