圖 1) RAID 4 奇偶校驗示例。

在本示例中,為了便于演示,計算奇偶校驗的方式為將每個水平條帶中的值相加,然后將所得之和存儲為奇偶校驗值 (3 + 1 + 2 + 3 = 9)。在實際操作中,將使用異或 (XOR) 運算方式計算奇偶校驗。

如果需要從單個故障中重建數據,那么只需反向執行用于生成奇偶校驗的流程。例如,如果第一個磁盤發生故障,RAID 4 會根據其余磁盤的數據重新計算磁盤 1 的每個塊中的數據;在本示例中,只需從存儲的奇偶校驗值中減去其余磁盤的值 (9 – 3 – 2 – 1 = 3)。這也解釋了為什么單奇偶校驗 RAID 只能在單個磁盤出現故障時起到防護作用。您會發現,如果缺少兩個值,則沒有足夠的信息來重新計算缺少的值。

在典型的 RAID 實施中,為了將新數據寫入已包含數據(和奇偶校驗)的條帶,您必須讀取奇偶校驗塊并計算該條帶的新奇偶校驗值,然后才能寫入數據塊和新奇偶校驗塊。對于要寫入的每個塊,這是一筆很大的開銷。

NetApp 通過盡可能地在內存中緩存寫入(通過 NVRAM 中的日志提供保護),然后寫入完整的 RAID 條帶和奇偶校驗來減少這方面的損失。這樣一來,在寫入之前就無需讀取奇偶校驗數據,并且還支持 WAFL 針對完整的數據塊條帶執行單奇偶校驗計算。(確切的塊數目取決于 RAID 組大小。)由于在現有塊被修改時,WAFL 絕不會覆蓋現有塊并且它可以將數據和元數據(描述數據組織方式的說明信息)寫入任意位置,因此上述目標可以實現。而在其他數據布局中,修改過的數據塊一般會被覆蓋,并且元數據通常需要位于固定位置。

添加對角奇偶校驗:RAID-DP

NetApp RAID-DP 在每個 RAID 組中使用兩個奇偶校驗磁盤。一個奇偶校驗磁盤存儲針對水平條帶計算的奇偶校驗,如前所述。另一個奇偶校驗磁盤存儲根據對角條帶計算的奇偶校驗。相對于圖 1 的水平奇偶校驗圖,圖 2 添加了一個對角奇偶校驗條帶(用藍底塊表示)并新增了一個奇偶校驗磁盤(用“DP”表示)。

圖 2) 添加對角奇偶校驗。

在計算中,對角奇偶校驗條帶包括水平奇偶校驗磁盤中的一個塊。對于原始 RAID 4 構造中的所有磁盤(包括數據和奇偶校驗磁盤),RAID-DP 采用相同的處理方式。請注意,在對角奇偶校驗條帶中忽略了一個磁盤。圖 3 顯示了其他水平和對角奇偶校驗條帶。

圖 3) 顯示水平和對角奇偶校驗的多個條帶。

每個對角奇偶校驗條帶僅缺少一個磁盤,并且每個對角缺少另一個不同的磁盤。還有一個在對角奇偶校驗磁盤上未存儲奇偶校驗的對角條帶(圖 3 中的白色塊)。這并不會影響恢復所有數據的能力。

從雙磁盤故障中恢復

通過結合使用水平和對角奇偶校驗,可以在同一 RAID 組中從雙磁盤故障中恢復。如果發生單個磁盤故障或者塊或位錯誤,那么只需水平奇偶校驗即可重新創建缺少的數據。

發生雙磁盤故障之后,RAID-DP 首先確定開始重建所在的鏈,如圖 4 所示。請謹記,僅當缺少一個元素時,才能通過奇偶校驗重建數據;這也是每個對角奇偶校驗條帶跳過其中一個數據磁盤的原因。

使用對角奇偶校驗開始 RAID-DP 恢復。

圖 4) 使用對角奇偶校驗開始 RAID-DP 恢復。

如果使用對角奇偶校驗恢復了第一個塊,那么轉而也可以使用水平奇偶校驗恢復第二個塊(圖 4 中的第一行)。繼而又可以使用對角奇偶校驗恢復另一個缺少的塊。此恢復鏈繼續,直到由于條帶不存在任何對角奇偶校驗而終止。此時,將找到另一個切入點,從 而開始恢復另一條對角和水平條帶鏈。最終,直至填滿足夠的缺少塊,即僅使用水平奇偶校驗即可重新計算缺少奇偶校驗的條帶的所有值。在 TR-3298:《RAID-DP》中更加全面地介紹了此流程。

在本文中,我簡化了這些示例,便于您更加輕松地了解關于 RAID-DP 的基本概念,但是重要的是要了解如何在具有包含數十個磁盤的 RAID 組以及百萬行數據的實際存儲部署中應用相同的流程。雖然故障示例說明的是兩個相鄰數據磁盤的恢復,但無論磁盤是否相鄰以及無論故障磁盤本身是數據磁盤還是奇偶校驗磁盤,相同的流程均適用。

優化寫入:RAID-DP

