英特爾矩陣儲存管理器與 Linux 軟體 RAID

英特爾矩陣儲存管理器與 Linux 軟體 RAID

我使用的晶片組支援 Intel RSTe 技術。這意味著我有兩個 RAID 設定選項:

  • 普通linux軟體RAID,使用mdadm指令。
  • RSTe(透過 BIOS 或再次使用帶開關mdadm的命令-e imsm)。

鑑於mdadm兩者都可以使用,我無法理解兩者之間的差異。

  • 與常規 Linux 軟體 RAID 相比,RSTe 為我帶來了什麼?
  • md當處於 RSTe 模式時,是由 Linux或 BIOS處理的實際 RAID I/O 路徑(即鏡像和條帶化) 。
  • 特別是,當我使用“矩陣 RAID”(即 RAID 覆蓋特定分割區而不是整個磁碟)時,我是否需要在兩個 MBR 上手動安裝 grub?

答案1

概述

可用的 RAID 共有三種常見類型:

  • Software RAID:這意味著您的BIOS 和其他作業系統認為您確實有兩個獨立的磁碟,但純粹在軟體級別,您的作業系統使用某些特定於作業系統的磁碟格式進行RAID(鏡像、條帶化、奇偶校驗位等) 。所有處理均由CPU完成,無需硬體支援。

  • BIOS RAID:也稱為“Fake RAID”或“Host RAID”,這意味著您的主機板韌體(更具體地說,您的 SATA/SAS 控制器)明確支援識別 RAID 裝置。在邏輯裝置層級 ( lun),您的多個硬碟將在作業系統中顯示為單一磁碟機。這基本上是 SATA/SAS 控制器在說「我真的只有一個硬碟。好吧,它實際上是兩個,但是噓,它只是一個,相信我」。換句話說,作業系統可以告訴這是一個 RAID 設置,但作業系統*不負責 RAID 奇偶校驗/條帶化等的磁碟格式。然而,即使在這種模式下,CPU 也會執行奇偶校驗位元和條帶化的所有計算。主機板、BIOS 和 SATA 控制器具有足夠的邏輯來實體「組合」設備並定義 RAID 的磁碟格式。但它們缺乏專用處理器來進行計算,並依賴作業系統內的軟體來告訴 CPU 來完成這些計算,這就是為什麼您仍然必須告訴 Linux 有關您的 BIOS RAID 的資訊。 (Intel Matrix / RST 是 BIOS RAID 的一種)。

  • Hardware RAID:這裡有一個專用晶片,其唯一目的是處理 RAID 所需的資料。該晶片的功能相當強大;一些硬體RAID 控制器實際上具有雙核心、類似於CPU 的板載晶片,儘管它經過專門優化以運行嵌入式作業系統,該作業系統在執行RAID 計算方面非常快,例如RAID-5 的奇偶校驗位或RAID 的條帶化-0。硬碟透過實體電纜連接到 RAID 卡,該卡提供 SATA/SAS 控制器、通常是 DRAM 或快閃記憶體中的讀寫快取、本機命令佇列以及執行更多數學計算的板載中央處理器。這些硬體晶片的價格從入門級的 150 美元到工業資料中心 RAID 背板的數千美元不等。

相容性

一般來說,每種類型的 RAID 都與某個特定方面“綁定”,當該方面發生變化時,您就會遇到相容性問題。

  • 軟體 RAID 與定義 RAID 格式的作業系統相關聯。有時,在同一作業系統的兩個不同版本之間,RAID 格式會被破壞,導致不相容。儘管從概念上講,任何其他作業系統都可以支援任何軟體 RAID 格式,因為它是只是軟體實際上,大多數作業系統都提供不相容的 RAID 格式,只有該作業系統才能識別。然而,最廣為人知的兼容性是 Linux 核心本身使用的 RAID 格式(md正如您在 OP 中討論的那樣),它也可以識別 Windows 的軟體 RAID,稱為動態磁碟。

  • BIOS RAID 與您擁有的主機板相關。可以將使用特定 BIOS RAID 格式格式化的磁碟機移至另一個具有類似 BIOS RAID 解決方案的主機板;例如,Intel RST 到另一個有 RST 的系統。但在採取行動之前,您需要仔細研究這一點,以確保如果您關心它是否相容,那麼它是相容的。

  • 硬體 RAID 與特定的硬體控制器或製造商明確聲明相容的一系列硬體控制器相關聯。一些供應商維護非常一致的硬體 RAID 磁碟格式,許多代控制器都支援該格式;其他人則更頻繁地更改格式。同樣,您必須根據具體情況進行研究。

表現

