elasticsearch入門系列">elasticsearch入門系列
734
2022-05-30
哈哈,為了積極支持社區建設,有點臭不要臉地把多年(已成記憶的2013年)前的博客文章搬進來,可能個別字眼會改變一下!
本系列初步構思有五篇文章,主要介紹網絡虛擬化,存儲虛擬化,服務器虛擬化,桌面虛擬化和應用虛擬化
先從我們大多數人較熟悉和常用的服務器虛擬化開始。這里所說的服務器虛擬化,包含服務器操作系統的虛擬化,也包含辦公娛樂用操作系統的虛擬化,說白了就是對各種操作系統的虛擬化,也就是我們用戶接觸和使用到的虛擬機(VM,Virtual Machine)
一、云計算
在談論虛擬化之前,卻有必要說明一下云計算。
云計算,這個名詞如今已是大紅大紫,但現在還沒有權威的具體的定義。我反復查找資料,看到美國國家技術和標準研究院(NIST)有一個定義供參考。
“云計算是一個提供便捷的可通過網絡訪問一個可定制的計算資源池的服務模式(計算資源包含存儲,網絡,服務器,應用和開發等);這些資源能夠快速部署,并只需要很少的管理工作或與服務供應商很少的交互。”
上面一段話看起來依舊深奧晦澀,在這里我僅羅列云計算的一些特點,(我個人理解的云計算)具有如下一些特點:
資源池化
按需使用
自助服務
虛擬化和網絡化
可擴展和可度量
高效率和低能耗
任意設備和便捷訪問
雖然目前業界對云計算沒有完整權威定義,但當今云計算的具體服務模式,卻顯而易見的有以下三種方式:
基礎設施即服務 Infrastructure as a Service,IaaS
平臺即服務 Platform as a Service,PaaS
軟件即服務 Software as a Service,SaaS
我說了這么多廢話,大家好像也沒看出與今天要探討的虛擬化有多大關系,諸位且慢,請看下圖一所示。
(圖一、虛擬化與云計算架構
可見虛擬化是云計算的基礎,離開了虛擬化,可以說云計算必然成了無源之水無本之木;但虛擬化絕不等于云計算,可以說云計算是一種模式,虛擬化是一種技術
二、虛擬化
那什么是虛擬化呢?較學術的解釋如下:
“一種對不同計算資源進行隔離、去耦合的過程。”
照我個人的理解,就是實現軟件與硬件無關(也可以說是把硬件標準化),這樣就達到操作系統和軟件資源可在不同物理硬件之間移動和運行的目的
三、虛擬化架構
當今用于服務器虛擬化的體系架構,歸納起來可以說有如下圖二所示的三種:
(圖二、常見的三種虛擬化架構)
這里面涉及到一個叫VMM的層,我們稱其為虛擬機監控器(Virtual Machine Monitor),它主要是實現多個獨立實例共享同一底層硬件資源。
最左邊的,可以叫程序虛擬化,常見的就是Java虛擬機,它隔離特殊進程,為其創造運行環境,達到與操作系統無關,程序不必為特定的操作系統或硬件編寫。
中間的這種,我們可以說是混合虛擬化,就是在操作系統底層(Ring0)加入相應驅動,但還與操作系統應用層(Ring3)有交互,也就是說虛擬化管理層是運行在主機操作系統之上,依靠主機操作系統來模擬硬件設備,以便在其上運行虛擬機,其優點是對物理硬件要求低,但是性能相對差。常見的例子有微軟的Virtual PC/VirtualServer;VMware的VMware Workstation/VMware Server;VirtualBox等。
最右邊的,可以說是真正的虛擬化,有的稱其為裸金屬架構。他是直接在硬件上跑虛擬化管理層,其優點是性能比較好。裸金屬架構的虛擬化管理層,一般叫做Hypervisor,它一般運行在Ring1層(有的書上解讀為Ring-1,實際上X86就Ring0到Ring3,所以這種說法有待商榷;進一步解釋見下一段落)。常見的有VMware ESX Server,微軟的Hyper-V(微軟2003年收購Connectix后獲得的技術發展而來),思杰的XenServer(源于英國劍橋大學計算機實驗室開發的一個Xen虛擬化開源項目),當然還有Redhat等推薦的KVM架構,我大華為現在主要也玩這個。
虛擬化技術最初有牛哄哄的IBM于上世紀60年代設計,主要是用于大型機的。事實上要實現虛擬化,還得處理器硬件支持。x86 處理器有 4 個特權級別:Ring 0 ~ Ring 3,只有運行在 Ring 0 ~ 2 級時,處理器才可以訪問特權資源或執行特權指令;運行在 Ring 0 級時,處理器可以訪問所有的特權狀態。x86 平臺上的操作系統一般只使用 Ring 0 和 Ring 3 這兩個級別,操作系統內核等運行在 Ring 0 級,用戶進程運行在 Ring 3 級。為了避免來賓操作系統控制系統資源,Hypervisor不得不降低自身的運行級別,一般運行在 Ring 1級(Ring 2 不使用)。x86處理器硬件起先并不帶有虛擬化功能(主要就是實現Hypervisor運行在 Ring 1級),在2005年與2006年,英特爾與AMD分別在它們的x86架構上實現和硬件支持虛擬化
四、裸金屬架構的區別
如上所述,即使是裸金屬架構的虛擬化,它也有一個VMM的層,一般又叫做Hypervisor,并且一般運行在Ring1層。主要代表有VMware ESX Server和微軟的Hyper-V。但他們兩家也還有一些不同之處。如下圖三所示。
(圖三、胖廋虛擬化比較
VMware ESX Server由于把底層物理硬件的驅動程序整合到Hypervisor管理層中,所以管理層顯得比較胖,我們不妨稱其為胖虛擬化。這種架構對底層物理硬件的要求比較高,穩定性和安全性的挑戰比較高。
微軟的Hyper-V,Hypervisor管理層僅用于管理CPU和內存,而不包含底層物理硬件的驅動程序,所以管理層顯得比較瘦,我們不妨稱其為瘦虛擬化。由于不包含硬件驅動,所以代碼量比較小,安全性更高、穩定性也更好,下圖是網上的參考資源。
華為云計算 華為云
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。