詳解RAID流程、I/O性能和容量
RAID(Redundant Array of Independent Disks)是將多塊物理硬盤(pán)通過(guò)RAID控制卡組合成虛擬的單塊大容量硬盤(pán)使用,從而提供比單個(gè)硬盤(pán)更高的存儲性能、更高的I/O性能及可靠性。
本文引用地址:http://dyxdggzs.com/article/202312/454260.htm1 硬盤(pán)組和虛擬磁盤(pán)
由于現代數據中心業(yè)務(wù)量的與日俱增,單臺服務(wù)器上需要運行的數據也日益增多。當單個(gè)物理硬盤(pán)在容量和安全性上不足以支持系統業(yè)務(wù)時(shí),就需要將多個(gè)硬盤(pán)以某種特定方式組合起來(lái),對外作為一個(gè)可見(jiàn)的硬盤(pán)來(lái)使用,才可滿(mǎn)足實(shí)際需要。硬盤(pán)組,就是將一組物理硬盤(pán)組合起來(lái),作為一個(gè)整體對外體現,是虛擬磁盤(pán)的基礎。
虛擬磁盤(pán),即使用硬盤(pán)組劃分出來(lái)的連續的數據存儲單元,相當于一個(gè)個(gè)獨立的硬盤(pán),通過(guò)一定的配置,使其具有比單個(gè)物理硬盤(pán)更大的容量,及更高的安全性和數據冗余性。
一個(gè)虛擬磁盤(pán)可以是:
一個(gè)完整的硬盤(pán)組。
多個(gè)完整的硬盤(pán)組。
一個(gè)硬盤(pán)組的一部分。
多個(gè)硬盤(pán)組的一部分(每個(gè)硬盤(pán)組劃分一部分,共同組成虛擬磁盤(pán))。
在下文的描述中:
硬盤(pán)組一般會(huì )表述為“Drive Group”(簡(jiǎn)稱(chēng)“DG”)、“Array”、“RAID組”。
虛擬磁盤(pán)一般會(huì )表述為“Virtual Drive”、“Virtual Disk”(簡(jiǎn)稱(chēng)“VD”)、“Volume”、“Logical Device”(簡(jiǎn)稱(chēng)“LD”)等。
1.1 RAID級別介紹
RAID是將多塊物理硬盤(pán)通過(guò)RAID控制卡組合成虛擬的單塊大容量硬盤(pán)使用,從而提供比單個(gè)硬盤(pán)更高的存儲性能、更高的I/O性能及可靠性。
RAID控制卡僅在EFI或UEFI模式下支持安全啟動(dòng),并使用BIOS提供的安全認證機制。
1.1.1 RAID 0
RAID 0又稱(chēng)為條帶化(Stripe)或分條(Striping),代表了所有RAID級別中最高的存儲性能。RAID 0提高存儲性能的原理是把連續的數據分散到多個(gè)硬盤(pán)上存取。這樣,當系統有數據請求時(shí)就可以在多個(gè)硬盤(pán)上并行執行,每個(gè)硬盤(pán)執行屬于它自己的那部分數據請求。這種數據上的并行操作可以充分利用總線(xiàn)的帶寬,顯著(zhù)提高硬盤(pán)整體讀寫(xiě)性能。但由于其沒(méi)有數據冗余,無(wú)法保護數據的安全性,只能適用于I/O速率要求高,但數據安全性要求低的場(chǎng)合。
處理流程
系統向三塊硬盤(pán)組成的邏輯硬盤(pán)(RAID 0硬盤(pán)組)發(fā)出的I/O數據請求被轉化為三項操作,其中的每一項操作都對應于一塊物理硬盤(pán)。
通過(guò)建立RAID 0,原先順序的數據請求被分散到所有的三塊硬盤(pán)中同時(shí)執行。
三塊硬盤(pán)的并行操作在理論上使同一時(shí)間內硬盤(pán)讀寫(xiě)速度提升了3倍。雖然由于總線(xiàn)帶寬等多種因素的影響,實(shí)際的提升速率會(huì )低于理論值,但是大量數據并行傳輸與串行傳輸比較,提速效果顯著(zhù)。
圖RAID 0數據存儲原理
1.1.1 RAID 1
RAID 1又稱(chēng)鏡像(Mirror或Mirroring),即每個(gè)工作盤(pán)都有一個(gè)鏡像盤(pán),每次寫(xiě)數據時(shí)必須同時(shí)寫(xiě)入鏡像盤(pán),讀數據時(shí)同時(shí)從工作盤(pán)和鏡像盤(pán)讀出。當更換故障盤(pán)后,數據可以重構,恢復工作盤(pán)正確數據。RAID 1可靠性高,但其有效容量減小到總容量一半,因此常用于對容錯要求較高的應用場(chǎng)合,如財政、金融等領(lǐng)域。
處理流程
系統向兩塊硬盤(pán)組成的邏輯硬盤(pán)(RAID 1硬盤(pán)組)發(fā)出I/O數據請求。
向硬盤(pán)Drive 0寫(xiě)入數據時(shí),系統會(huì )同時(shí)把用戶(hù)寫(xiě)入Drive 0的數據自動(dòng)復制到Drive 1上。
讀取數據時(shí),系統同時(shí)從Drive 0和Drive 1讀取。
圖RAID 1數據存儲原理