性能很大程度取決於如何你配置了RAID陣列的基本參數,具體解決方案就不多說了。一般來說,硬體 RAID 控制器具有最高效能的「天花板」;它們也不會像其他解決方案那樣對您的 CPU 造成負擔。但是,如果您為工作負載選擇了錯誤的 RAID 類型,或者錯誤的條帶大小,或者錯誤的快取方法,則硬體 RAID 控制器也可能非常慢,比在非 RAID 模式下運行的磁碟機之一慢。其他解決方案也是如此,但速度也可能非常慢。

  • 軟體 RAID 最適合 RAID-1 配置,因為鏡像是將相同資料簡單複製到兩個驅動器,並且無需計算奇偶校驗位。軟體 RAID 上的 RAID-5 非常糟糕。

  • BIOS RAID 效能通常與軟體 RAID 相當,但某些 BIOS RAID 控制器和磁碟格式已知有錯誤或效能較差。一般來說,如果您必須在軟體 RAID 和 BIOS RAID 之間進行選擇,前者的效能更有希望,尤其如果您正在運行最新的 Linux 發行版。

  • 由於 RAID 控制器處理器的最佳化處理能力,硬體 RAID 性能可以非常快,正如我所說,它是為高吞吐量而設計的,並且實際上可以作為多核心晶片 - 所以這是一些嚴肅的鐵。主要缺點是您失去了靈活性(您不能將磁碟機插入另一台沒有硬體 RAID 控制器的電腦)和費用。硬體 RAID 是使用 RAID-5 或 RAID-6 的最佳級別,特別是如果您有很多磁碟(4 個或更多)。

全面的

雖然 BIOS RAID 是支持的對於Linux,我不建議你使用它。

在我給你冗長的答案之後,現在直接回答你的問題:

與常規 Linux 軟體 RAID 相比,RSTe 為我帶來了什麼?

請參閱上面軟體 RAID 和 BIOS RAID 之間的比較。 「RSTe」是 BIOS RAID 的一個實例;不含 RAID 的Linux mdRAID-e imsm是軟體 RAID 的一個實例。

當處於 RSTe 模式時,是由 Linux md 或 BIOS 處理的實際 RAID I/O 路徑(即鏡像和條帶化)。

如果您指的是資料路徑,則它始終由 CPU(以及作業系統)處理,除非您有專用的硬體 RAID 卡。我不思考這些可以安裝在任何主機板上,儘管一些高階伺服器晶片組可能會讓我感到驚訝...

特別是,當我使用“矩陣 RAID”(即 RAID 覆蓋特定分割區而不是整個磁碟)時,我是否需要在兩個 MBR 上手動安裝 grub?

不需要。讓我們具體情況具體分析:

  • 軟體RAID:任意選擇一個磁碟來安裝GRUB,並在BIOS中將其設定為首先啟動。請記住,如果需要,您可以鏡像各個分割區,因此軟體 RAID 中的磁碟不必完全相同。一個人可以有一個帶有引導程式的 MBR,也可以在 MBR 中什麼都沒有。

  • BIOS RAID:BIOS 會告訴您這是一個「磁碟」(實際上它會稱之為 RAID 陣列),因此您無需選擇安裝 GRUB 的位置。當您將 Linux 安裝到此時,MBR(包括開機載入程式)和兩個磁碟的所有其他磁區將在兩個磁碟之間複製。因此,與軟體 RAID 不同,BIOS RAID 強制要求兩個磁碟必須逐塊相同,因為您無法將它們作為兩個邏輯設備分開;磁碟控制器它們是一個邏輯設備,而不是兩個。所以你不能只是說“我想寫一些數據到驅動器0而不是驅動器1”。不可能。但使用軟體 RAID 完全可以實現這一點。

  • 硬體 RAID:BIOS 會告訴您這是一個“磁碟”,而就 BIOS 而言,它甚至沒有特別意識到您正在處理多個磁碟。 RAID 控制器完全地從作業系統和 BIOS 中抽像出 RAID 的所有詳細信息,除非您可以在作業系統中使用某種自訂協定來配置某些硬體 RAID 控制器。但設備完全離不開軟體層,類似BIOS RAID。

編輯:更新更多問題解答

我仍然不明白一些事情。首先,關於 BIOS RAID:我可以使用 mdadm 建置它,因此 Linux 實際上不會向我隱藏底層磁碟。

這很奇怪,也很難解釋。基本上,圓盤在某些圖層上顯示為一個,在其他圖層上顯示為兩個。但我敢打賭,使用 BIOS RAID,每個磁碟不會有自己單獨的設備節點,例如/dev/sda/dev/sdb。如果確實如此,那麼您的 BIOS RAID 與我所看到的不同。

關於 grub 和 MBR:如果 RAID 覆蓋分割區而不是磁碟,那麼我仍然可以看到底層磁碟。 MBR 不在 RAID 下,因此您需要安裝開機載入程式兩次才能在磁碟發生故障時啟動。它是否正確?

事實並非如此傷害安裝另一個副本,但在磁碟發生故障的情況下,啟動將是您最不關心的問題。簡而言之,如果你願意就去做吧,但這不是最重要的事。將 grub 從 Live CD 安裝到 HDD 上非常簡單。

