o volume mdadm funciona, mas não monta / monta na inicialização?

7

Eu tenho um volume mdadm / lvm2 com 4 HDs que eu criei no Ubuntu 10.04. Acabei de atualizar o computador para o Ubuntu 10.10.

Eu refiz os comandos mdadm para colocar o volume em funcionamento, mdadm --detail --scan > /etc/mdadm/mdadm.conf para obter o arquivo de configuração.

Mas agora, toda vez que eu reinicializo, ele me diz que o volume não está pronto. / proc / mdstat diz que eu sempre tenho um disco do volume "inativo" como md_d127. Eu preciso parar este volume e remontar tudo para que funcione.

Isto é o que eu saio do mdadm --detail --scan e coloco dentro de /etc/mdadm/mdadm.conf:

ARRAY /dev/md127 level=raid5 num-devices=4 metadata=01.02 name=:r0 UUID=7610a895:a54fe65b:c9876d2a:67f4a179

E este é o meu / proc / mdstat no boot:

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md127 : inactive sdb1[2](S) sdd1[0](S) sda1[4](S)
      2930279595 blocks super 1.2

md_d127 : inactive sdc1[1](S)
      976759865 blocks super 1.2

unused devices: <none>

Eu preciso fazer o mdadm -S / dev / md_d127, o mdadm -S / dev / md127, o mdadm -A --scan para fazer esse volume funcionar novamente.

O que está acontecendo? Isso não aconteceu com o Ubuntu 10.04. Eu realmente estou com medo da perda dos meus dados do raid5 agora.

    
por Stride 18.11.2010 / 18:04

4 respostas

3

O problema é que a versão atualizada de mdadm depende do mdadm.conf presente em seu initrd , o que provavelmente não é preciso / completo. Para verificar seu conteúdo, faça isso:

gunzip -c /boot/initrd.img-2.6.38-11-generic | cpio -i --quiet --to-stdout etc/mdadm/mdadm.conf

Se ele não contiver entradas ARRAY precisas, o mdadm tentará usar o nome configurado no superbloco como o nome do link em /dev/md/ , que será vinculado a algo como /dev/md127 . Isso obviamente não corresponde ao comportamento anterior.

Em vez de usar diretamente mdadm -Ds ou mdadm -Es para gerar /etc/mdadm/mdadm.conf , provavelmente é melhor usar o script /usr/share/mdadm/mkconf :

sudo /usr/share/mdadm/mkconf force-generate /etc/mdadm/mdadm.conf

A etapa mais importante é reconstruir seu initramfs para incluir a configuração atualizada:

sudo update-initramfs -u

Na verdade, graças à mágica em /usr/share/initramfs-tools/hooks/mdadm , /usr/share/mdadm/mkconf será executado automaticamente se /etc/mdadm/mdadm.conf não existir ou não contiver matrizes. Se ele existir e contiver apenas um subconjunto de suas matrizes ativas, um aviso será exibido para cada matriz ausente e você deverá gerar manualmente um novo mdadm.conf .

    
por 03.10.2011 / 19:51
2

Você também pode verificar se o udev está carregando o mdadm.

Procure por /lib/udev/rules.d/85-mdadm.rules ; certifique-se de que tenha algo assim:

\# This file causes block devices with Linux RAID (mdadm) signatures to
\# automatically cause mdadm to be run.
\# See udev(8) for syntax

SUBSYSTEM=="block", ACTION=="add|change", ENV{ID_FS_TYPE}=="linux_raid*", \
        RUN+="/sbin/mdadm --incremental $env{DEVNAME}"

Se não copiar isto em /etc/udev/rules.d/85-mdadm.rules - NOTA /etc NÃO /lib .

    
por 21.02.2011 / 09:11
1

Eu usei a reformatação de todo o array. Isso funciona no Ubuntu 10.10.

sudo mdadm -C /dev/md0 -l 5 -n 4 -e 1.2 /dev/sd[bcde]1
sudo mdadm -Ds | sudo tee /etc/mdadm/mdadm.conf

sudo pvcreate /dev/md0
sudo vgcreate vg0 /dev/md0
sudo lvcreate vg0 --name lv0 --extents '100%FREE'

sudo mkfs.ext4 /dev/vg0/lv0
    
por 19.11.2010 / 10:34
1

Por favor edite isto

metadata=01.02

com

metadata=1.02

Porque os resultados de

#mdadm --detail --scan > /etc/mdadm/mdadm.conf

não está completamente correto.

    
por 21.02.2011 / 09:34