XFS não consegue ler o superbloco

3

Eu acordei esta manhã para encontrar um e-mail do meu host RAID (RAID de software Linux) informando que uma unidade havia falhado. É hardware de consumo, não é grande coisa. Eu tenho peças frias. No entanto, quando cheguei ao servidor, a coisa toda não respondia. Em algum momento eu percebi que não tinha escolha senão cortar o poder e reiniciar.

O sistema apareceu, a unidade com falha ainda está marcada como com falha, /proc/mdstat parece correto. No entanto, ele não montará /dev/md0 e informará:

mount: /dev/md0: can't read superblock

Agora estou começando a me preocupar. Então eu tento xfs_check e xfs_repair , o primeiro dos quais me diz:

xfs_check: /dev/md0 is invalid (cannot read first 512 bytes)

e o último:

Phase 1 - find and verify superblock...
superblock read failed, offset 0, size 524288, ag 0, rval 0

fatal error -- Invalid argument

Agora estou ficando com medo. Até agora meu googling foi em vão. Agora, eu não estou em pânico ainda porque eu tenho medo antes e sempre dá certo em poucos dias. Eu ainda posso estourar minha reserva fria hoje à noite, deixe-a reconstruir (por 36 horas) e, em seguida, veja se o sistema de arquivos está em um estado mais utilizável. Posso até mesmo tentar reformular a matriz de volta para 10 unidades a partir das atuais 11 (já que ainda não desenvolvi o sistema de arquivos) e ver se isso ajuda (o que leva a maior parte de uma semana).

Mas enquanto eu estou no trabalho, antes que eu possa fazer nada disso em casa hoje à noite, gostaria de procurar a ajuda de especialistas aqui.

Alguém mais informado sobre sistemas de arquivos e RAID tem alguma recomendação? Talvez haja algo que eu possa fazer sobre o SSH daqui para diagnosticar ainda mais o problema do sistema de arquivos, ou até mesmo consertá-lo?

Editar :

Parece que /proc/mdstat está realmente oferecendo uma pista:

Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
md0 : inactive sdk1[10] sdh1[7] sdj1[5] sdg1[8] sdi1[6] sdc1[2] sdd1[3] sde1[4] sdf1[9] sdb1[0]
      19535119360 blocks

inactive ? Então eu tento montar o array:

# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 /dev/sdj1 /dev/sdk1
mdadm: device /dev/md0 already active - cannot assemble it

Já está ativo? Mesmo que /proc/mdstat esteja me dizendo que está inativo?

    
por David 01.02.2012 / 15:11

2 respostas

4

Acontece que não era tão assustador com perda de dados quanto eu estava começando a temer. Quando percebi que a matriz era inactive , mas não podia ser montada, parei:

# mdadm -S /dev/md0
mdadm: stopped /dev/md0

Então tentou montá-lo:

# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 /dev/sdj1 /dev/sdk1
mdadm: /dev/md0 assembled from 10 drives - not enough to start the array while not clean - consider --force.

Ainda um pouco assustador, vamos ver o que o /proc/mdstat tem a dizer:

# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
md0 : inactive sdb1[0](S) sdk1[10](S) sdf1[9](S) sdg1[8](S) sdh1[7](S) sdi1[6](S) sdj1[5](S) sde1[4](S) sdd1[3](S) sdc1[2](S)
      19535119360 blocks

Tudo ... peças sobressalentes ...? Ok, assustou-se novamente. Pare de novo:

# mdadm -S /dev/md0
mdadm: stopped /dev/md0

E tente o que sugere, usando --force :

# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 /dev/sdj1 /dev/sdk1 --force
mdadm: /dev/md0 has been started with 10 drives (out of 11).

10 de 11, desde que você esteja na prateleira ao lado do computador, até aí tudo bem:

# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath]
md0 : active raid6 sdb1[0] sdk1[10] sdf1[9] sdg1[8] sdh1[7] sdi1[6] sdj1[5] sde1[4] sdd1[3] sdc1[2]
      17581607424 blocks level 6, 64k chunk, algorithm 2 [11/10] [U_UUUUUUUUU]

Respirando aliviado, um teste final:

# mount /dev/md0 /mnt/data
# df -ahT
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/root     ext4     73G  6.9G   63G  10% /
proc          proc       0     0     0   -  /proc
sysfs        sysfs       0     0     0   -  /sys
usbfs        usbfs       0     0     0   -  /proc/bus/usb
tmpfs        tmpfs    1.7G     0  1.7G   0% /dev/shm
/dev/md0       xfs     15T   14T  1.5T  91% /mnt/data

Alívio ao redor. Eu preciso de uma bebida ...

    
por 01.02.2012 / 15:49
0

Eu tive um problema semelhante em 2009, me gabei disso no Facebook e não consegui recriar a solução. Foi mais perda de dados assustador, no entanto. Estou postando para a posteridade e para minha própria capacidade de encontrá-lo.

O problema foi ligeiramente diferente - gparted disse que sda1 era xfs e sda2 era desconhecido, ambos deveriam ser partições raid e o xfs deveria estar em md0

# mdadm --assemble --force /dev/md0 /dev/sda1 /dev/sdb1
# xfs_repair -v /dev/md0
# mount /dev/md0 /mount/myRaid
    
por 24.08.2018 / 16:46