作者:範軍 (Frank Fan)新浪微博:@frankfan7 Twitter:@franfan7
面臨挑戰
在與客戶和存儲廠商討論虛擬化平臺上的存儲性能設計時,我們經常經常面臨諸多挑戰。
一存儲在虛擬化平臺中承擔着多重的角色。比如滿足存儲容量的需求(Capacity),滿足應用應能的需求(Latency, IOPS,Throughput),還要滿足存儲服務的需求(Snapshot,replication,backup )。既要滿足容量,還要保證性能。那麼必然要採用高性能的RAID,高速硬盤,或者足夠數量的硬盤來保證性能。常常會發現購買的硬盤遠遠大於實際容量所需要的。
二是按照應用的總體峯值還是均值來設計?按照均值的話,可能在高峯期存儲不堪重負,直接導致不能滿足應用需求。可按照峯值設計,難免造成大多數時間內存儲資源過剩,同時前期投入也很大。
三目前傳統上存儲的架構是集中共享式的。隨着服務器和虛擬機的數目或負荷增大,遲早會出現後臺存儲設備以及存儲網路的瓶頸,那麼升級方案是不是靈活、簡單和易拓展?對已經在線的業務有什麼影響?
解決方案
混合或全閃陣列
隨着閃存價格近年來的大幅下降,衆多廠商開始推出自己的閃存方案。關於閃存的部署方式,有的廠商在陣列中加入閃存,與傳統硬盤一起構成混合陣列。有的乾脆推出全閃存陣列。這當然對陣列本身的響應速度有很大提升,但同時也有下面的侷限性:
一由於IO請求從VM到閃存,仍然要經過很多層的處理,可能由於隊列擁塞或者存儲網絡帶寬造成延遲。
二從存儲架構本身來講,仍然是集中共享式。在出現性能瓶頸需要升級時,因爲有兼容性的問題,不一定能採用當前市場上性價比最優的閃存。
服務器閃存
傳統上服務器端閃存包括基於SAS接口的、基於SATA接口以及基於PCI-E的三種形式。相對於在陣列中配置閃存,服務器端閃存有以下特點:
一離VM距離最近,所以響應IO請求的時延最短。如下圖顯示,IO請求需要經過6個節點才能抵達陣列硬盤。而僅需2個節點就可以被服務器端閃存處理。即使存儲網絡或者陣列本身有性能瓶頸,也不會對應用有性能上的影響。
二閃存技術的發展非常快,最新的閃存往往更容易較早的在服務器端使用。
PernixDataFVP +服務器閃存
僅僅在服務器端加入閃存是第一步,怎麼樣才能讓虛擬化平臺能用到閃存呢? PernixData FVP 把所有服務器端的閃存組成一個閃存羣集,並可以靈活的把閃存資源配置給DataStore或者VM。該方案的理念是將存儲的性能和容量分離,由常規陣列繼續滿足容量要求,而利用服務器端閃存來負責性能需求。
主要的顯著特點是:
一應用的性能大幅提升。
VM發出的大部分讀寫IO請求,都會直接由閃存來處理,從而大大減少了應用的響應時間。
二 IOPS 大幅增加
閃存的IOPS處理能力比陣列中的常規磁盤要快很多。最新Intel推出的PCIe閃存可以達到250KIOPS。
三後臺陣列的成本降低。
既然PernixData利用服務器端的閃存解決了對存儲性能的要求,後端陣列就只需滿足容量就可以了。無需再使用高端的陣列,昂貴的高速硬盤或者昂貴的RAID,從而大大減少了陣列的成本。
服務器端閃存技術,以及PernixData的軟件定義閃存羣集,在虛擬化存儲設計中提供了低成本、高性能和易擴展的新一代存儲解決方案。