国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
剖析系統(tǒng)虛擬化(4)- VMware ESX架構(gòu)
剖析系統(tǒng)虛擬化(4)- VMware ESX架構(gòu)作者:吳朱華    厚樸教育來源:人云亦云    點(diǎn)擊數(shù):102    更新時(shí)間:2010-5-25

上篇文章已經(jīng)向大家介紹了VMwarevSphere,而本篇將繼續(xù)把重點(diǎn)放在vSphere身上,并向介紹大家vSphere之核心ESX的架構(gòu),雖然關(guān)于ESX架構(gòu)的公開資料較少,但是基于這些已公開的資料,并加上我的一些實(shí)際經(jīng)驗(yàn),我覺得還是能對(duì)ESX的架構(gòu)有一個(gè)大致的描述,下圖為ESX的架構(gòu):

 
圖1. ESX的架構(gòu)圖(點(diǎn)擊可看大圖)(參【2】)

ESX主要可被分為兩部分:其一是用于提供管理服務(wù)的ServiceConsole,其二是ESX的核心,也是主要提供虛擬化能力的VMKernel。

Service Console

簡單的來說,Service Console就是一個(gè)簡化版RedhatEnterprise OS。雖然其不能實(shí)現(xiàn)任何虛擬化功能,但是對(duì)這個(gè)ESX架構(gòu)而言,它卻是一個(gè)不可分割的一部分。主要有五個(gè)方面功能:

1.啟動(dòng)VMKernel,當(dāng)ESX主機(jī)啟動(dòng)的時(shí)候,首先會(huì)啟動(dòng)ServiceConsole,接著在Linux runlevel3上啟動(dòng)VMKernel,之后將全部硬件資源的管理權(quán)移交給VMKernel。當(dāng)VMKernel啟動(dòng)成功之后ServiceConsole就成為運(yùn)行VMKernel上面的第一個(gè)虛擬機(jī)。
  2.提供各種服務(wù)接口,比如命令行,Web接口,SDK接口等,并安裝VirtualCenter Agent以支持很多需要和Virtual Center配合的高級(jí)服務(wù),比如,vMotion和DRS等。
3.性能檢測(cè),因?yàn)樗蠽Mkernel的性能數(shù)據(jù)都會(huì)記錄在ServiceConsole的/proc目錄下,所以不僅能夠通過腳本來處理這些性能數(shù)據(jù),而且還能使用ServiceConsole自帶的ESXTOP命令來觀測(cè)。
  4.認(rèn)證,Service Console提供多種認(rèn)證機(jī)制。
  5.負(fù)責(zé)主機(jī)部分硬件的管理,比如,鼠標(biāo),鍵盤,顯示屏和CD-ROM等等。

注:雖然ServiceConsole提供了許多功能,但因?yàn)槠浔旧碣Y源所限的原因(關(guān)于這點(diǎn),我曾經(jīng)和一位VMware工程師有過聊天,好像整個(gè)ServiceConsole大概只能占有280MB內(nèi)存和少量的I/O),所以不適合在ServiceConsole中執(zhí)行一些重量級(jí)的任務(wù),比如:上傳或者復(fù)制虛擬磁盤(Virtual Disk)。

VMKernel

VMKernel是由VMware開發(fā)的基于POSIX協(xié)議的操作系統(tǒng),它提供了很多在其它操作系統(tǒng)中也能找到的功能,比如,創(chuàng)建和管理進(jìn)程,信號(hào)(Signal),文件系統(tǒng)和多線程等。但它是為運(yùn)行多個(gè)虛擬機(jī)而“度身定做”的。它的核心功能是資源進(jìn)行虛擬化。下面將通過CPU,內(nèi)存和I/O這三個(gè)方面,來講解VMKernel是如何實(shí)現(xiàn)虛擬化的。

CPU
  在CPU方面,ESX使用了在第二篇提到的兩個(gè)全虛擬化技術(shù):優(yōu)先級(jí)壓縮(Ring Compression)和二進(jìn)制代碼翻譯(Binary Translation)。

優(yōu)先級(jí)壓縮,指的是為了讓VMKernel獲得所有物理資源的控制權(quán),比如CPU。這就需要讓VMKernel運(yùn)行在Ring 0,在其上面的虛擬機(jī)內(nèi)核代碼是運(yùn)行在Ring 1,而虛擬機(jī)的用戶代碼只能運(yùn)行在Ring3上。這種做法不僅能讓VMKernel安全地控制所有的物理資源,而且能讓VMKernel截獲部分在虛擬機(jī)上執(zhí)行的特權(quán)指令,并對(duì)其進(jìn)行虛擬化。

