新聞中心

EEPW首頁 > 網(wǎng)絡(luò)與存儲 > 設(shè)計(jì)應(yīng)用 > 詳解RAID流程、I/O性能和容量

詳解RAID流程、I/O性能和容量

作者: 時間:2023-12-26 來源:ICT技術(shù)社區(qū) 收藏

(Redundant Array of Independent Disks)是將多塊物理通過控制卡組合成虛擬的單塊大容量使用,從而提供比單個更高的性能、更高的I/O性能及可靠性。

本文引用地址:http://www.butianyuan.cn/article/202312/454260.htm


1 硬盤組和虛擬磁盤

由于現(xiàn)代數(shù)據(jù)中心業(yè)務(wù)量的與日俱增,單臺服務(wù)器上需要運(yùn)行的數(shù)據(jù)也日益增多。當(dāng)單個物理硬盤在容量和安全性上不足以支持系統(tǒng)業(yè)務(wù)時,就需要將多個硬盤以某種特定方式組合起來,對外作為一個可見的硬盤來使用,才可滿足實(shí)際需要。硬盤組,就是將一組物理硬盤組合起來,作為一個整體對外體現(xiàn),是虛擬磁盤的基礎(chǔ)。

虛擬磁盤,即使用硬盤組劃分出來的連續(xù)的數(shù)據(jù)單元,相當(dāng)于一個個獨(dú)立的硬盤,通過一定的配置,使其具有比單個物理硬盤更大的容量,及更高的安全性和數(shù)據(jù)冗余性。

一個虛擬磁盤可以是:

  • 一個完整的硬盤組。

  • 多個完整的硬盤組。

  • 一個硬盤組的一部分。

  • 多個硬盤組的一部分(每個硬盤組劃分一部分,共同組成虛擬磁盤)。

在下文的描述中:

  • 硬盤組一般會表述為“Drive Group”(簡稱“DG”)、“Array”、“組”。

  • 虛擬磁盤一般會表述為“Virtual Drive”、“Virtual Disk”(簡稱“VD”)、“Volume”、“Logical Device”(簡稱“LD”)等。


1.1 RAID級別介紹

RAID是將多塊物理硬盤通過RAID控制卡組合成虛擬的單塊大容量硬盤使用,從而提供比單個硬盤更高的性能、更高的I/O性能及可靠性。

RAID控制卡僅在EFI或UEFI模式下支持安全啟動,并使用BIOS提供的安全認(rèn)證機(jī)制。

1.1.1 RAID 0

RAID 0又稱為條帶化(Stripe)或分條(Striping),代表了所有RAID級別中最高的存儲性能。RAID 0提高存儲性能的原理是把連續(xù)的數(shù)據(jù)分散到多個硬盤上存取。這樣,當(dāng)系統(tǒng)有數(shù)據(jù)請求時就可以在多個硬盤上并行執(zhí)行,每個硬盤執(zhí)行屬于它自己的那部分?jǐn)?shù)據(jù)請求。這種數(shù)據(jù)上的并行操作可以充分利用總線的帶寬,顯著提高硬盤整體讀寫性能。但由于其沒有數(shù)據(jù)冗余,無法保護(hù)數(shù)據(jù)的安全性,只能適用于I/O速率要求高,但數(shù)據(jù)安全性要求低的場合。

處理流程

系統(tǒng)向三塊硬盤組成的邏輯硬盤(RAID 0硬盤組)發(fā)出的I/O數(shù)據(jù)請求被轉(zhuǎn)化為三項(xiàng)操作,其中的每一項(xiàng)操作都對應(yīng)于一塊物理硬盤。

通過建立RAID 0,原先順序的數(shù)據(jù)請求被分散到所有的三塊硬盤中同時執(zhí)行。

三塊硬盤的并行操作在理論上使同一時間內(nèi)硬盤讀寫速度提升了3倍。雖然由于總線帶寬等多種因素的影響,實(shí)際的提升速率會低于理論值,但是大量數(shù)據(jù)并行傳輸與串行傳輸比較,提速效果顯著。

圖RAID 0數(shù)據(jù)存儲原理


1.1.1 RAID 1

RAID 1又稱鏡像(Mirror或Mirroring),即每個工作盤都有一個鏡像盤,每次寫數(shù)據(jù)時必須同時寫入鏡像盤,讀數(shù)據(jù)時同時從工作盤和鏡像盤讀出。當(dāng)更換故障盤后,數(shù)據(jù)可以重構(gòu),恢復(fù)工作盤正確數(shù)據(jù)。RAID 1可靠性高,但其有效容量減小到總?cè)萘恳话?,因此常用于對容錯要求較高的應(yīng)用場合,如財(cái)政、金融等領(lǐng)域。

