首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

影响虚拟化热迁移的设备

前言

虚拟化场景下,热迁移、HA都会受到部分设备的影响。设备的实现上,包含“透传”、“直通”、“passthrough”,基本上就限制了虚拟机的迁移能力。

作者认为,热迁移和HA,都是必要的。热迁移是DRS(Distributed Resource Scheduler)和DPM(Dynamic power management)的基础能力,甚至用热迁移的方法做hypervisor热升级。

HA则更加重要,直接影响服务质量,能不能快速恢复业务,HA的能力至关重要。

对于这部分的优化和改进,如下文。

分析

1,USB passthrough VS USB redirect

USB passthrough的实现上,qemu通过libusb,直接访问host上的usb设备。

USB redirect的实现上,在host上启动一个usb redirect server。server监听TCP端口,通过socket和client进行通信,对于data请求,则通过libusb对host上的usb进行操作。对于qemu来说,增加一个chardev,它的后端是一个tcp连接。

对比起来,就是数据经过TCP转发过一次,数据再经过libusb和host的kernel交互。目前,USB redirect server写的比较粗糙,对于TCP的死链接处理比较差,意味着如果发生了qemu所在的Host发生crash后,HA不起来。(需要自己添加TCP keepalive的处理,patch作者发送给了maintainer,不过maintainer似乎理解错了,后来又继续mail。patch的地址https://www.mail-archive.com/spice-devel@lists.freedesktop.org/msg42189.html)。

另外,需要在Host上管理usb redir server进程。

再者,就是usbip技术,不过qemu目前没有支持,在技术选型的时候,看到过这样一份邮件(https://lists.gnu.org/archive/html/qemu-devel/2010-12/msg00008.html),usbip被喷的有点惨。

2,iscsi blk

分布式的target设备,访问的方式有两种:

其一,使用iscsiadm发现、挂载target到host上,就会生成/dev/sdx设备,sdx设备可以直接给qemu用raw的方式访问,或者格式化文件系统,mount之后,创建文件给qemu作为卷使用。

其二,qemu直接作为iscsi client,直接和target通信,进行访问。

第一种方式的操作空间更大,尤其是抽象成了本地块设备,同时还能使用host的blk layer,甚至使用host的cache。但是!!!如果在网络波动的时候,host上会出现D状态的进程。

而第二种访问方式,则不会出现D状态,对于qemu来说,后端只是一个TCP连接。

作者倾向使用第二种方式,避免Host上挂块这种操作。毕竟qemu发生异常只是影响了这一台vm;而Host发生异常则会影响Host上的所有的vm(4.14上依然还有iscsi挂块引起的kernel die,具体分析见前文)。

3,cdrom / floppy

私有云上,cdrom和floppy还有一定存在的价值,比如说安装操作系统和驱动。

不过,无论是使用cdrom安装操作系统还是使用floppy安装驱动(例如安装windows的时候,需要virtio驱动),都是只读的需求。

基于只读的情况,作者最倾向使用http协议。

同理,使用http协议访问iso或者vfd文件,对于qemu来说,后端都只是一个TCP连接,如果发生网络异常,qemu都是可以操作的。

对比之下,还有nfs或者smb,把远程的目录mount到Host上访问,同样,可能会陷入D状态。还有一些例如SFF协议,映射到Host上成为/dev/srx设备的,或者cdrom passthrough,作者以为有那么一点杂技的味道。首先,物理介质的cdrom已经比较少见了;其次,光驱的成本,以及需要占用物理服务器的盘位;再次,iso文件无论是保存,还是复制传播,都要方便太多了。

就用http协议吧!没毛病!

4,PCI passthrough / scsi passthrough

这两种,作者没有什么办法来解决。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180310G0M5B600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券