按照大的種類來分,有軟RAID(HostRAID)以及硬件RAID兩種。軟RAID沒有專門的IOP運算芯片,一般是利用主機的CPU進行“兼職”校驗,所以性能一般都比較低,而且附帶的軟件“虛擬”功能也比較少,應(yīng)該算是最簡單的RAID。軟RAID的表現(xiàn)形式又可分為兩種,一種是純粹的基于上層軟件的RAID,如Windows/Linux/Veritas Volume manager等中具備的RAID功能;另一種是接口芯片上板載的RAID,如Ultra320 SCSI、SAS接口芯片所具有的RAID功能。


    硬件RAID最大的特征是具有專門的用于IOP運算的芯片,所以會有比較高的性能,而且一般也會附帶一些高級的“虛擬”功能。我們也可以把硬RAID分為兩種,一種被廣泛的應(yīng)用到外部磁盤陣列中;另一種是在服務(wù)器中的RAID,例如ROMB(RAID On Motherboard)、RAID卡等,這些產(chǎn)品使用Intel的IOP芯片或者具有RISC運算的ROC(RAID on Chip)芯片。本文的重點在于介紹服務(wù)器中RAID技術(shù)的特性。


    一、 服務(wù)器中的RAID產(chǎn)品介紹


    服務(wù)器中的RAID技術(shù)被廣泛應(yīng)用是從RAID卡開始的,早期的RAID卡基于PCI總線(64bit/33MHz or 66MHz),提供Ultra160的SCSI通道。當(dāng)時提供類似產(chǎn)品的廠家有DPT、Mylex、AMI,但隨著時間的流逝,這些廠家已經(jīng)被全部并購。隨著新的總線、接口技術(shù)的出現(xiàn),之后的RAID卡開始支持PCI-X總線(64bit/66MHz, 64bit/100MHz,64bit/133MHz)、PCI-E總線(X1、X4、X8等等),也開始支持Ultra320 SCSI、SATA1、SAS、SATA2等接口。


    RAID卡最大的兩大功能是提供RAID運算,以及提供數(shù)據(jù)通道,所以在一般的RAID卡上都會有兩個大的核心芯片,一個是基于Intel或IBM PowerPC的IOP芯片,另一個是提供SCSI/SATA/SAS的I/O控制器芯片。當(dāng)然,最新的ROC(RAID on Chip)技術(shù)已經(jīng)可以把這兩大功能集成到一個單芯片中,以降低成本,并有利于小尺寸設(shè)計。另外,還有一種特殊的被稱為ZCR(Zero Channel RAID)的卡,上面只有一個IOP芯片,它是通過和主板上板載的SCSI/SATA/SAS等接口控制器配合來實現(xiàn)兩大功能的。


    對于SCSI來說,屬于并行通道技術(shù),所以有零通道、單通道、雙通道甚至四通道的RAID卡,每個通道支持15個有效地址。對于SATA來說,屬于點對點串行通道技術(shù),所以有雙端口、四端口、八端口甚至更多端口的RAID卡。對于SAS來說,也屬于點對點串行技術(shù),并且引入了交換、虛擬端口等概念,一般有X4(即4個PHY組成的一個寬Port)、2X4(即有兩個寬Port)寬端口的RAID卡。


    RAID卡需要占用主機的PCI插槽,而且成本相對比較高,隨著計算機集成度越來越高,ROMB(Raid on Motherboard)技術(shù)出現(xiàn)了,這種技術(shù)把RAID卡的RAID校驗運算、數(shù)據(jù)通道兩大功能集成到主板上,從而進一步降低了成本。


    上面提到的不管是RAID卡,還是ROMB,都屬于硬件RAID,只是硬件上的表現(xiàn)形式不一樣,而在軟件方面是統(tǒng)一的。RAID產(chǎn)品的軟件分為兩個部分,一個是底層的用于和主機啟動交互的BIOS以及功能軟體Firmware;另一個是上層的基于OS的管理軟件,一般都具有圖形化和命令行的管理軟件。舉個例子,Adaptec公司的SCSI、SATA、SAS RAID卡以及ROMB產(chǎn)品具有統(tǒng)一的Firmware版本,統(tǒng)一的RAID功能,而且可以通過統(tǒng)一的圖形化管理軟件進行集中管理。


    二、 服務(wù)器中的RAID產(chǎn)品業(yè)界標(biāo)準(zhǔn)功能特性介紹


    上面提到了,服務(wù)器中的RAID產(chǎn)品軟件功能是統(tǒng)一的,而軟件功能又決定了產(chǎn)品的特性。目前已經(jīng)有很多廠家參與到RAID產(chǎn)品的市場中,而這些廠家的產(chǎn)品也具有一些業(yè)界“標(biāo)準(zhǔn)”的功能特性。下面逐一進行簡單介紹。


   1. RAID0,1,10,5,50


    最初的RAID定義包括了RAID0到RAID5,但經(jīng)過客戶實際需求的洗禮,目前在服務(wù)器中使用的RAID級別一般都是RAID0、1、5,以及復(fù)合RAID 10、50。大家對這些標(biāo)準(zhǔn)的RAID級別應(yīng)該非常熟悉了,就不多介紹了。


    2. 在線RAID優(yōu)化調(diào)整


    現(xiàn)在的業(yè)務(wù)要求很少的宕機時間,所以標(biāo)準(zhǔn)的RAID卡也都具有了一些在線RAID調(diào)整功能,從而不需要重啟系統(tǒng)就可以完成某些任務(wù)。
    - 在線擴容:例如在原來RAID5基礎(chǔ)上增加一個或者幾個盤的容量。
    - 在線RAID級別轉(zhuǎn)換: 根據(jù)客戶應(yīng)用的變化,進行RAID級別的轉(zhuǎn)換,例如從RAID10到RAID5,從而實現(xiàn)可用容量、冗余度、安全性的調(diào)整。
    - 在線條帶大小調(diào)整:根據(jù)客戶應(yīng)用對性能要求的變化,對RAID的條帶大小(Stripe Size)進行在線調(diào)整。


    3.可配置的熱備份盤(Hot Spares)


    熱備份技術(shù)用于對一些RAID級別進行保護,如RAID1/5等,當(dāng)RAID組中的一個磁盤損壞后,熱備份盤就會自動頂替損壞磁盤,在進行Rebuild(重構(gòu))后,之前的RAID組又重新恢復(fù)完整性。


    熱備份盤可以配置成Global全局的,每個RAID中的損壞磁盤都可以頂替;也可以配置成Dedicated專職的,只對某個RAID中的損壞磁盤進行頂替;還可以劃分Pool池,從而在多個熱備份盤的配置下可以有效管理。


    4. 熱插拔磁盤以及自動重構(gòu)


    上面提到,現(xiàn)在的業(yè)務(wù)要求更多的在線操作,所以能夠支持在線插拔磁盤是非常重要的。另外,在更換完磁盤后,能夠自動的進行Rebuild(重構(gòu))也是非常關(guān)鍵的。


    5. 靈活的初始化(Initialization)方式


    根據(jù)客戶的需求,在做RAID的時候可以選擇多種靈活的初始化(Initialization)方式,如前臺Clear初始化,對所包含磁盤寫0,初始化之后RAID組才可見;后臺初始化,對所包含磁盤進行奇偶校驗運算,邊初始化邊可用;立即生效初始化,只對磁盤的Metadata RAID信息區(qū)寫操作,對數(shù)據(jù)區(qū)不進行任何操作。


    6. 多個物理磁盤上可以創(chuàng)建多個虛擬RAID


    之前的RAID成員都是以物理磁盤為單位的,比如3個36GB的磁盤做一個RAID5,這個RAID就包括了3塊磁盤的所有容量。但現(xiàn)在的RAID技術(shù)都添加了“虛擬”功能,在多個物理磁盤上可以創(chuàng)建多個RAID,例如3個72GB的磁盤,可以創(chuàng)建2個RAID5,每個RAID5都是3個36GB的磁盤空間組成的。


    三、 服務(wù)器中的RAID產(chǎn)品高級特性介紹


    隨著RAID技術(shù)的發(fā)展,目前市場上也出現(xiàn)了一些更高級的RAID技術(shù),例如一些新RAID級別、更高級的“虛擬”功能以及從外部存儲中引入的一些概念等。下面就對這些新的技術(shù)、概念分別進行介紹。


    1. 更優(yōu)化的磁盤利用率


    隨著硬盤的技術(shù)的發(fā)展,單個硬盤的容量逐漸變大,但客戶的原有系統(tǒng)不可能隨著新的技術(shù)出現(xiàn)而淘汰,這樣就產(chǎn)生了老系統(tǒng)與新設(shè)備的融合問題。例如之前使用的RAID5是5塊36GB硬盤組成的,隨著業(yè)務(wù)的發(fā)展,RAID5需要在線擴容,由于36GB的盤已經(jīng)停產(chǎn),客戶只能購買72GB的磁盤,那么對于每個擴容上去的72GB磁盤,只能有效利用36GB的空間,從而浪費掉了50%容量。


    新的更優(yōu)化的磁盤利用率功能,采用更為“虛擬”的技術(shù),可以有效地利用大容量硬盤剩下的空間。例如左圖所示,2個36GB的磁盤和2個72GB的磁盤可以做成一個Array1(4×36GB),那兩個72GB的剩余的2×36GB空間可以做成另外一個Array2,從而利用上了所有的硬盤空間。當(dāng)然,從性能上考慮,可以把Array1做成RAID5,用于大I/O要求的生產(chǎn)系統(tǒng)數(shù)據(jù)存??;把Array2做成RAID0,用于很少I/O要求的臨時數(shù)據(jù)存放。


    2. Copyback熱備份


    Copyback熱備份功能是一個非常簡單的概念,但卻是比較有用的一個功能。我們還是回顧一下傳統(tǒng)的RAID5+熱備份盤的情況吧,參照圖一,3個磁盤做成一個RAID5,另外有一個熱備份盤。當(dāng)Disk3磁盤壞掉之后,熱備份盤會自動頂替Disk3,再Rebuild之后恢復(fù)為完整的RAID5。之后拔下Disk3,換上新的盤,但其實熱備份盤已經(jīng)變成了”Disk3”,需要手工把新?lián)Q上的新盤設(shè)置為熱備份盤,從而熱備份盤的位置發(fā)生了改變。


    Copyback熱備份的功能在于自動“回拷”,見圖二,在新的Disk3插入之后,熱備份盤上的數(shù)據(jù)會自動拷貝到新的Disk3上,之后自動還原成熱備份盤,從而保證了熱備份盤的固定位置。對于系統(tǒng)管理員來說,總是希望把熱備份盤定義為固定槽位以便于管理,Copyback熱備份功能就可以幫助管理員實現(xiàn)這個愿望,無論多少次換盤,熱備份盤的位置永遠是固定的。


    當(dāng)然,并不是所有的管理員都認為越自動化越好。比如在Copyback功能激活后,插入新盤的情況下會自動“回拷”,由于性能會受到一定的影響,所以一般需要在系統(tǒng)I/O比較少的時候進行。管理員可以根據(jù)自身的需要,“Enable”或者“Disable”此功能。


    3. RAID1E


    RAID1是指兩塊硬盤做Mirror,完全的鏡像,兩塊硬盤不進行條帶化,而只是寫入同樣的數(shù)據(jù),RAID1技術(shù)只適應(yīng)于兩塊磁盤。能否在奇數(shù)數(shù)量盤上也實現(xiàn)鏡像?RAID1E可以實現(xiàn)這樣的功能,和RAID1不一樣,RAID1E是一種虛擬的鏡像,不是基于單個物理盤,而是基于盤上的條帶化數(shù)據(jù)。如下圖所示,在3塊磁盤的情況下,數(shù)據(jù)被條帶化為A,B,C,D……..,在第一個條帶組中分別寫入A,B,C,在第二個條帶組中寫入C,A,B,以此類推。這樣對于每個條帶化的數(shù)據(jù)A,B,C,D……,都會在不同的盤上存放兩份,實現(xiàn)了基于數(shù)據(jù)塊的鏡像。


    當(dāng)然,根據(jù)RAID1E的工作原理,在多個偶數(shù)盤上,比如4/6/8等也可以實現(xiàn)RAID1E,但一般不建議這么做,而是建議做RAID10,因為在這些情況下,RAID10的容錯概率要比RAID1E高。


    4. RAID5EE


    RAID5EE是一個比較實用的技術(shù)。讓我們回顧一下傳統(tǒng)的RAID5+HotSpare盤的情況,正常的I/O讀寫都是在RAID5上進行的,只有在RAID5中的一塊磁盤損壞的情況下,HotSpare磁盤才進行頂替,換句話說,如果RAID5中的磁盤都能正常工作的話,HotSpare磁盤是空閑、不需要轉(zhuǎn)動的,這是一種被動的熱備份方式,因為熱備份磁盤的帶寬并沒有被有效利用。


    有沒有一種解決辦法呢?RAID5EE提供了一個完善的替代“RAID5+HotSpare”盤的解決辦法。如下圖所示,原來的一塊單獨HotSpare熱備份盤也進行Stripe條帶化,并且平均分配到了5塊磁盤中。這樣,在RAID5EE讀寫的時候,5塊磁盤同時參與I/O,相比于4塊磁盤+HotSpare盤的情況,多了一個磁盤的讀寫帶寬,提高了性能。特別是在整體磁盤數(shù)量比較少,如4/5/6等的情況下,性能的提高尤為明顯。


    RAID5EE相比于RAID5性能提高,那對于可靠性和容量利用率有什么影響呢?對于RAID5EE來講,一塊硬盤損壞,就會自動重構(gòu)成一個RAID5,另外一個硬盤再損壞,就會變成Degraded狀態(tài)的RAID5,這和RAID5+HotSpare的容錯能力是一樣的,也就是可靠性一樣;對于RAID5EE來講,損失的容量為2塊物理磁盤,而對于RAID5+HotSpare來講,損失的容量也為2塊物理磁盤,所以容量利用率也一致。


    值得注意的一點,RAID5EE中包括的HotSpare盤是分布在每個磁盤中的,只能供RAID5EE本身來使用,不能做另外RAID5的熱備。也就是說,如果客戶有兩個或者更多個RAID5,一個HotSpare盤需要為所有RAID5服務(wù)的話,客戶不要使用RAID5EE,因為RAID5EE只適用于替代一個RAID5+HotSpare盤的情況。


    5. RAID6


    RAID6是在RAID5的基礎(chǔ)上,可以允許2塊磁盤的同時損壞,屬于更高級的一種容錯技術(shù)。目前各個廠家的產(chǎn)品都相繼推出了RAID6,但使用的RAID6不盡相同,如采用Intel P+Q編碼、RAID-DP編碼、PARK編碼等等。


    由于RAID6能夠支持2塊磁盤的同時損壞,所以更適合應(yīng)用于MTBF相對低的SATA磁盤。但由于RAID6的算法相對比較復(fù)雜,所以寫性能,特別是在損壞一塊盤、兩塊盤情況下的性能會比較差,客戶需要根據(jù)自己的實際應(yīng)用綜合評定選擇,千萬不能揀了芝麻而丟了西瓜。


    下圖就是一種形式的RAID6。大家可以看到,對于數(shù)據(jù)區(qū)從0到11來說,都有兩個不同的校驗區(qū),如1,有綠色P和黃色P兩個校驗區(qū)。這樣,無論同時損壞哪兩塊硬盤,都可以從另外的硬盤中恢復(fù)出所有的數(shù)據(jù)。


    6. Snapshot快照


    提起Snapshot快照,很多人都會以為我在談外部存儲。的確,對于外部存儲來講,Snapshot已經(jīng)成為了一個標(biāo)準(zhǔn)的功能,無論對于高端磁盤陣列,還是中低端磁盤陣列,一般都具有這種功能。但是隨著服務(wù)器內(nèi)部RAID技術(shù)的發(fā)展,有的廠家,比如Adaptec,也把Snapshot快照功能融入進來。


    Snapshot的核心在于對邏輯卷進行指定時間點的快照,從而生成一個虛擬的快照卷,從而進行數(shù)據(jù)備份、克隆等等。對于Adaptec的Snapshot而言,有兩種實現(xiàn)方式。


    一是Snapshot Backup。在這種模式下,會把源邏輯盤上指定時間點的數(shù)據(jù)完全復(fù)制到目標(biāo)快照卷中,從而客戶可以對Snapshot快照卷進行操作,也可以實現(xiàn)復(fù)制多個一樣的系統(tǒng)。需要指出的是,和普通的Copy不同,Snapshot是指定時間點的拷貝,所以Snapshot卷上的數(shù)據(jù)在指定時間點上是一致性的,可以適用于數(shù)據(jù)庫等應(yīng)用環(huán)境。


    另外一種是Snapshot Nobackup。這種模式更類似外部存儲中使用的Snapshot技術(shù)。它對于源邏輯卷創(chuàng)建指定時間點的臨時“Copy”,生成了Snapshot卷,從而用于磁帶備份或者數(shù)據(jù)參考。這種模式并不拷貝所有的數(shù)據(jù),而僅僅是采用Copy-on-Write的機制拷貝寫入的即將變化的數(shù)據(jù),所以相對于第一種方式而言,需要更少的I/O,對系統(tǒng)的性能影響也比較小??蛻艨梢愿鶕?jù)自身的需求來選擇相應(yīng)的Snapshot方式。


    總結(jié)


    以上是目前服務(wù)器中的RAID特性介紹,大家可以明顯的感覺到服務(wù)器中的RAID產(chǎn)品軟件功能越來越多樣化。其實,這都是底層的Firmware中具有的功能,對于上層的圖形化GUI管理軟件而言,功能也越來越復(fù)雜,但管理上卻越來越簡單化。另外,一些外部存儲中具有的高級功能正慢慢轉(zhuǎn)移到了服務(wù)器中,為以后外部存儲和內(nèi)部存儲的無縫結(jié)合提供了基礎(chǔ)。
  (本文作者現(xiàn)就職于Adaptec公司)
  
  

分享到

多易

相關(guān)推薦