Dovrebbe funzionare così:
# mdadm --manage /dev/md42 --readonly --add-journal /dev/loop3
mdadm: Journal added successfully, making /dev/md42 read-write
mdadm: added /dev/loop3
Tuttavia, attualmente (usando il kernel 4.18, mdadm 4.1-rc) ciò sembra essere possibile solo per gli array che sono stati creati con journal in primo luogo. L'output precedente è stato prodotto dopo:
# 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
Creando un array senza journal, tutti i tentativi di aggiungere un journal falliscono:
# 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
Quindi non sembra ancora possibile.
Ho trovato una discussione sulla mailing list linux-raid secondo cui questa è una funzionalità pianificata. Se è stato implementato da allora, non vedo come. Forse contatta tu stesso la mailing list per ricordare agli sviluppatori mdadm che ci sono persone che vogliono che funzioni!
Potrebbe essere necessario ricorrere a mdadm --create
per ricreare il raid o modificare i metadati dell'array. Entrambe le opzioni sono un po' pericolose.