MDADM 區塊值

MDADM 區塊值

我有一個由兩個 SSD 組成的 RAID 10 陣列,在 Linux 上使用 mdadm,

我用它創建了

mdadm --create --verbose --level=10 --metadata=1.2 --chunk=512 --raid-devices=2 --layout=f2 /dev/md/MyRAID10Array /dev/nvme0n1p3 /dev/nvme1n1p3

但我想知道為什麼當我查看數組時我得到的區塊大小為 65536kb?我也認為 --chunk=512 可能太大了。

來自 cat /proc/mdstat

md127 : active raid10 nvme1n1p3[1] nvme0n1p3[0]
      942664704 blocks super 1.2 512K chunks 2 far-copies [2/2] [UU]
      [=====>...............]  resync = 29.5% (278703616/942664704) finish=55.2min speed=200170K/sec
      bitmap: 6/8 pages [24KB], 65536KB chunk

答案1

根據 mdadm 維基https://raid.wiki.kernel.org/index.php/Mdstat,您看到的是點陣圖塊,而不是數組塊。根據上面兩行的消息,數組塊的大小是 512K,正如您所設定的那樣。雖然 wiki 並不完全清楚位圖區塊值的含義,但它確實說「記憶體中位圖為每個位圖區塊使用 16 位元來計算對該區塊的所有正在進行的寫入,因此它實際上最多比磁碟上的位圖。 「點陣圖塊」其實可能是記憶體中位圖的一「頁」的大小。您的陣列僅報告 8 頁位圖,其中 6 頁已載入到記憶體中;重新同步完成後,點陣圖的頁數應該會減少。

答案2

chunk定義 RAID 陣列元素條帶(即:資料區塊有多大)。來自手冊頁:

-c, --chunk=
              Specify chunk size in kilobytes.  The default when
              creating an array is 512KB.

mdstat第二行證實了這一點:

942664704 blocks super 1.2 *512K chunks* 2 far-copies [2/2] [UU]

資料塊不同於點陣圖區塊,定義每個位圖位所涵蓋的活動區域。這些類型的區塊要大得多 - 在您的情況下為 64MB:

bitmap: 6/8 pages [24KB], *65536KB chunk*

一般來說,對於 RAID1/10,您不需要調整這些參數。但是,請記住,預設設定是針對旋轉媒體 (HDD) 而不是針對快速 SSD 進行最佳化的,因此,如果您願意,您可以嘗試使用較小的資料區塊(即:8-64K)。不過,我不會費心調整點陣圖。

相關內容