1.1.2 RAID 1ADM
RAID 1ADM的每個(gè)工作盤(pán)都有兩個(gè)鏡像盤(pán),每次寫(xiě)數據時(shí)必須同時(shí)寫(xiě)入鏡像盤(pán),讀數據時(shí)同時(shí)從工作盤(pán)和鏡像盤(pán)讀出。當更換故障盤(pán)后,數據可以重構,恢復工作盤(pán)正確數據。RAID 1ADM可靠性比RAID 1高,但其有效容量減小到總容量的三分之一,因此常用于對容錯要求較高的應用場(chǎng)合,如財政、金融等領(lǐng)域。
處理流程
系統向三塊硬盤(pán)組成的邏輯硬盤(pán)(RAID 1ADM硬盤(pán)組)發(fā)出I/O數據請求。
向硬盤(pán)Drive 0寫(xiě)入數據時(shí),系統會(huì )同時(shí)把用戶(hù)寫(xiě)入Drive 0的數據自動(dòng)復制到Drive 1和Drive 2上。
讀取數據時(shí),系統同時(shí)從Drive 0、Drive 1和Drive 2讀取。
圖RAID 1ADM數據存儲原理

1.1.3 RAID 5
RAID 5是一種存儲性能、數據安全和存儲成本兼顧的存儲解決方案。為保障存儲數據的可靠性,采用循環(huán)冗余校驗方式,并將校驗數據分散存儲在RAID的各成員盤(pán)上。當RAID的某個(gè)成員盤(pán)出現故障時(shí),通過(guò)其他成員盤(pán)上的數據可以重新構建故障硬盤(pán)上的數據。RAID 5既適用于大數據量的操作,也適用于各種小數據的事務(wù)處理,是一種快速、大容量和容錯分布合理的磁盤(pán)陣列。
處理流程
PA為A0、A1和A2的奇偶校驗信息,PB為B0、B1和B2的奇偶校驗信息,以此類(lèi)推。
RAID 5不對存儲的數據進(jìn)行備份,而是把數據和相對應的奇偶校驗信息存儲到成員盤(pán)上,并且奇偶校驗信息和相對應的數據分別存儲于不同的硬盤(pán)上。當RAID 5的一個(gè)硬盤(pán)數據發(fā)生損壞后,利用剩下的數據和相應的奇偶校驗信息可以恢復被損壞的數據。
RAID 5可以理解為是RAID 0和RAID 1的折衷方案:
RAID 5可以為系統提供數據安全保障,但保障程度要比RAID 1低而硬盤(pán)空間利用率要比RAID 1高,存儲成本相對較低。
RAID 5具有較RAID 0略低的數據讀寫(xiě)速度,但寫(xiě)性能比寫(xiě)入單個(gè)硬盤(pán)時(shí)要高。
圖RAID 5數據存儲原理

1.1.4 RAID 6
在RAID 5的基礎上,RAID 6增加了第二個(gè)獨立的奇偶校驗信息塊。兩個(gè)獨立的奇偶系統使用不同的算法,數據的可靠性非常高,即使兩塊硬盤(pán)同時(shí)失效也不會(huì )影響數據的使用。但RAID 6需要分配給奇偶校驗信息更大的硬盤(pán)空間,相對于RAID 5有更大的“寫(xiě)損失”,因此“寫(xiě)性能”較差。
處理流程
PA為數據塊A0、A1、A2的第一個(gè)校驗信息塊,QA為第二個(gè)校驗信息塊;PB為數據塊B0、B1、B2的第一個(gè)校驗信息框,QB為第二個(gè)校驗信息塊,以此類(lèi)推。
數據塊和校驗塊一起分散存儲到RAID 6的各個(gè)成員盤(pán)上。當任意一個(gè)或兩個(gè)成員硬盤(pán)出現故障時(shí),控制卡可以從其他處于正常狀態(tài)的硬盤(pán)上重新恢復或生成丟失的數據而不影響數據的可用性。
圖RAID 6數據存儲原理