二進(jìn)制代碼翻譯,雖然上面的優(yōu)先級(jí)壓縮這個(gè)技術(shù)已經(jīng)處理了很多特權(quán)指令引發(fā)的異常情況,但是由于X86架構(gòu)在初始設(shè)計(jì)方面并沒有考慮到虛擬化這個(gè)需求,所以有很多X86特權(quán)指令成了優(yōu)先級(jí)壓縮的漏網(wǎng)之魚,雖然通過傳統(tǒng)的Trap-Emulation技術(shù)也能處理這些指令,但是由于其不僅需要花時(shí)間觀測(cè)有潛在影響的指令,而且還要監(jiān)視那些非常普通的指令,導(dǎo)致Trap-Emulation的效率非常低,所以VMware引進(jìn)了二進(jìn)制代碼翻譯這個(gè)技術(shù),這個(gè)技術(shù)能讓那些非常普通的指令直接執(zhí)行,不干涉,并提供接近物理機(jī)的速度,但會(huì)掃描并修改那些有嫌疑的代碼,使其無法對(duì)虛擬機(jī)造成錯(cuò)誤的影響。由于大多數(shù)代碼都不屬于有嫌疑的,所以二進(jìn)制代碼翻譯的效率遠(yuǎn)勝Trap-Emulation。還有經(jīng)過VMware長達(dá)十年的調(diào)優(yōu),使得二進(jìn)制代碼翻譯這個(gè)技術(shù)越發(fā)優(yōu)秀。

接下來,談一下的VMware的二進(jìn)制代碼翻譯技術(shù)的特點(diǎn):

1.純二進(jìn)制:二進(jìn)制翻譯器的輸入和輸出都是二進(jìn)制的X86代碼,而不是文本形式的源代碼。
2.動(dòng)態(tài):二進(jìn)制代碼只會(huì)在運(yùn)行時(shí)翻譯,翻譯器會(huì)在生成代碼之間進(jìn)行串聯(lián)。
隨需應(yīng)變:只有在代碼即將執(zhí)行時(shí)翻譯,這樣只有代碼才會(huì)被翻譯,從而避免對(duì)數(shù)據(jù)的進(jìn)行翻譯。
  3.基于底層:翻譯器只會(huì)根據(jù)X86指令集進(jìn)行翻譯,而不是上層的二進(jìn)制接口。
  4.子集:如果翻譯器的輸入是完整的X86指令集,但是它的生成的代碼是X86的安全子集,同時(shí)意味著生成的代碼能在低權(quán)限的用戶模式運(yùn)行。
  5.靈活:翻譯的代碼會(huì)根據(jù)虛擬機(jī)的運(yùn)行狀態(tài)來進(jìn)行調(diào)整,從而提升效率。

對(duì)于CPU虛擬化而言,只有上面這兩種技術(shù)是遠(yuǎn)遠(yuǎn)不夠的,還需要調(diào)度技術(shù),也就是需要CPU調(diào)度器(Scheduler)。但是CPU的調(diào)度器和常見操作系統(tǒng)的調(diào)度器是很不同的,因?yàn)镃PU的調(diào)度器的責(zé)任是將執(zhí)行上下文分配給一個(gè)處理器,而普通操作系統(tǒng)的調(diào)度器則是執(zhí)行上下文分配給一個(gè)進(jìn)程。同樣的是,CPU調(diào)度器并沒有采用傳統(tǒng)的優(yōu)先級(jí)機(jī)制,而是采用平衡共享的機(jī)制,來將處理器資源更好地分配給虛擬機(jī),同時(shí)也能設(shè)定每個(gè)虛擬機(jī)的份額,預(yù)留和極限等設(shè)定值。在VMware最常用的CPU調(diào)度器算法,是“Co-Scheduling”算法,其也常被稱為“gang-scheduling”算法,它的核心概念是讓相關(guān)的多個(gè)進(jìn)程盡可能在多個(gè)處理器上同時(shí)執(zhí)行,因?yàn)楫?dāng)多個(gè)相關(guān)進(jìn)程同時(shí)執(zhí)行時(shí),它們互相之間會(huì)進(jìn)行同步,假設(shè)他們不再一起執(zhí)行的話,將會(huì)增加很多由同步導(dǎo)致的延遲。在vSphere中,VMware推出了Co-Scheduling的更新版本,叫做RelaxedCo-Scheduling,它能更好地與虛擬機(jī)進(jìn)行協(xié)作。同時(shí),為了更好利用最新推出了多核系統(tǒng),VMware也給調(diào)度器添加很多新的特性,主要集中在兩方面:其一是對(duì)現(xiàn)有多核環(huán)境的探知,比如對(duì)NUMA(Non-Uniform MemoryAccess),Hyperthreading,VM-Affinity的支持。其二是在多核之間進(jìn)行有效的負(fù)載均衡。

