Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
章 15. 虛擬化
- 虛擬 CPU 時間片段共享
- 虛擬 CPU 時間片段(timeslice)是 Linux 排程等級的效能精進功能,其中一個不斷轉換的虛擬 CPU 可以在讓出 CPU 之前,將它剩下的時間片段交給另一個虛擬 CPU。這項功能解決了 SMP 系統中所承繼的鎖定多工問題,這問題可能會影響虛擬 CPU 的效能。這項功能為多處理器的客座端提供了更穩定的效能。這項功能支援 Intel 與 AMD 處理器,Intel 處理器稱為 PLE(Pause Loop Exiting),AMD 處理器稱為 Pause Filter。
虛擬化與雲端產品及解決方案強烈需要 KVM 的網路效能。RHEL 6.2 提供了多種網路效能上的精進,以改進多種設定中,KVM 的網路半虛擬化驅動程式的效能。
- 改進 KVM 的小訊息效能
- RHEL 6.2 改進的 KVM 的小訊息效能,以滿足多種產生較小訊息(< 4K)的網路負載。
- KVM 網路驅動程式的連線速度需求
- 執行網路負載工作的虛擬化與雲端產品需要有線網路的連線速度。到 RHEL 6.1 為止,要達到有線網路的 10 GB 乙太網路速度卡之速度、同時維持低 CPU 使用率的唯一方法,是使用 PCI 裝置的指定功能(passthrough),這會限制其它諸如記憶體過度寫入與客座端轉移之類的功能。macvtap/vhost zero-copy 功能能讓使用者在需要高效能時使用這些功能。這功能改進了任何 RHEL 6.x 客座端使用 VEPA 時的效能。這功能目前還是搶先版。
- KVM 網路驅動程式的 UDP 校驗碼最佳化
- 如果校驗碼已經由主機網路卡驗證過,UDP 校驗碼最佳化能降低客座端驗證校驗碼的需求。這功能能加速 UDP 外部到客座端的 10 GB 乙太網路卡,RHEL 6.2 客座端與主機之間亦然。UDP 校驗碼最佳化位於
virtio-net
驅動程式中。 - 改進主機比客座端慢時的 I/O 路徑效能
- RHEL 6.2 KVM 的網路驅動程式之 I/O 路徑效能已經有所改進,降低了虛擬機器退出與中斷的機會,讓資料傳送更快。這項改進也能讓您在更慢的主機上,執行更快的客座端,而不至於降低任何效能。這項改進是由更加強的
virtio
環狀架構,以及virtio
與vhost-net
對事件索引的支援來達成。
- 透過 SNMP 監控系統
- 這項功能為 KVM 提供了穩定、用於資料中心的技術。SNMP 是監控的標準,為人所熟知,而且運算上極有效率。在 RHEL 6.2 中透過 SNMP 監控系統能讓 KVM 主機發送 SNMP 陷阱至事件,如此一來 hypervisor 事件就可以透過標準 SNMP 通訊協定,與使用者通信。這項功能透過額外的新套件:libvirt-snmp 所提供。這項功能目前是技術搶先版。
- 改進客座端偵錯功能
- 將資料中心虛擬化的使用者在客座端作業系統停止回應時,同時啟動當機傾印時,需要偵錯方法。在實體系統上,有兩種常用的方法:
- 在客座端啟動 NMI(不可遮罩式中斷,non-maskable interrupt)
- 發送 SysRq 序列到客座端
這些功能是由 KVM 主控台直接提供,許多透過 libvirt API 與 virsh 使用 KVM 的使用者會發現沒有這兩項功能。RHEL 6.2 改進了客座端的整個 KVM 堆疊之偵錯功能,進而允許使用者在客座端中啟動 NMI,並發送 SysRq 鍵序列到客座端。 - 改進虛擬機器的啟動存取
- 將資料中心虛擬化的使用者需要追蹤客座端的啟動過程,並從一開始顯示整個 BIOS 與 kernel 的啟動訊息。缺少這項功能會讓使用者無法在啟動之前,以互動方式使用 virsh 主控台。新套件 sgabios 已經加入 RHEL 6.2 中以提供此功能,同時 qemu-kvm 中也加入了一些功能。
- Live Snapshots
- RHEL 6.2 引入了 Live Snapshot 功能,目前仍為技術搶先版。live snapshot 功能提供了自動備份硬碟上虛擬機器映像檔的功能,並以通透方式為每個虛擬磁碟提供單一磁碟 snapshot 的功能(使用外部 qcow2 映像檔)。建立多磁碟的 live snapshot 能透過暫停 qemu,為每個磁碟建立 snapshot,以維持資料完整性。因此,多磁碟 snapshot 會擁有同樣時間點的所有磁碟之資料。了解系統一致性的限制是很重要的。然而,重複使用 snapshot 映像檔有可能導致錯誤重複發生。使用者必須檢查檔案系統(
fsck
)或重新播放日誌檔條目,跟電腦突然失去電力供應後再開機的情況。 - 改進多處理器(NUMA)微調
- RHEL 6.2 改進了 libvirt API 堆疊的微調功能,使得在執行 SPECvirt 評量時,電腦一開機就有更好的效能。RHEL 6.2 現在可以在虛擬機器建立時,確認與 NUMA 節點相關的記憶體。
- USB 改善
- USB 2.0 模擬功能已經納入 qemu-kvm,僅可直接用於 QEMU。下一版本會支援 libvirt。遠端喚醒功能已經加入 USB 主機控制卡中。與客座端作業系統一起運作,這功能可停止 1,000hz 的輪詢模式,讓裝置進入睡眠狀態。這能大幅改進使用 USB 滑鼠模擬(或觸控板)的虛擬機器之電力使用率以及 CPU 使用量 — 這是每一台虛擬機器都有的常見裝置。
- 記憶體飄移功能
- RHEL 6 半虛擬化 Xen 客座端現在已支援記憶體飄移(memory balloon)功能。
- 網域記憶體的限制
- Memory limit for x86_64 domU PV guests has been increased to 128 GB:
CONFIG_XEN_MAX_DOMAIN_MEMORY=128
. - 時間會計
xen_sched_clock
(會傳回未被竊取的毫秒數)已經被xen_clocksource_read
所取代。
RHEL 虛擬化指南已經拆成多本特定的指南:
spice-protocol 已經升級到 0.8.1 版,提供以下新功能:
- 支援卷冊的改變
- 支援同步客座端 I/O 寫入與中斷
- 支援與客座端 I/O 寫入有關的中止(S3 suspend)
- 支援表示客座端 bug 的中斷
Linux container 提供了彈性的方法,讓應用程式 runtime 包含在電腦裡,而不需要全虛擬化的負載。RHEL 6.2 提供了應用程式等級的 container,透過 cgroup 與 namespace 來分開、控制應用程式資源的使用政策。此版本引介了 container 生命週期的基本管理,包括透過 libvirt API 與 virt-manager GUI 允許建立、編輯與刪除 container。Linux Container 目前是技術搶先版。
為了要允許同時安裝 rhev-hypervisor 套件,請配置 yum 讓 rhev-hypervisor 成為「installonly」(僅安裝)套件,方法是編輯 /etc/yum.conf
檔案,並加入 installonlypkgs
選項:
[main] ... installonlypkgs=rhev-hypervisor
yum.comf
man page 中的「installonlypkgs」選項一節中找到。