AI服务器GPU热迁移配置:先判断显卡和虚拟化是否支持
GPU热迁移不是所有AI服务器都能直接开启的功能。
它指的是在虚拟机运行状态下,把带有GPU的虚拟机从一台宿主机迁移到另一台宿主机,而不中断业务。
能否配置成功,首先取决于显卡型号、虚拟化平台版本和GPU工作模式三者是否同时支持,命令本身反而是最后一步。
如果环境不满足前提,强行配置通常会在迁移预检阶段失败,或者迁移后GPU在虚拟机内不可用。
下面按“先确认能不能做,再动手配置”的顺序展开。
先确认你的GPU和平台是否具备迁移条件
需要检查三项内容:
- GPU工作模式:直通(Passthrough)模式下,PCIe设备与宿主机强绑定,一般无法热迁移;vGPU或SR-IOV等可共享模式才具备迁移的基础条件,且需要厂商明确支持。
- 显卡型号与驱动:在宿主机执行
nvidia-smi查看型号和驱动版本,再到厂商的虚拟化兼容性列表核对该型号是否在支持热迁移的范围内。 - 虚拟化平台版本:VMware vSphere、KVM/Proxmox 等平台对GPU迁移的支持程度差异很大,需要在平台文档中确认当前版本的具体限制。
一个快速的自查命令:
nvidia-smi --query-gpu=name,driver_version,vbios_version --format=csv
lspci | grep -i nvidia
如果 lspci 能看到GPU,但平台里没有出现可分配的vGPU或迁移选项,多半是模式或授权问题,而不是配置写错。
在虚拟机侧开启迁移相关选项
以常见的vGPU场景为例,思路是让虚拟机在迁移时能够携带GPU状态。
不同平台路径不同,但检查点相似:
- 确认虚拟机使用的是支持迁移的GPU配置文件(vGPU profile),而不是整卡直通。
- 在虚拟机设置中确认已启用迁移兼容性选项,关闭与迁移冲突的设备(如未受支持的USB直通设备)。
- 确认虚拟机未绑定CPU亲和性或固定内存大页等会阻止迁移的策略。
在KVM环境中,可以检查虚拟机XML里是否残留宿主专属配置:
virsh dumpxml 虚拟机名称 | grep -E 'hostdev|numatune|memoryBacking'
如果看到 直通条目,说明这台虚拟机当前是直通模式,需要先改为vGPU或移除直通设备才能继续讨论迁移。
目标主机预检与迁移执行
迁移前,目标宿主机必须满足:相同的GPU型号和vGPU配置、相同的驱动版本、足够的显存和内存余量、能访问相同的存储。
建议先做一次预检,而不是直接发起迁移:
# KVM 环境下检查目标主机连通与迁移能力
virsh domstate 虚拟机名称
virsh migrate --dry-run --live 虚拟机名称 qemu+ssh://目标主机/system
--dry-run 只做检查不真正迁移,能提前暴露兼容性和资源问题。
预检通过后再去掉该参数执行正式迁移。
迁移过程中用 nvidia-smi 在目标主机观察GPU占用,用 virsh domstate 确认虚拟机状态从 running 平滑过渡。
常见失败原因与避坑
- 预检报设备不兼容:多半是直通设备未移除,或vGPU profile与目标主机不一致。
- 迁移卡在内存传输阶段:检查网络带宽和存储延迟,GPU虚拟机内存脏页率高时迁移会明显变慢。
- 迁移完成但GPU不可用:核对目标主机驱动版本是否与源主机完全一致,版本不一致会导致vGPU初始化失败。
- 不要在生产环境直接试:先在测试虚拟机上完整走一遍迁移,确认业务进程在迁移后能正常识别GPU。
迁移后如何验证
迁移结束后,在虚拟机内执行:
nvidia-smi
确认能看到GPU、显存占用和进程列表恢复正常。
再运行一个短小的CUDA样例或推理任务,验证计算能力没有丢失。
若出现驱动报错,优先比对源主机与目标主机的驱动版本和vGPU配置是否一致。
简单总结一下,AI服务器GPU热迁移配置的核心是前置条件匹配,而不是命令堆叠。
显卡模式、平台版本、驱动一致性任意一项不满足,都应先解决支持性问题,再考虑迁移操作。