iThome

伺服器虛擬化集中了原由多臺實體伺服器負責的運算作業,藉以提高硬體資源運用效率,與資源分配管理上的彈性。但另一方面,這也大幅拉高了執行虛擬化平臺的實體伺服器I/O負擔——實體主機承擔1個任務需要耗用一定的處理器與I/O效能,當透過虛擬化使其虛擬為2臺虛擬主機(VM)並分別承擔2個任務時,若欲維持原有的服務等級,則需要耗用的處理器與I/O效能也會跟著加倍。

但負責I/O作業的傳輸匯流排與儲存媒體效能增長速度,卻遠遠落後於處理器效能增長,按照摩爾定律,處理器效能每18個月便提升一倍,匯流排規格卻是每3、4年或更長時間才會更新一次,硬碟等傳統儲存媒體的速度提升更是緩慢,以致I/O效能成了虛擬化應用上的一個瓶頸,讓用戶對於能否將I/O負擔重的應用,轉移到虛擬平臺上充滿疑慮。

I/O瓶頸的兩種類型

依應用型態的不同,I/O瓶頸可分為存取延遲與頻寬不足等兩個面向:

存取延遲

造成存取延遲的最主要原因,是儲存媒體的存取回應速度不足,或者說是回應時間(response time)過長;另外儲存媒體與前端用戶端間傳輸通道經過的環節數目,以及傳輸通道的速度,也會影響到存取回應的速度。

頻寬不足

影響傳輸頻寬的因素,主要是傳輸通道與儲存媒體可承擔的資料傳輸吞吐量(Throughput)上限。

不同類型的應用,由於資料存取型態不同,對於I/O效能的要求面向也有異。如即時的金融交易或大型訂位/訂票系統等應用,每個I/O的資料量都不大,但每秒可能就得處理多達數萬甚至數十萬個I/O,需要盡可能高的每秒I/O處理效能,因此對存取延遲十分敏感。

而像影音多媒體資料處理,或類似Google MapReduce、Hadoop之類針對大資料量的平行架構處理應用,這類應用並不需要很高的存取回應速度,但需要應付非常大的資料吞吐量,主要的I/O負載便落在資料傳輸頻寬上。

打破I/O瓶頸的方式

顯然的,要改善伺服器的I/O效能,便得從減少存取延遲、擴大傳輸頻寬這兩方面著手。落實到具體的產品層面,就是儲存媒體與傳輸通道這兩個環節。

從減少延遲的需求來看,儲存媒體本身的速度越快,回應前端應用程式存取要求的反應時間便越快,延遲越少;同樣的,若處理器與儲存媒體間的傳輸通道速度越快、傳輸通道經過的環節越少,則整體的存取反應時間也越快,延遲越少。所以需要的是高速、且盡可能放在「更靠近處理器」位置的儲存媒體。

從提高傳輸通道頻寬的觀點來看,由於單一儲存裝置或傳輸通道所能提供的傳輸吞吐量效能,有其上限,實務上往往需要匯集多個儲存裝置或傳輸通道,藉以得到更高的傳輸效能,但成本也會因此而增加。所以若儲存媒體與傳輸通道本身的傳輸吞吐量規格越高,便能以較少的資源,來滿足既定的傳輸效能需求。

最佳選擇:PCIe+Flash記憶體

從前述需求面向出發,安裝在前端伺服器內、採用PCIe介面的NAND Flash記憶體裝置,是當前改善虛擬環境伺服器I/O效能最有力的選擇。

選擇Flash記憶體的理由

首先, NAND Flash記憶體能以較適中的單位效能成本,滿足降低存取延遲需求。Flash記憶體存取速度低於DRAM,高於傳統硬碟,價格也介於兩者之間。

對於追求高I/O處理效能的用戶來說,能以占用空間、耗電均較少的Flash記憶體儲存裝置,提供原來需要數十臺甚至上百臺硬碟才能滿足的I/O效能,尤其是在隨機讀取居多的應用環境中。

