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