Criando uma matriz raid1 particionada para inicializar um sistema debian squeeze

2

Gostaria de ter a seguinte configuração do raid1 (mirror):

/dev/md0 consists of /dev/sda and /dev/sdb

Eu criei este dispositivo raid1 usando

mdadm --create --verbose /dev/md0 --auto=yes --level=1 --raid-devices=2 /dev/sda /dev/sdb

Isso deu um aviso sobre metadados sendo 1.2 e meu sistema pode não inicializar. Eu não posso usar 0.9 porque restringe o tamanho do raid para 2TB e eu assumo que o grub enviado com o debian (squeeze) mais recente deve ser capaz de manipular metadados 1.2.

Então eu criei as partições necessárias assim:

# creating new label (partition table)
parted -s /dev/md0 mklabel 'msdos'

# creating partitions
sfdisk -uM /dev/md0 << EOF
0,4096
,1024,S
;
EOF

# making root filesystem
mkfs -t ext4 -L boot -m 0 /dev/md0p1

# making swap filesystem
mkswap /dev/md0p2

# making data filesystem
mkfs -t ext4 -L data /dev/md0p3

Depois montei a partição raiz, copiei uma instalação mínima do Debian e instalei temporariamente o / dev / proc / sys. Depois disso eu chrooted para a nova pasta raiz e executado:

grub-install --no-floppy --recheck /dev/md0

No entanto, isso falha muito com:

/ usr / sbin / grub-probe: erro: sistema de arquivos desconhecido. A detecção automática de um sistema de arquivos de / dev / md0p1 falhou. Por favor, reporte isso junto com a saída de "/usr/sbin/grub-d probe --device-map = /boot/grub/dispositivo.map --target = fs -v /boot/grub" para

Eu não acho que seja um bug no grub (então eu não relatei ainda) mas uma falha minha. Então, eu realmente me pergunto como configurar corretamente meu raid1, tudo que eu tentei até agora falhou.

    
por gucki 06.01.2012 / 10:02

3 respostas

1

Você deve instalar o grub nos seus discos MBR, não em / dev / md0, então execute grub-install /dev/sda ; grub-install /dev/sdb . Este trabalho é melhor?

    
por 06.01.2012 / 10:25
1

Eu não acho que seja uma boa ideia criar partições no ataque. Uma abordagem melhor seria criar partições em cada dispositivo e criar os ataques em conformidade.

Além disso, crie 2 partições inicializáveis com exatamente o mesmo tamanho (assim como as partições raid devem corresponder em tamanho) que não farão parte do raid e certifique-se de que sejam exatamente iguais para que o sistema possa ser inicializado um.

Eu também prefiro partições separadas para os locais usuais, como / var, / tmp, / usr, / home etc.

Por exemplo:

/dev/sd[ab]1 - /boot
/dev/sd[ab]2 - swap
/dev/sd[ab]3 - /
/dev/sda[ab]4 - /usr
/dev/sda[ab]5 - /tmp
/dev/sda[ab]6 - /var
/dev/sda[ab]7 - /home

Crie invasões de cada partição, exceto a primeira. Por exemplo:

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sd[ab]2

e assim por diante.

Em seguida, atribua / boot para / dev / sda1 e verifique se o MBR está salvo em / dev / sda e / dev / sdb. Uma vez instalado todo o sistema (bs = 500M irá acelerar muito o dd, ajustar 500M para cerca de 2/3 da memória do seu sistema):

dd bs=500M if=/dev/sda1 of=/dev/sdb1

Agora, desde que o BIOS tente inicializar a partir de qualquer disco, então, caso um dos discos falhe, o sistema inicializará automaticamente a partir do outro disco, porque os UUIDs são exatamente iguais. Não se esqueça de, às vezes, repetir o comando dd se o / boot foi alterado, digamos com uma atualização do kernel.

Você quer testá-lo mudando a prioridade de inicialização do bios. E se você se sentir sortudo, teste-o arrancando um disco: -)

Isso funcionará com um raid10 também, eu fiz isso com um raid1 e um raid10, até mesmo um raid10 de 3 discos (o que é realmente possível com o mdadm).

A propósito, você tem que usar uma partição de inicialização que não faz parte do ataque, porque senão seu sistema não pode inicializar. Tem que haver uma maneira para o ataque ser iniciado e, como é um problema, primeiro o kernel precisa ser carregado para que o ataque seja reconhecido.

    
por 06.01.2012 / 20:31
0

Faça sudo update-grub . Há uma chance de que seu /boot/grub/device.map não esteja atualizado e o erro do mapa de dispositivos desatualizado seja o mesmo.

    
por 18.12.2013 / 11:47