KVM 冷迁移
Linux KVM冷迁移:----step1:查看当前要迁移的虚拟机Namevirsh list --allEg:[root@localhost]#virsh list --allIdNameState-----------------------------------------------...
Linux KVM
冷迁移:
----step1:
查看当前要迁移的虚拟机Name
virsh list --all
Eg:
[root@localhost]#virsh list --all
Id Name State
----------------------------------------------------
- machine1610 shut off
----step2:
查看该虚拟机的磁盘镜像文件所在位置
virsh domblklistmachine1610
Eg:
[root@localhost]#virsh domblklist machine1610
Target Source
------------------------------------------------
vda /mnt/sdb/KVM/libvirt/machine1610.img
hda -
----step3:
使用qemu-imageconvert命令缩小需迁移的虚拟机的磁盘的大小 [注意-O选项根据KVM虚拟机实际磁盘格式选择]
[此命应用场景:KVM 上创建的虚拟机分配磁盘为256GB,运行后至需要迁移时,仅使用约10GB的空间。du -h显示确实为10GB。但ls -hl看到的结果则为257G]
[scp至目标host机时,实际所传大小为257GB,执行此命令后,镜像文件缩小至约10GB。]
[局限:仅能缩小未曾分配的空间,若虚拟机曾经使用过50G的空间,则此命令执行后只能缩小至50GB左右,若要完全释放,可使用dd命令将虚拟机的磁盘空间用0写满.然后删除该文件后关闭虚拟机,再重新执行step3,可获得10GB的镜像文件。若网络带宽资源不紧张,则dd命令使用意义不大]
Eg:
qemu-img convert-O qcow2 machine1610.img machine1610.new.img
mvmachine1610.new.img machine1610.img
----step4:
获取需迁移虚拟机的xml文件
Eg:
virsh dumpxmlmachine1610 > machine1610.xml
----step5:
将虚拟机的xml文件和经过qemu-image的img文件一同复制至目标host机上:
----step6:
若目标img文件位于目标host机的路径与源host机的路径不同,请修改目标host机上的xml文件
修改位置<source file='/mnt/sdb/KVM/libvirt/machine1610.img'/>
Eg:
vimmachine1610.img
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='writeback'/>
<source file='/mnt/sdb/KVM/libvirt/machine1610.img'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x08'function='0x0'/>
</disk>
----step7:
使用virshdefine命令依据xml文件在目标host上创建虚拟机
Eg:
virsh definemachine1610.xml
----step8:
确定虚拟机使用的网络确实存在.若不存在,创建或更换
----step9
启动虚拟机
更多推荐
所有评论(0)