由于VM是可能存在于不同节点上,所以当一个计算节点挂掉后,可以把挂掉的节点运行的VM在新的节点上继续运行。
虽然快照功能可以做恢复使用,但是毕竟快照只能恢复固定时间的VM,所以虚拟机备份很重要!对做好热备份有很大的帮助!
注:以测试集群为例,把c01上的vm1备份到c02上面
步骤:
1.首先,查看待备份vm1的信息:
在目录“/var/lib/nova/instances/$VM_ID/”下面有如下文件:
console.log disk libvirt.xml
其中,disk里面没有包含数据,只是一个包含vm基本信息的文件。
2.在“/var/lib/nova/instances/$VM_ID/”目录下输入如下信息: kvm-img info disk
3.在/var/lib/nova/instances/下新建目录backup_vm1,把上述信息备份到c02下的一个目录/var/lib/nova/instances/backup_vm1下面。
4.用disk生成新的磁盘文件newdisk:qemu-img convert disk –O qcow2 newdisk
5.在c02上新建和vm1同配置的虚拟机vm2,保持vm2关闭状态。
6.进入到c02上的/etc/libvirt/qemu/,编辑执行对应得编号:virsh edit $instance-Number
(使用virsh edit,直接用使用vi后,在define会覆盖修改内容)
7.把file和path的路径都改成备份文件backup_vm1中文件的路径。
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file= '/var/lib/nova/instances/backup_vm1/newdisk' />
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
<controller type='usb' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<interface type='bridge'>
<mac address='fa:16:3e:f9:55:56'/>
<source bridge='br-int'/>
<virtualport type='openvswitch'>
<parameters interfaceid='e5198be1-22ce-46b6-ba83-3f9f7d6b928d'/>
</virtualport>
<target dev='tape5198be1-22'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='file'>
<source path=' /var/lib/nova/instances/backup_vm1/console.log '/>
<target port='0'/>
</serial>
<serial type='pty'>
<target port='1'/>
</serial>
<console type='file'>
<source path='/var/lib/nova/instances/backup_vm1/console.log'/>
<target type='serial' port='0'/>
</console>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' keymap='en-us'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<video>
<model type='cirrus' vram='9216' heads='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<driver name='qemu' type='qcow2' cache='none'/>
<source file= '/var/lib/nova/instances/backup_vm1/newdisk' />
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
<controller type='usb' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<interface type='bridge'>
<mac address='fa:16:3e:f9:55:56'/>
<source bridge='br-int'/>
<virtualport type='openvswitch'>
<parameters interfaceid='e5198be1-22ce-46b6-ba83-3f9f7d6b928d'/>
</virtualport>
<target dev='tape5198be1-22'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='file'>
<source path=' /var/lib/nova/instances/backup_vm1/console.log '/>
<target port='0'/>
</serial>
<serial type='pty'>
<target port='1'/>
</serial>
<console type='file'>
<source path='/var/lib/nova/instances/backup_vm1/console.log'/>
<target type='serial' port='0'/>
</console>
<input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0' keymap='en-us'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<video>
<model type='cirrus' vram='9216' heads='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
8.启动vm2即可!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2015-05-22 debian 发行版本
2015-05-22 Hackers 黑客组
2015-05-22 linux C/C++编程之库-动态库,静态库创建及使用
2014-05-22 gosslary
2014-05-22 ebtablesBridge
2014-05-22 较流行的4个开源协议
2014-05-22 Posix-linux_route