另外,選擇Flash記憶體,對於提高儲存媒體傳輸吞吐量也有所助益。雖然Flash在這方面相對於傳統硬碟的優勢,不像在減少延遲方面那樣大,而且最終也會受到傳輸匯流排頻寬的限制,但以相同尺寸的儲存媒體為基準,Flash仍能提供較傳統硬碟高出至少30%的吞吐量性能。舉例來說,同樣都是2.5吋規格的磁碟裝置,當前最快的1.5萬轉傳統硬碟,持續傳輸速率大約為200MB/s出頭,但SSD就能達到300MB/s、甚至350MB/s以上的持續傳輸速率。

選擇前端伺服器PCIe介面的理由

至於選擇PCIe介面、並將Flash儲存裝置直接安裝在前端伺服器內,理由則有兩個:

首先,PCIe能提供遠超過任何儲存傳輸面的高頻寬,當前主流的PCIe 2.0規格單通道資料傳輸率可達500MB/s,而×4、×8與×16規格更可達到20Gb/s、40Gb/s與80Gb/s。相較下,內接式儲存傳輸通道如SAS與SATA ,頻寬最大均只有6Gb/s,外接通道方面,目前最快的FC與iSCSI通道傳輸規格,亦分別只有16Gb/s與10Gb/s頻寬。

其次,是安裝在前端伺服器的PCIe介面上,可擁有「位置優勢」。PCIe匯流排透過北橋晶片連接處理器,甚至直接連接處理器(某些新處理器已整合記憶體控制器與PCIe控制器,省略北橋晶片的配置)。因此直接將儲存媒體安裝在前端伺服器的PCIe介面上,可讓儲存媒體與處理器「靠得更近」,減少傳輸通道經過環節,有助於減少存取延遲。

相較下,內接的SAS介面儲存裝置則多了SAS控制器這個環節,外接的FC或iSCSI SAN儲存設備,更多了網路控制器、交換器,以及儲存設備控制器等諸多環節,存取延遲明顯高出許多。

虛擬環境下使用PCIe SSD

過去2、3年來,市場上已經出現了不少採用PCIe介面的Flash記憶體儲存產品,這些產品通常是一張內含控制器晶片與Flash記憶體顆粒、採用PCIe×4或×8介面的PCIe介面卡。將這種介面卡安裝到伺服器內,然後安裝驅動程式,作業系統即可將Flash記憶體空間辨識為區塊儲存裝置,接下來對其進行初始化與格式化後,就能像一般硬碟一樣使用這種PCIe SSD的空間。

硬體支援問題

不過要在虛擬平臺內使用PCIe SSD,卻面臨了硬體支援方面的障礙。必須讓Hypervisor識別與驅動PCIe SSD裝置,才能在虛擬環境中使用PCIe SSD的儲存空間。但多數企業級PCIe SSD產品,目前都只提供Windows或Linux作業系統的驅動程式,缺乏對於當前最重要的虛擬平臺VMware的支援,以致無法在VMware虛擬環境中使用PCIe SSD。

我們整理了幾種主要企業級PCIe SSD產品的支援平臺情況(見表1),可發現並不是所有廠商都支援VMware虛擬環境,我們列出的11家供應商中,只有5家廠商的PCIe SSD產品,可提供適用於VMware環境的驅動程式,其餘產品大都只有Windows與Linux兩種平臺的驅動程式,這也造成欲在這個環境使用PCIe SSD的用戶,產品選擇較為有限。

當然若換成Hyper-V平臺,硬體支援問題便小得多,只要是相容於Windows Server 2008的儲存裝置,大都能為Hyper-V使用。但Hyper-V的整體功能與在企業環境中的普及度,仍與VMware有相當差距,而且更換平臺茲事體大,不太可能有用戶僅僅是為了使用某種儲存硬體,而將VMware換成Hyper-V。

虛擬環境的兩種Flash應用型態

解決支援性問題後,接下來便是虛擬環境中如何使用PCIe SSD的問題。如同實體環境中的應用情況,PCIe SSD在虛擬環境中的典型應用方式亦是這兩種:

(1)將PCIe SSD作為資料儲存磁碟

也就是將PCIe SSD的空間作為虛擬平臺的檔案系統空間,或是虛擬機器直接存取的區塊型儲存裝置。

考慮到成本與容量需求問題,顯然不可能把全部的虛擬機器,全都搬移到PCIe SSD的空間內,因此必須採取分層儲存的概念,將最需要I/O效能的虛擬機器,搬移到PCIe SSD提供的儲存空間上。其餘虛擬機器則仍留在傳統硬碟構成的儲存空間內。