1.1.5 RAID 10
RAID 10是將鏡像和條帶進(jìn)行兩級組合的RAID級別,即RAID 1+RAID 0的組合形式,第一級是RAID 1,第二級是RAID 0。RAID 10是存儲性能和數據安全兼顧的方案。它在提供與RAID 1一樣的數據安全保障的同時(shí),也提供了與RAID 0近似的存儲性能。
處理流程
Drive 0和Drive 1組成一個(gè)子組0,Drive 2和Drive 3組成一個(gè)子組1,子組內的兩個(gè)硬盤(pán)互為鏡像。
系統向硬盤(pán)發(fā)出I/O數據請求時(shí),原先順序的數據請求按照RAID 0的方式,被分散到兩個(gè)子組中并行執行,同時(shí)通過(guò)RAID 1的方式,系統在向硬盤(pán)Drive 0寫(xiě)入數據的同時(shí)把數據自動(dòng)復制到硬盤(pán)Drive 1上,向硬盤(pán)Drive 2寫(xiě)入數據的同時(shí)把數據自動(dòng)復制到硬盤(pán)Drive 3上。
圖RAID 10數據存儲原理

1.1.6 RAID 10ADM
RAID 10ADM是將鏡像和條帶進(jìn)行兩級組合的RAID級別,即RAID 1ADM+RAID 0的組合形式,第一級是RAID 1ADM,第二級是RAID 0。RAID 10ADM是存儲性能和數據安全兼顧的方案。它在提供與RAID 1ADM一樣的數據安全保障的同時(shí),也提供了與RAID 0近似的存儲性能。
處理流程
Drive 0、Drive 1和Drive 2組成一個(gè)子組0,Drive 3、Drive 4和Drive 5組成一個(gè)子組1,子組內的硬盤(pán)互為鏡像。
系統向硬盤(pán)發(fā)出I/O數據請求時(shí),原先順序的數據請求按照RAID 0的方式,被分散到兩個(gè)子組中并行執行,同時(shí)通過(guò)RAID 1ADM的方式,系統在向硬盤(pán)Drive 0寫(xiě)入數據的同時(shí)把數據自動(dòng)復制到硬盤(pán)Drive 1和Drive 2上,向硬盤(pán)Drive 3寫(xiě)入數據的同時(shí)把數據自動(dòng)復制到硬盤(pán)Drive 4和Drive 5上。
圖RAID 10ADM數據存儲原理

1.1.7 RAID 1E
RAID 1E為RAID 1的增強版,工作原理與RAID 1類(lèi)似。RAID 1E的數據條帶及數據備份貫穿在邏輯盤(pán)中所有的硬盤(pán)當中。跟RAID 1類(lèi)似,數據是鏡像的,邏輯盤(pán)的容量是硬盤(pán)總容量的一半,可提供數據冗余功能及較高的性能。然而,RAID 1E允許使用更多的物理硬盤(pán),至少由三個(gè)硬盤(pán)組成。
處理流程
系統向三塊硬盤(pán)組成的邏輯硬盤(pán)(RAID 1E硬盤(pán)組)發(fā)出I/O數據請求。條帶數據均勻分布在3個(gè)硬盤(pán)中,任意一個(gè)條帶數據都在其他硬盤(pán)中有自己的備份。此時(shí),如果有單個(gè)硬盤(pán)故障,不會(huì )造成數據丟失。
圖RAID 1E數據存儲原理

