VMware NSX原理與實踐----NSX-MH

各位客官,早啊,今日本店爲大家準備了可口的早飯,希望各位朋友好好得吃完這頓飯,不然可沒有力氣趕路😄小二,給各位爺上菜
前序:到前面的講的內容結束,NSX-V的架構和功能以及各種流量模型均已經介紹完畢了,所以今天咱們來點新東西:NSX-MH 。因爲NSX-V是VMware公司針對vSphere定製開發的,只能用於純粹的vSphere環境。要想支持其他的內核(Hypervisor),就需要NSX-MH軟件。那麼在我們介紹這個NSX-MH架構之前,首先需要給大家介紹兩款重要的開源虛擬化解決方案:Xen和KVM。
一、開源虛擬化平臺之Xen
Xen開源軟件在虛擬機的工作類型方面分爲半虛擬化和全虛擬化兩種。其中半虛擬化技術主要是通過修改操作系統的內核來實現的虛擬化技術。Xen的半虛擬化技術主要使用在相同版本的Linux之上,換句話說,如果你想要使用半虛擬化的技術來啓動虛擬機,那麼就要求你要啓動的虛擬機必須都是相同的操作系統,甚至是相同的版本和內核,是不是感覺很嚴格?
在半虛擬化的Xen架構中,系統是分爲多個層級(layer)來執行的,以下圖爲例舉個例子:Linux開機之後,首先載入的是Xen的內核,而第一個在其上啓動的虛擬機的操作系統,稱之爲domain-0.它包含了其他虛擬機啓動所需要的指令,簡單的說它就是控制其他虛擬機的主控系統。雖然大家都是虛擬機,不過看來還是有高低之分的。所以其他的虛擬機自然也就會被命名爲domain-1,domain-2等等,以此類推。
在這裏插入圖片描述
如果需要安裝不同版本的Linux或者其他的操作系統(比如windows),就需要使用全虛擬化技術,但是全虛擬化技術並不是隨意使用的,它也是有着一些硬件方面的限制。限制如下:
1)硬件需要支持Intel-VT技術
2)硬件支持AMD-SVM技術
二、開源虛擬化平臺之KVM
KVM的全稱是基於內核的虛擬機,它是一個開源的系統虛擬化模塊,可以用來實現服務器的虛擬化功能。KVM是Linux內核的一部分,它的基本架構有兩個組件構成。
兩個組件分別是:libvirt和qemu.先說一說libvirt這個組件,libvirt是實現虛擬化數據庫的工具包,想要運行KVM,就需要安裝這個工具包,它的主要功能是實現KVM與Linux的交互,主要負責虛擬機的創建、虛擬內存的分配以及vCPU的運行等等。再說一說qemu,它是用於模擬虛擬機用戶空間的組件,提供I/O設備模型,訪問外部設備的途徑等。qemu通過libKVM應用程序接口,用fd通過ioctl向設備驅動發送創建、運行虛擬機命令,運行了Linux的設備就會來解析並執行命令。KVM的架構圖如下:
在這裏插入圖片描述
KVM模塊使得運行了Linux的主機成了一個虛擬機監視器,並且在原有的兩種Linux模式上又添加了客戶模式,那麼這三種模式的作用是什麼呢?接下來看看
客戶模式:執行非I/O的客戶代碼,虛擬機運行在這個模式下;
Linux用戶模式:代表用戶執行I/O指令,qemu運行在這個模式下;
內核模式:處理因I/O或者其他指令引起的客戶模式推出(VM_EXIT)實現客戶模塊的切換工作。KVM模塊工作在這個模式下。
對於上面的圖,可以這樣給大家去解釋:用戶的qemu通過libKVM應用程序接口,通過ioctl進入內核模式,而KVM模塊爲虛擬機創建虛擬內存、虛擬CPU之後執行虛擬機launch命令,進入客戶模式,加載並執行Guest OS.如果Guest OS 在執行過程中發生外部中斷,就會暫停並且退出客戶模式並進行異常處理,處理完畢後會重新進入客戶模式進行操作。

各位,天色不早了,小店也要上閘板休息了,祝您好夢。小二,關門。

發佈了36 篇原創文章 · 獲贊 30 · 訪問量 5664
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章