1、JBOD
JBOD(Just a Bunch Of Disk) 按字面的意思翻譯,就是一堆裸磁盤的意思,操作系統(tǒng)直接通過存儲(chǔ)控制卡識(shí)別到這些磁盤,每個(gè)物理磁盤在操作系統(tǒng)中只對(duì)應(yīng)一個(gè)磁盤設(shè)備?梢酝ㄟ^操作系統(tǒng)實(shí)現(xiàn)RAID0,1。這是磁盤最簡單也是最原始的使用方法,JBOD方式因?yàn)闆]有任何控制器,因此成本低廉,通常用與安裝操作系統(tǒng)。
2、RAID磁盤陣列
外置存儲(chǔ)大部分以磁盤陣列的形式出現(xiàn),磁盤陣列是指將JBOD與RAID控制設(shè)備集成在一起,把磁盤用冗余(至少兩個(gè))的RAID控制器管理起來,再連接小型機(jī)。由于RAID控制器可以完成磁盤的管理(添加、刪除、更換硬盤)、RAID的計(jì)算和讀寫、數(shù)據(jù)緩存等操作,小型機(jī)只需考慮數(shù)據(jù)讀寫,而不用考慮數(shù)據(jù)冗余校驗(yàn)、數(shù)據(jù)在磁盤上的分布,以及故障盤處理等操作,因此存儲(chǔ)子系統(tǒng)性能大幅度提高,從操作系統(tǒng)層面來看,管理更簡單(而存儲(chǔ)層面更復(fù)雜了)。RAID磁盤陣列也可以提供附加的功能,例如LUN分割,LUN Masking等
LUN分割的含義是將一個(gè)RAID Group(做成一個(gè)RAID的一組磁盤),再進(jìn)行切分,分為幾個(gè)能獨(dú)立的邏輯磁盤,分別指派給不同的小型機(jī)使用。如果沒有LUN分割技術(shù),一個(gè)RAID組合只能對(duì)應(yīng)操作系統(tǒng)中的一個(gè)磁盤,由于RAID組可能有十幾個(gè)磁盤,存儲(chǔ)空間作為一個(gè)磁盤分給一臺(tái)小型機(jī)使用非常不便。
LUN Masking的含義是在進(jìn)行LUN分割和邏輯盤指派的時(shí)候,可以根據(jù)需要設(shè)定安全策略,允許或禁止一臺(tái)小型機(jī)訪問這個(gè)LUN邏輯磁盤。存儲(chǔ)不會(huì)響應(yīng)被屏蔽掉的的請(qǐng)求。
3、RAID技術(shù)
目前有許多種RAID(Redundant Array of Independent Disk,冗余的獨(dú)立磁盤陣列)技術(shù),就是通過管理器將一組磁盤組織起來使用的技術(shù)。
RAID 0條塊化數(shù)據(jù),將條塊分布于RAID組中的各個(gè)磁盤中,以達(dá)到最高的讀寫速度。但是此技術(shù)沒有數(shù)據(jù)冗余,不能提供數(shù)據(jù)保護(hù)。假設(shè)條塊化大小為64KB,共計(jì)有8塊磁盤組成的RAID0陣列,則512KB的數(shù)據(jù)可以分為8份,每份64KB,同時(shí)開始寫入8塊磁盤。這樣盡管完成全部寫操作的時(shí)間比8塊中最短的稍長,但應(yīng)當(dāng)遠(yuǎn)遠(yuǎn)小于8倍的單塊數(shù)據(jù)寫入時(shí)間,因此讀寫性能大大提高。由于數(shù)據(jù)分布于每塊磁盤中,任何一塊磁盤發(fā)生故障,都會(huì)導(dǎo)致全部數(shù)據(jù)的一致性喪失而不可用。
RAID1也被稱為鏡像技術(shù)(mirroring)。需要偶數(shù)塊磁盤,(至少兩塊),將寫入的數(shù)據(jù)保存為相同的兩份,分別存放在兩個(gè)磁盤上,沒有條塊化,只有部分提高性能,因?yàn)榭梢酝瑫r(shí)從兩塊硬盤中讀數(shù)據(jù),寫性能與單塊磁盤相同,實(shí)際上稍有下降。此技術(shù)提供數(shù)據(jù)冗余度較高的保護(hù),性能也可以接受,但在磁盤單盤容量很大的時(shí)候,不建議采用。另外RAID1幾乎不需要進(jìn)行任何數(shù)據(jù)計(jì)算,對(duì)處理器的壓力,也比較小。
RAID2使用條塊化技術(shù),另外有單獨(dú)的一塊或多塊磁盤來進(jìn)行錯(cuò)誤校驗(yàn)(ECC)
RAID3也使用條塊化技術(shù),單獨(dú)使用一塊硬盤做為校驗(yàn)盤,將數(shù)據(jù)先做XOR運(yùn)算,產(chǎn)生Parity后,再將數(shù)據(jù)和Parity Data并行寫入到RAID組中的磁盤驅(qū)動(dòng)器中。因此具有并行存取模式的優(yōu)點(diǎn)和缺點(diǎn)。具體來說,RAID3每進(jìn)行一筆數(shù)據(jù)傳輸,都要更新整個(gè)Stripe,即每一個(gè)成員磁盤驅(qū)動(dòng)器相對(duì)位置的數(shù)據(jù)都一起更新,因此不會(huì)發(fā)生需要把部分磁盤驅(qū)動(dòng)器現(xiàn)有的數(shù)據(jù)讀出來,與新數(shù)據(jù)做XOR運(yùn)算,再寫入的情況。這種情況在Raid4和Raid5中會(huì)發(fā)生,稱之為Read、Modify、Write Process即讀、改、寫過程。因此Raid3的順序?qū)懭胄阅苁亲詈玫摹?/p>
但是由于傳輸每筆數(shù)據(jù)都要更新整個(gè)Stripe,因此,Raid3的Parity Disk并不會(huì)如Raid4的Parity Disk,會(huì)造成存取的瓶頸。Raid3的并行存取模式,需要Raid控制器的特別功能支持,才能達(dá)到與磁盤驅(qū)動(dòng)器的同步控制,而且由于目前的磁盤陣列都采用Cache的Write Back回寫方式,上術(shù)寫入性能的優(yōu)勢已經(jīng)不明顯,因此RAID3的應(yīng)用,也越來越少,逐漸淡出市場。
RAID4采取獨(dú)立存取方式,同時(shí)一單一專屬的Parity Disk來存放Parity Data,在寫入數(shù)據(jù)時(shí),容易造成瓶頸,沒有廣泛使用。
Raid5采取獨(dú)立存取的方式 ,但是其Parity Data分散寫入到各個(gè)成員磁盤驅(qū)動(dòng)器中。因此Raid5除了具備Overlapped I/O(同時(shí)并行處理多個(gè)I/O請(qǐng)求)多任務(wù)能力之外,避免產(chǎn)生類似Raid4單一專屬Parity Disk的寫入瓶頸。一般來說,任何一次單塊數(shù)據(jù)的寫操作只涉及兩塊磁盤,讀寫操作可以在多塊磁盤上同時(shí)進(jìn)行,因此提高了讀寫操作的并行能力。Raid5通過校驗(yàn)數(shù)據(jù)可以反向生成原數(shù)據(jù)。Raid5至少需要3塊磁盤,通常使用5到8塊磁盤。比較適合于多用戶系統(tǒng),不需要太高的寫操作性能,并且對(duì)數(shù)據(jù)的保護(hù)也要求不太高的情況下。一個(gè)Raid組合中只能允許一個(gè)磁盤發(fā)生故障而不丟失數(shù)據(jù)。一個(gè)單一的寫更新在Raid 5 保護(hù)方式下需要6個(gè)步驟,包括4個(gè)獨(dú)立的I/O操作(2個(gè)寫,2個(gè)讀)。具體步驟如下:
1)Read old data,讀老數(shù)據(jù)
2)Read corresponding parity,讀校驗(yàn)位數(shù)據(jù)
3)XOR old and new data to determine the difference,比較老數(shù)據(jù)
4)XOR parity with difference to generate new parity,計(jì)算出新的校驗(yàn)位數(shù)據(jù)
5)Write new data to disk,寫新數(shù)據(jù)到磁盤
6)Write new parity to disk,寫校驗(yàn)位到磁盤
這就是讀寫算過程,寫性能較低,為了提高Raid5的寫入性能,Raid5都要配備足夠多的Cache,用于寫緩存數(shù)據(jù),等磁盤空閑的時(shí)候,在將數(shù)據(jù)回寫到磁盤。另外,如果Raid5中的某塊磁盤發(fā)生故障,則任何寫操作都需要將所有磁盤上的對(duì)應(yīng)條塊讀出,計(jì)算故障盤上的數(shù)據(jù),再繼續(xù)算寫過程,每次I/O操作需要等所有磁盤上的數(shù)據(jù)讀出都讀出后才能繼續(xù)。Raid組中的磁盤越多,時(shí)間越長,這就是Raid5的寫懲罰現(xiàn)象。
Raid5的成員磁盤驅(qū)動(dòng)器越多,其性能就越高。這是因?yàn)橐粋(gè)磁盤驅(qū)動(dòng)器在同一時(shí)間內(nèi),只能執(zhí)行一條命令。但反過來,Raid組中的磁盤驅(qū)動(dòng)器越多,發(fā)生故障的概率就越高。因此Raid5通常配合另一個(gè)技術(shù)-Hot Spare熱備盤技術(shù)使用,當(dāng)Raid組中出現(xiàn)故障盤時(shí),系統(tǒng)立刻由其他平時(shí)閑置的磁盤進(jìn)行接管,重新生成數(shù)據(jù),把寫懲罰的時(shí)間限制在單塊盤完成全盤復(fù)制的時(shí)間之內(nèi)。由于單盤復(fù)制的時(shí)間和磁盤容量、系統(tǒng)當(dāng)時(shí)負(fù)載情況有關(guān),單盤容量越大,負(fù)載越重,完成接管的時(shí)間越長,通常一塊146的磁盤需要兩個(gè)小時(shí)左右才能完成接管替換。
RAID6與RAID5很類似,但是提供了第二份校驗(yàn)數(shù)據(jù),也交錯(cuò)分布在每塊磁盤時(shí)間行,適合于對(duì)保護(hù)要求更高的環(huán)境中。
RAID7使用額外的一個(gè)操作系統(tǒng)內(nèi)核做為控制器,通過緩存和高速總線提高系統(tǒng)性能,也稱智能存儲(chǔ)。
RAID10使用RAID 1同樣的鏡像方式,不同的數(shù)據(jù)會(huì)以條塊的方式分布于盤組上,即RAID10可以看做是RAID0和RAID1的組合,這樣同時(shí)具有他們的優(yōu)點(diǎn)和缺點(diǎn)。先做RAID0后做RAID1或者相反,結(jié)果都沒多大差別,這兩種情況都叫做Raid10