RAID 中的磁碟(特別是如果它們具有相同的品牌和型號、在同一家工廠生產、並且在相同的溫度下彼此相鄰地運行)可能會快速連續發生故障,一個接一個。因此,如果磁碟確實發生故障,僅僅聳聳肩並放入新磁碟並開始重建可能是不行的:在重建過程中,包含一致資料副本的最後一個磁碟本身很有可能會發生故障。此時,當您只剩下最後一個剩餘磁碟時,我建議您請專家(或者如果您擅長硬件,請自己動手)從原始磁碟中取出盤片,購買相同品牌/型號的新磁碟,將盤片放入其中並使用新磁碟讀取資料。這是昂貴且耗時的,但卻是保留資料的最可靠的方法。

這就是我為您回答的五個問題;如果您發現此資訊有任何價值,請適當標記答案。謝謝。

答案2

阿爾吉訶德的回答太長了:

  1. 與常規 Linux 軟體 RAID 相比,RSTe 為我帶來了什麼?

啟動支援和略有不同的功能集。它的核心是一種資料格式。 – 您甚至可以在沒有 Intel 的 RST Option ROM 的情況下使用它(那麼您就沒有特殊的啟動支援)。此格式的含義寫在mdadm手冊頁中。

  1. 當處於 RSTe 模式時,是由 Linux md 或 BIOS 處理的實際 RAID I/O 路徑(即鏡像和條帶化)。

透過Linux md(即完全核心)。

這就留下了一個問題:為什麼英特爾的 RST 僅限於某些晶片組?他們根本不參加RAID。最好的情況下,它們會儲存一點,告訴選項 ROM 拒絕在不支援的晶片組上運行。

答案3

嗯,一個答案太長,一個太短。

RST「raid」主要用於雙重開機工作站的情況,因為 Intel 生產 Windows 和 Linux 驅動程序,您可以在 BIOS 中配置 raid。您可以設定 RAID、對虛擬磁碟進行分割區,並且可以在兩個作業系統都了解多個分割區的情況下進行雙重開機。

mdam 適用於伺服器專用於 Linux 的情況。它“更好”,因為如果您正在重建陣列,您是從作業系統而不是 BIOS 進行的,因此重建速度要快得多。對於大型磁碟,BIOS raid 重建可能需要幾天。

但現實情況是,您要在綠色 C 片或藍色 C 片之間進行選擇。

如果您遺失了軟體 RAID 陣列中的磁碟,本質上這允許您立即停止伺服器、進行完整備份、更換故障磁碟以及其餘磁碟,然後重新建立陣列或嘗試重建。通常,更換磁碟然後擦除磁碟上的所有內容並重新建立陣列,然後從備份還原磁碟啟動,然後從備份還原會更快。

透過硬體陣列晶片,所有磁碟都可以放入熱插拔托盤中,當其中一個出現故障時,紅燈會亮起,在故障的磁碟上,將其彈出,用新磁碟替換它,然後硬體raid卡會自動重建伺服器仍在運作時的陣列。

雖然理論上可以做到這一點,但如果您有熱插拔托盤和 Linux mdam 軟體陣列,但實際上您可能會面臨恐慌的風險,而伺服器很容易無法在剩餘磁碟上啟動。

另一個問題涉及所使用的磁碟類型。常規工作站磁碟隨著老化開始產生壞磁區,這些壞磁區會由磁碟內部重新對應到備用磁區。問題是,此重新映射僅發生在寫入時- 如果讀取發生在壞扇區上,磁碟將延遲重新映射,並且在某些磁碟型號上將重複重新讀取壞扇區或故障扇區,每次比較結果,直到做出決定在重新映射之前擁有可以從該扇區獲得的最佳數據。此過程可能需要一分鐘左右,在此期間,陣列中現在有 1 個磁碟忽略命令代碼,因此軟體 raid 軟體將崩潰並將陣列標記為降級。重新啟動後,您現在有2 個具有相同磁區的磁碟,磁碟之間可能具有不同的數據,因此軟體RAID 管理器現在不知道哪個磁碟是“好的”,沒有錯誤的磁碟或重新映射磁區的磁碟具有現有資料的最佳近似值。 Western Digital 製造的「紅色」驅動器應該用於軟體RAID 陣列,但它們並沒有這樣做,它們只是在檢測到壞扇區並重新映射它時立即使扇區讀取失敗,以便陣列管理器可以從該磁區取得資料並將其寫入故障磁區的磁碟機。不用說,他們對這些磁碟收取額外費用。

總之,不要對無法容忍磁碟故障導致停機的伺服器使用軟體 raid。它主要適用於人們不定期備份的工作站,以及進行備份並且可以在磁碟崩潰時容忍一天左右的停機時間的小型 SOHO 伺服器。

相關內容