Debería funcionar así:
# mdadm --manage /dev/md42 --readonly --add-journal /dev/loop3
mdadm: Journal added successfully, making /dev/md42 read-write
mdadm: added /dev/loop3
Sin embargo, actualmente (usando kernel 4.18, mdadm 4.1-rc) eso solo parece ser posible para arreglos que fueron creados con diario en primer lugar. El resultado anterior se produjo después de:
# 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
Al crear una matriz sin diario, todos los intentos de agregar un diario fallan:
# 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
Así que parece que todavía no es posible.
Encontré una discusión en la lista de correo de linux-raid de que esta es una función planificada. Si se ha implementado desde entonces, no veo cómo. ¡Tal vez comuníquese con la lista de correo usted mismo para recordar a los desarrolladores de mdadm que hay personas que quieren que esto funcione!
Puede que tenga que recurrir a mdadm --create
para volver a crear la redada o editar los metadatos de la matriz. Cualquiera de las dos opciones es un poco peligrosa.