Ubuntu

是否可以創建具有遠近佈局選項的 mdadm RAID10?

  • May 1, 2016

如何創建具有近端和遠端佈局選項的 mdadm RAID10?

維基表明它是可行的。

“近”和“遠”選項可以一起使用…

mdadm 的手冊頁沒有提到它。

我只能找到這篇文章,其中某人的 mdadm –detail 使用近和遠佈局選項顯示 RAID10。另一個文章有人問它是否應該說“near=2,far=1” 。不幸的是,兩者都沒有顯示他們的數組是如何創建的。

我在創建數組時嘗試過使用語法。但它每次都會出現這個錯誤:

mdadm: layout for raid10 must be 'nNN', 'oNN', or 'fNN' where NN is a number, not n2f2(or whatever syntax I tried)

我可以使用 near 或 far 創建數組,沒有任何問題。

sudo mdadm --verbose --create /dev/md127 --level=10 --layout="What should go here to create an array using near=2 & far=2 layouts?" --chunks=512 --raid-devices=5 /dev/sd[b-f]1

我錯過了什麼?wiki 是否已過時,這不再可能了?

Linux Mint 17.3 肉桂 64 位;5 個 3.0TB 希捷 NAS 硬碟(僅用於 RAID);8GB 記憶體。

從 mdadm-3.4 原始碼來看,它不接受任何其他輸入。至於near=2,far=1輸出,這是預設值,沒有任何改變,但=1不再列印值,因為這本質上意味著“沒有額外的副本”(從 1 開始計數)。如果兩者都near相等far1則列印NO REDUNDANCY。但是,您實際上也無法創建此類,核心直接拒絕它並顯示錯誤消息。

我設法做到這一點的唯一方法是hexedit直接讀取元數據。這是 4 個 128MiB 循環設備的 RAID-10,帶有near=2, far=2副本。

# mdadm --detail /dev/md42
/dev/md42:
       Version : 1.2
 Creation Time : Sun May  1 01:47:59 2016
    Raid Level : raid10
    Array Size : 129024 (126.00 MiB 132.12 MB)
 Used Dev Size : 129024 (126.00 MiB 132.12 MB)
  Raid Devices : 4
 Total Devices : 4
   Persistence : Superblock is persistent

   Update Time : Sun May  1 01:48:00 2016
         State : clean 
Active Devices : 4
Working Devices : 4
Failed Devices : 0
 Spare Devices : 0

        Layout : near=2, far=2
    Chunk Size : 512K

          Name : EIS:42  (local to host EIS)
          UUID : 7fa3ba1e:dd0f2db9:aaf3977f:0e6dc2cb
        Events : 17

   Number   Major   Minor   RaidDevice State
      0       7        0        0      active sync   /dev/loop0
      1       7        1        1      active sync   /dev/loop1
      2       7        2        2      active sync   /dev/loop2
      3       7        3        3      active sync   /dev/loop3

它實際上似乎也有效。(警告,破壞性測試方法)

# yes > /dev/md42
# echo Hello World. > /dev/md42
# grep 'Hello World' -a -b --only-matching /dev/loop[0-3]
/dev/loop0:1048576:Hello World
/dev/loop1:1048576:Hello World
/dev/loop2:67108864:Hello World
/dev/loop3:67108864:Hello World

我將此字元串寫入 RAID 的開頭,在兩個設備上它位於 1MiB 位置(恰好是元數據偏移量),這應該是近副本,另一個位於 64MiB 位置(一半磁碟容量),我猜是遠副本…

即便如此,我也不建議為任何東西編輯 RAID 元數據。如果你這樣做,沒有其他人正在測試它……或者也許我們都缺少一些明顯的東西,誰知道呢。

更換這種 RAID 中的磁碟似乎可行。然而,成長卻沒有。

# mdadm --grow /dev/md42 --raid-devices=8 --add /dev/loop[4567]
mdadm: Cannot reshape RAID10 in far-mode

我覺得缺點太多了。除非您有充分的理由不這樣做,否則請堅持使用標準 RAID 佈局。

引用自:https://unix.stackexchange.com/questions/280283