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