在vSphere 6.7之前,带vGPU的虚拟机是只能支持关机迁移。vSphere 6.7最早发布的版本可以支持虚拟机在开机的状态下手工暂停然后进行在线迁移,迁移完成以后再把虚拟机恢复,在vsphere 6.7 U1以后,带vGPU的vMotion才正式支持。

当然支持vGPU vMotion的前提肯定要满足常规vMotion的条件,然后在迁移的主机之间的vGPU 软件及硬件要匹配,不然也没办法正常迁移。

在VMware vSphere环境下启用vGPU vMotion的步骤非常简单,但是我们在启用前需要检查一下当前的软件和硬件是否支持。

首先是vSphere的版本,前面已经提到,通常新版本的vSphere也需要新版本vGPU软件版本来支持,具体可以参考:

https://docs.nvidia.com/grid/latest/grid-vgpu-release-notes-vmware-vsphere/index.html#hypervisor-software-versions

然后vSphere上面运行的虚拟机系统也必须是被当前使用的vSphere版本所支持的,这里不展开,请参考:

https://docs.nvidia.com/grid/latest/grid-vgpu-release-notes-vmware-vsphere/index.html#guest-os-support

然后是GPU硬件的部分,目前常见的GPU型号中,P100是不支持vMotion的,具体参考:

https://docs.nvidia.com/grid/latest/grid-vgpu-release-notes-vmware-vsphere/index.html#vgpu-migration-support

在确定软件和硬件都符合的条件下,我们可以手动打开vGPU vMotion功能,这个高级功能默认在vCenter中是禁用的。

我们导航到 vCenter—配置—高级设置,然后在名称筛选框中输入关键字 vgpu

可以看到vGPU热迁移默认状态下是禁用的

我们点击右上角编辑设置按钮,在弹出的高级选项中找到vgpu.hotmigrate.enabled 这个条目,然后勾选已启用,根据vCenter版本的不同,有的版本可能需要手动修改值为true

然后点击保存就可以了,整个过程其实就这么一步。

vGPU的虚拟机在vMotion的过程中可能会短暂冻结会话,一般这个过程会持续几秒时间,根据你的硬件环境(服务器、存储、网络),硬件环境越好,这个时间就越短,甚至无感知。以下这些因素可能会增加会话冻结的时间长度:

*工作负载对帧缓冲区(显存)的占用较大,通常发生在视频流等工作负载中

*分配的vGPU显存较大

*分配的虚拟机系统内存较大

*网络带宽有限

如果虚拟机正在运行大量的工作负载,迁移带有vGPU的虚拟机时可能会失败。vSphere Client上的任务详细信息中包含以下错误消息:

迁移超出了 100 秒的最长切换时间

The migration has exceeded the maximum switchover time of 100 second(s).

要解决这个问题,可以通过将vmotion.maxSwitchoverSeconds选项从默认值100秒提高来增大最大切换时间 。有关更多信息,请参考:

https://kb.vmware.com/s/article/2141355?lang=zh_cn

Last modification:May 19, 2020
如果觉得我的文章对你有用,请随意赞赏