かなり大きなディスクを含むraid5アレイがあるため、停電時に再構築が非常に遅くなります。幸いなことに、--write-journal
linux md raidのオプションがあります。マニュアルページには--write-journal
オプションがリストされています。作成、構築、または成長の場合:セクションを参照して、成長モードで動作する必要があると思い、書き込みログを動的に追加してみました。
# mdadm --grow /dev/md1 --write-journal /dev/ssd/md1-journal
mdadm: :option --write-journal not valid in grow mode
既存のアレイに書き込みログを追加できるかどうかを知っている人はいますか?それでは、どうすればいいですか?
答え1
次のように動作する必要があります。
# 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を使用)、最初にログに生成された配列でのみ機能しているようです。上記の出力は次の後に生成されます。
# 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
攻撃隊を再現するまたは、アレイのメタデータを編集します。どちらのオプションも少し危険です。
答え2
このPDFにはこれが可能であると記載されています。https://events.static.linuxfound.org/sites/events/files/slides/2016_vault_write_journal_cache_v2.pdf
mdadm --manage /dev/md0 --add-journal /dev/sdf
答え3
raidは読み取り専用状態でなければなりません。 --add-journalを参照してください。 http://man7.org/linux/man-pages/man8/mdadm.8.html
試み: mdadm --manage /dev/md0 --readonly --add-journal /dev/sdf