磁盤容錯是指在子系統出現硬盤錯誤或硬盤故障時,可以保證數據完整性和數據處理能力。RAID控制卡通過冗余的硬盤組在RAID 1、5、6、10、50、60上實現此功能。
在RAID 1中,由于數據鏡像存儲于成對的硬盤上,因此在成對的硬盤中的一個產生錯誤或故障時,不會造成數據丟失。同理,在RAID 5中,允許1個硬盤故障;在RAID 6中,允許2個硬盤故障。
而對于包含多個子組的RAID,RAID 10、50允許故障盤的個數與子組數相同,但是要求每個子組只能包含1個故障盤。RAID 60允許故障盤的個數為子組數的2倍,要求每個子組最多包含2個故障盤。
RAID 0不支持容錯特性,當RAID 0中的硬盤故障時,該RAID失效,數據丟失。
容錯性能提高了系統的可用性,即硬盤故障時,系統仍可正常運行。因此,在故障修復流程中,容錯是非常重要的特性。
1 一致性校驗
針對有冗余功能的RAID 1、5、6、10、50、60,RAID控制卡可以對RAID組的硬盤數據進行一致性校驗,對硬盤數據進行檢驗和計算,并與對應的冗余數據進行比較。如果發現有數據不一致的情況,會嘗試做自動修復并保存錯誤信息。
由于RAID 0不具備冗余性,因此不支持一致性校驗。
2 熱備份
RAID控制卡的熱備份特性由熱備盤和緊急備份功能實現。
熱備盤
熱備盤是硬盤系統中的一個獨立的硬盤,當RAID組中的硬盤故障時,熱備盤自動取代故障盤作為成員盤,并在熱備盤上重構故障盤數據。
在RAID控制卡的管理界面或命令行工具中,可以指定容量大于或等于RAID組成員盤,且介質類型及接口與成員盤相同的空閑盤作為RAID組的熱備盤。
RAID控制卡支持的熱備盤包括下面兩種:
全局熱備盤,為RAID控制卡上所有已配置的RAID組所共有,1塊RAID控制卡中可配置1個或多個全局熱備盤。當任意RAID組內的成員盤故障時,全局熱備盤均可自動替代。
局部熱備盤,為RAID控制卡上某個指定的RAID組所專有,每個RAID組都可以配置1個或多個局部熱備盤。當指定RAID組內的成員盤故障時,局部熱備盤可自動替換。
熱備盤有如下特性:
熱備盤僅用于具有冗余功能的RAID組,包括RAID 1、5、6、10、50、60。
熱備盤僅用于替代同一RAID控制卡上的故障盤。
緊急備份
緊急備份功能,是指任意一個具備冗余功能的RAID組中出現成員盤故障且沒有指定熱備盤時,RAID控制卡下屬的空閑盤會自動替代故障成員盤并進行重構,避免數據丟失。
緊急備份要求用于備份的空閑盤容量大于等于成員盤容量,且介質類型與成員盤相同。
3 RAID重構
當RAID組中出現故障盤時,可以通過RAID控制卡的數據重構功能,將故障盤中的數據在新盤上重構。數據重構功能僅適用于具有冗余功能的RAID 1、5、6、10、50、60。
RAID控制卡支持熱備盤自動重構故障成員盤數據。當RAID組配置了可用的熱備盤時,在成員盤故障的情況下,熱備盤自動替換故障盤,進行數據重構;當RAID組沒有可用的熱備盤時,只有更換新盤后才可進行數據重構。當熱備盤開始數據重構后,故障的成員盤就被標注為可移除狀態。如果在數據重構過程中系統下電,那么在系統重新啟動后,RAID控制卡會繼續執行數據重構的任務。
重構率,即數據重構任務在系統運行的所占用CPU資源的比率,可設置為0%~100%。0%表示數據重構任務只有系統當前沒有任何其他任務運行時,才會啟動數據重構任務。100%表示數據重構任務占用所有CPU資源。重構率可由用戶自行設置,建議根據系統的實際情況設置一個合適的取值。
4 虛擬磁盤的讀寫策略
在創建虛擬磁盤時,會需要對其數據讀寫策略進行定義,以規范后續虛擬磁盤運行過程中數據的讀寫方式。
數據讀策略
在配置界面中一般體現為“Read Policy”。RAID控制卡支持如下兩種數據讀策略:
預讀取方式:在配置界面中一般有“Always Read Ahead”、“Read Ahead”、“Ahead”等配置選項。使用此策略后,從虛擬磁盤中讀取所需數據時,會把后續數據同時讀出放在Cache中,用戶隨后訪問這些數據時可以直接在Cache中命中,將減少硬盤尋道操作,節省響應時間,提高了數據讀取速度。
要使用該策略,要求RAID控制卡支持數據掉電保護功能,但如果此時超級電容異常,可能導致數據丟失。
非預讀取方式:使用此策略后,RAID控制卡接收到數據讀取命令時,才從虛擬磁盤讀取數據,不會做預讀取的操作。
數據寫策略
在配置界面中一般體現為“Write Policy”。RAID控制卡支持如下數據寫策略:
回寫:在配置界面中一般體現為“Write Back”等字樣。使用此策略后,需要向虛擬磁盤寫數據時,會直接寫入Cache中,當寫入的數據積累到一定程度,RAID控制卡才將數據刷新到虛擬磁盤,這樣不但實現了批量寫入,而且提升了數據寫入的速度。當控制卡Cache收到所有的傳輸數據后,將給主機返回數據傳輸完成信號。
要使用該策略,要求RAID控制卡支持數據掉電保護功能,但如果此時超級電容異常,可能導致數據丟失。
直寫:在配置界面中一般有“Write Through”等選項。使用此策略后,RAID控制卡向虛擬磁盤直接寫入數據,不經過Cache。當硬盤子系統接收到所有傳輸數據后,控制卡將給主機返回數據傳輸完成信號。
此種方式不要求RAID控制卡支持數據掉電保護功能,即使超級電容故障,也無影響。該寫策略的缺點是寫入速度較低。
與BBU相關的回寫:在配置界面中一般有“Write Back with BBU”等選項。使用此策略后,當RAID控制卡BBU在位且狀態正常時,RAID控制卡到虛擬磁盤的寫操作會經過Cache中轉(即回寫方式);當RAID控制卡BBU不在位或BBU故障時,RAID控制卡到虛擬磁盤的寫操作會自動切換為不經過Cache的直接寫入(即寫通方式)。
強制回寫:在配置界面中一般體現為“Write Back Enforce”、“Always Write Back”等字樣。在RAID控制卡無電容或電容損壞的情況下,強制使用“Write Back”模式。
當服務器出現異常下電時,如果電容不在位或在充電狀態下,RAID控制卡中DDR(即Cache)的寫數據將會丟失。不推薦使用該模式。
5 數據掉電保護
掉電保護的原理
數據寫入RAID控制卡高速緩存的速度大于數據寫入硬盤的速度,一次在服務器進行大量寫操作時,都使用RAID控制卡高速緩存來提升系統性能。
開啟RAID控制卡高速緩存可提升整機寫性能,當服務器寫壓力減小或RAID控制卡高速緩存將寫滿時,數據再由RAID控制卡高速緩存寫入硬盤。
開啟RAID控制卡高速緩存提升寫性能的同時,也增大了數據丟失的風險,在整機意外掉電時,RAID控制卡高速緩存中的數據將會丟失。
為了提升整機的高讀寫性能和RAID控制卡高速緩存中數據的安全,可為RAID控制卡配置超級電容。超級電容保護模塊的原理是在發生系統意外掉電時,利用超級電容供電,將RAID控制卡高速緩存中的數據寫入超級電容模塊中的NAND Flash中永久保存。
超級電容電量校準
由于數據保護需要超級電容的配合,為了記錄超級電容的放電曲線,以便RAID控制卡了解超級電容的狀態,例如最大和最小電壓等,同時為了延長超級電容的壽命,RAID控制卡默認啟動超級電容自動校準模式。
RAID控制卡通過如下所述的三段式充放電操作對超級電容的電量進行校準,使其保持在一個相對穩定的值。
1.RAID控制卡將超級電容的電量充到最大值。
2.自動啟動校準進程,將超級電容完全放電。
3.重新開始充電,直至達到最大電量。
超級電容電量校準過程中,RAID控制卡寫策略自動調整為“Write Through”模式以保證數據完整性,此時RAID控制卡性能會降低。電量校準的時間取決于超級電容充放電速度。
6 硬盤條帶化
當多個進程同時訪問一個硬盤時,可能會出現硬盤沖突。大多數硬盤系統都對訪問次數(每秒的I/O操作)和數據傳輸率(每秒傳輸的數據量)有限制。當達到這些限制時,后面需要訪問硬盤的進程就需要等待。
條帶化是一種自動的將I/O的負載均衡到多個物理硬盤上的技術。條帶化技術將一塊連續的數據分成多個小部分并將其分別存儲到不同硬盤上去。這就能使多個進程同時訪問數據的多個不同部分而不會造成硬盤沖突,而且在需要對這種數據進行順序訪問的時候可以獲得最大程度上的I/O并行能力。
硬盤的條帶化,是將硬盤空間按照設定的大小分為多個條帶,數據寫入時也按照條帶的大小來劃分數據模塊。
例如,在一個由四個成員盤組成的硬盤系統中(例如RAID 0),第一個數據塊寫入第一塊成員盤,第二個數據塊寫入第二個成員盤,以此類推,如圖1-11所示。由于是同時對多個硬盤進行寫入,因此極大地提升了系統性能,但是,此特性并不能保證數據的冗余性。
硬盤分條包含下面的概念:
條帶寬度:一個硬盤組在進行分條時所使用的硬盤的個數,例如一個由四個成員盤組成的硬盤組,其條帶寬度為“4”。
硬盤組的條帶大小:RAID控制卡同時在一個硬盤組中所有硬盤上的寫入的數據塊的大小。
硬盤的條帶大?。篟AID控制卡在每塊硬盤上寫入的數據塊的大小。
例如,針對一個硬盤組,在寫入數據時,一個1MB的數據條帶,在每個成員盤上分配的數據塊為64KB,那么此硬盤組的條帶大小為1MB,硬盤的條帶大小為64KB。
7 磁盤鏡像
磁盤鏡像,適用于RAID 1和RAID 10,是指執行寫數據的任務時,會將同樣的數據同時寫入兩塊硬盤,以實現100%的數據冗余度。由于兩塊硬盤上的數據完全相同,當一塊硬盤故障時,數據不會丟失。另外,同一時間,兩塊盤上的數據是完全相同的,當一塊硬盤故障時,由于數據是同時讀寫,因此數據流不會中斷。
磁盤鏡像帶來的是100%的完全冗余,但是其代價是比較昂貴的,因為在鏡像過程中,每個硬盤都需要一個備份盤。
8 外部配置
外部配置,是區別于當前RAID控制卡的配置來說的,在配置界面中一般體現為“Foreign Configuration”之類的字樣。
一般在下述情況下,會有外部配置出現:
一個新安裝到服務器上的物理硬盤中存在RAID配置信息,RAID控制卡會將此類信息識別為外部配置。
服務器更換了RAID控制卡后,新RAID控制卡會將當前存在的RAID信息識別為外部配置。
熱插拔RAID組的成員盤后,該成員盤會被標記為攜帶外部配置。
對檢測出來的外部配置,可以根據服務器實際情況進行處理。例如,當新插入的硬盤攜帶的RAID信息不符合當前使用場景時,可以刪除此配置。更換RAID控制卡后,如果仍然想使用之前的配置,就可以導入該配置,使其在新RAID控制卡上生效。
9 硬盤節能
RAID控制卡具備硬盤節能功能。此功能根據硬盤配置和I/O活動允許硬盤停轉。所有SAS和SATA機械硬盤均支持此功能。
當硬盤節能功能開啟時,RAID控制卡下掛載的空閑狀態的硬盤和空閑熱備盤均處于節能狀態。當有相關操作(例如創建RAID組,創建熱備盤,動態擴盤,進行熱備重構)時可喚醒正處于節能狀態的硬盤。
10 硬盤直通
硬盤直通,即“JBOD”功能,又稱指令透傳,是不經過傳輸設備處理,僅保證傳輸質量的一種數據傳輸方式。
打開硬盤直通功能后,RAID控制卡可對所連接的硬盤進行指令透傳,在不配置RAID組的情況下,用戶指令可以直接透傳到硬盤,方便上層業務軟件或管理軟件訪問控制硬盤。
例如,服務器操作系統安裝過程中,可以直接找到掛載在RAID控制卡下的硬盤作為安裝盤;而不支持硬盤直通的RAID控制卡,在操作系統安裝過程中,只能找到該RAID控制卡下已經配置好的虛擬磁盤作為安裝盤。
審核編輯:湯梓紅
-
硬盤
+關注
關注
3文章
1292瀏覽量
57244 -
服務器
+關注
關注
12文章
9029瀏覽量
85207 -
RAID
+關注
關注
0文章
273瀏覽量
35061 -
磁盤
+關注
關注
1文章
367瀏覽量
25180 -
控制卡
+關注
關注
2文章
58瀏覽量
13007
原文標題:深入分析磁盤RAID關鍵技術
文章出處:【微信號:架構師技術聯盟,微信公眾號:架構師技術聯盟】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論