1 從陣列所要解決的問題說起
通常,業界按照價格、規模、性能等參數講陣列產品劃分為入門級、中端、高端三個級別。陣列往往要求在存取速度、可靠性、容量三者中取得一個權衡,任何一個陣列依據其定位的不同,這三點的權重會有所差別。
在存儲系統中,對于單盤而言,失效可以假定是一個常態。一個擁有幾十甚至上千硬盤的系統中,硬盤的失效不可避免的事情,因此,陣列必須解決可靠性的問題。目前,解決可靠性的技術手段主要是數據冗余技術,比如RAID技術,通過記錄額外的數據校驗來達到數據恢復的目的。
單盤由于受限于生產工藝,容量總是有限的,而用戶往往希望得到更大的容量,因此硬盤陣列必須完成對多個單盤容量的整合,呈現給用戶大的虛擬的硬盤。本質上,這就是一種虛擬化。
我們知道,物理硬盤的存取速度取決于機械馬達旋轉的速度,考慮到可靠性、散熱、能耗、噪音等因素,轉速不可能做的太高,目前硬盤速度一般在5000RPM-20000RPM之間,因此單盤的存取速度(帶寬)總是很小,陣列需要有效的將多個物理帶寬整合。
2 高端存儲陣列架構
如果按照控制器的個數來對陣列架構進行分類,高端陣列可以分為雙控(參見圖1)與多控兩大類。
2.1 雙控架構
典型的雙控系統中(參見圖1),兩個控制板通過鏡像通道連接在一起,進行數據交換。每個控制板的后端分別接入物理硬盤的環路(通常物理硬盤是雙端口,剛好可以接成兩個環路,見圖1),主機可以通過任何一個控制板接入存儲陣列,并看見統一的LUN空間。
從軟件上而言,由于只需要考慮兩個控制器,和多控系統相比起來,雙控系統的實現較為簡單。
圖1 雙控架構
目前,在所有的高端存儲陣列中,采取雙控架構的只有IBM 2009年推出的DS8000系列。另外,在中低端存儲陣列上基本上都采用雙控架構。
由于雙控系統受限于諸如計算資源、內存、帶寬物理限制等因素,性能不可能做到太高,所以可以見到的絕大多數高端陣列都采取的是多控系統。
2.2 多控陣列架構
基于多控的陣列主要是一些高端陣列系統,比如EMC的VMAX、HDS的VSP,IBM的XIV、HP的P10000和華為的HVS等產品。
對多控系統按照連接拓撲進行劃分,多控系統劃可以分為基于總線交換式的架構、矩陣直連架構、全互聯架構、交換式架構。
如圖2展示了基于總線交換式架構的邏輯結構。目前已經沒有廠家采用這種架構,EMC和HDS的早期產品都曾經采用這種架構。該架構的缺點是可擴展性不強,且由于基于總線,存在總線爭用。
如圖3是基于矩陣直連式的存儲陣列架構,EMC的上一代產品DMX-4就是采用該架構,該架構的前端和后端采取矩陣式直接連接,缺點是可擴展性很差,同時由于連接信號線數目眾多,在一定程度上也降低了系統的可靠性,目前EMC已經棄用該架構。
圖4描述的是基于交換式的架構,該架構通過交換ASIC將前端和后端連接進行數據交換,相對于矩陣直連式,它具有更好的可擴展性,但是問題是如何減少交換時延和交換爭用。目前HDS的存儲系統采用的是該架構。
如圖5所示的全分布式架構,該架構將串行降至了最低,使得系統獲得了理論最高加速比。
由于該系統的所有資源,包括計算資源,內存資源,磁盤資源都分散的足夠開,存在資源爭用的可能性極小,所以,圖5的系統具有更好的性能,更好的可擴展性,同時也擁有更低的成本。 目前市場上最新一代高端存儲陣列HP P10000,EMC的VMAX 40K,華為HVS都采用這種全分布式架構。
3 高端陣列架構實例分析-華為HVS
圖6 華為高端陣列HVS系統架構
華為HVS采用智能矩陣式系統架構,如圖6所示,也是一種基于完全分布式的架構,所有的計算資源 (CPU),緩存,帶寬等資源都均勻分布于每個節點中,在該架構下,不再存在全局緩存爭用問題,串行化達到最低,使得系統獲得了理論最高加速比,具有更好的可擴展性。華為HVS是目前業界擴展能力最強,性能最高的高端陣列,最大可以擴展到16個控制器,3TB Cache, 3216塊硬盤,隨機IOPS達到100萬IOPS以上。
3.1 基于PCIe的全交換架構
HVS的全交換架構基于PCIe協議,PCIe協議是一種高性能、高帶寬,成熟、穩定的串行通訊互連標準。HVS以雙平面PCIe交換作為節點間互連。這種架構設計具有如下的優點:
高可靠:所有部件全冗余,控制器間負載均衡和Failover,單個控制器失效不影響業務運行
高擴展性:具備scale-out能力,從2個控制器起配,最多支持16個控制器,系統的容量、性能按需擴展
高帶寬:整個交換平面可提供192GB/s的交換帶寬。
方便部署:HVS的PCIe鏈路通過光纖連接,同一HVS系列產品的機柜允許跨數十米進行部署,允許布局在不同房間、甚至不同樓層。使得客戶真正實現完全Scale-out的部署,降低了對數據中心機房的環境要求。
3.2 塊級虛擬化
前面講到單盤失效可以認為是一個常態,單盤失效后,RAID組會重構數據,但傳統的RAID重構耗時較長,如果重構過程中又發生了硬盤失效,那么整個RAID的數據就丟失了。HVS采用了塊虛擬化技術,可以很好的解決以上問題。下面我們看一下塊虛擬化的實現細節。
圖七:全虛擬化設計示意圖
如圖七所示,全虛擬化設計,就是把硬盤分割成若干小塊,稱為CHUNK,然后按照特定算法,從若干硬盤上選取若干CHUNK,按照一定的RAID方式組成CHUNK Group。而LUN,則是由若干CHUNK Group組成。塊級虛擬化架構給硬盤可靠性帶來的最大提升是使系統中每個硬盤都在“均衡”的工作,每個硬盤的忙閑度基本一致,不會像傳統RAID那樣,各個RAID組中的硬盤工作負荷不同,導致某些繁忙的硬盤“過勞死”。
塊級虛擬化帶來的另一大好處是重構時間大幅縮短,RAID降級狀態不但使數據處于“危險”的邊緣,同時也會降低RAID組的性能。塊級虛擬化使得重構產生的負荷分散到更多的硬盤上,單盤重構的壓力變小,大大縮短了重構的時間,大幅降低RAID組失效概率,從而增加了系統的可靠性。
4 總結
高端存儲一般應用于用戶核心業務環境,承載著關鍵數據,對陣列的穩定性,性能和擴展性要求極高,而存儲架構是這一切的基礎。可以預見,模塊化分布式Scale-out架構所帶來的穩定性,性能容量線性擴展的好處將主導未來一段時間高端陣列的設計,同時更多容量、新型介質的出現(SSD)決定了高端陣列中將越來越多的應用虛擬化技術提高存儲資源利用率。