Adicione o diário de gravação do linux md raid e o array existente

1

Eu tenho um array raid5 com discos bastante grandes, então a reconstrução é realmente lenta no caso de falta de energia. Felizmente, existe a opção --write-journal para o Linux md raid. A man page lista a opção --write-journal na seção Para criar, construir ou crescer: , então eu supus que deveria funcionar no modo de crescimento, e tentei adicionar um diário de escrita em tempo real:

# mdadm --grow /dev/md1 --write-journal /dev/ssd/md1-journal
mdadm: :option --write-journal not valid in grow mode

Alguém sabe se posso adicionar um diário de gravação a um array existente? E se sim, como?

    
por P.Péter 17.10.2018 / 11:07

1 resposta

3

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.

    
por 17.10.2018 / 12:35