1. 程式人生 > >Qemu KVM Guest增強簡述

Qemu KVM Guest增強簡述

隨著雲端計算的發展,諸多的企業應用對於雲平臺的功能提出更多的需求,如業務的可靠性等,已經不再僅僅限於傳統的建立、刪除等虛擬機器的生命週期管理。

在大多數雲平臺中被廣泛使用的虛擬化方案之一——QEMU+KVM,提供了部分功能增強方案,幫助平臺開發者實現大規模業務管理。QEMU對外提供了兩套介面來幫助開發者從不同層面增強管理功能:

QEMU Monitor

在QEMU虛擬化的場景中,每臺虛擬機器都作為一個獨立的程序存在,一旦虛擬機器開始執行就很難對其硬體進行管理操作。QEMU程序開放了基於QMP協議的QEMU-Monitor介面與外部程序互動,方便開發者管理執行中的虛擬機器。通過QEMU-Monitor可以實現插入/彈出CDROM、熱插拔USB/網絡卡/硬碟、高階電源管理等操作以及獲取虛擬機器的硬體效能資料。

QEMU Guest Agent

由於虛擬化的隔離,以及不同作業系統間的差異,在物理伺服器上很難直接管理Guest OS。目前多采用在Guest OS中安裝QEMU Guest Agent(QEMU GA)服務的方式與之互動。QEMU GA通過虛擬機器內的串列埠匯流排與外部管理平臺進行簡單的資料互動,資料互動使用QMP協議,預設提供了一些基礎的操作,並且允許開發者定義自己的擴充套件介面。通過QEMU GA管理者可以在雲平臺上統一管理任意虛擬機器的Guest OS。

通過QEMU提供的介面,開發者可以在雲平臺上實現眾多與虛擬機器的相關功能,簡化雲平臺的管理工作,例如:

效能監控

雲平臺上執行的業務,根據需求的場景不同,可以實現不同層面的監控:

  • 平臺資源消耗:需要了解每臺虛擬機器消耗的CPU、記憶體、網路介面資料量、塊裝置資料量。在這種場景下可以通過QEMU Monitor提供的API獲取虛擬機器程序的資源消耗。
  • Guest OS內狀態:由於硬體虛擬化對CPU、記憶體資源的隔離和QEMU對IO請求的優化,在Guest OS中的效能資料和qemu-kvm程序的效能資料不會完全一致,對於業務的資源消耗資料,有時候還需單獨採集。

快照/備份

對於較為複雜的業務管理場景,例如對正在執行業務的虛擬機器做快照和備份操作,由於通訊和程式執行的時間消耗,無法保證操作時的資料一致性和資料完整性。這時需要雲平臺、Guest OS和業務程式協同完成該操作。

雲平臺會在操作虛擬機器快照/備份之前嘗試通過QEMU GA向Guest OS發出凍結指令,暫停所有對檔案系統的IO操作並向硬碟下刷快取資料。QEMU GA同時提供了凍結指令的hook指令碼擴充套件,允許管理員實現針對特定業務程式的凍結操作,從而可以保證資料在應用程式一級的同步,保證應用資料的一致性和完整性。

故障轉移

在雲平臺中,通過平臺的節點自檢能力可以更容易地實現物理節點級別的故障轉移。更進一步,通過擴充套件QEMU GA的自檢功能,雲平臺可以實現Guest OS級別的故障轉移。

在雲平臺日益趨於集中化統一管理的背景下,單純的虛擬化技術早已經無法滿足使用者需求,根據業務模型合理設計出高度自動化、響應更迅捷、資源利用率更高的雲平臺,才能適應不斷增長的業務需求。

焱融雲藉助QEMU Monitor和QEMU Guest Agent技術,在系統性能監控、快照備份、故障轉移等功能上做了大量優化,整合到產品中,保障了客戶業務的持續穩定執行。