mdadm coloca dispositivos errados em array na inicialização Corrigir arquivo mdadm.conf

1

Na inicialização, ele é sempre exibido:

    [root][centos ~] cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md127 : inactive sda[2] sdb[3]
      1953524992 blocks
unused devices: <none>
[root][centos ~] mdadm --stop /dev/md127 
mdadm: stopped /dev/md127
[root][centos ~] mdadm --assemble --scan
mdadm: /dev/md0 has been started with 4 drives.
[root][centos ~] cat /proc/mdstat 
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sda1[0] sdd1[3] sdc1[2] sdb1[1]
      2930279424 blocks level 5, 1024k chunk, algorithm 2 [4/4] [UUUU]          
unused devices: <none>

Você pode ver primeiro que ele detecta um BS md127, então eu tenho que parar esse, então remontá-lo, aqui está uma coisa estranha, ele detecta dois md0 mas é bem sucedido:

[root][centos ~] mdadm -Es 
ARRAY /dev/md0 UUID=39c28990:e753d835:8b94c90b:72da1a08
ARRAY /dev/md0 UUID=88edc937:2ecbc9bb:8b94c90b:72da1a08

meu mdadm.conf

[root][centos ~] cat /etc/mdadm.conf
DEVICE partitions 
ARRAY /dev/md0 UUID=88edc937:2ecbc9bb:8b94c90b:72da1a08
MAILADDR root 
CREATE owner=root group=disk mode=0660 auto=yes
HOMEHOST <system>

Mas o mais estranho, no dmesg, acho que o problema está aqui:

md: kicking non-fresh sdc from array!
md: unbind<sdc>
md: export_rdev(sdc)
md: kicking non-fresh sdd from array!
md: unbind<sdd>
md: export_rdev(sdd)
async_tx: api initialized (async)
xor: automatically using best checksumming function: generic_sse
   generic_sse:  6532.000 MB/sec
xor: using function: generic_sse (6532.000 MB/sec)
raid6: int64x1   1664 MB/s
raid6: int64x2   2148 MB/s
raid6: int64x4   1453 MB/s
raid6: int64x8   1457 MB/s
raid6: sse2x1    2417 MB/s
raid6: sse2x2    3222 MB/s
raid6: sse2x4    3429 MB/s
raid6: using algorithm sse2x4 (3429 MB/s)
md: raid6 personality registered for level 6
md: raid5 personality registered for level 5
md: raid4 personality registered for level 4
raid5: device sda operational as raid disk 2
raid5: device sdb operational as raid disk 3
raid5: allocated 4282kB for md127
2: w=1 pa=0 pr=4 m=1 a=2 r=4 op1=0 op2=0
3: w=2 pa=0 pr=4 m=1 a=2 r=4 op1=0 op2=0
raid5: not enough operational devices for md127 (2/4 failed)
RAID5 conf printout:
 --- rd:4 wd:2
 disk 2, o:1, dev:sda
 disk 3, o:1, dev:sdb
raid5: failed to run raid set md127
md: pers->run() failed ...
    
por beatbreaker 05.08.2011 / 11:56

4 respostas

0

Eu acho que encontrei, foi um problema com o meu arquivo mdadm.conf não ser específico o suficiente e possivelmente confuso para o sistema operacional.

Então eu li isso: link

E eu achei que se eu usasse isso

DEVICE partitions

Então:

This will cause mdadm to read /proc/partitions and include all devices and partitions found therein

Então eu mudei para

DEVICE /dev/sd[abcd]1

    
por 12.08.2011 / 13:36
2

Você provavelmente precisará reconstruir seu initrd para que ele tenha o arquivo mdadm.conf correto porque o processo de inicialização deve usar essa versão até que o sistema de arquivos raiz possa ser montado.

O que você precisa fazer é algo assim:

mkinitrd /boot/initrd-<kernel-version>.img <kernel-version>

Estou assumindo aqui que a versão do CentOS que você está usando ainda está usando mkinitrd - se ele mudou para dracut , então você vai querer:

dracut /boot/initramfs-<kernel-version>.img <kernel-version>

Em ambos os casos, você precisará renomear o arquivo antigo antes de poder criar o novo.

    
por 05.08.2011 / 13:16
1

O mdadm deve conseguir asselar um dispositivo md. Parece que está vendo alguns discos errados:

md127: sda inativo [2] sdb [3]

Parece que está tomando os discos sda e sdb inteiros para o array raid, e não as partições sda1 sdb1 sdc1 sdd1.

O que o blkid mostra? o que mdadm -E / dev / sda ou mdadm -E / dev / sdb mostra?

Talvez haja algo estranho acontecendo com os superblocos.

Como o TomH disse, você também deve tentar reconstruir o initrd.

    
por 05.08.2011 / 15:48
0

No Ubuntu, resolvi este problema com isto:

sudo update-initramfs -k all -u
    
por 08.08.2011 / 19:07