
Acordei esta manhã e encontrei um e-mail do meu host RAID (software RAID do Linux) informando que uma unidade havia falhado. É hardware de consumo, não é grande coisa. Tenho peças de reposição frias. No entanto, quando cheguei ao servidor, tudo não respondia. Em algum momento, percebi que não tinha escolha a não ser cortar a energia e reiniciar.
O sistema foi ativado, a unidade com falha ainda está marcada como com falha e /proc/mdstat
parece correta. No entanto, ele não monta /dev/md0
e me diz:
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 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 minha pesquisa no Google foi em vão. Agora, ainda não estou em pânico porque já tive medo antes e sempre resolveu em poucos dias. Ainda posso colocar meu dispositivo de reserva esta noite, deixá-lo reconstruir (por 36 horas) e então ver se o sistema de arquivos está em um estado mais utilizável. Talvez eu possa até tentar remodelar o array de volta para 10 unidades dos 11 atuais (já que ainda não aumentei o sistema de arquivos) e ver se isso ajuda (o que leva quase uma semana).
Mas enquanto estou no trabalho, antes de poder fazer qualquer coisa em casa esta noite, gostaria de procurar a ajuda de especialistas aqui.
Alguém com mais conhecimento sobre sistemas de arquivos e RAID tem alguma recomendação? Talvez haja algo que eu possa fazer através do SSH a partir daqui para diagnosticar melhor o problema do sistema de arquivos ou até mesmo repará-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 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?
Responder1
Acontece que a perda potencial de dados não era tão assustadora quanto eu estava começando a temer. Quando percebi que o array estava inactive
mas não podia ser montado, parei:
# mdadm -S /dev/md0
mdadm: stopped /dev/md0
Entãotentei 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 /proc/mdstat
que 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
Todas... peças sobressalentes...? Ok, com medo de novo. 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, já que alguém está sentado 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]
Dando um suspiro de alívio, 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 por toda parte. Eu preciso de uma bebida...
Responder2
Tive um problema semelhante em 2009, me gabei disso no Facebook e não consegui recriar a solução. No entanto, foi mais assustador perder dados. Estou postando para a posteridade e para minha própria capacidade de encontrá-lo.
O problema era um pouco diferente - o 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