處理流程

系統(tǒng)向兩塊硬盤組成的邏輯硬盤(RAID 1硬盤組)發(fā)出I/O數(shù)據(jù)請求。

  • 向硬盤Drive 0寫入數(shù)據(jù)時,系統(tǒng)會同時把用戶寫入Drive 0的數(shù)據(jù)自動復(fù)制到Drive 1上。

  • 讀取數(shù)據(jù)時,系統(tǒng)同時從Drive 0和Drive 1讀取。

圖RAID 1數(shù)據(jù)存儲原理


1.1.2 RAID 1ADM

RAID 1ADM的每個工作盤都有兩個鏡像盤,每次寫數(shù)據(jù)時必須同時寫入鏡像盤,讀數(shù)據(jù)時同時從工作盤和鏡像盤讀出。當(dāng)更換故障盤后,數(shù)據(jù)可以重構(gòu),恢復(fù)工作盤正確數(shù)據(jù)。RAID 1ADM可靠性比RAID 1高,但其有效容量減小到總?cè)萘康娜种唬虼顺S糜趯θ蒎e要求較高的應(yīng)用場合,如財(cái)政、金融等領(lǐng)域。

處理流程

系統(tǒng)向三塊硬盤組成的邏輯硬盤(RAID 1ADM硬盤組)發(fā)出I/O數(shù)據(jù)請求。

  • 向硬盤Drive 0寫入數(shù)據(jù)時,系統(tǒng)會同時把用戶寫入Drive 0的數(shù)據(jù)自動復(fù)制到Drive 1和Drive 2上。

  • 讀取數(shù)據(jù)時,系統(tǒng)同時從Drive 0、Drive 1和Drive 2讀取。

圖RAID 1ADM數(shù)據(jù)存儲原理


1.1.3 RAID 5

RAID 5是一種存儲性能、數(shù)據(jù)安全和存儲成本兼顧的存儲解決方案。為保障存儲數(shù)據(jù)的可靠性,采用循環(huán)冗余校驗(yàn)方式,并將校驗(yàn)數(shù)據(jù)分散存儲在RAID的各成員盤上。當(dāng)RAID的某個成員盤出現(xiàn)故障時,通過其他成員盤上的數(shù)據(jù)可以重新構(gòu)建故障硬盤上的數(shù)據(jù)。RAID 5既適用于大數(shù)據(jù)量的操作,也適用于各種小數(shù)據(jù)的事務(wù)處理,是一種快速、大容量和容錯分布合理的磁盤陣列。

處理流程

PA為A0、A1和A2的奇偶校驗(yàn)信息,PB為B0、B1和B2的奇偶校驗(yàn)信息,以此類推。

RAID 5不對存儲的數(shù)據(jù)進(jìn)行備份,而是把數(shù)據(jù)和相對應(yīng)的奇偶校驗(yàn)信息存儲到成員盤上,并且奇偶校驗(yàn)信息和相對應(yīng)的數(shù)據(jù)分別存儲于不同的硬盤上。當(dāng)RAID 5的一個硬盤數(shù)據(jù)發(fā)生損壞后,利用剩下的數(shù)據(jù)和相應(yīng)的奇偶校驗(yàn)信息可以恢復(fù)被損壞的數(shù)據(jù)。

RAID 5可以理解為是RAID 0和RAID 1的折衷方案:

  • RAID 5可以為系統(tǒng)提供數(shù)據(jù)安全保障,但保障程度要比RAID 1低而硬盤空間利用率要比RAID 1高,存儲成本相對較低。

  • RAID 5具有較RAID 0略低的數(shù)據(jù)讀寫速度,但寫性能比寫入單個硬盤時要高。

圖RAID 5數(shù)據(jù)存儲原理


1.1.4 RAID 6

在RAID 5的基礎(chǔ)上,RAID 6增加了第二個獨(dú)立的奇偶校驗(yàn)信息塊。兩個獨(dú)立的奇偶系統(tǒng)使用不同的算法,數(shù)據(jù)的可靠性非常高,即使兩塊硬盤同時失效也不會影響數(shù)據(jù)的使用。但RAID 6需要分配給奇偶校驗(yàn)信息更大的硬盤空間,相對于RAID 5有更大的“寫損失”,因此“寫性能”較差。

處理流程