如前面 RAID 4 討論中所述,WAFL 總是盡可能地緩存完整的塊條帶并將其寫入磁盤。RAID-DP 在內存中緩存數據塊,以通過一次讀取操作完成多個水平和對角奇偶校驗計算。與 RAID 4 相比,RAID-DP 會帶來 2% 的性能開銷,這是計算對角奇偶校驗和寫入第二個奇偶校驗塊所帶來的額外開銷。

用例

至于 RAID-DP 的用例,由于該技術在 NetApp 存儲的應用非常廣泛,因此相對于應該使用該技術的情況,談論可能選擇不使用它的一些情況會更加容易。超過 90% 的 NetApp 客戶已使用 RAID-DP,包括用于最重要的業務工作負載和性能要求最高的工作負載。RAID-DP 是 NetApp 所有全新存儲系統的默認選項,我們規定在最佳實踐中要使用 RAID-DP,并且在公布的性能基準測試中也使用了 RAID-DP。所有 NetApp 軟件均與 RAID-DP 完全兼容。其他任何供應商都不會宣稱其 RAID 6 實施可以做到這些。

您可能選擇使用 RAID 4 而不使用 RAID-DP 的唯一情況是對靈活性要求低的情況,如暫存空間、測試和實驗室環境。

使用 RAID-DP

RAID-DP 是在 Data ONTAP 版本 6.5 中推出的。

創建 RAID-DP 卷

若要通過 RAID-DP RAID 組創建聚合(或傳統卷),請在借助 NetApp 圖形工具配置存儲時選擇對應選項,或將 -t raid_dp 開關添加到聚合創建或卷創建命令。

如果未指定 RAID 類型,Data ONTAP 將自動使用默認 RAID 類型 — 目前推出的所有 Data ONTAP 版本均采用 RAID-DP。您可以通過從 Data ONTAP 信息庫中選擇您所用的 Data ONTAP 版本來了解系統的默認選項。(需要具有 NetApp NOW? 訪問權限。)

現有 RAID 4 RAID 組可以轉換為 RAID-DP??梢栽诰酆匣騻鹘y卷級別進行轉換,并且必須具有可用于每個 RAID 組的對角奇偶校驗磁盤的磁盤(大小至少與 RAID 組中的最大磁盤相同)。

選擇 RAID-DP RAID 組大小

通過 RAID-DP 可使用更大的 RAID 組,從而可以抵消對奇偶校驗所需的額外磁盤可用容量的影響。要降低甚至消除此影響,一個選擇是對于所使用的磁盤驅動器類型,使用默認 RAID-DP 組大小?;谀J RAID-DP RAID 組大小的倍數創建聚合。

對于硬盤驅動器(SATA、FC 和 SAS),首選調整大小的方式是在 12 (10+2) 到 20 (18+2) 之間確定 RAID 組大小,從而獲得均勻的 RAID 組布局(所有 RAID 組包含相同數量的驅動器)。如果多個 RAID 組大小實現了均勻的 RAID 組布局,建議使用上述范圍之內的更大的 RAID 組大小值。如果無法避免不完整的 RAID 組(有時會出現這種情況),則建議聚合所缺少的驅動器數量最多比 RAID 組數量少一個(否則,您將會選擇下一個最小的 RAID 組大小)。應在 RAID 組中均勻分布導致 RAID 組不完整的缺少的驅動器,以使每個 RAID 組所缺少的驅動器不超過一個。

RAID-DP 管理

如果使用或轉換為 RAID-DP,操作流程需要很少的更改,甚至無需任何更改。存儲系統可以包含混合的 RAID 4 和 RAID-DP 聚合,并且用于管理的命令可保持不變。

RAID-DP 重建

如果發生雙磁盤故障,RAID-DP 將自動提高重建流程的優先級,從而可以更加快速地完成恢復。因此,從雙故障磁盤中重建數據所花費的時間略微少于從單磁盤故障中重建數據。在發生雙磁盤故障的情況下,很可能是一個磁盤先于另一個磁盤發生故障,并且至少已使用水平奇偶校驗重新創建一些信息。RAID-DP 將在第二個磁盤故障中缺少兩個元素的地方開始恢復,以自動調節此情況。

借助 Data ONTAP 所具有的一些選項,存儲管理員可以調整 RAID 重建對系統性能所帶來的影響。

默認情況下,raid.reconstruct.perf_impact 選項設置為“中”。此選項包括三個值:低、中和高。將此選項設置為“低”可能會增加 RAID 重建的完成時間,因為系統資源設置為優先響應前臺 I/O。將此選項設置為“高”將支持 RAID 恢復操作與前臺 I/O 競爭獲得更多系統資源(因而會降低前臺 I/O 性能)。

在某些情況下,可能需要調整此選項,但這應該是最后的手段。NetApp 一般建議保留默認值。

結論

NetApp RAID-DP 技術是一個重要的靈活性工具,可用于幾乎所有常見存儲工作負載。

本文作者:

NetApp高級技術營銷工程師 Carlos Alvarez 和技術營銷工程師 Jay White

?

未經允許不得轉載:存儲在線-存儲專業媒體 » 基礎知識回顧:RAID-DP
分享到

huanghui

相關推薦

精品国产午夜肉伦伦影院,双性老师灌满浓jing上课h,天天做天天爱夜夜爽,攵女乱h边做边走