KVM虚拟机克隆及快照管理
一,克隆
查看虚拟机硬盘位置(其中centos1为虚拟机名称)
1 | virsh edit centos1 |
关闭虚拟机
1 | virsh shutdown centos1 |
克隆(centos1为需要克隆的虚拟机名称centos2为克隆后的虚拟机名称CentOS2.qcow2位克隆后的虚拟机硬盘位置)
1 | virt - clone - o centos1 - n centos2 - f / opt / CentOS2.qcow2 |
如果没有命令则使用以下方式安装
1 | yum -y install virt-clone |
验证
1 | virsh list - - all |
二,快照
查看快照(其中centos1为虚拟机名称)
注意:kvm虚拟机生成快照之后不支持域重命名,需要删除所有快照之后才能重命名
1 | virsh snapshot - list centos1 |
生成快照
1 | virsh snapshot - create centos1 |
默认生成快照是以时间戳命名
指定生成快照的名称
1 | virsh snapshot - create - as centos1 centos1_20180411 |
恢复快照(centos1为虚拟机名称后面为快照名)
1 | virsh snapshot - revert centos1 1523413746 |
删除快照
1 | virsh snapshot - delete centos1 1523413080 |
写一个脚本做定时任务,定时生成快照和删除时间较长的的历史快照
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # 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补充
如果虚拟机有接磁盘则克隆会报以下错误
1 | ERROR 丢失设备的源代码信息 hdb |
可增加参数--auto-clone带扩展磁盘一起克隆
1 | virt-clone -o CentOS7Es02003060 -n CentOS7Es01003059 -f /kvm/CentOS7Es01003059.qcow2 --auto-clone |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2017-04-11 Python基础