PA為數(shù)據(jù)塊A0、A1、A2的第一個校驗(yàn)信息塊,QA為第二個校驗(yàn)信息塊;PB為數(shù)據(jù)塊B0、B1、B2的第一個校驗(yàn)信息框,QB為第二個校驗(yàn)信息塊,以此類推。

數(shù)據(jù)塊和校驗(yàn)塊一起分散存儲到RAID 6的各個成員盤上。當(dāng)任意一個或兩個成員硬盤出現(xiàn)故障時,控制卡可以從其他處于正常狀態(tài)的硬盤上重新恢復(fù)或生成丟失的數(shù)據(jù)而不影響數(shù)據(jù)的可用性。

圖RAID 6數(shù)據(jù)存儲原理


1.1.5 RAID 10

RAID 10是將鏡像和條帶進(jìn)行兩級組合的RAID級別,即RAID 1+RAID 0的組合形式,第一級是RAID 1,第二級是RAID 0。RAID 10是存儲性能和數(shù)據(jù)安全兼顧的方案。它在提供與RAID 1一樣的數(shù)據(jù)安全保障的同時,也提供了與RAID 0近似的存儲性能。

處理流程

Drive 0和Drive 1組成一個子組0,Drive 2和Drive 3組成一個子組1,子組內(nèi)的兩個硬盤互為鏡像。

系統(tǒng)向硬盤發(fā)出I/O數(shù)據(jù)請求時,原先順序的數(shù)據(jù)請求按照RAID 0的方式,被分散到兩個子組中并行執(zhí)行,同時通過RAID 1的方式,系統(tǒng)在向硬盤Drive 0寫入數(shù)據(jù)的同時把數(shù)據(jù)自動復(fù)制到硬盤Drive 1上,向硬盤Drive 2寫入數(shù)據(jù)的同時把數(shù)據(jù)自動復(fù)制到硬盤Drive 3上。

圖RAID 10數(shù)據(jù)存儲原理


1.1.6 RAID 10ADM

RAID 10ADM是將鏡像和條帶進(jìn)行兩級組合的RAID級別,即RAID 1ADM+RAID 0的組合形式,第一級是RAID 1ADM,第二級是RAID 0。RAID 10ADM是存儲性能和數(shù)據(jù)安全兼顧的方案。它在提供與RAID 1ADM一樣的數(shù)據(jù)安全保障的同時,也提供了與RAID 0近似的存儲性能。

處理流程

Drive 0、Drive 1和Drive 2組成一個子組0,Drive 3、Drive 4和Drive 5組成一個子組1,子組內(nèi)的硬盤互為鏡像。

系統(tǒng)向硬盤發(fā)出I/O數(shù)據(jù)請求時,原先順序的數(shù)據(jù)請求按照RAID 0的方式,被分散到兩個子組中并行執(zhí)行,同時通過RAID 1ADM的方式,系統(tǒng)在向硬盤Drive 0寫入數(shù)據(jù)的同時把數(shù)據(jù)自動復(fù)制到硬盤Drive 1和Drive 2上,向硬盤Drive 3寫入數(shù)據(jù)的同時把數(shù)據(jù)自動復(fù)制到硬盤Drive 4和Drive 5上。

圖RAID 10ADM數(shù)據(jù)存儲原理


1.1.7 RAID 1E

RAID 1E為RAID 1的增強(qiáng)版,工作原理與RAID 1類似。RAID 1E的數(shù)據(jù)條帶及數(shù)據(jù)備份貫穿在邏輯盤中所有的硬盤當(dāng)中。跟RAID 1類似,數(shù)據(jù)是鏡像的,邏輯盤的容量是硬盤總?cè)萘康囊话?,可提供?shù)據(jù)冗余功能及較高的性能。然而,RAID 1E允許使用更多的物理硬盤,至少由三個硬盤組成。

處理流程

系統(tǒng)向三塊硬盤組成的邏輯硬盤(RAID 1E硬盤組)發(fā)出I/O數(shù)據(jù)請求。條帶數(shù)據(jù)均勻分布在3個硬盤中,任意一個條帶數(shù)據(jù)都在其他硬盤中有自己的備份。此時,如果有單個硬盤故障,不會造成數(shù)據(jù)丟失。

圖RAID 1E數(shù)據(jù)存儲原理


1.1.8 RAID 50

RAID 50被稱為鏡像陣列條帶,即RAID 5+RAID 0的組合形式。像RAID 0一樣,數(shù)據(jù)被分區(qū)成條帶,在同一時間內(nèi)向多塊硬盤寫入;像RAID 5一樣,也是以數(shù)據(jù)的校驗(yàn)位來保證數(shù)據(jù)的安全,且校驗(yàn)條帶均勻分布在各個硬盤上。

