IBM XIV存儲系統(tǒng)
莫西•雅奈從EMC離職之后,創(chuàng)建了XIV公司,以及獨特的Nextra系統(tǒng)解決方案,這個Nextra解決方案通過采用相對較低成本的英特爾處理器和 SATA驅(qū)動器等標(biāo)準(zhǔn)設(shè)備,通過獨特的緩存算法把這些X86節(jié)點構(gòu)成集群陣列系統(tǒng),據(jù)稱Nextra可提供比光纖通道(FC)存儲系統(tǒng)更高的性能水平。自 2007年XIV被IBM并購之后,Nextra也被整合并入IBM的存儲產(chǎn)品線中,并與IBM已有的存儲產(chǎn)品DS8000一起擔(dān)負(fù)IBM“攻堅”高端存儲市場的重任。
XIV獨有的具備Scale-out橫向擴展能力的“網(wǎng)格”架構(gòu)以及與眾不同的數(shù)據(jù)保護(hù)方式——偽隨機算法,使IBM對其寄予厚望。IBM認(rèn)為XIV獨特的技術(shù)優(yōu)勢極其適應(yīng)云存儲環(huán)境下要求隨需擴展,且工作負(fù)載較為負(fù)載的應(yīng)用環(huán)境,因此,XIV亦被看作是面向“云”的未來存儲架構(gòu)。
目前的XIV已經(jīng)升級到了第三代產(chǎn)品,其內(nèi)部體系架構(gòu)仍沿用了XIV與生俱來的獨特的全網(wǎng)格架構(gòu),但其對硬件及軟件進(jìn)行了全面升級,將原來的內(nèi)部傳輸鏈路千兆以太網(wǎng)升級為Infiniband,關(guān)于Infiniband與以太網(wǎng)的區(qū)別,在2012數(shù)據(jù)庫技術(shù)大會上,支付寶資深數(shù)據(jù)庫架構(gòu)師童家旺曾提供一組數(shù)據(jù)作為對比,其中Infiniband存儲通道的延時在1-3μs,而萬兆以太網(wǎng)的延時卻在10-50 μs,這之間的差距可想而知。XIV升級到Infiniband之后無疑可以大幅提高其數(shù)據(jù)吞吐量并降低延遲。
并且XIV在CPU及內(nèi)存方面均有升級,主機接口由原來的4Gb光纖過渡到8Gb光纖,同時,為了滿足用戶對存儲性能的更高需求,IBM預(yù)計在未來還將加入“SSD Caching”選件。同時因為CPU和內(nèi)存均升級到更高水平,其運算能力大幅提升,在單位時間內(nèi)能夠處理更多的數(shù)據(jù),IBM似乎還考慮在未來的XIV中加入Scale-up縱向擴展功能,形成Scale-out+Scale-up的存儲架構(gòu)。
網(wǎng)格給力云計算:XIV Scale-out架構(gòu)
XIV的內(nèi)部采用了一種獨特的全網(wǎng)格架構(gòu),內(nèi)部由多個網(wǎng)格單元組成,每個網(wǎng)格單元都是基于X86的標(biāo)準(zhǔn)化架構(gòu),包括了前端端口、計算單元、緩存、后 端磁盤組成了一個緊耦合的網(wǎng)格節(jié)點。這種網(wǎng)格節(jié)點構(gòu)成了XIV存儲系統(tǒng)的主要部分,被稱為modules(模塊)。模塊提供處理單元、緩存、主機接口和基 于標(biāo)準(zhǔn)的英特爾和Linux系統(tǒng)。
XIV機箱內(nèi)部圖
上圖為一個2U標(biāo)準(zhǔn)的機架式雙路至強5500服務(wù)器平臺,其內(nèi)部采用的是一顆至強E5620四核CPU,左側(cè)由它控制的內(nèi)存插槽中插有3條8GB的內(nèi)存條,一共24GB。左上角的7個PCI擴展插槽分別被20GB/s InfiniBand HCA、千兆iSCSI網(wǎng)卡和8Gb/s Fiber Channel(光纖通道)HBA所占用。并且從上圖中可以看到這個機頭內(nèi)部的電源和散熱風(fēng)扇全部冗余。
現(xiàn)在由于數(shù)據(jù)量的不斷增大,企業(yè)對數(shù)據(jù)處理的需求也越來越高,傳統(tǒng)存儲的瓶頸實際上是磁盤的吞吐量,而磁盤由于其原理幾乎很難再有飛躍提升,所以SSD 的出現(xiàn),給存儲性能帶來質(zhì)上的提升。目前許多存儲廠商的存儲產(chǎn)品均已經(jīng)提供對SSD的支持,并將其作為緩存層來發(fā)揮其快速讀取優(yōu)勢。上面已經(jīng)提到XIV每個網(wǎng)格節(jié)點之中都用一個緩存節(jié)點,這個緩存節(jié)點同樣也是利用的SSD的優(yōu)勢。具體如下圖所示:
上圖中標(biāo)①處即為XIV中的SSD插槽,從這點上來看,XIV中似乎并不是像Fusion-io或者EMC VFCache那樣使用PCIe SSD。
整個XIV存儲系統(tǒng)中的單個節(jié)點與其他節(jié)點通過一個內(nèi)部的以太網(wǎng)交換機實現(xiàn)冗余連接。所有模塊在一起形成一個網(wǎng)格體系結(jié)構(gòu)的工作模式,因此,該系統(tǒng)可以提供本身具有的并行方式,其強大計算能力能夠適用于很多的并行分布式計算環(huán)境。
上圖為一個15模塊的XIV前后視圖
與其他存儲產(chǎn)品不同的是,XIV內(nèi)部的節(jié)點與節(jié)點之間還存在不同的分工,如上圖所示,在一個15模塊組成的XIV存儲系統(tǒng)中,其分為6個主機接口部分和 9個數(shù)據(jù)存儲部分。主機接口部分的每個模塊包含處理器、緩存、12塊SATA磁盤驅(qū)動器以及光纖主機接口。數(shù)據(jù)部分的每個模塊中也包含處理器、緩存、12 塊SATA磁盤驅(qū)動器,但不包括主機接口。所有的這些模塊通過一臺內(nèi)嵌的以太網(wǎng)交換機連接在一起,該內(nèi)部網(wǎng)絡(luò)可以提供最大的帶寬利用率和單一組件失效的故障接管。
從硬件配置方面來看,接口模塊和數(shù)據(jù)模塊的結(jié)構(gòu)基本相同,但卻承擔(dān)不同的功能。當(dāng)然每個模塊采用的磁盤,緩存和處理資源不一定與數(shù)據(jù)模塊一 致,XIV中接口模塊的設(shè)計包括光纖通道和iSCSI接口的主機系統(tǒng)的連接以及遠(yuǎn)程鏡像。在XIV中,最基礎(chǔ)配置的XIV有6個模塊。其中3個模塊作為前 端主機模塊。再擴展的話,直接升級到9個模塊,其中6個模塊作為主機接口模塊。但之后如果需要繼續(xù)擴展,其主機模塊將不再擴充,擴充的只是數(shù)據(jù)模塊。這樣 做的好處是,避免前端端口增加時,用戶需要復(fù)雜的操作配置過程。
XIV存儲系統(tǒng)全網(wǎng)格設(shè)計的好處顯而易見,因為每個單獨的網(wǎng)格中都配備了計算單元和數(shù)據(jù)存儲單元,用戶只需簡單地添加這樣的網(wǎng)格節(jié)點到已有的XIV存儲系統(tǒng)中,就可實現(xiàn)容量與性能的提升。
海量數(shù)據(jù)保護(hù):XIV偽隨機算法
海量數(shù)據(jù)時代,存儲系統(tǒng)還面臨著另外一個挑戰(zhàn),那就是數(shù)據(jù)保護(hù)。傳統(tǒng)存儲系統(tǒng)中通常采用RAID的形式來對數(shù)據(jù)進(jìn)行保護(hù),但這一方式在海量數(shù)據(jù)時代 明顯有些心有余而力不足。根據(jù)英特爾在IDF大會上展示的一組數(shù)據(jù)顯示,在用2TB磁盤組成的RAID 5陣列中,如果陣列中某塊磁盤故障,插入新的磁盤到這個陣列中,并進(jìn)行數(shù)據(jù)重建。對一個容量為2TB的磁盤進(jìn)行數(shù)據(jù)重建大概需要四個小時,這還是在最高優(yōu) 先級的情況下,而在實際環(huán)境中,為了不占用關(guān)鍵業(yè)務(wù)的CPU資源,數(shù)據(jù)重建通常處于較低優(yōu)先級,那么數(shù)據(jù)重建時間就會大大延長,幾天甚至幾周進(jìn)行數(shù)據(jù)重建 的情況都是很正常的。
這還不是重點,重點在于,磁盤年故障率的數(shù)值看似較小,但在大規(guī)模部署的時候,這個幾率就會無限放大,同時出現(xiàn)磁盤損壞的情況并非不可能。并且,傳統(tǒng)的RAID 5陣列只能保證陣列中的一塊硬盤損壞后能夠數(shù)據(jù)重建,而RAID 6也只能保證兩塊硬盤同時損壞后,能夠?qū)G失數(shù)據(jù)進(jìn)行重建,一旦有更多的硬盤損壞,對于企業(yè)來說,這就意味著數(shù)據(jù)永久丟失(如果沒有備份的話)。所以在海量數(shù)據(jù)時代,用戶迫切需要一種新的數(shù)據(jù)保護(hù)方式來應(yīng)對這一難題,如惠普公司提出的網(wǎng)絡(luò)RAID做法,而IBM XIV存儲系統(tǒng)之中則使用的是世界上獨一無二的偽隨機算法來對存儲數(shù)據(jù)進(jìn)行保護(hù)。
XIV內(nèi)部通過獨特的算法,將每個文件拆分成1MB的大小,并根據(jù)偽隨機的算法,將這1M的數(shù)據(jù)存儲在內(nèi)部任意一個網(wǎng)格處理單元中的任意一塊磁盤 上,與此同時在另外任意一個網(wǎng)格中也放置一份拷貝。直至整個系統(tǒng)達(dá)到相當(dāng)?shù)睦寐剩⒈WC每個網(wǎng)格處理單元的利用率保持在差不多的水準(zhǔn)。IBM XIV的偽隨機數(shù)據(jù)分配示意如以下Flash所示:
XIV通過對多種數(shù)據(jù)類型進(jìn)行切割,并將切割后的數(shù)據(jù)分散存儲到磁盤中,并保留副本。這樣,實際上磁盤上的每份數(shù)據(jù),在系統(tǒng)里面都存在一個相同的副 本。一旦某塊磁盤當(dāng)?shù)?,替換上新的磁盤后,系統(tǒng)會自動的根據(jù)保存在其他磁盤上的數(shù)據(jù)副本,來恢復(fù)這塊磁盤上原有的數(shù)據(jù)。由于這塊磁盤上的數(shù)據(jù)副本,本身分 散在不同的磁盤中,因此數(shù)據(jù)恢復(fù)的過程,由多塊磁盤共同完成,恢復(fù)的速度非???,比傳統(tǒng)的RAID5恢復(fù)速度快一倍,1TB的硬盤壞掉,僅需要約30分鐘 左右的自愈時間。而且數(shù)據(jù)恢復(fù)的過程中,對前端性能的影響非常小。這也是XIV網(wǎng)格存儲系統(tǒng)獨特的數(shù)據(jù)保護(hù)模式的優(yōu)勢。
對于兩塊磁盤同時損壞的情況,由于XIV通過偽隨機算法,保證所有的數(shù)據(jù)隨機分散在不同的磁盤上,因此兩塊磁盤的數(shù)據(jù)都能在系統(tǒng)內(nèi)部不同的位置找到 副本,因此同樣能進(jìn)行恢復(fù),只有一份數(shù)據(jù)的兩個副本所在的不同的兩塊磁盤同時損壞的情況下,才會導(dǎo)致數(shù)據(jù)不可恢復(fù),但發(fā)生這種情況的機率非常低,因此企業(yè) 大部分情況下對數(shù)據(jù)保護(hù)的需求都能夠滿足。
總結(jié)
IBM XIV存儲系統(tǒng)中所采用的全網(wǎng)格架構(gòu)能夠滿足企業(yè)云存儲按需擴展的需求,只需通過添加單個計算單元(網(wǎng)格節(jié)點)就可實現(xiàn)容量與性能的線性增長。同時,其采 用的偽隨機數(shù)據(jù)分配方式能夠滿足當(dāng)前企業(yè)在海量數(shù)據(jù)背景下的數(shù)據(jù)保護(hù)需求。除此之外,XIV存儲系統(tǒng)中采用的圖形操作界面管理極為簡單,也能夠滿足企業(yè) IT資源集中之后的運維管理難題。
XIV存儲系統(tǒng)在設(shè)計之初就考慮到了用戶的易用性問題,XIV采用了一個簡單易用的圖形用戶界面,可大大提高存儲部署的速度和效率,用戶不需要單獨 的控制臺就可以完成XIV的部署配置,且管理GUI包含了預(yù)先設(shè)定的配置模型,幫助用戶實現(xiàn)快速配置及調(diào)優(yōu),如創(chuàng)建卷、FlashCopy映射或設(shè)置 RAID配置。對用戶來說,簡單易用的部署操作,不僅僅節(jié)約技術(shù)上的人力和培訓(xùn)投入,更快的解決方案部署也最大限度的減少對應(yīng)用和管理人員的影響。
總的說來,不管是從性能、可擴展性、數(shù)據(jù)安全以及易用性方面考量,IBM XIV存儲系統(tǒng)是目前較為適合企業(yè)用戶在部署私有云系統(tǒng)時,較為合適的存儲基礎(chǔ)設(shè)施。