http://bbs.doit.com.cn/thread-50438-1-1.html

虛擬雞和虛擬鴨

好久不寫正經的技術介紹了,以至于最近朋友見了都問“換行之后感覺如何?”
“我K~誰…誰…誰…誰說我換行啦?我還在做皮匠這份很有前途的職業哩!”
好吧,為了不讓人誤會,我還是介紹點咚咚吧。可介紹點啥哩?
有了!讓我來隆重介紹兩個概念:SANNAS……別吐,別吐,我不說了還不行嗎!救護車~~~

唉,也是,存儲技術里也沒啥有意思的新咚咚了。FCoE?這東西只能讓我聯想起周星星同學發明的“太陽能手電筒”——只有在有光的地方才能亮,在沒有光的地方,堅決不亮。

想來想去,EMC收購VMware之后,好多存儲人開始注意虛擬主機技術,咱們就說說這虛擬技術吧。不過事先聲明,這方面我也不懂,我姑且一說,您姑且一聽,如假不換,管殺不管埋……前排的同學注意了,不要再亂扔西紅柿了,不然我要講回SANNAS嘍!

說起虛擬技術呢,首先當然要提這一領域的四大天王,他們是:VMwareXENMS Virtual ServerVirtuozzoOpenVZ
(哄噢~有人不識數喔~)
聽我慢慢說啦!OpenVZ是用Virtuozzo全套源碼的一個開源項目,所以技術上說,VirtuozzoOpenVZ是一家,就像CentOSRed Hat的關系一樣。當然CentOSRed Hat實在太相像了,而VirtuozzoOpenVZ還是稍微有點區別的。比如Virtuozzo能支持Windows,而OpenVZ就不行;Virtuozzo有很多圖形節目的管理工具,OpenVZ目前還只能用命令行。

敘述的有點亂,還是逐個介紹一下四大天王先。

首屈一指的當屬VMware公司。這個公司在虛擬主機方面的產品賊豐富,技術也賊成熟,順其自然的,其看家護院的產品——ESX Server——賣的也就賊貴賊貴的。

這個ESX Server是直接安裝在裸機上的,不需要安裝任何操作系統,或者說,ESX自己就是個特殊的操作系統。因為ESX的安裝界面很像RedHat,里面的指令和服務也很像,所以有些人誤以為ESX = RedHat + VMware Server,其實不是醬子滴。

ESX里的大部分底層驅動都由VMware重新寫過,而且還內帶好多咚咚,比如SAN文件共享和多路徑冗余。VMware為了表示自己的確干了好多活,就把這個kernel命名為VMkernel
而整個ESX基本可以看作VMkernel + Console。這個Console基本就是RedHat AS3的改版,可以看做是個特殊的虛擬機。

本人覺得VMware最酷的技術是VMotion,就是能讓虛擬機活著搬家。我曾伙同另外一個家伙測過VMotion的效率,在虛擬機從一臺服務器搬家到另外一臺服務器的過程中,持續ping這臺虛擬機的IP地址,結果發現整個過程中只有一個ping響應略有延遲。厲害!

當然嘍,要實現VMotion,就肯定需要后端有一個共享SAN文件系統。ESX里面帶的SAN文件系統叫VMFS,實現的功能跟SANergyFSADIC StorNext FS差不多,不過VMFS是對稱式的。也就是說,安裝ESX的時候,不需要給VMFS指定MDC

ESX里集成的多鏈路功能也不錯,主流光纖卡都能支持(要求太低了點兒吧~)
還有,多鏈路聚合和切換是在驅動層完成的,不是靠device-mapperMD。也就是說,在雙卡的機器上安裝ESX之后,在/proc/scsi/scsi里看到的,就已經是合并之后的設備,不需要像powerpath那樣再搞東搞西的。

另外ESX還支持iSCSINFS,用來連接IP-SANNAS(咦?這回居然沒人嘔吐,那我再大聲說一遍,“IP-SANNAS~”OK,我爽了,你慢慢吐先。)
其實ESX里面是有Samba Client的,而且我試了試,訪問一般的Windows共享沒啥問題。但是VMware的官方文檔里,目前還沒有對CIFS的支持,也許是人家對自己嚴格要求吧。

