前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[kvm][qemu]影响虚拟化热迁移的设备

[kvm][qemu]影响虚拟化热迁移的设备

作者头像
皮振伟
发布2018-04-09 11:15:10
2.2K0
发布2018-04-09 11:15:10
举报
文章被收录于专栏:皮振伟的专栏

前言

虚拟化场景下,热迁移、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 这两种,作者没有什么办法来解决。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AlwaysGeek 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档