kvm開發人員沒有從底層編寫新的管理程序,而是選擇基于Linux的內核,通過加載新模塊將Linux內核轉換為管理程序。
目前,kvm的設計是通過可加載的內核模塊來支持廣泛的客戶端操作系統,包括Windows。
在KVM體系結構中,虛擬機作為常規的Linux進程實現,這些進程由標準的Linux調度程序調度。實際上,每個虛擬CPU都是作為一個常規的Linux進程實現的。這使得kvm可以享受Linux內核的所有功能。
KVM本身不執行任何模擬。用戶空間程序需要通過/dev/kvm接口設置客戶端虛擬服務器的地址空間,為其提供模擬I/O,并將其視頻顯示映射回主機的顯示屏。此應用程序是著名的QEMU。
REHL6.x系統中的kvm客戶機可以支持160個虛擬CPU和高達2TB的內存。kvm主機支持4096個CPU內核和高達64TB的內存。
操作系統內核設計分為微核和單核兩種。
單個內核意味著整個內核被實現為單個大型進程,同時在單獨的地址空間中運行。所有內核服務都在如此大的內核空間中運行,內核之間的通信可以簡單地作為函數調用來實現。
對于微內核,內核的功能分為幾個獨立的進程,每個進程稱為服務器。許多服務器在自己的地址空間中運行,只有少數核心服務器以特權模式運行,服務器之間的通信采用進程間通信機制。獨立的服務器進程提高了系統的健壯性,但是進程間通信的開銷遠遠超過函數調用,因為它涉及內核空間和用戶空間之間的上下文切換。
Linux采用務實的設計:Linux內核設計為單核,以滿足性能要求,同時Linux內核還具有模塊化設計和內核模塊動態加載的能力。除了進程切換和內存管理等核心功能外,大多數內核功能都是作為單獨的內核模塊設計和實現的。編譯完這些模塊后,它們作為單獨的二進制文件存在。在運行過程中,內核根據需要動態加載并鏈接到內核空間。未使用的模塊也可以在操作期間動態卸載。該設計不僅保證了內核的性能,而且提高了傳統單核設計的靈活性。
KVM作為內核模塊存在,它為Linux內核添加了虛擬化。
從虛擬機的基本架構來看,它可以分為兩種類型:類型1和類型2。
類型1:當系統通電時,它首先加載并運行虛擬機監視程序,而傳統的操作系統運行在它創建的虛擬機中。
類型1管理程序可以看作是為虛擬機優化的操作系統內核。
著名的開放源碼虛擬化軟件Xen、商用軟件vmware esx/esxi和微軟的hper-v都是類型1的代表。
類型2:系統通電后,仍運行通用操作系統(也稱主機操作系統)。作為一種特殊的應用,虛擬機監控程序可以作為操作系統功能的擴展。
對于類型2的虛擬機,最大的優點是它們可以充分利用現有的操作系統,但是它們也會受到主機操作系統的限制。
kvm、vmware工作站和virtualbox屬于類型2虛擬機。
客服聯系電話: 15301086273
企業采購: 15301086273
大客戶采購-微信咨詢