Luca Bert,LSI公司知名存儲技術(shù)專家
什么是服務(wù)器虛擬化,我們?yōu)槭裁匆捎梅?wù)器虛擬化技術(shù)?
虛擬化技術(shù)旨在降低總擁有成本 (TCO) 的同時提高服務(wù)器部署與管理效率。從整體角度上看,服務(wù)器虛擬化分兩個階段進行,首先是整合服務(wù)器,其次是提高使用效率。
在整合階段,該技術(shù)主要解決服務(wù)器利用率普遍偏低的問題(2007 年初,IDC 研究發(fā)現(xiàn),一般可接受的平均利用率僅為7%)。但我們卻要支付服務(wù)器的全部費用,整體加以部署,而且服務(wù)器整體要消耗大量電力。解決上述問題首先也是最簡單的方法就是將運行在不同服務(wù)器上的各種操作系統(tǒng)與應(yīng)用整合在單個平臺上,這樣做的主要好處是能夠大幅降低采購成本(即資本支出),同時還有助于降低功耗。
在第二階段,我們更注重的是提高服務(wù)器的使用效率。利用多個虛擬化服務(wù)器來動態(tài)管理資源,在服務(wù)器之間移動虛擬機,并對停機時間、升級和維護工作進行透明化的計劃安排,以及自動實現(xiàn)故障轉(zhuǎn)移。本階段主要側(cè)重于降低平臺的管理成本與運營支出。目前,軟硬件也正在向虛擬化這一發(fā)展方向上齊頭并進:首先,根據(jù)標(biāo)準(zhǔn)硬件進行實施,通過二進制補丁等軟件技術(shù)創(chuàng)建虛擬層。隨后,硬件通過添加 Intel VT-x 與 VT-i以及AMD-V 等虛擬技術(shù),有助于從每個客操作系統(tǒng) (Guest OS) 中抽象出(abstract) CPU 和存儲器。
接下來,我們還是先通過軟件方式將系統(tǒng)管理程序基礎(chǔ)架構(gòu)從二進制補丁轉(zhuǎn)移到仿真和半虛擬化中來提高系統(tǒng)管理程序的效率,并降低系統(tǒng)開銷。
最后,就是將虛擬環(huán)境從GB級降到數(shù)十MB的水平,從而減小軟件對資源的開銷。
被遺忘的 I/O
由于最初側(cè)重點主要放在軟件基礎(chǔ)架構(gòu)上,因此所有努力都是為了解決 CPU 和存儲器領(lǐng)域常見的軟件瓶頸問題。
一直以來,我們把 I/O 作為大眾產(chǎn)品資源,系統(tǒng)管理程序從操作系統(tǒng)(客操作系統(tǒng) (GOS))中抽象出 I/O,好像每個客操作系統(tǒng)都擁有全部 I/O 一樣。事實上,這種解決方案現(xiàn)在仍能正常工作,尤其是在最近仿真和半虛擬化技術(shù)取得長足發(fā)展的情況下,上述解決方案依然適用。
不過,這種解決方案的問題在于,I/O 硬件仍然是單一的元素,有著其內(nèi)在的局限性,受系統(tǒng)管理程序的影響,只能為單個操作系統(tǒng)服務(wù),而不能滿足一系列虛擬 GOS 的要求。由于 I/O 和 GOS 之間缺乏相互了解,因此簡化了部署工作(OS 和 I/O 彼此不了解,毋需對其進行修改),但這會影響效率,且存在安全隱患問題。
系統(tǒng)管理程序是最基本的管理機制,GOS 的每個 I/O 請求都要經(jīng)系統(tǒng)管理程序處理。系統(tǒng)管理程序可提供抽象服務(wù) (abstraction service)、處理 GOS 隊列、中斷服務(wù)并處理異常情況等。
從積極方面來說,目前這種模型為改進 I/O 和存儲功能提供了新的機遇。最直接、最簡單的例子就是,系統(tǒng)管理程序可通過作為集合點的內(nèi)部文件系統(tǒng)(例如 VMware 中的 VMFS)來虛擬化軟件層上的所有存儲空間,然后根據(jù)需要將軟件重新分配給各個客操作系統(tǒng)。
這種方法提供了一些此前只有 SAN 才具備的特性:我們可以對存儲空間進行精簡配置,創(chuàng)建快照,并通過存儲池或其他技術(shù)抽象存儲空間。我們不需要將一系列服務(wù)器連接到 SAN,而是從系統(tǒng)管理程序文件系統(tǒng)連接到 GOS 存儲系統(tǒng),而且存儲系統(tǒng)位于物理盒子內(nèi)。
不過,這種方法也存在一些局限性:
此外,虛擬化技術(shù)還能為 DAS RAID 控制器提供類似于 SAN 的優(yōu)勢,盡管這些控制器并不了解虛擬層。其中最明顯的優(yōu)勢就是存儲整合,這也是先前基于 SAN 的 RAID 技術(shù)最為顯著的優(yōu)勢之一。出于對性能和可靠性方面的考慮,用戶往往不得不對非虛擬化服務(wù)器的配置過量存儲空間,而這通常會導(dǎo)致資源浪費及部署成本的提高。虛擬化服務(wù)器的配置與 SAN 一樣,可以根據(jù)需要將存儲空間整合起來,然后通過創(chuàng)建 LUN 并將其分配給每個 GOS(或分配至系統(tǒng)管理程序自己的文件系統(tǒng)),最后并利用各種常見的 SAN 技術(shù)來實現(xiàn)配置。
最后要提的一點是,I/O(尤其是 DAS 存儲 I/O)具有平臺本地化特性。雖然可將存儲空間抽象至運行在本服務(wù)器上的 GOS,但卻不能將其抽象至另一個服務(wù)器上的 GOS,因為找不到有效的通信路徑,而且如果服務(wù)器發(fā)生故障時所有本地存儲設(shè)備都會發(fā)生故障,不能再滿足其他服務(wù)器的要求。因此,VM 移動技術(shù)的當(dāng)前實施方案要求存儲設(shè)備必須與 SAN 相連。
不過,產(chǎn)生這種不足的原因在于,我們在服務(wù)器虛擬化的第一階段完全致力于 CPU 和存儲器的管理問題,而要讓系統(tǒng)管理程序在沒有硬件的支持下來解決抽象問題。
附注:隨著虛擬化技術(shù)的不斷普及,I/O 虛擬化的重要性也不斷提高。在此情況下,新技術(shù)開始涌現(xiàn),有望打破虛擬系統(tǒng)中I/O的局限性,同時保留所有技術(shù)優(yōu)勢。本領(lǐng)域最有前景的技術(shù)就是 Single-Root IO 虛擬化 (SrIOV) 和 Multi-Root IO 虛擬化 (MrIOV) 技術(shù)。我們將在下篇文章中對其加以探討。