Linux
將 linux md raid 寫入日誌添加到現有陣列
我有一個帶有相當大磁碟的 raid5 陣列,因此在斷電的情況下重建速度非常慢。值得慶幸的是,有
--write-journal
linux md raid 的選項。手冊頁列出了For create, build, or grow:--write-journal
部分中的選項,所以我認為它應該在增長模式下工作,並嘗試動態添加寫入日誌:# mdadm --grow /dev/md1 --write-journal /dev/ssd/md1-journal mdadm: :option --write-journal not valid in grow mode
有誰知道我是否可以將寫入日誌添加到現有數組?如果是這樣,怎麼辦?
它應該像這樣工作:
# mdadm --manage /dev/md42 --readonly --add-journal /dev/loop3 mdadm: Journal added successfully, making /dev/md42 read-write mdadm: added /dev/loop3
但是,目前(使用核心 4.18,mdadm 4.1-rc)似乎只有首先使用 journal 創建的數組才有可能。上述輸出是在以下情況下產生的:
# mdadm --create /dev/md42 --level=5 --raid-devices=3 /dev/loop[012] --write-journal /dev/loop3 mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md42 started. # mdadm --manage /dev/md42 --fail /dev/loop3 --remove /dev/loop3 mdadm: set /dev/loop3 faulty in /dev/md42 mdadm: hot removed /dev/loop3 from /dev/md42
創建一個沒有日誌的數組,所有添加日誌的嘗試都失敗:
# mdadm --create /dev/md42 --level=5 --raid-devices=3 /dev/loop[012] mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md42 started. # mdadm --manage /dev/md42 --readonly --add-journal /dev/loop3 mdadm: /dev/md42 does not support journal device. # mdadm --manage /dev/md42 --readwrite --add /dev/loop3 # echo journal > /sys/block/md42/md/dev-loop3/state bash: echo: write error: Invalid argument
所以這似乎還不可能。
我在 linux-raid 郵件列表上發現了一個討論,這是一個計劃中的功能。如果它已經實施,我不知道如何實施。也許您自己聯繫郵件列表以提醒 mdadm 開發人員有些人希望這個工作!
您可能不得不求助於
mdadm --create
重新創建 RAID或編輯陣列的元數據。任何一種選擇都有點危險。