處理流程

PA為A0、A1和A2的奇偶校驗(yàn)信息,PB為B0、B1和B2的奇偶校驗(yàn)信息,以此類推。

RAID 50是RAID 5與RAID 0兩種技術(shù)的結(jié)合,一個RAID 50由多個RAID 5子組組成,數(shù)據(jù)的存儲訪問以RAID 0的形式分布在各個RAID 5子組上。依靠RAID 5提供的冗余功能,在子組內(nèi)部任意一個硬盤故障時,陣列均可正常工作并恢復(fù)出故障硬盤的信息。同樣,故障硬盤的更換不會影響業(yè)務(wù)的正常進(jìn)行。因此,RAID 50可以容忍多個子組同時單盤故障,這是單純RAID 5技術(shù)無法做到的。同時,由于數(shù)據(jù)分布在多個子組上,陣列可以提供更加優(yōu)秀的讀寫性能。

圖RAID 50數(shù)據(jù)存儲原理


1.1.9 RAID 60

RAID 60同RAID 50類似,數(shù)據(jù)采用鏡像陣列條帶分布方式,即RAID 6 + RAID 0的組合形式。像RAID 0一樣,數(shù)據(jù)被分區(qū)成條帶,在同一時間內(nèi)向多塊硬盤寫入;像RAID 6一樣,以兩個數(shù)據(jù)校驗(yàn)?zāi)K來保證數(shù)據(jù)的安全,且校驗(yàn)條帶均勻分布在各個硬盤上。

處理流程

PA為A0、A1和A2的校驗(yàn)信息1,QA為A0、A1和A2的校驗(yàn)信息2,PB為B0、B1和B2的校驗(yàn)信息1,QB為B0、B1和B2的校驗(yàn)信息2,以此類推。

RAID 60是RAID 6與RAID 0兩種技術(shù)的結(jié)合,一個RAID 60由多個RAID 6子組組成,數(shù)據(jù)的存儲訪問以 RAID 0的形式分布在各個RAID 6子組上。依靠RAID 6提供的冗余功能,在子組內(nèi)部任意兩個硬盤故障,陣列均可正常工作并恢復(fù)出故障硬盤的信息。同樣,故障硬盤的更換不會影響業(yè)務(wù)的正常進(jìn)行。

圖RAID 60數(shù)據(jù)存儲原理


1.1.10 容錯能力

RAID 0:不提供容錯功能。任意一個成員盤出現(xiàn)故障,都會導(dǎo)致數(shù)據(jù)丟失。通過條帶化方式同時在多個成員盤中寫入數(shù)據(jù)。RAID 0對于需要高性能但不需要容錯的應(yīng)用場景非常理想。

RAID 1:提供100%的數(shù)據(jù)冗余能力。當(dāng)一個成員盤故障時,可以使用RAID組中對應(yīng)的其他硬盤的數(shù)據(jù)來運(yùn)行系統(tǒng),并重構(gòu)故障盤。因?yàn)橐粋€成員盤的內(nèi)容會完全備份寫入另一個硬盤, 所以如果其中一個成員盤出現(xiàn)故障,則不會丟失任何數(shù)據(jù)。成對的成員盤在任何時候都包含相同的數(shù)據(jù)。RAID 1組是需要最大容錯能力和最小容量要求的應(yīng)用場景的理想選擇。

RAID 5:結(jié)合了分布式奇偶校驗(yàn)和硬盤條帶化。奇偶校驗(yàn)在不需要備份全部硬盤內(nèi)容的情況下,為1個硬盤提供了冗余特性。當(dāng)一個成員盤故障時,RAID控制卡使用奇偶校驗(yàn)數(shù)據(jù)來重構(gòu)所有丟失的信息。RAID 5使用較小的系統(tǒng)開銷為系統(tǒng)提供了足夠的容錯能力。

RAID 6:結(jié)合了分布式奇偶校驗(yàn)和硬盤條帶化。奇偶校驗(yàn)在不需要備份全部硬盤內(nèi)容的情況下,為2個硬盤提供了冗余特性。當(dāng)一個成員盤故障時,RAID控制卡使用奇偶校驗(yàn)數(shù)據(jù)來重構(gòu)所有丟失的信息。RAID 6使用較小的系統(tǒng)開銷為系統(tǒng)提供了足夠的容錯能力。