只要虛擬平臺的Hypervisor能識別與驅動PCIe SSD裝置,就能將其格式化為可供虛擬機器使用的檔案系統或儲存裝置。

(2)將PCIe SSD作為快取記憶體

將PCIe SSD的空間作為DRAM外的第二層快取記憶體,借由PCIe SSD提供的數百GB空間,來提高快取命中率,降低前端伺服器存取後端傳統硬碟的機率。

要將PCIe SSD作為虛擬平臺的快取記憶體,必須透過專門軟體的支援,目前能提供這種型態應用的產品只有兩家:Fusion-io用於搭配該公司PCIe SSD產品的ioTurbine軟體,以及EMC剛推出的VFCache。

快取vs.磁碟應用的利弊

將PCIe SSD作為虛擬平臺的磁碟或快取記憶體,兩種應用各有不同的特性。

作為磁碟應用

就安裝來說,顯然是當作儲存用磁碟較為簡便,只要裝好Hypervisor下的驅動程式,將PCIe SSD設定為Hypervisor能使用的磁碟裝置即可。不過在實際應用上,這種應用型態會碰上幾個問題:

首先,如前所述,要將PCIe SSD作為虛擬平臺下的磁碟區,必須採用分層儲存的概念,因此第一個碰到的問題,便是判斷哪些虛擬機器的I/O需求最大、必須被放到PCIe SSD上。

考慮到虛擬機器的I/O負載情況可能會隨時間而出現變化,除非經常依照I/O負載變化,設法在不同等級儲存裝置間遷移虛擬機器,否則就無法把寶貴的PCIe SSD空間,「總是」讓存取最頻繁、I/O負載最大的虛擬機器使用。

其次,安裝在前端伺服器內的PCIe SSD,本質上是一種單機上的儲存設備,因而不能支援VMware的vMotion與DRS(Distributed Resource Scheduler)等,需要共享儲存設備才能運作的跨實體主機虛擬機器遷移功能。所以被放到PCIe SSD磁碟空間內的那些虛擬機器,也就失去跨實體主機遷移的能力。如果用戶需要在虛擬環境中使用前述虛擬機器遷移功能,就不能把虛擬機器放到PCIe SSD構成的磁碟區。

最後是許多人仍對NAND Flash記憶體長久使用下的可靠性,仍持有疑慮,將整個虛擬機器搬移到PCIe SSD構成的磁碟區上,資料安全性也將成為一個問題。

作為快取應用

若把PCIe SSD作為快取記憶體使用,便可迴避將其當成磁碟區使用所會遇到的一些問題。

首先,在快取演算法控制下,只有存取最頻繁的資料區塊會留在PCIe SSD構成的快取區域內,空間運用效率較高。而透過軟體設定,用戶可以只讓那些I/O負載高的虛擬機器,使用PCIe SSD快取。

其次,由於PCIe SSD快取區域只保存快取資料區塊,虛擬機器本體仍是放在後端的傳統硬碟儲存裝置上,理論上不會影響vMotion這類跨實體主機虛擬機器遷移功能的運作。最後,也因為虛擬機器本體並不是位於PCIe SSD快取區域內,即使PCIe SSD損壞失效,也不會影響到虛擬機器資料的完好。

另一方面,儘管目前許多廠商都推出了搭配PCIe SSD的快取軟體,不過大都只適用於實體環境。目前只有Fusion-io與EMC少數廠商,能提供可在虛擬平臺Hypervisor下運作的PCIe SSD快取軟體,產品選擇相當少。

 

儲存裝置採用PCIe匯流排的傳輸效能優勢

與當前其他幾種常用的儲存匯流排相比,PCIe匯流排明顯擁有頻寬性能上的優勢,可支援更大的I/O負載,而剛推出不久的PCIe 3.0更進一步擴大了效能領先優勢,更新一代的PCIe 4.0規格亦預定於2014~2015年左右發佈,預期可提供較PCIe 3.0高出一倍的傳輸性能。

(看大圖)

 

主要企業級PCIe SSD支援作業平臺概覽

(看大圖)

 

虛擬環境中的PCIe SSD快取應用:Fusion-io ioTurbine vs. EMC VFCache