內(nèi)存
  VMKernel在內(nèi)存虛擬化方面所采用的核心機(jī)制就是“影子頁表 (Shadow PageTable)”。在探討影子頁表的機(jī)制之前,先看一下傳統(tǒng)頁表的運(yùn)行機(jī)制,其實(shí)也很簡單,就是頁表將VPN(Virtual Page Number虛擬內(nèi)存頁號(hào))翻譯成MPN(Machinel PageNumber,機(jī)器內(nèi)存頁號(hào)),之后將這個(gè)MPN發(fā)給上層,讓其調(diào)用。但是這種做法在虛擬的環(huán)境是不適用的,因?yàn)楫?dāng)虛擬機(jī)從頁表得到的翻譯之后的頁號(hào)不是MPN是PPN(物理內(nèi)存頁號(hào)),之后需要從PPN再轉(zhuǎn)換成MPN,由于這樣將經(jīng)歷兩層轉(zhuǎn)換,所以肯定會(huì)較高的成本,所以VMware引入影子頁表這個(gè)機(jī)制,它維護(hù)為每個(gè)Guest都維護(hù)一個(gè)“影子頁表”,在這個(gè)表中能直接維護(hù)VPN和MPN之間映射關(guān)系,并加載在TLB中。所以通過“影子頁表”這個(gè)機(jī)制能夠讓Guest在大多數(shù)情況下能通過TLB直接訪問內(nèi)存,保證了效率。

 
圖2. 內(nèi)存虛擬化(點(diǎn)擊可看大圖)

由于虛擬機(jī)對(duì)內(nèi)存的消耗勝于對(duì)CPU的消耗,同時(shí)介于內(nèi)存的內(nèi)容同質(zhì)化和浪費(fèi)這兩個(gè)現(xiàn)象在虛擬環(huán)境非常普遍,所以VMware在影子頁表的基礎(chǔ)上引入了三個(gè)非常不錯(cuò)的技術(shù)來減少內(nèi)存的消耗,以支撐更多的虛擬機(jī):其一是MemoryOvercommit機(jī)制,這個(gè)機(jī)制通過讓虛擬機(jī)占用的內(nèi)存總量超越物理機(jī)的實(shí)際容量來使一臺(tái)物理機(jī)能支持更多的虛擬機(jī)。其二是用于減少虛擬機(jī)之間相似內(nèi)存頁的PageSharing,它主要實(shí)現(xiàn)是通過對(duì)多個(gè)虛擬機(jī)的內(nèi)存頁面進(jìn)行Hash,來獲知那些內(nèi)存頁面是重復(fù)的,接著將多個(gè)重復(fù)的內(nèi)存頁面整合為一個(gè)replica,之后通過CoW(Copy On Write)的機(jī)制來應(yīng)對(duì)對(duì)內(nèi)存頁面的修改。其三是能在各個(gè)虛擬機(jī)之間動(dòng)態(tài)調(diào)整內(nèi)存的BalloonDriver,其實(shí)現(xiàn)機(jī)制就是通過給每個(gè)虛擬機(jī)安裝VMware Tools(可以把VMwareTools看作VMware的驅(qū)動(dòng))來裝入Balloon Agent,在運(yùn)行的時(shí)候,Balloon Agent會(huì)和主機(jī)的BalloonDriver進(jìn)行溝通,來調(diào)整每臺(tái)虛擬機(jī)的內(nèi)存空間,來將那些在某些虛擬機(jī)上不處于工作狀態(tài)的內(nèi)存通過swapping等方式來閑置出來,以撥給那些急需內(nèi)存的虛擬機(jī)。

I/O
  VMKernel的做法是通過模擬I/O設(shè)備(磁盤和網(wǎng)卡等)來實(shí)現(xiàn)虛擬化。而且主要選取最大眾化的硬件來模擬,比如440BX的主板,LSI Logic的SCSI卡和AMDLance的網(wǎng)卡,從而提高這些模擬I/O設(shè)備的兼容性。 對(duì)Guest OS而言,它所能看到就是一組統(tǒng)一的I/O設(shè)備,同時(shí)GuestOS每次I/O操作都會(huì)陷入到VMM,讓VMM來執(zhí)行。這種方式,對(duì)Guest而言,是一種非常透明的方式,因?yàn)闊o需顧忌其是否和底層硬件兼容,比如Guest操作的是SCSI的設(shè)備,但實(shí)際物理機(jī)可以SATA的硬盤。雖然這種模擬I/O設(shè)備的做法有一定開支,但在經(jīng)過了VMware長時(shí)間優(yōu)化,使得其在處理小規(guī)模的I/O時(shí),非常游刃有余,但是在這個(gè)模型的方法在處理大規(guī)模I/O的時(shí)候,有時(shí)候可能會(huì)出現(xiàn)力不從心的局面,所以VMware在I/O層推出一些半虛擬機(jī)技術(shù),比如,vmxnet半虛擬化網(wǎng)卡。

