未使用 mdadm 外部位圖

未使用 mdadm 外部位圖

我已將位圖放在外部 EXT4 磁碟機 (1xHDD) 上,但我希望每當 RAID10 陣列上的資料發生變更時也會寫入該文件,對吧?
我甚至對位圖檔案進行了校驗和,它肯定沒有改變。
檔案大小僅為 2KB(點陣圖區塊大小設定為 64MB)

  • 我嘗試停止並啟動數組,沒有變化,沒有寫入文件
  • 如果在數組啟動時無法訪問該文件,我會收到錯誤訊息,mdadm: Could not open bitmap file /mnt/1xHDD/R10_bitmap.dat這很好

mdadm 行程的狀態cat /proc/mdstat在此輸入影像描述

數組詳細資訊mdadm --detail /dev/md127在此輸入影像描述

檢查點陣圖文件mdadm -X /mnt/1xHDD/R10_bitmap.dat

      Filename : /mnt/1xHDD/R10_bitmap.dat
         Magic : 6d746962
       Version : 4
          UUID : 39f863d1:4d247162:c3672454:1765abe2
        Events : 2914
Events Cleared : 2914
         State : OK
     Chunksize : 64 MB
        Daemon : 5s flush period
    Write Mode : Normal
     Sync Size : 624877568 (595.93 GiB 639.87 GB)
        Bitmap : 9535 bits (chunks), 0 dirty (0.0%)

我的 mdadm.conf 的內容:

HOMEHOST <system>
MAILADDR root
ARRAY /dev/md/SRV01:R10_HDD metadata=1.2 bitmap=/mnt/1xHDD/R10_bitmap.dat name=SRV01:R10_HDD UUID=39f863d1:4d247162:c3672454:1765abe2

順便問一下,關於將點陣圖檔案放置在單一硬碟上有什麼意見嗎?嘗試重命名它,數組繼續沒有問題,儘管mdadm --details...會告訴位圖已被刪除。

附加說明:轉移到外部位圖後,該 RAID10 陣列上的寫入效能從 135MB/s 提高到 370MB/s! (使用直接 IO,即未使用頁面快取)。

答案1

我看來外部點陣圖檔案畢竟可以運作。

正如 Stephen Kitt 在評論中指出的那樣,該文件通常非常小,特別是當您使用大圖塊大小時。 (我預計它會大得多)。

為什麼我沒有觀察到位圖檔的變化是因為我忘記了我使用 EXT4 選項安裝了檔案系統noatime(不會更新修改日期時間),並且當我對檔案進行 MD5 校驗和時,陣列位於時間同步,所以沒有變化。

其次,關於將外部位圖放置在「不安全」的 1x 驅動器上的穩定性/風險:
在運行時取下位圖檔案所在的驅動器不會對正在運行和受影響的陣列帶來任何不穩定。 mdadm 只是報告位圖檔案已被“刪除”,但陣列繼續正常工作。儘管在重新啟動陣列時(例如重新啟動時)不會聯機,直到您重新配置點陣圖(到noneinternal另一個external點陣圖檔案)。
總而言之,我發現將其放置在非鏡像磁碟上是安全的。

mdadm 文件和所有 mdadm 指南中都低估了使用預設內部位圖對效能的影響有多大,至少在 RAID10 和 RAID5 上是如此。

剛剛在 R5 上做了一個快速基準測試:
點陣圖:內部,寫入:267MB
位圖:無,寫入:434MB
(總測試大小 20G,區塊大小 512K,啟用頁面快取)

相關內容