KVM虚拟机克隆及快照管理
一,克隆
查看虚拟机硬盘位置(其中centos1为虚拟机名称)
virsh edit centos1
克隆(centos1为需要克隆的虚拟机名称centos2为克隆后的虚拟机名称CentOS2.qcow2位克隆后的虚拟机硬盘位置)
virt-clone -o centos1 -n centos2 -f /opt/CentOS2.qcow2
如果没有命令则使用以下方式安装
yum -y install virt-clone
验证
virsh list --all
二,快照
查看快照(其中centos1为虚拟机名称)
注意:kvm虚拟机生成快照之后不支持域重命名,需要删除所有快照之后才能重命名
virsh snapshot-list centos1
生成快照
virsh snapshot-create centos1
默认生成快照是以时间戳命名
指定生成快照的名称
virsh snapshot-create-as centos1 centos1_20180411
恢复快照(centos1为虚拟机名称后面为快照名)
virsh snapshot-revert centos1 1523413746
删除快照
virsh snapshot-delete centos1 1523413080
写一个脚本做定时任务,定时生成快照和删除时间较长的的历史快照
# filename: kvm_snapshot.sh # author:Liuym # time: 2023-11-10 # kvm快照备份和删除时间较长快照 TimeStamp=`/usr/bin/date +%s` kvm_list=`virsh list --all|sed -n '3,$p' |awk '{print $2}'` for i in ${kvm_list} do # 生成快照 /usr/bin/virsh snapshot-create $i # 删除旧的快照604800为七天 for n in `/usr/bin/virsh snapshot-list $i|sed -n '3,$p'|awk '{print $1}'` do result=$(( ${TimeStamp} - ${n})) if [ ${result} -gt 604800 ] then /usr/bin/virsh snapshot-delete $i $n fi done done
2024-02-04补充
虚拟机创建快照为给当前虚拟机的所有盘创建快照包括系统盘和挂载在该虚拟机的数据盘
2024-03-13补充
如果虚拟机有接磁盘则克隆会报以下错误
ERROR 丢失设备的源代码信息 hdb
可增加参数--auto-clone带扩展磁盘一起克隆
virt-clone -o CentOS7Es02003060 -n CentOS7Es01003059 -f /kvm/CentOS7Es01003059.qcow2 --auto-clone