md raid falha ao inicializar com a unidade ausente

1

Eu tenho um servidor com Debian Jessie, 4 Drives sda para sdd todos os quais são particionados da mesma forma. O sistema está em um ataque raid1 md sobre todas as unidades. Todas as unidades têm grub e eu posso trocar discos uns com os outros, cada um é inicializável e o sistema é inicializado feliz. Todas as unidades contêm exatamente o mesmo formato:

  sdx1 - Boot Partition, GRUB installed
  sdx2 - Raid 1 /boot
  sdx3 - Raid 1 /
  sdx4 - Raid 10 swap
  sdx5 - non-md btrfs Raid 6 /data

A partição de dados é raid6 btrfs, atualmente estou tentando atualizar minha capacidade trocando uma unidade por uma maior, já que posso ter duas falhas. Meu primeiro instinto foi simplesmente substituir uma das unidades e fazer o boot de volta , restaure as matrizes de raide com falha com a unidade recém-instalada e após a reconstrução tudo voltará ao normal.

Mas a máquina (que infelizmente está sem cabeça atualmente) não inicializa uma vez que eu troco as unidades para algo que invalida a matriz de ataque. Eu posso trocar os discos um com o outro o dia todo e felizmente botas. Mas se eu remover um disco ou trocar qualquer coisa que não faça parte do ataque, ele não inicializa.

Estou faltando alguma coisa? Como posso dizer ao md que está ok inicializar com discos ausentes / matriz degradada automaticamente? No final, até onde md está preocupado, mesmo um dos quatro discos pode suportar todo o sistema por si só, a partição de dados é outra besta, pois precisa de pelo menos duas unidades, mas md não deve se preocupar com isso, pois é um btrfs puro raid.

Eu sei que para o atual usecase eu poderia apenas remover a unidade do ataque, atualizá-la e depois colocá-la de volta, mas no caso de uma falha eu não tenho a possibilidade de remover a unidade se o sistema não falha ao iniciar.

    
por bardiir 22.01.2017 / 01:17

2 respostas

0

Como uma atualização e a resposta - nesse meio tempo eu descobri que a única coisa que realmente falta aqui era a bandeira do nofail no fstab. O sistema de arquivos foi degradado e não montaria o sistema de arquivos em um estado degradado sem que a opção nofail estivesse definida.

    
por 03.05.2017 / 12:55
0

Até onde eu sei, ainda não é possível criar um ataque com mdadm que você possa inicializar sem ter partições de inicialização separadas. Eu suponho que você configurou de uma maneira semelhante à descrita aqui, ele usa um raid10, mas se aplica a outros níveis de raid:

Como criar um sistema Debian redundante inicializável com um software de disco de 3 ou 4 (ou mais) raid10?

É possível que você não tenha configurado os outros discos para serem inicializados no BIOS? Ou então as partições de inicialização não são exatamente as mesmas, isto é, cópias exatas com o mesmo UUID.

Para permitir que um disco específico seja inicializado, ele precisará ter um setor de inicialização e o BIOS precisará ser configurado para inicializar a partir dele (junto com uma lista de outros discos de inicialização que fazem parte do RAID). É claro que para que uma inicialização seja concluída com êxito, o disco também precisará ter uma partição de inicialização. Como essas partições de inicialização não fazem parte do ataque, cada disco de inicialização tem o seu próprio. Se você garantir que cada partição de inicialização contenha exatamente o mesmo sistema de arquivos (usando o dd, por exemplo, para copiá-la) e cada disco tenha um setor de inicialização criado usando as imagens nessa partição, o sistema deve inicializar a partir de qualquer um dos discos . Mesmo se o ataque for degradado, um ataque degradado não deve impedir uma inicialização bem-sucedida. Caso contrário, isso renderiza um grande benefício em ter um raid debugante.

Citando o link:

Each disk that is part of the raid should have a bootable partition of about 1 GB that is NOT part of the raid. Create these partitions as normal, they have to be exactly the same size. Mark them as bootable, the mountpoint on one of the disks should be /boot, you can leave the others as unmounted.

Depois de usar o dd para fazer cópias exatas da partição de inicialização:

Now make sure that your bios is configured to attempt to boot from all 3 disks, order doesn't matter. As long as the bios will try to boot from any disk then in case one of the disks fails the system will automagically boot from the other disk because the UUIDs are exactly the same.

    
por 25.01.2017 / 00:32