VMware產品系列中,除了ESX以外,還有兩個虛擬引擎——VMware Server(也就是原來的GSX),VMware Workstation以及最近即將發布的VMware Fusion
Sorry,這回真的數錯了,是三個,三個產品。ServerWorkstationFusion
ESX相比,這三個產品運行的層次要高一些,都是要安裝在操作系統上的。ServerWorkstation運行在WindowsLinux上,Fusion運行在蘋果的Mac OS上。

為了配合這些個虛擬引擎,當然主要是為了配合ESXVMware還有一些管理軟件和工具。比如Virtual CenterImporterConvertorP2VPlayer等等。
這些工具中很多是免費的,也有些如Virtual Center這樣的工具,是跟ESX打包在一起賣的。ESX + VC的組合叫Virtual Infrastructure,簡稱VI

順便提一下,虛擬技術世界里,簡稱VI的咚咚好多,一不留神就容易搞混。比如有家公司叫Virtual Iron,而且其產品也叫Virtual Infrastructure,另外在InfiniBand交換技術里還有個協議層叫Virtual Interface。下次有人跟你說VI的時候,最好問清楚是哪個VI,免得最后驢被馬性騷擾。
類似的重名現象還有VDI這個縮寫。VMware有一個包叫Virtual Desktop InfrastructureVirtual Iron公司也有個名字完全相同的產品包。當然里面的咚咚是完全不同的啦。

造成這嚴重的重名現象至少有兩種可能:
一是這些公司在起名字的時候太缺乏創意,哪像咱存儲界的廠商,明明東西一樣,名字也起得五花八門。
二是人家故意把名字弄得一樣,以表示說“對啦,我就是跟你競爭的!”

事實上Virtual Iron也確實是VMware的一個有力競爭者。咱們要說的第二個天王,XEN,確切的說不是一個人在戰斗,而是一個龐大的陣營。其中就包括Virtual Iron公司。

XEN本是一個劍橋搞的開源項目,最近幾年發展得超級迅速,目前幾乎所有的Linux版本都搭配了這個咚咚,就連一些Unix也開始考慮勾搭之。XEN的技術特點是Para-virtual,即“并行虛擬”也叫“半虛擬”技術,就是說XEN能讓虛擬機中的某些程序直接訪問硬件。

打個比方說,VMware ESX像是穿在服務器硬件上的一層衣服,這層衣服把硬件包裹得很嚴實。ESX中的虛擬機所看到的硬件資源,100%都是由ESX虛擬出來的。虛擬機中的操作系統,是不能直“接觸”摸到真正的硬件資源的。
XEN呢,則像是穿在服務器硬件上的性感的比基尼泳裝,虛擬機不僅可以看到,而且可以直接摸到……
同學~你口水流出來啦!趕快擦擦。

記得早些年間要在XEN上裝Linux的時候,還需要手工改內核。現在IntelAMDCPU里提供的新的虛擬技術之后,XEN不僅可以不改內核直接安裝Linux,還可以支持Windows虛擬機。技術的進步真是快啊!

啥?你問IntelAMD是啥技術?別急,我后面會說到。本來我腦子就亂,你這一打岔,我就更亂了。
咳~咳~剛才說到哪了?
噢,對了,是說XEN陣營。

這里面的兩大主力是Virtual IronXenSource公司。這個Virutal Iron公司原本是有自己一整套從軟到硬的虛擬產品,不過近來發現XEN年輕貌美,便放棄了自己半老的舊引擎,全套采用XEN為其核心。早年記得Virtual Iron還有些基于InfiniBand交換的硬件虛擬技術,現在在他的網站上也看不到了。看來告別過去的決心有夠堅決。

XenSource公司沒有什么舊關系的瓜葛,就是靠的XEN的發展而發展起來的。現在業界使用最廣泛的XEN商用版本就來自這個公司。XenSource發布的商用版本一共有三個……等會兒,讓我再數一遍。OK,沒問題,的確是三個:XenEnterpriseXenServerXenExpress

