硬體虛擬化
硬體虛擬化
硬體虛擬化是一種對計算機或操作系統的虛擬。虛擬化對用戶隱藏了真實的計算機硬體,表現出另一個抽象計算平台。
虛擬化在1960年為了描述虛擬機(實驗性的IBM M44/44X系統)這個概念被第一次提出。對虛擬機的架設和管理被稱為平台虛擬化,現在也被稱為伺服器虛擬化。
平台虛擬化表現為在一個給定的硬體平台上宿主機創造一個模擬的計算機環境(虛擬機)提供給客戶機。客戶機軟體對於用戶應用程序沒有限制;許多宿主機允許運行真實的操作系統。客戶機就好像直接運行在計算機硬體上,伴隨著幾個明顯的警告。虛擬機對硬體資源(如網路,顯示器,鍵盤,硬碟)的訪問被統一管理在一個比處理器和系統內存更有限制性的層次上。客戶軟體經常被限制訪問計算機周邊設備,或者被限制在較低的設備性能上,這取決於宿主機硬體訪問策略設定。
在計算機集群中,許多小型伺服器正在被一個大型伺服器取代以增加硬體資源的利用率(如CPU等)。雖然硬體正在被整合,但是典型的操作系統仍然是獨立的。取而代之地,每一個運行在獨立的伺服器上的操作系統被轉移到在虛擬機中。大型的伺服器可以“寄宿”許多這樣的“客戶”虛擬機。這就是物理到虛擬(Physical-to-Virtual, P2V)的轉換。
虛擬機比真實的機器可以被更容易從外部被控制和檢查,並且可以配置更靈活。這在內核開發與操作系統課程教學中尤為有用。
創建一個新的虛擬機不需要預先購買硬體。同時,一個新的虛擬機可以容易地從一台計算機轉移到另一台上。舉例來說,一個銷售員可以複製一個包含試用版軟體的虛擬機到他的筆記本電腦去訪問他的客戶而不用更換電腦。類似的,虛擬機中的故障不會對宿主機產生損害,所以不會令筆記本上的操作系統死機。
由於可以被容易地遷移,虛擬機可以被用於遠距離災難恢復方案。
平台虛擬化的方案有很多。
在完全虛擬化(full virtualization)中,虛擬機模擬一個足夠強大的硬體使客戶機操作系統獨立運行。這種方案最早在1966年被虛擬機家族的先鋒IBM CP-40與CP-67使用。支持完全虛擬化的虛擬機軟體包括Parallels Workstation, Parallels Desktop for Mac, VirtualBox, Virtual Iron, Oracle VM, Virtual PC, Virtual Server, Hyper-V, VMware Workstation, VMware Server (formerly GSX Server), QEMU, Adeos, Mac-on-Linux, Win4BSD, Win4Lin Pro,以及 Egenera vBlade technology。
在硬體輔助虛擬化(hardware-assisted virtualization)中,硬體提供結構支持幫助創建虛擬機監視並允許客戶機操作系統獨立運行。硬體輔助虛擬化在1972年,為了使用第一個虛擬機操作系統VM/370,第一次由IBM System/370引入。在2005年與2006年,Intel和AMD為虛擬化提供了額外的硬體支持。支持硬體輔助虛擬化的有 Linux KVM, VMware Workstation, VMware Fusion, Microsoft Virtual PC, Xen, Parallels Desktop for Mac,VirtualBox and Parallels Workstation。
支持完整的虛擬化技術的硬體平台包括:
x86 (and x86_64)—AMD-V (代號Pacifica), Intel VT (代號Vanderpool)
IOMMU 由AMD和Intel共同開發。
Power Architecture (IBM/Power.org)
Virtage (Hitachi)
UltraSPARC T1, T2 及 T2+ (Sun)
在部分虛擬化(partial virtualization)中(包括地址空間虛擬化),虛擬機模擬數個(但不是全部)底層硬體環境,特別是地址空間。這樣的環境支持資源共享和線程獨立,但是不允許獨立的客戶機操作系統。雖然這並不被視為一般意義上的虛擬機,但這在歷史上是非常重要的一頁。這項技術曾被用於CTSS(試驗性的IBM M44/44X),以及爭議性的系統比如MVS及Commodore 64(兩個都是“task switch”程序)。
在平行虛擬化(paravirtualization)中,虛擬機不需要模擬硬體,而是提供一個特殊的API只能被特製的客戶機操作系統使用。