第 22 章 虚拟化
对 Windows 10 虚拟机的有限 CPU 支持
在 Red Hat Enterprise 6 主机中,只能在使用以下型号 CPU 时方可创建 Windows 10 虚拟机:
- Intel Xeon E 系列
- Intel Xeon E7 产品线
- Intel Xeon v2、v3 和 v4
- Opteron G2、G3、G4、G5 和 G6
要在传统 Intel Core 2 处理器(也称 Penryn)或者 Intel Xeon 55xx 和 75xx 产品系列(也称 Nehalem)中使用 Windows 10 虚拟机,请在 Domain XML 文件中添加以下标签,并使用 Penryn 或者 Nehalem 作为 MODELNAME:
<cpu mode='custom' match='exact'> <model>MODELNAME</model> <feature name='fsgsbase' policy='require'/> </cpu>
其他任何 CPU 型号均不支持,同时在其中创建的 Windows 10 虚拟机也会因 stop 出错意外终止,也称蓝屏死机(BSOD)。
重新定义 VHDX 文件大小需要较长时间
在虚拟机中使用 ext3 文件系统时,有时重新定义非常大的 Microsoft Hyper-V 虚拟硬盘(VHDX)设备会导致 VHDX 文件增长超过限度,并因所需时间大大超出预期。要临时解决这个问题,请使用 ext4 或者 xfs 文件系统,或在创建 VHDX 文件时设定以下自定义参数:
- VHDX BlockSize = 1MB
- flex_bg=4096
这些参数可保证 VHDX 文件需要预期的磁盘空间数量,使文件系统操作迅速很多。
热插拔虚拟 PCI 设备时多功能无法正常工作
如在启用了多功能选项的虚拟 PCI 设备中热插拔新功能,则不能正确触发 PCI 设备初始化。结果是虚拟机不能识别,并因此无法热插拔这些功能。要临时解决这个问题,可在该虚拟机中开始重新扫描 PCI 主机桥接,例如可使用以下命令:
# echo 1 > /sys/bus/pci/devices/0000\:00\:00.0/rescan
在上述示例中,使用正确的设备“总线:设备:功能"功能组合替换 0000\:00\:00.0,并重新扫描要触发的设备。
这样会强制虚拟机设备驱动程序配置新热插拔的设备以便使用,并因此造成新热插拔的功能在上述情形下无法使用。
软重启的 Windows 虚拟机无法探测它们的一些可引导设备
在某些情况下,软重启 Windows 虚拟机(例如:使用 Ctrl+Alt+Del 组合键)可造成该虚拟机无法探测到它的可引导设备。为临时解决这个问题,请执行虚拟机硬重启,例如:按下 virt-manager 界面中的关机按钮,或者在 QEMU 监视控制台中使用
system_reset
命令。
使用 qemu-img 修改使用中的映象时会破坏该映象
在有些情况下,如果同时在多个进程中打开 QEMU 磁盘映像则会破坏该映象,比如在运行的虚拟机中尝试提取 QEMU 映象快照。为避免出现这个问题,请勿使用 qemu-img 程序修改由运行中的虚拟机或任意其他进程使用的映象。另外,请注意查询正在由另一个进程修改的映象可能会造成状态不统一。这个更新还在 qemu-img(1) man page 中添加上述警告。
virtio-win VFD 文件不包含 Windows 10 驱动程序
由于软盘文件大小的限制,virtio-win 软件包中的虚拟软盘(VFD)文件不包含 Windows 10 文件夹。如果用户需要使用 VFD 安装 Windows 10 驱动程序,则可以使用 Windows 8 或 Windows 8.1 驱动程序替代。另外,还可以使用 /usr/share/virtio-win/ 目录中的 ISO 文件安装 Windows 10 驱动程序。