1.1.8 RAID 50
RAID 50被稱(chēng)為鏡像陣列條帶,即RAID 5+RAID 0的組合形式。像RAID 0一樣,數據被分區成條帶,在同一時(shí)間內向多塊硬盤(pán)寫(xiě)入;像RAID 5一樣,也是以數據的校驗位來(lái)保證數據的安全,且校驗條帶均勻分布在各個(gè)硬盤(pán)上。
處理流程
PA為A0、A1和A2的奇偶校驗信息,PB為B0、B1和B2的奇偶校驗信息,以此類(lèi)推。
RAID 50是RAID 5與RAID 0兩種技術(shù)的結合,一個(gè)RAID 50由多個(gè)RAID 5子組組成,數據的存儲訪(fǎng)問(wèn)以RAID 0的形式分布在各個(gè)RAID 5子組上。依靠RAID 5提供的冗余功能,在子組內部任意一個(gè)硬盤(pán)故障時(shí),陣列均可正常工作并恢復出故障硬盤(pán)的信息。同樣,故障硬盤(pán)的更換不會(huì )影響業(yè)務(wù)的正常進(jìn)行。因此,RAID 50可以容忍多個(gè)子組同時(shí)單盤(pán)故障,這是單純RAID 5技術(shù)無(wú)法做到的。同時(shí),由于數據分布在多個(gè)子組上,陣列可以提供更加優(yōu)秀的讀寫(xiě)性能。
圖RAID 50數據存儲原理

1.1.9 RAID 60
RAID 60同RAID 50類(lèi)似,數據采用鏡像陣列條帶分布方式,即RAID 6 + RAID 0的組合形式。像RAID 0一樣,數據被分區成條帶,在同一時(shí)間內向多塊硬盤(pán)寫(xiě)入;像RAID 6一樣,以?xún)蓚€(gè)數據校驗模塊來(lái)保證數據的安全,且校驗條帶均勻分布在各個(gè)硬盤(pán)上。
處理流程
PA為A0、A1和A2的校驗信息1,QA為A0、A1和A2的校驗信息2,PB為B0、B1和B2的校驗信息1,QB為B0、B1和B2的校驗信息2,以此類(lèi)推。
RAID 60是RAID 6與RAID 0兩種技術(shù)的結合,一個(gè)RAID 60由多個(gè)RAID 6子組組成,數據的存儲訪(fǎng)問(wèn)以 RAID 0的形式分布在各個(gè)RAID 6子組上。依靠RAID 6提供的冗余功能,在子組內部任意兩個(gè)硬盤(pán)故障,陣列均可正常工作并恢復出故障硬盤(pán)的信息。同樣,故障硬盤(pán)的更換不會(huì )影響業(yè)務(wù)的正常進(jìn)行。
圖RAID 60數據存儲原理

