Xen
Xen是開放源代碼虛擬機監視器,由XenProject開發,能夠在單個計算機運行多達128個有完全功能的操作系統。
原作者 | 凱伊爾·弗拉瑟 史蒂芬·漢特 伊安·普拉特 劍橋大學電腦實驗室 |
---|---|
開發者 | Xen Project |
首次發布 | 2003年 |
當前版本 | 4.16[1](2021年12月2日 ) |
源代碼庫 | |
操作系統 | Linux、BSD、OpenSolaris |
類型 | Hypervisor |
許可協議 | GNU GPL v2 |
網站 | www |
在舊(無虛擬硬件)的處理器上執行Xen,操作系統必須進行顯式地修改(「移植」)以在Xen上運行(但是提供對用戶應用的兼容性)。這使得Xen無需特殊硬件支持,就能達到高性能的虛擬化。
使用
IBM經常在其主機和服務器上使用虛擬機來儘可能發揮其性能,並類似chroot監禁那樣將程序置於隔離的虛擬OS中以增強安全性。除此之外,它還能使不同和不兼容的OS運行在同一台計算機上。Xen支持在運行時進行遷移,保證正常運行並且避免宕機。
Xen的半虛擬化
Xen通過一種叫做半虛擬化的技術獲得高效能的表現(較少的效能損失,典型的情況下大約損失2%,在最糟的情況下會有8%的效能耗損;與其它使用完全的虛擬化卻造成最高到20%損耗的其他解決方案形成一個明顯的對比),甚至在某些與傳統虛擬技術不友好的架構上(如x86),Xen也有極佳的表現。但是這要求虛擬機使用經過修改的客戶端操作系統。與那些傳統透過軟件模擬實現硬件的虛擬機不同,在3.0版本及在Intel VT-X支援前的Xen需要讓客戶端操作系統(guest operating systems)與Xen API進行連接。到目前為止,這樣連結已經可以運用在NetBSD、GNU/Linux、FreeBSD和貝爾實驗室的Plan 9系統上。在Brainshare 2005 (頁面存檔備份,存於網際網路檔案館)會議上,Novell展示了NetWare與Xen的連通。與Windows XP連通的技術曾在Xen開發初期進行,但微軟的協議未能允許它發布。Sun微系統公司也正積極研究Solaris與Xen的連結,使其能在Xen平台上運作。
Xen的完全虛擬化
Intel為Xen貢獻了補丁以支持其VT-X架構擴展,而AMD則進行修改以支持其AMD-V架構擴展。如果系統處理器支持虛擬硬件擴展(Intel和AMD對本地支持虛擬化的擴展),這項技術將允許未經修改的操作系統運行在Xen虛擬機中。事實上,這意味着性能的提升,用戶也可以在不違背任何修改限制協議的情況下對Windows進行虛擬。也就是說,Xen的完全虛擬化模式允許Xen虛擬機運行未經修改的Windows等操作系統。但是在x86平台上,只有支持x86虛擬化的電腦才支持Xen的全虛擬化模式。Xen的完全虛擬化依賴於QEMU。
虛擬機的遷移
Xen虛擬機可以在不停止的情況下在多個物理主機之間即時遷移(live migration)。在操作過程中,虛擬機在沒有停止工作的情況下內存被反覆的複製到目標機器。虛擬機在最終目的地開始執行之前,會有一次60-300毫秒的非常短暫的暫停以執行最終的同步化,給人無縫遷移的感覺。類似的技術被用來暫停一台正在運行的虛擬機到磁盤,並切換到另外一台,第一台虛擬機在以後可以恢復。
系統平台支援
類Unix系統的Xen
參見
引用
- ^ RELEASE-4.16.0. Ian Jackson. Dec 2, 2021 [Dec 3, 2021]. (原始內容存檔於2021-12-03).
- ^ (英文)Xen to Become Linux Foundation Collaborative Project (頁面存檔備份,存於網際網路檔案館)