Como limpar md raid meta?

2

Eu tenho o host do Ubuntu 16.04 com 3 convidados do Ubuntu 17.10 no KVM (Virtual Machine Manager 1.3.2).

Eu exporto vários dispositivos de bloco de 2 convidados para o outro convidado (vamos chamá-lo frontend ) através do portal iSCSI criado por targetcli util. Depois de importá-los, uso muito o multipath para encontrar os mesmos discos "físicos" e md para criar o RAID 10 (digamos, mdadm --create --quiet --metadata=1.2 /dev/md1 --level=1 --raid-devices=2 /dev/dm-10 /dev/dm-1 ). Então eu preciso limpar essa informação.

Aí vem o problema: não se limpe. Eu passo pelas etapas usuais (digamos, para limpar md1 ):

1) mdadm -S /dev/md1

2) mdadm --zero-superblock /dev/md1

3) mdadm --zero-superblock /dev/mapper/md1

Tudo parece bem até eu remover os discos importados e reimportá-los algum tempo depois: eles aparecem de forma estocástica agrupados no RAID. Às vezes, nomes de grupos de RAID estão longe de serem originalmente criados (por exemplo, md126 e md127, enquanto eu criei apenas md1, md2, ... md12). Esses RAIDs zumbis podem ser enterrados com mdadm -S , mas eles aparecem novamente na próxima vez que os dispositivos de bloco são importados.

Por que --zero-superblock não faz seu trabalho?

UPD: Como @roaima mencionou, os comandos 2 e 3 e similares retornam erros:

Couldn't open /dev/md1 for write - not zeroing

Couldn't open /dev/mapper for write - not zeroing

Couldn't open /dev/mapper/ for write - not zeroing

Essa é praticamente a mesma resposta como se não existissem tais dispositivos - qualquer lixo como argumento retornará o mesmo erro.

UPD2: usei # cat /proc/mdstat , o que me contou mais sobre invasões:

md124 : inactive vdg[0](S)
      5238784 blocks super 1.2

md127 : inactive vdb[1](S)
      5238784 blocks super 1.2

No entanto, ainda não posso apagar nem /dev/vdg ( Couldn't open /dev/vdg for write - not zeroing ) nem /dev/md124 ( Unrecognised md component device - /dev/md124 ).

    
por ikudyk 16.12.2017 / 06:35

1 resposta

3

Ele falha, porque o seguinte comando:

mdadm --zero-superblock device

Leva o argumento device como o (s) disco (s), não o array.

Portanto, por exemplo, isso é válido e funciona para sda drive:

mdadm --zero-superblock /dev/sda

ou

mdadm --zero-superblock /dev/sda1

dependendo de como você configurou o RAID.

Como de costume, não se esqueça de atualizar seu initramfs :

update-initramfs -u
    
por 16.12.2017 / 09:06