1.1.10 容錯能力
RAID 0:不提供容錯功能。任意一個(gè)成員盤(pán)出現故障,都會(huì )導致數據丟失。通過(guò)條帶化方式同時(shí)在多個(gè)成員盤(pán)中寫(xiě)入數據。RAID 0對于需要高性能但不需要容錯的應用場(chǎng)景非常理想。
RAID 1:提供100%的數據冗余能力。當一個(gè)成員盤(pán)故障時(shí),可以使用RAID組中對應的其他硬盤(pán)的數據來(lái)運行系統,并重構故障盤(pán)。因為一個(gè)成員盤(pán)的內容會(huì )完全備份寫(xiě)入另一個(gè)硬盤(pán), 所以如果其中一個(gè)成員盤(pán)出現故障,則不會(huì )丟失任何數據。成對的成員盤(pán)在任何時(shí)候都包含相同的數據。RAID 1組是需要最大容錯能力和最小容量要求的應用場(chǎng)景的理想選擇。
RAID 5:結合了分布式奇偶校驗和硬盤(pán)條帶化。奇偶校驗在不需要備份全部硬盤(pán)內容的情況下,為1個(gè)硬盤(pán)提供了冗余特性。當一個(gè)成員盤(pán)故障時(shí),RAID控制卡使用奇偶校驗數據來(lái)重構所有丟失的信息。RAID 5使用較小的系統開(kāi)銷(xiāo)為系統提供了足夠的容錯能力。
RAID 6:結合了分布式奇偶校驗和硬盤(pán)條帶化。奇偶校驗在不需要備份全部硬盤(pán)內容的情況下,為2個(gè)硬盤(pán)提供了冗余特性。當一個(gè)成員盤(pán)故障時(shí),RAID控制卡使用奇偶校驗數據來(lái)重構所有丟失的信息。RAID 6使用較小的系統開(kāi)銷(xiāo)為系統提供了足夠的容錯能力。
RAID 10:使用多個(gè)RAID 1提供完整的數據冗余能力。RAID 10對所有需要通過(guò)鏡像硬盤(pán)組提供100%冗余能力的場(chǎng)景都適用。
RAID 50:使用多個(gè)RAID 5的分布式奇偶校驗提供數據冗余能力。在保證數據完整性的情況下,每個(gè)RAID 5分組允許1個(gè)成員盤(pán)故障。
RAID 60:使用多個(gè)RAID 6的分布式奇偶校驗提供數據冗余能力。在保證數據完整性的情況下,每個(gè)RAID 6分組允許2個(gè)成員盤(pán)故障。
1.1.11 I/O性能
RAID組可作為一個(gè)單獨的存儲單元或多個(gè)虛擬單元被系統使用。由于可以同時(shí)訪(fǎng)問(wèn)多個(gè)硬盤(pán),使得針對RAID組的I/O讀寫(xiě)速率較普通硬盤(pán)更高。
RAID 0:提供優(yōu)異的性能。RAID 0將數據分割為較小的數據塊并寫(xiě)入到不同的硬盤(pán)中,由于可以同時(shí)對多個(gè)硬盤(pán)進(jìn)行讀寫(xiě),RAID 0提升了I/O性能。
RAID 1:由于RAID組中的硬盤(pán)都是成對出現,寫(xiě)數據時(shí)也必須同時(shí)寫(xiě)入2份,從而占用更多的時(shí)間和資源,導致性能降低。
RAID 5:提供了較高的數據吞吐能力。由于成員盤(pán)上同時(shí)保留常規數據和校驗數據,每個(gè)成員盤(pán)都可以獨立讀寫(xiě),再加上完善的Cache算法,使得RAID 5在很多應用場(chǎng)景中都有出色的性能表現。
RAID 6:在需要高可靠性、高響應率、高傳輸率的場(chǎng)景下,RAID 6是較為適合的RAID級別,其提供了高數據吞吐量、數據冗余性和較高的I/O性能。由于RAID 6需要為每個(gè)成員盤(pán)寫(xiě)入2套校驗數據,導致其在寫(xiě)操作期間性能降低。
RAID 10:由RAID 0子組提供高數據傳輸速率的同時(shí),RAID 10在數據存儲方面表現優(yōu)異。I/O性能隨著(zhù)子組數量的增加而提升。
RAID 50:在需要高可靠性、高響應率、高傳輸率的場(chǎng)景下,RAID 50表現最好。I/O性能隨著(zhù)子組數量的增加而提升。
RAID 60:使用場(chǎng)景與RAID 50類(lèi)似,但是由于每個(gè)成員盤(pán)必須寫(xiě)入2組奇偶校驗數據,使得在寫(xiě)操作中性能降低,因此RAID 60不適用于大量寫(xiě)入任務(wù)。
當同一RAID控制卡下同時(shí)存在無(wú)需校驗的RAID組(如RAID 0或RAID 1)和需要校驗的RAID組(如RAID 5或RAID 6),且寫(xiě)策略均設置為Write Back時(shí),需要校驗的RAID組性能會(huì )下降,I/O wait增加。
建議將無(wú)需校驗的RAID組寫(xiě)策略設置為Write Through,以免對需要校驗的RAID組性能產(chǎn)生影響。
1.1.12 存儲容量
在選擇RAID級別時(shí),其存儲容量也是一個(gè)重要參數。
RAID 0:在指定一組硬盤(pán)后,同等情況下,RAID 0可以提供最大的存儲容量,可用容量=成員盤(pán)最小容量×成員盤(pán)數量。
RAID 1:由于對一個(gè)硬盤(pán)進(jìn)行寫(xiě)入時(shí),必須同時(shí)寫(xiě)入另一個(gè)硬盤(pán),導致存儲空間損耗??捎萌萘?成員盤(pán)最小容量。
RAID 5:校驗數據塊與常規數據塊隔離,因此整體上來(lái)說(shuō),校驗數據會(huì )占用1個(gè)成員盤(pán)的容量??捎萌萘?成員盤(pán)最小容量×(成員盤(pán)數量-1)。
RAID 6:由于2個(gè)獨立的校驗數據塊與常規數據塊隔離,整體上來(lái)說(shuō),校驗數據會(huì )占用2個(gè)成員盤(pán)的容量??捎萌萘?成員盤(pán)最小容量×(成員盤(pán)數量-2)。
RAID 10:可用容量=子組容量之和。
RAID 50:可用容量=子組容量之和。
RAID 60:可用容量=子組容量之和。
評論