md 上的 bcache 或 bcache 上的 md

md 上的 bcache 或 bcache 上的 md

快取允許一個或多個快速磁碟機(例如基於快閃記憶體的固態磁碟機 (SSD))充當一個或多個速度較慢的硬碟的緩存

如果我理解正確的話

  • 可以指派SSD *來快取多個後備 HDD,然後可以使用 mdadm
    或mdadm 對產生的快取裝置進行 RAID 化
  • 多個 HDD 可以 RAID 到單一支援 md 裝置中,並將 SSD 指派給快取

我想知道哪種方法比較明智。我突然想到,使用一種或另一種技術來建立 RAID5/6 可能會更簡單,但我不確定是哪一種!

選擇一種方法而不是另一種方法(對於包含虛擬機器支援檔案的大型非根檔案系統)是否有充分的理由(例如,增加後備儲存或其他任何東西)?


* 「SSD」是指某種冗餘 SSD 設備,例如兩個實體 SSD 的 RAID1

答案1

我認為快取整個 md 裝置是最有意義的。

將 bcache 用來快取整個 md 裝置會犧牲整個 raid 的想法,因為它引入了另一個單點故障。

  • SSD磁碟的OTH故障相對較少,並且bcache可以放入writethrough/writearound模式(與模式相反writeback),其中沒有數據僅存儲到緩存設備,並且緩存故障不會殺死其中的信息這次突襲使其成為一個相對安全的選擇。

  • 另一個事實是,軟 RAID-5 存在顯著的計算開銷;當單獨緩存每個旋轉 raid 成員時,計算機仍然必須重新計算所有奇偶校驗,即使緩存命中

  • 顯然,如果單獨緩存每個旋轉驅動器,您會犧牲一些昂貴的 SSD 空間。- 除非您打算使用 raid ssd 快取。

  • 這兩個選項相對不會影響成長過程的時間 - 儘管旋轉驅動器單獨快取的選項有可能會影響成長過程的時間。慢點由於公車流量較多。

當您需要更換 SSD 硬碟時,設定 bcache 以刪除 SSD 磁碟機是一個快速且相對簡單的過程。感謝區塊應該可以就地雙向遷移 raid 設定。

您還應該記住,目前大多數(全部?)現場 CD 發行版不支援bcache,因此無論您選擇哪種佈局選項,bcache都不能簡單地使用此類工具存取資料。mdraid

答案2

我認為明智的方法是緩存生成的 MD 設備。

bcache 設計用於傳遞順序讀取和寫入。

如果您單獨對每個裝置進行 bcache,從 bcache 的角度來看,邏輯上將多個裝置條帶化為 raid 或 stripped MD,將不斷寫入隨機區塊。

雖然 bcached MD 卷看起來很正常,但將文件寫入該卷,而不是隨機塊到多個設備。

硬體和軟體 raid 的全部目的是在後端對資料進行條帶化,以便生成的檔案系統看起來像正常磁碟區。

這可能不正確(因為 bcache 開發人員可能很聰明並考慮了這種情況),但邏輯上的最佳做法是快取卷,而不是區塊裝置。

相關內容