RAID 10:使用多個RAID 1提供完整的數(shù)據(jù)冗余能力。RAID 10對所有需要通過鏡像硬盤組提供100%冗余能力的場景都適用。

RAID 50:使用多個RAID 5的分布式奇偶校驗(yàn)提供數(shù)據(jù)冗余能力。在保證數(shù)據(jù)完整性的情況下,每個RAID 5分組允許1個成員盤故障。

RAID 60:使用多個RAID 6的分布式奇偶校驗(yàn)提供數(shù)據(jù)冗余能力。在保證數(shù)據(jù)完整性的情況下,每個RAID 6分組允許2個成員盤故障。

1.1.11 I/O性能

RAID組可作為一個單獨(dú)的存儲單元或多個虛擬單元被系統(tǒng)使用。由于可以同時訪問多個硬盤,使得針對RAID組的I/O讀寫速率較普通硬盤更高。

RAID 0:提供優(yōu)異的性能。RAID 0將數(shù)據(jù)分割為較小的數(shù)據(jù)塊并寫入到不同的硬盤中,由于可以同時對多個硬盤進(jìn)行讀寫,RAID 0提升了I/O性能。

RAID 1:由于RAID組中的硬盤都是成對出現(xiàn),寫數(shù)據(jù)時也必須同時寫入2份,從而占用更多的時間和資源,導(dǎo)致性能降低。

RAID 5:提供了較高的數(shù)據(jù)吞吐能力。由于成員盤上同時保留常規(guī)數(shù)據(jù)和校驗(yàn)數(shù)據(jù),每個成員盤都可以獨(dú)立讀寫,再加上完善的Cache算法,使得RAID 5在很多應(yīng)用場景中都有出色的性能表現(xiàn)。

RAID 6:在需要高可靠性、高響應(yīng)率、高傳輸率的場景下,RAID 6是較為適合的RAID級別,其提供了高數(shù)據(jù)吞吐量、數(shù)據(jù)冗余性和較高的I/O性能。由于RAID 6需要為每個成員盤寫入2套校驗(yàn)數(shù)據(jù),導(dǎo)致其在寫操作期間性能降低。

RAID 10:由RAID 0子組提供高數(shù)據(jù)傳輸速率的同時,RAID 10在數(shù)據(jù)存儲方面表現(xiàn)優(yōu)異。I/O性能隨著子組數(shù)量的增加而提升。

RAID 50:在需要高可靠性、高響應(yīng)率、高傳輸率的場景下,RAID 50表現(xiàn)最好。I/O性能隨著子組數(shù)量的增加而提升。

RAID 60:使用場景與RAID 50類似,但是由于每個成員盤必須寫入2組奇偶校驗(yàn)數(shù)據(jù),使得在寫操作中性能降低,因此RAID 60不適用于大量寫入任務(wù)。

當(dāng)同一RAID控制卡下同時存在無需校驗(yàn)的RAID組(如RAID 0或RAID 1)和需要校驗(yàn)的RAID組(如RAID 5或RAID 6),且寫策略均設(shè)置為Write Back時,需要校驗(yàn)的RAID組性能會下降,I/O wait增加。

建議將無需校驗(yàn)的RAID組寫策略設(shè)置為Write Through,以免對需要校驗(yàn)的RAID組性能產(chǎn)生影響。

1.1.12 存儲容量

在選擇RAID級別時,其存儲容量也是一個重要參數(shù)。

RAID 0:在指定一組硬盤后,同等情況下,RAID 0可以提供最大的存儲容量,可用容量=成員盤最小容量×成員盤數(shù)量。

RAID 1:由于對一個硬盤進(jìn)行寫入時,必須同時寫入另一個硬盤,導(dǎo)致存儲空間損耗??捎萌萘?成員盤最小容量。

RAID 5:校驗(yàn)數(shù)據(jù)塊與常規(guī)數(shù)據(jù)塊隔離,因此整體上來說,校驗(yàn)數(shù)據(jù)會占用1個成員盤的容量??捎萌萘?成員盤最小容量×(成員盤數(shù)量-1)。

RAID 6:由于2個獨(dú)立的校驗(yàn)數(shù)據(jù)塊與常規(guī)數(shù)據(jù)塊隔離,整體上來說,校驗(yàn)數(shù)據(jù)會占用2個成員盤的容量??捎萌萘?成員盤最小容量×(成員盤數(shù)量-2)。

RAID 10:可用容量=子組容量之和。

RAID 50:可用容量=子組容量之和。

RAID 60:可用容量=子組容量之和。




關(guān)鍵詞: 存儲 硬盤 RAID

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