Isso deve funcionar assim:
# mdadm --manage /dev/md42 --readonly --add-journal /dev/loop3
mdadm: Journal added successfully, making /dev/md42 read-write
mdadm: added /dev/loop3
No entanto, atualmente (usando o kernel 4.18, mdadm 4.1-rc), que parece ser possível apenas para matrizes que foram criadas com o diário, em primeiro lugar. A saída acima foi processada depois:
# 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
Criando uma matriz sem diário, todas as tentativas de adicionar um diário falham:
# 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
Por isso, parece que ainda não é possível.
Eu encontrei uma discussão na lista de discussão do linux-raid que esse é um recurso planejado. Se foi implementado desde então, não vejo como. Talvez entre em contato com a própria lista de discussão para lembrar os desenvolvedores do mdadm que existem pessoas que querem que isso funcione!
Você pode ter que recorrer a mdadm --create
para recriar a invasão ou editar metadados da matriz . Qualquer opção é um pouco perigosa.