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