目前能應用在實體環境下的SSD快取軟體至少有4、5款以上,而且數量還在陸續增加,不過能在虛擬化環境下提供快取應用的PCIe SSD解決方案,就只有Fusion-io的ioTurbine軟體,以及EMC剛推出的VFCache等寥寥數款。

事實上,ioTurbine與VFCache兩款產品的定位稍有差異。EMC VFCache可同時對應實體與虛擬環境應用,而Fusion-io的ioTurbine則是虛擬環境專用,至於針對實體環境的PCIe SSD快取應用,Fusion-io是由另一款DirectCache軟體來涵蓋。不過VFCache有綁定EMC儲存設備共同運作這個限制(EMC VNX或Symmetrix系列),ioTurbine則沒有限制後端儲存設備的類型。

就虛擬環境下的運作架構來說,ioTurbine與VFCache可說十分類似,同樣都包括PCIe SSD介面卡、安裝在Hypervisor上的驅動程式、安裝在Guest OS上的驅動程式等三個主要元件。透過Hypervisor層的驅動程式,向上層Guest OS提供PCIe SSD的Flash記憶體資源,並藉由安裝在Guest OS層的驅動程式,讓Guest OS能將PCIe SSD裝置當作快取記憶體使用。

在運作上,兩款產品都只提供讀取快取,而不提供寫入快取。只對讀取I/O快取的好處是不會影響到後端的資料本體,由於寫入I/O仍直接寫入到後端儲存設備,不會經過PCIe SSD快取,所以即使PCIe SSD快取區域失效,後端的資料本體仍不受影響,不會出現資料遺失。

在硬體組態上,ioTurbine明顯更靈活,可搭配容量從375GB到10.24TB的Fusion-io ioDrive、ioDrive Duo與ioDrive Octal等多款PCIe SSD產品,一臺伺服器上最多可安裝4片PCIe SSD卡;相對的VFCache目前只有300GB容量一種款式,每臺伺服器也只允許安裝1片VFCache卡。

而就支援平臺而言,VFCache的支援涵蓋稍廣一些。在Hypervisor方面,io-Turbine可支援VMware ESX 4.0、ESX 4.1與ESXi 4.1,但沒有最新的5.0版,VFCache則能支援vSphere 4.1與5.0。在虛擬機器的Guest OS方面,ioTurbine只支援Windows Server 2008(含R2),而VFCache除了Windows Server 2008外,還支援幾種主要的Linux。

不過在功能方面,發展較久的ioTurbine則較VFCache更完整。如ioTurbine可支援VMware vMotion與DRS等跨實體主機虛擬機器遷移功能的運用,且在虛擬機器遷移後,還會自動依照Hypervisor新的虛擬機器部署情況,調整個別虛擬機器的快取分配量;而VFCache目前仍不能支援vMotion與DRS,在執行vMotion之前,須先停止VFCache。

在管理方面,io-Turbine必須透過由瀏覽器登入的專屬控制臺進行,而VFCache的控制臺則是整合在vCenter內,相對較為簡便。

 

 產品剖析  虛擬平臺加速軟體:Fusion-io ioTurbine

這款軟體是Fusion-io用於搭配該公司PCIe Flash記憶體介面卡的VMware虛擬平臺快取應用軟體,可在ESX 4.0、ESX 4.1與ESXi 4.1環境下,將PCIe Flash介面卡的儲存空間,設定為虛擬機器的讀取用快取記憶體,從而提升虛擬機器的讀取I/O。

ioTurbine軟體還可支援vMotion、Distributed Resource Scheduler(DRS)等跨實體主機遷移虛擬機器功能的使用,並依據虛擬機器遷移後的情況,自動調整個別虛擬機器占用的快取容量。

在PCIe介面NAND Flash記憶體產品領域,Fusion-io是率先投入的先驅廠商之一,旗下有ioDrive、ioDrive Duo與ioDrive Octal等PCIe Flash記憶體介面卡產品線,而ioTurbine則是Fusion-io於2011年8月透過併購ioTurbine公司,所取得的軟體產品。

PCIe Flash的快取應用

PCIe Flash記憶體介面卡是直接安裝在前端伺服器內的儲存裝置,結合了NAND Flash記憶體的高存取回應速度,以及PCIe匯流排的低延遲、高頻寬等特性,可為伺服器提供極高的I/O性能。

