kvm虚机-块迁移

来源:互联网 发布:linux root鉴定错误 编辑:程序博客网 时间:2024/06/10 15:56

当服务器使用本地存储时,如果要对上面的虚拟机进行在线迁移,那么就要用到块迁移技术(block migration)


VM1:/usr/libexec/qemu-kvm --enable-kvm -name VM1 -drive file=root.img,if=virtio,boot=on -monitor stdio -vnc 0.0.0.0:0

VM1已经启动,正常进入系统。可以通过5900端口连接到VM1中


在目标主机上创建root.img

qemu-img create -f qcow2 /var/lib/kvm/images/root.img 10G   //大于或等于源虚机的大小

VM2:/usr/libexec/qemu-kvm --enable-kvm -name VM2 -drive file=root.img,if=virtio,boot=on -monitor stdio -vnc 0.0.0.0:1 -incoming tcp:0:10010

VM2是监听虚拟机,只有进程单虚拟机并没有启动,vnc的连接状态是僵死,可能描述不正确,端口在,也不拒绝连接,就是挂起。10010是监听的端口


在VM1上执行:migrate -d -b tcp:destination_ip:10010

使用info migrate查看当前状态

(qemu) info migrate
Migration status: active
transferred ram: 74028 kbytes
remaining ram: 74252 kbytes
total ram: 147840 kbytes
transferred disk: 10484736 kbytes
remaining disk: 1024 kbytes
total disk: 10485760 kbytes

在VM2上的状态:

(qemu) Receiving block device images
Completed 100 %

在VM1上的状态:

(qemu) info migrate
Migration status: completed

当在VM2中达到100%时,VM2的vnc5901就可以连接了,而5900就挂起,可以kill掉VM1的进程,因为虚拟机现在已经迁移到VM2中。

这个就是KVM迁移相对比较底层的状态操作。

同理,使用libvirt迁移的时候,其实也是在目标机器上创建一个完全相同配置的虚拟机,开启一个监控监听,然后源机器将数据块(包括ram和disk)迁移到目标机器上,达到100%时,destroy source。



http://www.ibm.com/developerworks/cn/linux/l-cn-mgrtvm1/

http://www.ibm.com/developerworks/cn/linux/l-cn-mgrtvm2/index.html

http://libvirt.org/migration.html

http://www.sebastien-han.fr/blog/2012/07/12/openstack-block-migration/

0 0
原创粉丝点击