章 22. 虛擬化

對 Windows 10 客座端的有限 CPU 支援

在 Red Hat Enterprise 6 主機上,Windows 10 客座端只能使用以下 CPU 型號來建立:
  • 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 客座端,請在網域的 XML 檔案上加入以下旗標,以 Penryn 或 Nehalem 取代 MODELNAME:
<cpu mode='custom' match='exact'>
<model>MODELNAME</model>
<feature name='fsgsbase' policy='require'/>
</cpu>
目前不支援其它 CPU 型號,同時建立於這些型號上的 Windows 10 客座端可能會無預期終結,並顯示 BSOD。

調整 VHDX 檔案大小會花很長時間

在客座端使用 ext3 檔案系統時,在某些情況下調整非常大的 Microsoft Hyper-V VHDX(虛擬硬碟,virtual hard disk)裝置會導致 VHDX 檔案增加到非常大,導致時間顯著加長。要解決這問題,請使用 ext4 或 xfs 檔案系統,或在建立 VHDX 檔案時設定以下自訂參數:
  • VHDX BlockSize = 1MB
  • flex_bg=4096
這會確保 VHDX 檔案使用預期的磁碟量,讓檔案系統的運作加快許多。

熱插拔虛擬 PCI 裝置時,multifunction 選項並不會正確運作

在啟用了 multifunction 選項的虛擬 PCI 裝置上熱插拔一項新的功能,並不會正確地起始 PCI 裝置。因此,客座端無法辨識,也無法使用熱插拔的功能。要解決這問題,重新掃描客座端的 PCI Host Bridge,例如以下指令:
# echo 1 > /sys/bus/pci/devices/0000\:00\:00.0/rescan
在上述例子中,請以您想要啟動的正確裝置之 bus:device:function 組合取代 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(虛擬軟碟,virtual floppy disk)並不包含 Windows 10 目錄。如果使用者需要從 VFD 安裝 Windows 10 驅動程式,可以改用 Windows 8 或 Windows 8.1 驅動程式。要不,Windows 10 驅動程式可以從 /usr/share/virtio-win/ 目錄的 ISO 檔案安裝。