在實際環境中,PCIe Flash介面卡可有兩種應用,一是作為磁碟儲存裝置,另一是作為快取記憶體。

ioTurbine這款軟體,便是透過將PCIe Flash介面卡的空間規劃為快取記憶體使用,利用多達數十到數百GB的Flash記憶體,作為輔助DRAM的第二層快取,提高快取命中率,從而有效改善存取效能。

VMware下的PCIe Flash快取

目前已有不少可搭配SSD或PCIe Flash卡等Flash儲存裝置的快取解決方案,大致可分為三類:第一類是不限制儲存裝置廠牌型號的通用型快取軟體,如STEC EnhanceIO與Nevlo DataPlex等;第二類是搭配特定磁碟控制器的快取軟體,如Intel Z68晶片組的Smart Response Technology(SRT)功能、Marvell的88SE9130 SATA 6Gb控制晶片的快取功能,以及LSI用於搭配該公司RAID卡的MegaRAID CacheCade Pro軟體等。

第三類則是需搭配特定廠商Flash儲存裝置的專屬產品,如Fusion-io的DirectCache與ioTurbine快取軟體、EMC的 FastCache與VFCache,以及NetApp FlashCache等。

其中能支援主機端PCIe Flash介面卡產品的快取解決方案,有STEC EnhanceIO、Nevlo DataPlex、Fusion-io的DirectCache與ioTurbine,以及EMC VFCache等數款,但能支援VMware虛擬化環境的,只有Fusion-io ioTurbine與EMC VFCache兩款。

ioTurbine的部署與運作

ioTurbine必須搭配Fusion-io ioDrive系列PCIe Flash介面卡運作,可允許每臺實體伺服器上安裝4個ioDrive裝置(如果是可將一片介面卡設定為2個裝置的ioDrive Duo,就只能安裝2片)。

部署ioTurbine前,須先安裝ioDrive硬體驅動程式,然後再安裝ioTurbine本身程式,包括安裝在Hypervisor上的ioSphere VM Edition Appliance管理控制臺(本身就是一臺VM)、安裝在Hypervisor上的Host Package,以及安裝在虛擬機器上的VM Package等三個部分。

透過Host端與VM 端驅動程式,可將底層ioDrive卡上的Flash記憶體空間,設定為VM使用的快取記憶體空間(稱為ioMemory)。用戶可以只對Hypervisor上那些特別需要I/O效能的特定VM,安裝驅動程式。

為配合VMware環境下不同的VM存取模式,ioTurbine提供了Volume、Disk與File等三種層級的快取作業模式,Volume模式是多數情況下使用,Disk模式可對應那些使用直接原生存取模式的VM,File模式則是直接對用戶指定的檔案作快取。

設好快取模式後,再為個別虛擬機器設定要占用多少比重的後端ioMemory容量,便完成了全部設定。接下來用戶可透過瀏覽器登入ioSphere控制臺,監控安裝ioTurbine的虛擬機器存取情況。

ioTurbine的快取是屬於write-through類型,也就是只對讀取I/O作快取,寫入I/O則直接導向後端儲存裝置,所以若ioMemory硬體出現問題,也不會損及後端的資料。

當用戶透過vMotion或DRS在實體主機間遷移VM時,ioTurbine會自動依照遷移後的情況,調整個別VM占用的後端ioMemory容量。

ioTurbine控制臺是一臺在Hypervisor上運行的虛擬機器,透過瀏覽器登入,可設定與監控該安裝有ioTurbine VM驅動程式的虛擬機器。

ioTurbine須搭配Fusion-io ioDrive系列產品運作,允許在每臺實體伺服器上,安裝4個ioDrive裝置。照片為ioDirve Duo。

 

產品資訊

Fusion-io ioTurbine

建議售價:149,760元(每臺主機)

原廠:Fusion-io

網址:www.fusionio.com

代理:立捷速能

電話:(02)2768-1027

支援PCIe Flash產品:Fusion-io ioDrive2/ioDrive2 Duo/ioDrive Octal

支援虛擬化平臺:VMware ESX 4.0/ESX 4.1/ESXi 4.1

支援Guest作業系統:Windows Server 2008/2008 R2(64bit)

【註:規格與價格由廠商提供,因時有異動,正確資訊請洽廠商。】

熱門新聞

Advertisement