我的一個好朋友、也是一位值得尊敬的同事Marc Staimer,最近在SearchVirtualStorage上發布了一個podcast引起了我的注意。吸引我的眼球的不是他說了些什么(一如既往地是大師的卓見),而是podcast的標題邊上的介紹“換掉VMware hypervisor 意味著失掉數據存儲的附加功能。”不管這是不是作者的意愿,這個標題中還是引發了很多我想在這里說說的事。
虛擬化的理想與現實
從一開始,這個標題就暗示了人們可能想要換一個hypervisor供應商,遠離VMware。去年年底,備份軟件供應商Veeam軟件做了一個覆蓋578個美國和歐洲企業的調查,發現大約67%的美國企業和79%的法國德國英國企業都使用VMware。這個數據看起來說明在超過1000員工的企業中,VMware是老大。
有趣的是,同一個表明對VMware服務器聚合成功的感覺超過實際情況。企業認為他們大約在每個物理服務器上部署了10個虛擬服務器,而實際情況是差不多在這個數字的一半水平。
這個調查最值得注意的一點,59%的受訪者表示他們打算在今年更換hypervisor供應商。多數的人都不滿意VMware收的授權費,有些人還提到了競爭產品成熟度有所提高。
為了更好地了解服務器虛擬化規劃者的心思,我翻閱了DataCore軟件公司去年做的“第三次年度虛擬化狀態調查”,發現在477個受訪者中,339個認為存儲相關的成本是他們實現服務器虛擬化的價值遇到的最大障礙。308個受訪者還表示存儲的低效率抵消了hypervisor廠家所承諾的性能級別。所以,SearchVirtualStorage的標題的第一部分看起來有些道理:確實,換一個hypervisor供應商是有好處的。由于VMware占有市場的絕大部分,我們可以預期這些更換hypervisor的行動大多是從VMware換到別的廠商。
VMware的存儲功能被夸大了
標題的第二部分是我最看不順的。這里不怎么隱蔽地暗示了如果你把VMware換掉,你會失去一些重要的存儲能力——或者用標題的原話來說,換一個hypervisor意味著“失去數據存儲附加功能”。讓我回顧歷史的話,我會說VMware的存儲相關“功能”都是由很糟糕的架構設計所引起的bug,或者必要的補丁。
VMware從一開始就對存儲I/O處理的很糟糕。VMware hypervisor所引起的出了名的I/O僵局和虛擬服務器的底層存儲效率完全沒有關系。用性能分析工具分析這個情況的時候,你會發現處理器很忙,而I/O隊列深度是0。CPU很忙說明I/O處理上的延遲與ESX微內核中的不良代碼有關,空閑的隊列則說明存儲架構在處理到達主機總線卡(HBA)或者網絡接口卡的I/O上沒有任何問題。
一個繞開這個問題的辦法,包括把“上至80%”的存儲I/O交給智能陣列控制器,讓hypervisor看起來好像能更好地和存儲協作了。像鏡像這類的工作通過陣列控制器的似有功能來實現可以更好,VMware在發布vStorage API for Array Integration(VAAI)的時候是這么說的。所以,結果就是,他們把他們的客戶推向了供應商鎖定,同時又向ANSI T10最最神圣的SCSI標準中添加了未經批準的命令。幾個月之后,在他們發布VAAI的新版本的時候,又重演了一遍,他們又添加了未經批準的新命令,沒有向標準組織提交申請,也沒有通知硬件廠商們。
VMware屈從于SCSI標準
說句公平話,VMware隨后向ANSI提交了一些他們的“創新的SCSI命令”以求評議并批準,聲稱他們在“推動標準化進程”。不過,我從消息靈通人士那里聽來的說法是,VMware這股合作精神不是來自對開放標準的認可,而是屈服于他們的一些必須遵循標準的大客戶。
隨后,我們看到了“反革命”的架構,例如VSAN和服務器端存儲(DAS),最虔誠的粉絲們還在期待他們代號Marvin的首次硬件OEM(和不同硬件合作伙伴把VSAN商品化)計劃。據最新的描述,Marvin會提供一個VMware貼牌的服務器端存儲套件,就像公司的基于軟件的VSAN技術一樣,只能在他們的hypervisor上工作。考慮到較大的公司會同時有不同的hypervisor技術,也會有一些工作仍然運行在非虛擬化的服務器上,我們又回到了數據孤島上了——這個問題我們在90年代試圖用SAN技術來解決過——而且還有數不清的數據復制和鏡像層,來支持故障切換和vMotion,因為沒有了來自共享的、梳理整齊并妥善管理的存儲架構的持續性存儲掛接點。
我來重復一下:“VMware的存儲不是管理的不錯嗎?”vSphere使用REST API 不是嗎?是,也不是。最近一個RESTful 管理編程大師告訴我說,那里確實有REST,不過是隱蔽在幾層似有API下面的,幾乎沒有用。
最后我想說:在我看來,如果你放棄VMware而使用另外一種服務器hypervisor,或者不再使用hypervisor了,你并沒有放棄很多東西,至少沒少什么存儲功能。