從接觸虛擬化技術到現在從事Openstack相關的開發已經好幾年了,最初很多模模糊糊的概念現在看似也很簡單,但是總覺得欠缺些什么,好吧那就給自己上上課,溫故知新嘛。
虛擬化技術干什么的?
最早接觸虛擬化是上學的時候使用虛擬機,當時要學習Linux,又不想在自己機器上直接裝,只能用虛擬機了,當年學生狗電腦不夠給力,只覺得虛擬機太坑啊,但是能給讓我很好的在PC中運行另一個操作系統,已經很讓我吃驚了,性能的問題就不足掛齒了。
然后我開始用自己的方式慢慢的去理解虛擬化是什么,我覺得最根本的需求就是資源的合理分配,才促使虛擬化技術的誕生和發展。比如一筐梨,有10斤,有10個人,每個人都想要1斤梨,不過可能10斤梨一共是9個梨,而且大小也不一定均勻,這樣是很難公平合理的給每個人進行分配的。但是如果有這些梨都變成梨汁的話問題就不一樣了,通過榨汁處理后的果汁基本可以做到按需分配,而且成分幾乎一樣。
同樣的道理,服務器有很多但是面對人們各種各樣或大或小的需求,傳統的方式是很難分配的,有的可能資源不足,有的可能資源過剩,如果能把所有的服務器中的資源進行抽象然后池話,就可以做到按需使用,合理的進行資源分配了。
所以虛擬化技術就相當于一個榨汁的過程,將物理資源進行抽象。
云計算是干什么的?
后來自己接觸了云計算,從事了Openstack,那這就容易理解很多了,虛擬化技術將作為整體的物理資源進行“榨汁”抽象,那每一個物理服務器都做相同的處理,最后形成一個龐大的資源池,那如何從資源池中獲得資源,資源如何使用以及統一的調度管理,資源不夠的時候怎么辦,每個人能使用多少資源等等,說到這里可以看出來,“榨汁”雖然獲取實現起來有些難度,但是在整個資源分配的過程中只是最基本的一環,最后想要這些資源形成生產力是需要一個龐大的系統來支撐的,這就是云計算的作用。如果說虛擬化技術是一個榨汁過程的話,云計算技術就是一整套果汁店的運行方案了。
虛擬化技術有哪些
這里參考了一篇文章,可以點這里查看。
其實分類有很多種,站在不同的角度看待一個事物就會有不同的結果,那從我自己所接觸的并且容易理解的方式,我覺得可以分為三種,硬件仿真,全虛擬化以及半虛擬化。
硬件仿真
在物理機上創建一個模擬硬件的程序,來仿真所有的硬件,在這個程序之上運行虛擬機,最典型的就是QEMU了。
- 優點:虛擬機操作系統(VM OS)不需要更改
- 缺點:由于所有的硬件都是軟件模擬的,所以性能很差
全虛擬化
虛擬機的操作系統與底層硬件是完全隔離的,由Hypervisor捕捉并進行轉化由VM OS對硬件的調用代碼,比較典型的有KVM。
- 優點:無需更改虛擬機操作系統,兼容性好。
- 缺點:性能一般,特別是I/O性能
半虛擬化
與全虛擬化技術類似,利用Hypervisor來實現對底層硬件的共享訪問,但VM OS中需要集成半虛擬化相關的代碼,也就是讓虛擬機自己知道是一個虛擬機,來配合Hypervisor。通過這種方式無需捕捉特權指令,所以性能非常好。最典型的的是Xen。
- 優點:性能好
- 缺點:需要對VM OS進行更改
這里曾經自己有一個疑惑,不太清楚硬件仿真和全虛擬化的區別在哪里,也可能是中文名字的誘導,現在還算清晰一些,硬件仿真的方式,虛擬機執行的指令都是由仿真程序模擬的,而全虛擬化中的虛擬機的指令是經過Hypervisor轉給底層硬件的,后者如果還算是真正的調用了底層硬件的話,前者根本就是假貨,都是仿真程序模擬的。是由根本區別的。
Hypervisor又是什么?
上面說到虛擬化技術相當于一個榨汁的過程,更準確點來說算是一個完整榨汁的方案,那Hypervisor就是一個榨汁機。這時候再看下準確點的定義應該能更清晰了,參考這里吧,這篇文章這樣寫的:
虛擬化 就是通過某種方式隱藏底層物理硬件的過程,從而讓多個操作系統可以透明地使用和共享它。這種架構的另一個更常見的名稱是平臺虛擬化。在典型的分層架構中,提供平臺虛擬化的層稱為 hypervisor (有時稱為虛擬機管理程序 或 VMM)。來賓操作系統稱為虛擬機(VM),因為對這些 VM 而言,硬件是專門針對它們虛擬化的。圖 1 簡單的展示了這個分層架構。
figure1.gif
hypervisor 可以劃分為兩大類。首先是類型 1,這種 hypervisor 是直接運行在物理硬件之上的。其次是類型 2,這種 hypervisor 運行在另一個操作系統(運行在物理硬件之上)中。類型 1 hypervisor 的一個例子是基于內核的虛擬機(KVM —— 它本身是一個基于操作系統的 hypervisor)。類型 2 hypervisor 包括 QEMU 和 WINE。
type1.png
type2.png
之前也混淆過Hypervisor的分類與虛擬化的分類情況,現在這樣看的話就能分清了,虛擬化如果是一套榨汁理論的話,Hypervisor是真正的榨汁機的按個產品。
這些內容這么長時間翻來覆去的也看了很多遍,但是放到一起的話感覺自己才看明白了,2017希望自己堅持下去,溫故知新!