其次,為了更好地為VM服務(wù),VMKernel還支持一些高級(jí)I/O技術(shù):

1.VMFS,是VMware為虛擬化設(shè)計(jì)的分布式文件系統(tǒng),它不僅能給虛擬機(jī)提供高速的I/O,而且由于它自帶的鎖機(jī)制,所以允許多個(gè)主機(jī)能同時(shí)訪問同一個(gè)文件系統(tǒng)。因?yàn)榉胖迷谄渖厦娴亩酁榇笥?G的VirtualDisk,為了減少存取文件系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的元數(shù)據(jù)的大小,它Block大小被設(shè)計(jì)為1MB到256MB,默認(rèn)是1MB,使得其元數(shù)據(jù)得到了精簡,而且所有的元數(shù)據(jù)都被放置在內(nèi)存中作為緩存,以提高速度。
  2.VirtualSwitch,其也是VMKernel的一個(gè)組件,主要給ESX主機(jī)上面所有虛擬機(jī)提供網(wǎng)絡(luò)支持。在功能方面。除了不支持STP(Spanningree protocol,生成樹協(xié)議)和無需通過檢測(cè)網(wǎng)絡(luò)流量來獲得之外,其他基本和物理交換機(jī)類似。在vSphere中,VMware也推出了Virtual Switch的升級(jí)版本Distributed VirtualSwitch,它將解決一些Virtual Switch的瑕疵。
  3.支持新的物理層技術(shù):VMDirectPath能增強(qiáng)網(wǎng)絡(luò)和存儲(chǔ)方面的I/O性能,PCI-SIG的SR-IOV硬件虛擬化技術(shù)能更好地對(duì)PCIe設(shè)備進(jìn)行虛擬化, vStorage的 ThinProvisioning和Linked Clone這兩個(gè)技術(shù)可減少存儲(chǔ)空間達(dá)50%左右。
  4.網(wǎng)絡(luò)和存儲(chǔ)方面的調(diào)度:除了系統(tǒng)能通過預(yù)設(shè)定一些網(wǎng)絡(luò)和存儲(chǔ)的參數(shù)來提升性能,用戶還可以通過GUI(比如vSphere Client)來對(duì)網(wǎng)絡(luò)和存儲(chǔ)這兩方面進(jìn)行調(diào)優(yōu)。

總結(jié)

在開頭也說,有可能是競(jìng)爭的原因,使得VMware已經(jīng)越來越少地公開它的技術(shù)資料,特別是最核心的ESX技術(shù)。 所以上面這些材料主要是來自于ESX 2的文檔,而不是來自于最新的vSphere4的文檔,但是從這些文檔中,我們還可以可以看出它絕對(duì)是全虛擬化的巔峰,并且在其新版中也已經(jīng)引入了代號(hào)為VMI的半虛擬技術(shù)和支持Intel/AMD最新的硬件輔助虛擬化技術(shù)。就像本系列第二篇X86虛擬化技術(shù)所講的那樣,雖然在速度上面,半虛擬化技術(shù)和硬件輔助虛擬化技術(shù)的確各有千秋,但是他們都有軟肋,半虛擬化技術(shù)是需要對(duì)GuestOS進(jìn)行修改,硬件輔助虛擬化技術(shù)則是不夠成熟,而且ESX的全虛擬化技術(shù)是經(jīng)過VMware高級(jí)工程師們長達(dá)10年優(yōu)化的,所以在跑某些Workload的時(shí)候,全虛擬化反而速度更優(yōu)。綜上所述,用戶在使用最新版ESX的時(shí)候,應(yīng)該根據(jù)不同的workload來選擇不同的虛擬化方法,具體可以查看VMware的白皮書(見參3)。

厚樸教育錄入:陳超銘    責(zé)任編輯:陳超銘 
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
云計(jì)算4種主流虛擬技術(shù)架構(gòu)對(duì)比分析
vSphere 基礎(chǔ)知識(shí)學(xué)習(xí)之內(nèi)存虛擬化
VMware vSphere的優(yōu)勢(shì)和區(qū)別
VMware ESXi Server 的介紹
終于理解了VT虛擬化技術(shù)的作用?。▋?nèi)詳)
中小企業(yè)實(shí)施服務(wù)器虛擬化技術(shù)概述
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服