《虛擬化與雲端計算》閱讀筆記1--伺服器虛擬化
1.伺服器虛擬化
伺服器虛擬化將系統虛擬化技術應用於伺服器上,將一個伺服器虛擬成若干個伺服器使用。
在採用伺服器虛擬化之前,三種不同的應用分別執行在三個獨立的物理伺服器上;在採用伺服器虛擬化之後,這三種應用執行在三個獨立的虛擬伺服器上,而這三個虛擬伺服器可以被一個物理伺服器託管。
簡單來說,伺服器虛擬化使得在單一物理伺服器上可以執行多個虛擬伺服器。
伺服器虛擬化為虛擬伺服器提供了能夠支援其執行的硬體資源抽象,包括虛擬BIOS、虛擬處理器、虛擬記憶體、虛擬裝置與I/O,併為虛擬機器提供了良好的隔離性和安全性。
2.典型實現
伺服器虛擬化通過虛擬化軟體向上提供對硬體裝置的抽象和對虛擬伺服器的管理。
目前,業界在描述這樣的軟體時通常使用兩個專用術語,它們分別如下。
(1)虛擬機器監視器(Virtual Machine Monitor,VMM):虛擬機器監視器負責對虛擬機器提供硬體資源抽象,為客戶作業系統提供執行環境。
(2)虛擬化平臺(Hypervisor)虛擬化平臺負責虛擬機器的託管和管理。它直接執行在硬體之上,因此其實現直接受底層體系結構的約束。
寄宿虛擬化:虛擬機器監視器是執行在宿主作業系統之上的應用程式,利用宿主作業系統的功能來實現硬體資源的抽象和虛擬機器的管理。這種模式的虛擬化實現起來較容易,但由於虛擬機器對資源的操作需要通過宿主作業系統來完成,因此其效能通常較低。這種模式的典型實現有VMware Workstation和Microsoft Virtual PC。
原生虛擬化:在原生虛擬化中,直接執行在硬體之上的不是宿主作業系統,而是虛擬化平臺。虛擬機器執行在虛擬化平臺上,虛擬化平臺提供指令集和裝置介面,以提供對虛擬機器的支援。這種實現方式通常具有較好的效能,但是實現起來更為複雜,典型的實現有Citrix Xen、VMware ESX Server和Microsoft Hyper-V。
3.關鍵特性
(1)多例項。通過伺服器虛擬化,在一個物理伺服器上可以執行多個虛擬伺服器,即可以支援多個客戶作業系統。伺服器虛擬化將伺服器的邏輯整合到虛擬機器中,而物理系統的資源,如處理器、記憶體、硬碟和網路等,是以可控方式分配給虛擬機器的。
(2)隔離性。在多例項的伺服器虛擬化中,一個虛擬機器與其他虛擬機器完全隔離。通過隔離機制,即便其中的一個或幾個虛擬機器崩潰,其他虛擬機器也不會受到影響,虛擬機器之間也不會洩露資料。如果多個虛擬機器內的程序或者應用程式之間想相互訪問,只能通過所配置的網路進行通訊,就如同採用虛擬化之前的幾個獨立的物理伺服器一樣。
(3)封裝性。也即硬體無關性,在採用了伺服器虛擬化後,一個完整的虛擬機器環境對外表現為一個單一的實體(例如一個虛擬機器檔案、一個邏輯分割槽),這樣的實體非常便於在不同的硬體間備份、移動和複製等。同時,伺服器虛擬化將物理機的硬體封裝為標準化的虛擬硬體裝置,提供給虛擬機器內的作業系統和應用程式,保證了虛擬機器的相容性。
(4)高效能。與直接在物理機上執行的系統相比,虛擬機器與硬體之間多了一個虛擬化抽象層。虛擬化抽象層通過虛擬機器監視器或者虛擬化平臺來實現,並會產生一定的開銷。這些開銷即為伺服器虛擬化的效能損耗。伺服器虛擬化的高效能是指虛擬機器監視器的開銷要被控制在可承受的範圍之內。