詳解RAID流程、I/O性能和容量
RAID(Redundant Array of Independent Disks)是將多塊物理硬盤通過RAID控制卡組合成虛擬的單塊大容量硬盤使用,從而提供比單個(gè)硬盤更高的存儲(chǔ)性能、更高的I/O性能及可靠性。
本文引用地址:http://www.ex-cimer.com/article/202312/454260.htm1 硬盤組和虛擬磁盤
由于現(xiàn)代數(shù)據(jù)中心業(yè)務(wù)量的與日俱增,單臺(tái)服務(wù)器上需要運(yùn)行的數(shù)據(jù)也日益增多。當(dāng)單個(gè)物理硬盤在容量和安全性上不足以支持系統(tǒng)業(yè)務(wù)時(shí),就需要將多個(gè)硬盤以某種特定方式組合起來,對(duì)外作為一個(gè)可見的硬盤來使用,才可滿足實(shí)際需要。硬盤組,就是將一組物理硬盤組合起來,作為一個(gè)整體對(duì)外體現(xiàn),是虛擬磁盤的基礎(chǔ)。
虛擬磁盤,即使用硬盤組劃分出來的連續(xù)的數(shù)據(jù)存儲(chǔ)單元,相當(dāng)于一個(gè)個(gè)獨(dú)立的硬盤,通過一定的配置,使其具有比單個(gè)物理硬盤更大的容量,及更高的安全性和數(shù)據(jù)冗余性。
一個(gè)虛擬磁盤可以是:
一個(gè)完整的硬盤組。
多個(gè)完整的硬盤組。
一個(gè)硬盤組的一部分。
多個(gè)硬盤組的一部分(每個(gè)硬盤組劃分一部分,共同組成虛擬磁盤)。
在下文的描述中:
硬盤組一般會(huì)表述為“Drive Group”(簡(jiǎn)稱“DG”)、“Array”、“RAID組”。
虛擬磁盤一般會(huì)表述為“Virtual Drive”、“Virtual Disk”(簡(jiǎn)稱“VD”)、“Volume”、“Logical Device”(簡(jiǎn)稱“LD”)等。
1.1 RAID級(jí)別介紹
RAID是將多塊物理硬盤通過RAID控制卡組合成虛擬的單塊大容量硬盤使用,從而提供比單個(gè)硬盤更高的存儲(chǔ)性能、更高的I/O性能及可靠性。
RAID控制卡僅在EFI或UEFI模式下支持安全啟動(dòng),并使用BIOS提供的安全認(rèn)證機(jī)制。
1.1.1 RAID 0
RAID 0又稱為條帶化(Stripe)或分條(Striping),代表了所有RAID級(jí)別中最高的存儲(chǔ)性能。RAID 0提高存儲(chǔ)性能的原理是把連續(xù)的數(shù)據(jù)分散到多個(gè)硬盤上存取。這樣,當(dāng)系統(tǒng)有數(shù)據(jù)請(qǐng)求時(shí)就可以在多個(gè)硬盤上并行執(zhí)行,每個(gè)硬盤執(zhí)行屬于它自己的那部分?jǐn)?shù)據(jù)請(qǐng)求。這種數(shù)據(jù)上的并行操作可以充分利用總線的帶寬,顯著提高硬盤整體讀寫性能。但由于其沒有數(shù)據(jù)冗余,無法保護(hù)數(shù)據(jù)的安全性,只能適用于I/O速率要求高,但數(shù)據(jù)安全性要求低的場(chǎng)合。
處理流程
系統(tǒng)向三塊硬盤組成的邏輯硬盤(RAID 0硬盤組)發(fā)出的I/O數(shù)據(jù)請(qǐng)求被轉(zhuǎn)化為三項(xiàng)操作,其中的每一項(xiàng)操作都對(duì)應(yīng)于一塊物理硬盤。
通過建立RAID 0,原先順序的數(shù)據(jù)請(qǐng)求被分散到所有的三塊硬盤中同時(shí)執(zhí)行。
三塊硬盤的并行操作在理論上使同一時(shí)間內(nèi)硬盤讀寫速度提升了3倍。雖然由于總線帶寬等多種因素的影響,實(shí)際的提升速率會(huì)低于理論值,但是大量數(shù)據(jù)并行傳輸與串行傳輸比較,提速效果顯著。
圖RAID 0數(shù)據(jù)存儲(chǔ)原理
1.1.1 RAID 1
RAID 1又稱鏡像(Mirror或Mirroring),即每個(gè)工作盤都有一個(gè)鏡像盤,每次寫數(shù)據(jù)時(shí)必須同時(shí)寫入鏡像盤,讀數(shù)據(jù)時(shí)同時(shí)從工作盤和鏡像盤讀出。當(dāng)更換故障盤后,數(shù)據(jù)可以重構(gòu),恢復(fù)工作盤正確數(shù)據(jù)。RAID 1可靠性高,但其有效容量減小到總?cè)萘恳话?,因此常用于?duì)容錯(cuò)要求較高的應(yīng)用場(chǎng)合,如財(cái)政、金融等領(lǐng)域。
處理流程
系統(tǒng)向兩塊硬盤組成的邏輯硬盤(RAID 1硬盤組)發(fā)出I/O數(shù)據(jù)請(qǐng)求。
向硬盤Drive 0寫入數(shù)據(jù)時(shí),系統(tǒng)會(huì)同時(shí)把用戶寫入Drive 0的數(shù)據(jù)自動(dòng)復(fù)制到Drive 1上。
讀取數(shù)據(jù)時(shí),系統(tǒng)同時(shí)從Drive 0和Drive 1讀取。
圖RAID 1數(shù)據(jù)存儲(chǔ)原理
1.1.2 RAID 1ADM
RAID 1ADM的每個(gè)工作盤都有兩個(gè)鏡像盤,每次寫數(shù)據(jù)時(shí)必須同時(shí)寫入鏡像盤,讀數(shù)據(jù)時(shí)同時(shí)從工作盤和鏡像盤讀出。當(dāng)更換故障盤后,數(shù)據(jù)可以重構(gòu),恢復(fù)工作盤正確數(shù)據(jù)。RAID 1ADM可靠性比RAID 1高,但其有效容量減小到總?cè)萘康娜种?,因此常用于?duì)容錯(cuò)要求較高的應(yīng)用場(chǎng)合,如財(cái)政、金融等領(lǐng)域。
處理流程
系統(tǒng)向三塊硬盤組成的邏輯硬盤(RAID 1ADM硬盤組)發(fā)出I/O數(shù)據(jù)請(qǐng)求。
向硬盤Drive 0寫入數(shù)據(jù)時(shí),系統(tǒng)會(huì)同時(shí)把用戶寫入Drive 0的數(shù)據(jù)自動(dòng)復(fù)制到Drive 1和Drive 2上。
讀取數(shù)據(jù)時(shí),系統(tǒng)同時(shí)從Drive 0、Drive 1和Drive 2讀取。
圖RAID 1ADM數(shù)據(jù)存儲(chǔ)原理
1.1.3 RAID 5
RAID 5是一種存儲(chǔ)性能、數(shù)據(jù)安全和存儲(chǔ)成本兼顧的存儲(chǔ)解決方案。為保障存儲(chǔ)數(shù)據(jù)的可靠性,采用循環(huán)冗余校驗(yàn)方式,并將校驗(yàn)數(shù)據(jù)分散存儲(chǔ)在RAID的各成員盤上。當(dāng)RAID的某個(gè)成員盤出現(xiàn)故障時(shí),通過其他成員盤上的數(shù)據(jù)可以重新構(gòu)建故障硬盤上的數(shù)據(jù)。RAID 5既適用于大數(shù)據(jù)量的操作,也適用于各種小數(shù)據(jù)的事務(wù)處理,是一種快速、大容量和容錯(cuò)分布合理的磁盤陣列。
處理流程
PA為A0、A1和A2的奇偶校驗(yàn)信息,PB為B0、B1和B2的奇偶校驗(yàn)信息,以此類推。
RAID 5不對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行備份,而是把數(shù)據(jù)和相對(duì)應(yīng)的奇偶校驗(yàn)信息存儲(chǔ)到成員盤上,并且奇偶校驗(yàn)信息和相對(duì)應(yīng)的數(shù)據(jù)分別存儲(chǔ)于不同的硬盤上。當(dāng)RAID 5的一個(gè)硬盤數(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高,存儲(chǔ)成本相對(duì)較低。
RAID 5具有較RAID 0略低的數(shù)據(jù)讀寫速度,但寫性能比寫入單個(gè)硬盤時(shí)要高。
圖RAID 5數(shù)據(jù)存儲(chǔ)原理
1.1.4 RAID 6
在RAID 5的基礎(chǔ)上,RAID 6增加了第二個(gè)獨(dú)立的奇偶校驗(yàn)信息塊。兩個(gè)獨(dú)立的奇偶系統(tǒng)使用不同的算法,數(shù)據(jù)的可靠性非常高,即使兩塊硬盤同時(shí)失效也不會(huì)影響數(shù)據(jù)的使用。但RAID 6需要分配給奇偶校驗(yàn)信息更大的硬盤空間,相對(duì)于RAID 5有更大的“寫損失”,因此“寫性能”較差。
處理流程
PA為數(shù)據(jù)塊A0、A1、A2的第一個(gè)校驗(yàn)信息塊,QA為第二個(gè)校驗(yàn)信息塊;PB為數(shù)據(jù)塊B0、B1、B2的第一個(gè)校驗(yàn)信息框,QB為第二個(gè)校驗(yàn)信息塊,以此類推。
數(shù)據(jù)塊和校驗(yàn)塊一起分散存儲(chǔ)到RAID 6的各個(gè)成員盤上。當(dāng)任意一個(gè)或兩個(gè)成員硬盤出現(xiàn)故障時(shí),控制卡可以從其他處于正常狀態(tài)的硬盤上重新恢復(fù)或生成丟失的數(shù)據(jù)而不影響數(shù)據(jù)的可用性。
圖RAID 6數(shù)據(jù)存儲(chǔ)原理
1.1.5 RAID 10
RAID 10是將鏡像和條帶進(jìn)行兩級(jí)組合的RAID級(jí)別,即RAID 1+RAID 0的組合形式,第一級(jí)是RAID 1,第二級(jí)是RAID 0。RAID 10是存儲(chǔ)性能和數(shù)據(jù)安全兼顧的方案。它在提供與RAID 1一樣的數(shù)據(jù)安全保障的同時(shí),也提供了與RAID 0近似的存儲(chǔ)性能。
處理流程
Drive 0和Drive 1組成一個(gè)子組0,Drive 2和Drive 3組成一個(gè)子組1,子組內(nèi)的兩個(gè)硬盤互為鏡像。
系統(tǒng)向硬盤發(fā)出I/O數(shù)據(jù)請(qǐng)求時(shí),原先順序的數(shù)據(jù)請(qǐng)求按照RAID 0的方式,被分散到兩個(gè)子組中并行執(zhí)行,同時(shí)通過RAID 1的方式,系統(tǒng)在向硬盤Drive 0寫入數(shù)據(jù)的同時(shí)把數(shù)據(jù)自動(dòng)復(fù)制到硬盤Drive 1上,向硬盤Drive 2寫入數(shù)據(jù)的同時(shí)把數(shù)據(jù)自動(dòng)復(fù)制到硬盤Drive 3上。
圖RAID 10數(shù)據(jù)存儲(chǔ)原理
1.1.6 RAID 10ADM
RAID 10ADM是將鏡像和條帶進(jìn)行兩級(jí)組合的RAID級(jí)別,即RAID 1ADM+RAID 0的組合形式,第一級(jí)是RAID 1ADM,第二級(jí)是RAID 0。RAID 10ADM是存儲(chǔ)性能和數(shù)據(jù)安全兼顧的方案。它在提供與RAID 1ADM一樣的數(shù)據(jù)安全保障的同時(shí),也提供了與RAID 0近似的存儲(chǔ)性能。
處理流程
Drive 0、Drive 1和Drive 2組成一個(gè)子組0,Drive 3、Drive 4和Drive 5組成一個(gè)子組1,子組內(nèi)的硬盤互為鏡像。
系統(tǒng)向硬盤發(fā)出I/O數(shù)據(jù)請(qǐng)求時(shí),原先順序的數(shù)據(jù)請(qǐng)求按照RAID 0的方式,被分散到兩個(gè)子組中并行執(zhí)行,同時(shí)通過RAID 1ADM的方式,系統(tǒng)在向硬盤Drive 0寫入數(shù)據(jù)的同時(shí)把數(shù)據(jù)自動(dòng)復(fù)制到硬盤Drive 1和Drive 2上,向硬盤Drive 3寫入數(shù)據(jù)的同時(shí)把數(shù)據(jù)自動(dòng)復(fù)制到硬盤Drive 4和Drive 5上。
圖RAID 10ADM數(shù)據(jù)存儲(chǔ)原理
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允許使用更多的物理硬盤,至少由三個(gè)硬盤組成。
處理流程
系統(tǒng)向三塊硬盤組成的邏輯硬盤(RAID 1E硬盤組)發(fā)出I/O數(shù)據(jù)請(qǐng)求。條帶數(shù)據(jù)均勻分布在3個(gè)硬盤中,任意一個(gè)條帶數(shù)據(jù)都在其他硬盤中有自己的備份。此時(shí),如果有單個(gè)硬盤故障,不會(huì)造成數(shù)據(jù)丟失。
圖RAID 1E數(shù)據(jù)存儲(chǔ)原理
1.1.8 RAID 50
RAID 50被稱為鏡像陣列條帶,即RAID 5+RAID 0的組合形式。像RAID 0一樣,數(shù)據(jù)被分區(qū)成條帶,在同一時(shí)間內(nèi)向多塊硬盤寫入;像RAID 5一樣,也是以數(shù)據(jù)的校驗(yàn)位來保證數(shù)據(jù)的安全,且校驗(yàn)條帶均勻分布在各個(gè)硬盤上。
處理流程
PA為A0、A1和A2的奇偶校驗(yàn)信息,PB為B0、B1和B2的奇偶校驗(yàn)信息,以此類推。
RAID 50是RAID 5與RAID 0兩種技術(shù)的結(jié)合,一個(gè)RAID 50由多個(gè)RAID 5子組組成,數(shù)據(jù)的存儲(chǔ)訪問以RAID 0的形式分布在各個(gè)RAID 5子組上。依靠RAID 5提供的冗余功能,在子組內(nèi)部任意一個(gè)硬盤故障時(shí),陣列均可正常工作并恢復(fù)出故障硬盤的信息。同樣,故障硬盤的更換不會(huì)影響業(yè)務(wù)的正常進(jìn)行。因此,RAID 50可以容忍多個(gè)子組同時(shí)單盤故障,這是單純RAID 5技術(shù)無法做到的。同時(shí),由于數(shù)據(jù)分布在多個(gè)子組上,陣列可以提供更加優(yōu)秀的讀寫性能。
圖RAID 50數(shù)據(jù)存儲(chǔ)原理
1.1.9 RAID 60
RAID 60同RAID 50類似,數(shù)據(jù)采用鏡像陣列條帶分布方式,即RAID 6 + RAID 0的組合形式。像RAID 0一樣,數(shù)據(jù)被分區(qū)成條帶,在同一時(shí)間內(nèi)向多塊硬盤寫入;像RAID 6一樣,以兩個(gè)數(shù)據(jù)校驗(yàn)?zāi)K來保證數(shù)據(jù)的安全,且校驗(yàn)條帶均勻分布在各個(gè)硬盤上。
處理流程
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é)合,一個(gè)RAID 60由多個(gè)RAID 6子組組成,數(shù)據(jù)的存儲(chǔ)訪問以 RAID 0的形式分布在各個(gè)RAID 6子組上。依靠RAID 6提供的冗余功能,在子組內(nèi)部任意兩個(gè)硬盤故障,陣列均可正常工作并恢復(fù)出故障硬盤的信息。同樣,故障硬盤的更換不會(huì)影響業(yè)務(wù)的正常進(jìn)行。
圖RAID 60數(shù)據(jù)存儲(chǔ)原理
1.1.10 容錯(cuò)能力
RAID 0:不提供容錯(cuò)功能。任意一個(gè)成員盤出現(xiàn)故障,都會(huì)導(dǎo)致數(shù)據(jù)丟失。通過條帶化方式同時(shí)在多個(gè)成員盤中寫入數(shù)據(jù)。RAID 0對(duì)于需要高性能但不需要容錯(cuò)的應(yīng)用場(chǎng)景非常理想。
RAID 1:提供100%的數(shù)據(jù)冗余能力。當(dāng)一個(gè)成員盤故障時(shí),可以使用RAID組中對(duì)應(yīng)的其他硬盤的數(shù)據(jù)來運(yùn)行系統(tǒng),并重構(gòu)故障盤。因?yàn)橐粋€(gè)成員盤的內(nèi)容會(huì)完全備份寫入另一個(gè)硬盤, 所以如果其中一個(gè)成員盤出現(xiàn)故障,則不會(huì)丟失任何數(shù)據(jù)。成對(duì)的成員盤在任何時(shí)候都包含相同的數(shù)據(jù)。RAID 1組是需要最大容錯(cuò)能力和最小容量要求的應(yīng)用場(chǎng)景的理想選擇。
RAID 5:結(jié)合了分布式奇偶校驗(yàn)和硬盤條帶化。奇偶校驗(yàn)在不需要備份全部硬盤內(nèi)容的情況下,為1個(gè)硬盤提供了冗余特性。當(dāng)一個(gè)成員盤故障時(shí),RAID控制卡使用奇偶校驗(yàn)數(shù)據(jù)來重構(gòu)所有丟失的信息。RAID 5使用較小的系統(tǒng)開銷為系統(tǒng)提供了足夠的容錯(cuò)能力。
RAID 6:結(jié)合了分布式奇偶校驗(yàn)和硬盤條帶化。奇偶校驗(yàn)在不需要備份全部硬盤內(nèi)容的情況下,為2個(gè)硬盤提供了冗余特性。當(dāng)一個(gè)成員盤故障時(shí),RAID控制卡使用奇偶校驗(yàn)數(shù)據(jù)來重構(gòu)所有丟失的信息。RAID 6使用較小的系統(tǒng)開銷為系統(tǒng)提供了足夠的容錯(cuò)能力。
RAID 10:使用多個(gè)RAID 1提供完整的數(shù)據(jù)冗余能力。RAID 10對(duì)所有需要通過鏡像硬盤組提供100%冗余能力的場(chǎng)景都適用。
RAID 50:使用多個(gè)RAID 5的分布式奇偶校驗(yàn)提供數(shù)據(jù)冗余能力。在保證數(shù)據(jù)完整性的情況下,每個(gè)RAID 5分組允許1個(gè)成員盤故障。
RAID 60:使用多個(gè)RAID 6的分布式奇偶校驗(yàn)提供數(shù)據(jù)冗余能力。在保證數(shù)據(jù)完整性的情況下,每個(gè)RAID 6分組允許2個(gè)成員盤故障。
1.1.11 I/O性能
RAID組可作為一個(gè)單獨(dú)的存儲(chǔ)單元或多個(gè)虛擬單元被系統(tǒng)使用。由于可以同時(shí)訪問多個(gè)硬盤,使得針對(duì)RAID組的I/O讀寫速率較普通硬盤更高。
RAID 0:提供優(yōu)異的性能。RAID 0將數(shù)據(jù)分割為較小的數(shù)據(jù)塊并寫入到不同的硬盤中,由于可以同時(shí)對(duì)多個(gè)硬盤進(jìn)行讀寫,RAID 0提升了I/O性能。
RAID 1:由于RAID組中的硬盤都是成對(duì)出現(xiàn),寫數(shù)據(jù)時(shí)也必須同時(shí)寫入2份,從而占用更多的時(shí)間和資源,導(dǎo)致性能降低。
RAID 5:提供了較高的數(shù)據(jù)吞吐能力。由于成員盤上同時(shí)保留常規(guī)數(shù)據(jù)和校驗(yàn)數(shù)據(jù),每個(gè)成員盤都可以獨(dú)立讀寫,再加上完善的Cache算法,使得RAID 5在很多應(yīng)用場(chǎng)景中都有出色的性能表現(xiàn)。
RAID 6:在需要高可靠性、高響應(yīng)率、高傳輸率的場(chǎng)景下,RAID 6是較為適合的RAID級(jí)別,其提供了高數(shù)據(jù)吞吐量、數(shù)據(jù)冗余性和較高的I/O性能。由于RAID 6需要為每個(gè)成員盤寫入2套校驗(yàn)數(shù)據(jù),導(dǎo)致其在寫操作期間性能降低。
RAID 10:由RAID 0子組提供高數(shù)據(jù)傳輸速率的同時(shí),RAID 10在數(shù)據(jù)存儲(chǔ)方面表現(xiàn)優(yōu)異。I/O性能隨著子組數(shù)量的增加而提升。
RAID 50:在需要高可靠性、高響應(yīng)率、高傳輸率的場(chǎng)景下,RAID 50表現(xiàn)最好。I/O性能隨著子組數(shù)量的增加而提升。
RAID 60:使用場(chǎng)景與RAID 50類似,但是由于每個(gè)成員盤必須寫入2組奇偶校驗(yàn)數(shù)據(jù),使得在寫操作中性能降低,因此RAID 60不適用于大量寫入任務(wù)。
當(dāng)同一RAID控制卡下同時(shí)存在無需校驗(yàn)的RAID組(如RAID 0或RAID 1)和需要校驗(yàn)的RAID組(如RAID 5或RAID 6),且寫策略均設(shè)置為Write Back時(shí),需要校驗(yàn)的RAID組性能會(huì)下降,I/O wait增加。
建議將無需校驗(yàn)的RAID組寫策略設(shè)置為Write Through,以免對(duì)需要校驗(yàn)的RAID組性能產(chǎn)生影響。
1.1.12 存儲(chǔ)容量
在選擇RAID級(jí)別時(shí),其存儲(chǔ)容量也是一個(gè)重要參數(shù)。
RAID 0:在指定一組硬盤后,同等情況下,RAID 0可以提供最大的存儲(chǔ)容量,可用容量=成員盤最小容量×成員盤數(shù)量。
RAID 1:由于對(duì)一個(gè)硬盤進(jìn)行寫入時(shí),必須同時(shí)寫入另一個(gè)硬盤,導(dǎo)致存儲(chǔ)空間損耗??捎萌萘?成員盤最小容量。
RAID 5:校驗(yàn)數(shù)據(jù)塊與常規(guī)數(shù)據(jù)塊隔離,因此整體上來說,校驗(yàn)數(shù)據(jù)會(huì)占用1個(gè)成員盤的容量。可用容量=成員盤最小容量×(成員盤數(shù)量-1)。
RAID 6:由于2個(gè)獨(dú)立的校驗(yàn)數(shù)據(jù)塊與常規(guī)數(shù)據(jù)塊隔離,整體上來說,校驗(yàn)數(shù)據(jù)會(huì)占用2個(gè)成員盤的容量??捎萌萘?成員盤最小容量×(成員盤數(shù)量-2)。
RAID 10:可用容量=子組容量之和。
RAID 50:可用容量=子組容量之和。
RAID 60:可用容量=子組容量之和。
評(píng)論