RAID(Redundant Array of Independent Disks)是將多塊物理硬盤通過RAID控制卡組合成虛擬的單塊大容量硬盤使用,從而提供比單個硬盤更高的存儲性能、更高的I/O性能及可靠性。
1硬盤組和虛擬磁盤
由于現代數據中心業務量的與日俱增,單臺服務器上需要運行的數據也日益增多。當單個物理硬盤在容量和安全性上不足以支持系統業務時,就需要將多個硬盤以某種特定方式組合起來,對外作為一個可見的硬盤來使用,才可滿足實際需要。硬盤組,就是將一組物理硬盤組合起來,作為一個整體對外體現,是虛擬磁盤的基礎。
虛擬磁盤,即使用硬盤組劃分出來的連續的數據存儲單元,相當于一個個獨立的硬盤,通過一定的配置,使其具有比單個物理硬盤更大的容量,及更高的安全性和數據冗余性。
一個虛擬磁盤可以是:
一個完整的硬盤組。
多個完整的硬盤組。
一個硬盤組的一部分。
多個硬盤組的一部分(每個硬盤組劃分一部分,共同組成虛擬磁盤)。
在下文的描述中:
硬盤組一般會表述為“Drive Group”(簡稱“DG”)、“Array”、“RAID組”。
虛擬磁盤一般會表述為“Virtual Drive”、“Virtual Disk”(簡稱“VD”)、“Volume”、“Logical Device”(簡稱“LD”)等。
1.1RAID級別介紹
RAID是將多塊物理硬盤通過RAID控制卡組合成虛擬的單塊大容量硬盤使用,從而提供比單個硬盤更高的存儲性能、更高的I/O性能及可靠性。
RAID控制卡僅在EFI或UEFI模式下支持安全啟動,并使用BIOS提供的安全認證機制。
1.1.1 RAID 0
RAID 0又稱為條帶化(Stripe)或分條(Striping),代表了所有RAID級別中最高的存儲性能。RAID 0提高存儲性能的原理是把連續的數據分散到多個硬盤上存取。這樣,當系統有數據請求時就可以在多個硬盤上并行執行,每個硬盤執行屬于它自己的那部分數據請求。這種數據上的并行操作可以充分利用總線的帶寬,顯著提高硬盤整體讀寫性能。但由于其沒有數據冗余,無法保護數據的安全性,只能適用于I/O速率要求高,但數據安全性要求低的場合。
處理流程
系統向三塊硬盤組成的邏輯硬盤(RAID 0硬盤組)發出的I/O數據請求被轉化為三項操作,其中的每一項操作都對應于一塊物理硬盤。
通過建立RAID 0,原先順序的數據請求被分散到所有的三塊硬盤中同時執行。
三塊硬盤的并行操作在理論上使同一時間內硬盤讀寫速度提升了3倍。雖然由于總線帶寬等多種因素的影響,實際的提升速率會低于理論值,但是大量數據并行傳輸與串行傳輸比較,提速效果顯著。
圖RAID 0數據存儲原理
1.1.1 RAID 1
RAID 1又稱鏡像(Mirror或Mirroring),即每個工作盤都有一個鏡像盤,每次寫數據時必須同時寫入鏡像盤,讀數據時同時從工作盤和鏡像盤讀出。當更換故障盤后,數據可以重構,恢復工作盤正確數據。RAID 1可靠性高,但其有效容量減小到總容量一半,因此常用于對容錯要求較高的應用場合,如財政、金融等領域。
處理流程
系統向兩塊硬盤組成的邏輯硬盤(RAID 1硬盤組)發出I/O數據請求。
向硬盤Drive 0寫入數據時,系統會同時把用戶寫入Drive 0的數據自動復制到Drive 1上。
讀取數據時,系統同時從Drive 0和Drive 1讀取。
圖RAID 1數據存儲原理
1.1.2 RAID 1ADM
RAID 1ADM的每個工作盤都有兩個鏡像盤,每次寫數據時必須同時寫入鏡像盤,讀數據時同時從工作盤和鏡像盤讀出。當更換故障盤后,數據可以重構,恢復工作盤正確數據。RAID 1ADM可靠性比RAID 1高,但其有效容量減小到總容量的三分之一,因此常用于對容錯要求較高的應用場合,如財政、金融等領域。
處理流程
系統向三塊硬盤組成的邏輯硬盤(RAID 1ADM硬盤組)發出I/O數據請求。
向硬盤Drive 0寫入數據時,系統會同時把用戶寫入Drive 0的數據自動復制到Drive 1和Drive 2上。
讀取數據時,系統同時從Drive 0、Drive 1和Drive 2讀取。
圖RAID 1ADM數據存儲原理
1.1.3 RAID 5
RAID 5是一種存儲性能、數據安全和存儲成本兼顧的存儲解決方案。為保障存儲數據的可靠性,采用循環冗余校驗方式,并將校驗數據分散存儲在RAID的各成員盤上。當RAID的某個成員盤出現故障時,通過其他成員盤上的數據可以重新構建故障硬盤上的數據。RAID 5既適用于大數據量的操作,也適用于各種小數據的事務處理,是一種快速、大容量和容錯分布合理的磁盤陣列。
處理流程
PA為A0、A1和A2的奇偶校驗信息,PB為B0、B1和B2的奇偶校驗信息,以此類推。
RAID 5不對存儲的數據進行備份,而是把數據和相對應的奇偶校驗信息存儲到成員盤上,并且奇偶校驗信息和相對應的數據分別存儲于不同的硬盤上。當RAID 5的一個硬盤數據發生損壞后,利用剩下的數據和相應的奇偶校驗信息可以恢復被損壞的數據。
RAID 5可以理解為是RAID 0和RAID 1的折衷方案:
RAID 5可以為系統提供數據安全保障,但保障程度要比RAID 1低而硬盤空間利用率要比RAID 1高,存儲成本相對較低。
RAID 5具有較RAID 0略低的數據讀寫速度,但寫性能比寫入單個硬盤時要高。
圖RAID 5數據存儲原理
1.1.4 RAID 6
在RAID 5的基礎上,RAID 6增加了第二個獨立的奇偶校驗信息塊。兩個獨立的奇偶系統使用不同的算法,數據的可靠性非常高,即使兩塊硬盤同時失效也不會影響數據的使用。但RAID 6需要分配給奇偶校驗信息更大的硬盤空間,相對于RAID 5有更大的“寫損失”,因此“寫性能”較差。
處理流程
PA為數據塊A0、A1、A2的第一個校驗信息塊,QA為第二個校驗信息塊;PB為數據塊B0、B1、B2的第一個校驗信息框,QB為第二個校驗信息塊,以此類推。
數據塊和校驗塊一起分散存儲到RAID 6的各個成員盤上。當任意一個或兩個成員硬盤出現故障時,控制卡可以從其他處于正常狀態的硬盤上重新恢復或生成丟失的數據而不影響數據的可用性。
圖RAID 6數據存儲原理
1.1.5 RAID 10
RAID 10是將鏡像和條帶進行兩級組合的RAID級別,即RAID 1+RAID 0的組合形式,第一級是RAID 1,第二級是RAID 0。RAID 10是存儲性能和數據安全兼顧的方案。它在提供與RAID 1一樣的數據安全保障的同時,也提供了與RAID 0近似的存儲性能。
處理流程
Drive 0和Drive 1組成一個子組0,Drive 2和Drive 3組成一個子組1,子組內的兩個硬盤互為鏡像。
系統向硬盤發出I/O數據請求時,原先順序的數據請求按照RAID 0的方式,被分散到兩個子組中并行執行,同時通過RAID 1的方式,系統在向硬盤Drive 0寫入數據的同時把數據自動復制到硬盤Drive 1上,向硬盤Drive 2寫入數據的同時把數據自動復制到硬盤Drive 3上。
圖RAID 10數據存儲原理
1.1.6 RAID 10ADM
RAID 10ADM是將鏡像和條帶進行兩級組合的RAID級別,即RAID 1ADM+RAID 0的組合形式,第一級是RAID 1ADM,第二級是RAID 0。RAID 10ADM是存儲性能和數據安全兼顧的方案。它在提供與RAID 1ADM一樣的數據安全保障的同時,也提供了與RAID 0近似的存儲性能。
處理流程
Drive 0、Drive 1和Drive 2組成一個子組0,Drive 3、Drive 4和Drive 5組成一個子組1,子組內的硬盤互為鏡像。
系統向硬盤發出I/O數據請求時,原先順序的數據請求按照RAID 0的方式,被分散到兩個子組中并行執行,同時通過RAID 1ADM的方式,系統在向硬盤Drive 0寫入數據的同時把數據自動復制到硬盤Drive 1和Drive 2上,向硬盤Drive 3寫入數據的同時把數據自動復制到硬盤Drive 4和Drive 5上。
圖RAID 10ADM數據存儲原理
1.1.7 RAID 1E
RAID 1E為RAID 1的增強版,工作原理與RAID 1類似。RAID 1E的數據條帶及數據備份貫穿在邏輯盤中所有的硬盤當中。跟RAID 1類似,數據是鏡像的,邏輯盤的容量是硬盤總容量的一半,可提供數據冗余功能及較高的性能。然而,RAID 1E允許使用更多的物理硬盤,至少由三個硬盤組成。
處理流程
系統向三塊硬盤組成的邏輯硬盤(RAID 1E硬盤組)發出I/O數據請求。條帶數據均勻分布在3個硬盤中,任意一個條帶數據都在其他硬盤中有自己的備份。此時,如果有單個硬盤故障,不會造成數據丟失。
圖RAID 1E數據存儲原理
1.1.8 RAID 50
RAID 50被稱為鏡像陣列條帶,即RAID 5+RAID 0的組合形式。像RAID 0一樣,數據被分區成條帶,在同一時間內向多塊硬盤寫入;像RAID 5一樣,也是以數據的校驗位來保證數據的安全,且校驗條帶均勻分布在各個硬盤上。
處理流程
PA為A0、A1和A2的奇偶校驗信息,PB為B0、B1和B2的奇偶校驗信息,以此類推。
RAID 50是RAID 5與RAID 0兩種技術的結合,一個RAID 50由多個RAID 5子組組成,數據的存儲訪問以RAID 0的形式分布在各個RAID 5子組上。依靠RAID 5提供的冗余功能,在子組內部任意一個硬盤故障時,陣列均可正常工作并恢復出故障硬盤的信息。同樣,故障硬盤的更換不會影響業務的正常進行。因此,RAID 50可以容忍多個子組同時單盤故障,這是單純RAID 5技術無法做到的。同時,由于數據分布在多個子組上,陣列可以提供更加優秀的讀寫性能。
圖RAID 50數據存儲原理
1.1.9 RAID 60
RAID 60同RAID 50類似,數據采用鏡像陣列條帶分布方式,即RAID 6 + RAID 0的組合形式。像RAID 0一樣,數據被分區成條帶,在同一時間內向多塊硬盤寫入;像RAID 6一樣,以兩個數據校驗模塊來保證數據的安全,且校驗條帶均勻分布在各個硬盤上。
處理流程
PA為A0、A1和A2的校驗信息1,QA為A0、A1和A2的校驗信息2,PB為B0、B1和B2的校驗信息1,QB為B0、B1和B2的校驗信息2,以此類推。
RAID 60是RAID 6與RAID 0兩種技術的結合,一個RAID 60由多個RAID 6子組組成,數據的存儲訪問以 RAID 0的形式分布在各個RAID 6子組上。依靠RAID 6提供的冗余功能,在子組內部任意兩個硬盤故障,陣列均可正常工作并恢復出故障硬盤的信息。同樣,故障硬盤的更換不會影響業務的正常進行。
圖RAID 60數據存儲原理
1.1.10 容錯能力
RAID 0:不提供容錯功能。任意一個成員盤出現故障,都會導致數據丟失。通過條帶化方式同時在多個成員盤中寫入數據。RAID 0對于需要高性能但不需要容錯的應用場景非常理想。
RAID 1:提供100%的數據冗余能力。當一個成員盤故障時,可以使用RAID組中對應的其他硬盤的數據來運行系統,并重構故障盤。因為一個成員盤的內容會完全備份寫入另一個硬盤, 所以如果其中一個成員盤出現故障,則不會丟失任何數據。成對的成員盤在任何時候都包含相同的數據。RAID 1組是需要最大容錯能力和最小容量要求的應用場景的理想選擇。
RAID 5:結合了分布式奇偶校驗和硬盤條帶化。奇偶校驗在不需要備份全部硬盤內容的情況下,為1個硬盤提供了冗余特性。當一個成員盤故障時,RAID控制卡使用奇偶校驗數據來重構所有丟失的信息。RAID 5使用較小的系統開銷為系統提供了足夠的容錯能力。
RAID 6:結合了分布式奇偶校驗和硬盤條帶化。奇偶校驗在不需要備份全部硬盤內容的情況下,為2個硬盤提供了冗余特性。當一個成員盤故障時,RAID控制卡使用奇偶校驗數據來重構所有丟失的信息。RAID 6使用較小的系統開銷為系統提供了足夠的容錯能力。
RAID 10:使用多個RAID 1提供完整的數據冗余能力。RAID 10對所有需要通過鏡像硬盤組提供100%冗余能力的場景都適用。
RAID 50:使用多個RAID 5的分布式奇偶校驗提供數據冗余能力。在保證數據完整性的情況下,每個RAID 5分組允許1個成員盤故障。
RAID 60:使用多個RAID 6的分布式奇偶校驗提供數據冗余能力。在保證數據完整性的情況下,每個RAID 6分組允許2個成員盤故障。
1.1.11 I/O性能
RAID組可作為一個單獨的存儲單元或多個虛擬單元被系統使用。由于可以同時訪問多個硬盤,使得針對RAID組的I/O讀寫速率較普通硬盤更高。
RAID 0:提供優異的性能。RAID 0將數據分割為較小的數據塊并寫入到不同的硬盤中,由于可以同時對多個硬盤進行讀寫,RAID 0提升了I/O性能。
RAID 1:由于RAID組中的硬盤都是成對出現,寫數據時也必須同時寫入2份,從而占用更多的時間和資源,導致性能降低。
RAID 5:提供了較高的數據吞吐能力。由于成員盤上同時保留常規數據和校驗數據,每個成員盤都可以獨立讀寫,再加上完善的Cache算法,使得RAID 5在很多應用場景中都有出色的性能表現。
RAID 6:在需要高可靠性、高響應率、高傳輸率的場景下,RAID 6是較為適合的RAID級別,其提供了高數據吞吐量、數據冗余性和較高的I/O性能。由于RAID 6需要為每個成員盤寫入2套校驗數據,導致其在寫操作期間性能降低。
RAID 10:由RAID 0子組提供高數據傳輸速率的同時,RAID 10在數據存儲方面表現優異。I/O性能隨著子組數量的增加而提升。
RAID 50:在需要高可靠性、高響應率、高傳輸率的場景下,RAID 50表現最好。I/O性能隨著子組數量的增加而提升。
RAID 60:使用場景與RAID 50類似,但是由于每個成員盤必須寫入2組奇偶校驗數據,使得在寫操作中性能降低,因此RAID 60不適用于大量寫入任務。
當同一RAID控制卡下同時存在無需校驗的RAID組(如RAID 0或RAID 1)和需要校驗的RAID組(如RAID 5或RAID 6),且寫策略均設置為Write Back時,需要校驗的RAID組性能會下降,I/O wait增加。
建議將無需校驗的RAID組寫策略設置為Write Through,以免對需要校驗的RAID組性能產生影響。
1.1.12 存儲容量
在選擇RAID級別時,其存儲容量也是一個重要參數。
RAID 0:在指定一組硬盤后,同等情況下,RAID 0可以提供最大的存儲容量,可用容量=成員盤最小容量×成員盤數量。
RAID 1:由于對一個硬盤進行寫入時,必須同時寫入另一個硬盤,導致存儲空間損耗。可用容量=成員盤最小容量。
RAID 5:校驗數據塊與常規數據塊隔離,因此整體上來說,校驗數據會占用1個成員盤的容量。可用容量=成員盤最小容量×(成員盤數量-1)。
RAID 6:由于2個獨立的校驗數據塊與常規數據塊隔離,整體上來說,校驗數據會占用2個成員盤的容量。可用容量=成員盤最小容量×(成員盤數量-2)。
RAID 10:可用容量=子組容量之和。
RAID 50:可用容量=子組容量之和。
RAID 60:可用容量=子組容量之和。
審核編輯:劉清
-
RAID
+關注
關注
0文章
277瀏覽量
35084 -
數據存儲
+關注
關注
5文章
970瀏覽量
50894 -
奇偶校驗
+關注
關注
0文章
15瀏覽量
8206
原文標題:詳解RAID流程、I/O性能和容量
文章出處:【微信號:架構師技術聯盟,微信公眾號:架構師技術聯盟】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論