www.cnblogs.com/ruiyqinrui

开源、架构、Linux C/C++/python AI BI 运维开发自动化运维。 春风桃李花 秋雨梧桐叶。“力尽不知热 但惜夏日长”。夏不惜,秋不获。@ruiY--秦瑞

python爬虫,C编程,嵌入式开发.hadoop大数据,桉树,onenebula云计算架构.linux运维及驱动开发.

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

由于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>
8.启动vm2即可!
posted on 2017-05-22 09:35  秦瑞It行程实录  阅读(1273)  评论(0编辑  收藏  举报
www.cnblogs.com/ruiyqinrui