Eu tenho um servidor Debian com MD raid (2 ativos, um sobressalente):
Personalities : [raid1]
md1 : active raid1 sdc2[0] sdb2[1] sda2[2](S)
1068224 blocks [2/2] [UU]
md0 : active raid1 sdc1[2](S) sdb1[1] sda1[0]
487315584 blocks [2/2] [UU]
bitmap: 5/233 pages [20KB], 1024KB chunk
unused devices: <none>
Sempre que inicializo este servidor, a matriz se degrada e começa a sincronizar o disco sobressalente. O problema é que parece ser porque há um disco USB conectado a ele, que atualmente é /dev/sdd
. Ele inicializa bem quando este disco não está presente. /dev/sdd1
, a única partição, não possui superbloco md e o tipo de partição é Linux, não raid autodetect.
Este é o detalhe do dispositivo espelho para md0
:
mdadm --detail /dev/md0
/dev/md0:
Version : 0.90
Creation Time : Sun Jun 8 04:10:39 2008
Raid Level : raid1
Array Size : 487315584 (464.74 GiB 499.01 GB)
Used Dev Size : 487315584 (464.74 GiB 499.01 GB)
Raid Devices : 2
Total Devices : 3
Preferred Minor : 0
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Tue Sep 15 09:23:33 2015
State : active
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
UUID : 9e408fbb:563a5459:f999b789:24d3b44e
Events : 0.83145
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
2 8 33 - spare /dev/sdc1
Os detalhes de /dev/sdc1
realmente mostram que é sobressalente:
mdadm --examine /dev/sdc1
/dev/sdc1:
Magic : a92b4efc
Version : 0.90.00
UUID : 9e408fbb:563a5459:f999b789:24d3b44e
Creation Time : Sun Jun 8 04:10:39 2008
Raid Level : raid1
Used Dev Size : 487315584 (464.74 GiB 499.01 GB)
Array Size : 487315584 (464.74 GiB 499.01 GB)
Raid Devices : 2
Total Devices : 3
Preferred Minor : 0
Update Time : Sat Sep 12 21:09:59 2015
State : clean
Internal Bitmap : present
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Checksum : 7761bb13 - correct
Events : 83145
Number Major Minor RaidDevice State
this 2 8 33 2 spare /dev/sdc1
0 0 8 1 0 active sync /dev/sda1
1 1 8 17 1 active sync /dev/sdb1
2 2 8 33 2 spare /dev/sdc1
Realmente nada fora do comum.
Qualquer ideia?
Editar:
O conteúdo relevante de /etc/mdadm/mdadm.conf
:
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=9e408fbb:563a5459:f999b789:24d3b44e
spares=1
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=e4578e57:9e0fd9e9:c7736f30:0e251564
spares=1
Este tipo de correspondência com a saída de mdadm --detail --scan
:
ARRAY /dev/md0 metadata=0.90 spares=1 UUID=9e408fbb:563a5459:f999b789:24d3b44e
ARRAY /dev/md1 metadata=0.90 spares=1 UUID=e4578e57:9e0fd9e9:c7736f30:0e251564
É talvez a nova linha?
- Kernel 3.2.0-4-686-pae.
- Debian 7.8
- mdadm - v3.2.5 - 18 de maio de 2012
Acho que você pode ter um mdadm.conf muito antigo em seu initramfs e/ou mdadm fica confuso durante a descoberta e inicialização dos arrays.
Tente dizer ao mdadm para considerar apenas discos no barramento PCI, adicionando a seguinte linha em mdadm.conf:
Indo um passo além, você pode especificar diretamente os próprios discos. Certifique-se de usar um endereçamento independente de ordem (por exemplo, por UUIDs) e de colocar o sobressalente na última entrada:
Para ir ainda mais longe, após a etapa anterior, você também pode adicionar atributos devices= às tags ARRAY, fornecendo o layout exato de sua raid para mdadm. Considere a ordem dos dispositivos aqui também.
Depois disso, não se esqueça de atualizar o initramfs, pois o mdadm.conf também faz parte do processo de inicialização do boot: