
Eu tenho um servidor com Debian Jessie, 4 drives sda para sdd, todos particionados da mesma forma. O sistema está em um ataque raid1 md em todas as unidades. Todas as unidades possuem grub e posso trocar discos entre si, cada uma delas é inicializável e o sistema inicializa 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 apenas substituir uma das unidades e inicializar novamente, restaurar o matrizes de ataque com falha com a unidade recém-instalada e após a reconstrução tudo volta ao normal.
MAS a máquina (que infelizmente está sem cabeça atualmente) não inicializa quando eu troco as unidades por algo que invalida o array raid. Posso trocar os discos entre si o dia todo e ele inicializa felizmente. Mas se eu remover um disco ou trocar algo que não faça parte do ataque, ele falhará na inicialização.
Estou esquecendo de algo? Como posso dizer ao MD que não há problema em inicializar automaticamente com discos ausentes/matriz degradada? No final das contas, no que diz respeito ao MD, mesmo um dos quatro discos pode suportar todo o sistema sozinho, a partição de dados é outra fera, pois precisa de pelo menos duas unidades, mas o MD não deve se preocupar com isso, pois é um btrfs puro ataque.
Eu sei que para o caso de uso atual eu poderia simplesmente remover a unidade do ataque, atualizá-la e colocá-la de volta lá, mas em caso de falha não tenho a possibilidade de remover a unidade se o sistema falhar ao iniciar acima.
Responder1
Como atualização e resposta - entretanto, descobri que a única coisa que realmente faltava aqui era o sinalizador nofail no fstab. O sistema de arquivos estava degradado e não seria montado em um estado degradado sem que a opção nofail fosse definida.
Responder2
Até onde eu sei, ainda não é possível criar um ataque com o mdadm do qual você possa inicializar sem ter partições de inicialização separadas. Presumo que você o tenha configurado de maneira semelhante à descrita aqui, ele usa um raid10, mas se aplica a outros níveis de ataque:
É possível que você não tenha configurado os outros discos para serem inicializados na BIOS? Ou então as partições de inicialização não são exatamente iguais, ou seja, cópias exatas com o mesmo UUID.
Para permitir a inicialização de um disco específico, 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 ataque). É 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 possui a sua própria. Se você tiver certeza de que cada partição de inicialização contém exatamente o mesmo sistema de arquivos (usando dd, por exemplo, para copiá-lo) e cada disco possui um setor de inicialização criado usando as imagens nessa partição de inicialização, o sistema deverá ser capaz de inicializar a partir de qualquer um dos discos . Mesmo que o ataque esteja degradado, um ataque degradado não deve impedir uma inicialização bem-sucedida. Caso contrário, será um grande benefício ter um ataque discutível.
Citando o link:
Cada disco que faz parte do ataque deve ter uma partição inicializável de cerca de 1 GB que NÃO faz parte do ataque. Crie essas partições normalmente, elas devem ter exatamente o mesmo tamanho. Marque-os como inicializáveis, o ponto de montagem em um dos discos deve ser /boot, você pode deixar os outros desmontados.
Depois de usar o dd para fazer cópias exatas da partição de inicialização:
Agora certifique-se de que sua BIOS esteja configurada para tentar inicializar a partir de todos os 3 discos, a ordem não importa. Contanto que o BIOS tente inicializar a partir de qualquer disco, caso um dos discos falhe, o sistema inicializará automaticamente a partir do outro disco porque os UUIDs são exatamente os mesmos.