雖然在XEN的陣營中,XenSource提供了類似VMwareP2VImporter工具,Virtual Iron提供了集中管理工具,但是總體來說,XEN的管理軟件和工具還是遠不如VMware完整和成熟。好在XEN陣營還在日益擴大,除了各大Linux廠商、SunIBM,聽說最近微軟也來湊熱鬧,跟XenSource談起了合作。如此看來,XEN真是前途不可限量啊!

說到微軟,也就是咱們要認識的第三位天王,總是讓人想起IEMedia Player等“經典”之作,雖然他不是第一個做出來,而且技術也不見得更好,但是一旦開始免費的捆綁在Windows里面,對手的日子就難過了。如今微軟在虛擬技術上的手段,也是如此。

到目前為止,微軟一共推出了四個咚咚,安啦~不會再數錯啦,Virtual PC 2004Virtual PC2007Virtual Server 2005Virtual Server 2005 R2。這些咚咚的工作層次跟VMware ServerWorkstation的層次相同,都是需要安裝到操作系統上。當然了,用胳膊肘都能猜出來,微軟的咚咚只能安裝在Windows上嘍。不過微軟對虛機系統的支持倒是顯得比較現實,聲稱在未來會支持Linux虛擬機。

讓對手最害怕的是,微軟號稱在Windows 2008里面要開始捆綁他的虛擬產品。這可嚇壞了VMware,盡管MS VSR現在做得很土,基本不具備任何實用性可言,VMware還是忙不迭的把自己的VMware Server變成免費產品,以免被微軟打個措手不及。

由此也可以看出微軟這三號天王也非浪得虛名,雖然東西做得不咋地,但至少可以隔山打牛。最終受益的還是咱們用戶,可以免費使用功能性能都不錯的VMware Server
啥?你說你原本也可以免費使用?拜托~用盜版就不要這么大聲嘛!

這四號天王,就是前面被打岔時說過的VirtuozzoOpenVZ。這兩串勾勾文都是產品的名字,背后的公司名字叫SWsoft。如前面已經說過的那樣,Virtuozzo OS VirtualizationVirtuozzo Server VirtualizationSWsoft公司的商業版產品,OpenVZ是采用SWsoft源碼的開源項目。

與前三個天王的產品相比,SWsoft的產品運行在更高的層次上。用業內行話說,VirtuozzoOpenVZ屬于Application Container——應用程序的容器。好像有點難懂,咱們用點通俗的話說,不過你放心,這里沒有比基尼什么事。

VMwareXENMS VSR這些咚咚所虛擬出來的,都是一個個“硬”的主機,你得在這些虛機上再裝操作系統。而VirtuozzoOpenVZ所虛出來的,是一個個已經裝好系統的主機。
也就是說,VMwareXENMS VSR所虛擬的是硬件資源,而VirtuozzoOpenVZ所虛擬的是操作系統環境。

所以VirtuozzoOpenVZ里面沒有VMVirtual Machine)這個概念,取而代之的是VEVirtual Environment)或稱VPSVirtual Private Server)。而進到VE/VPS里面,看到的就是一個現成的操作系統環境。
等著聽比基尼故事的人失望了~

具體來說。比方說Windows下安裝某個程序,要改注冊表是吧?還有創建目錄和文件是吧?Virtuozzo能把這些動作統統截獲,并且偷偷在其它地方執行,而不真正修改原來的系統環境。這樣程序自以為萬事OK,很Happy的運行,殊不知卻是被Virtuozzo給騙了。

Virtuozzo這個有所不同的機制,對資源管理更為靈活,某個虛擬環境只有活動的時候,才會被分配資源。因此在相同的硬件資源下,Virtuozzo可以配置出更多的虛擬環境。一般VMwareXEN只能在一臺服務器上跑幾十個虛擬機,而Virtuozzo號稱可以一臺機器支持5000個虛擬環境!

當然Virtuozzo也有很明顯的不方便之處,就是Linux上只能虛擬LinuxWindows上只能虛擬Windows。而且像VMwareXen那樣在服務器之間挪動虛擬機,也是異常困難的。
盼望比基尼出現的人這下徹底失望了~