Meu servidor me enviou um e-mail informando que um dos meus discos não conseguiu ler um bloco. Então decido substituí-lo antes que falhe completamente. Adicionei um novo disco e substituí o que falhou.
sudo mdadm --manage /dev/md0 --add /dev/sdg1
sudo mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/dbg1
após a sincronização, eu queria remover o /dev/sdb1 com falha e removê-lo do array com:
sudo mdadm --manage /dev/md0 --remove /dev/sdb1
mas quando quero remover o disco da caixa, primeiro removo outros 2, mas coloco-os de volta imediatamente. Depois disso eu provo se meu ataque ainda está funcionando e não funcionou. Tentei reiniciar, na esperança de que ele se curasse. No passado, isso nunca foi um problema, mas também nunca substituí um disco.
Depois que isso não funcionou, dei uma olhada no que fazer e tentei adicionar novamente o disco, mas isso não adiantou e a montagem também não funcionou:
sudo mdadm --assamble --scan
detecta apenas 2 discos, então tentei dizer o nome dos discos
sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdf1 /dev/sdc1 /dev/sdd1
mas diga-me que todos os discos estão ocupados:
sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdf1 /dev/sdc1 /dev/sdd1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sda1 is busy - skipping
mdadm: /dev/sdf1 is busy - skipping
mdadm: /dev/sdc1 is busy - skipping
mdadm: /dev/sdd1 is busy - skipping
sdg1 obtém sdf1 após reiniciar.
mdstat parece detectar os discos corretos (inseri sdb1 novamente na esperança de que ajude e tentei com e sem):
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : inactive sdd1[3](S) sdb1[1](S) sdc1[2](S) sda1[0](S) sdf1[4](S)
14650670080 blocks super 1.2
unused devices: <none>
Se eu consultar apenas os discos /dev/sda1
e /dev/sdf1
mostrar o mesmo estado da matrizAA..
sudo mdadm --query --examine /dev/sda1
/dev/sda1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 7c3e9d4e:6bad2afa:85cd55b4:43e43f56
Name : lianli:0 (local to host lianli)
Creation Time : Sat Oct 29 18:52:27 2016
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 5860268032 (2794.39 GiB 3000.46 GB)
Array Size : 8790402048 (8383.18 GiB 9001.37 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262056 sectors, after=0 sectors
State : clean
Device UUID : 3e912563:b10b74d0:a49faf2d:e14db558
Internal Bitmap : 8 sectors from superblock
Update Time : Sat Jan 9 10:06:33 2021
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : c7d96490 - correct
Events : 303045
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 0
Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)
sudo mdadm --query --examine /dev/sdd1
/dev/sdd1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 7c3e9d4e:6bad2afa:85cd55b4:43e43f56
Name : lianli:0 (local to host lianli)
Creation Time : Sat Oct 29 18:52:27 2016
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 5860268032 (2794.39 GiB 3000.46 GB)
Array Size : 8790402048 (8383.18 GiB 9001.37 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262056 sectors, after=0 sectors
State : clean
Device UUID : bf303286:5889dc0c:a6a1824a:4fe1ae03
Internal Bitmap : 8 sectors from superblock
Update Time : Sat Jan 9 10:05:58 2021
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : ef1f16fd - correct
Events : 303036
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 3
Array State : AA.A ('A' == active, '.' == missing, 'R' == replacing)
sudo mdadm --query --examine /dev/sdc1
/dev/sdc1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 7c3e9d4e:6bad2afa:85cd55b4:43e43f56
Name : lianli:0 (local to host lianli)
Creation Time : Sat Oct 29 18:52:27 2016
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 5860268032 (2794.39 GiB 3000.46 GB)
Array Size : 8790402048 (8383.18 GiB 9001.37 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262056 sectors, after=0 sectors
State : clean
Device UUID : b29aba8f:f92c2b65:d155a3a8:40f41859
Internal Bitmap : 8 sectors from superblock
Update Time : Sat Jan 9 10:04:33 2021
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : 47feb45 - correct
Events : 303013
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 2
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
Vou continuar tentando, mas atualmente estou sem ideias, também é a primeira vez que troco um disco no ataque. Espero que alguém possa me ajudar.
Pelo menos eu também tenho um backup, mas não quero resetar os discos rígidos para perceber que o backup também não funciona....
Atualizar: Depois de adicionar todos os discos para montar, obtive:
sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sdf1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sda1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 1.
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sdd1 is identified as a member of /dev/md0, slot 3.
mdadm: /dev/sdf1 is identified as a member of /dev/md0, slot 1.
mdadm: added /dev/sdf1 to /dev/md0 as 1
mdadm: added /dev/sdc1 to /dev/md0 as 2 (possibly out of date)
mdadm: added /dev/sdd1 to /dev/md0 as 3 (possibly out of date)
mdadm: added /dev/sda1 to /dev/md0 as 0
mdadm: /dev/md0 assembled from 2 drives - not enough to start the array.
Responder1
Encontrei uma solução:
Após mais pesquisas e a informação de 'possível desatualização' entrei no modo detalhado ( sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sdf1
), encontrei esta página:https://raid.wiki.kernel.org/index.php/RAID_Recovery
Na seção 'Tentando montar usando --force', eles descrevem como usar força se a contagem de eventos diferente for menor que 50. O meu era muito menor, então tentei, o array raid se conecta novamente e detecta um dos discos ainda como fora de data, mas espero que seja capaz de sincronizá-lo com as informações dos outros. Pode ser que eu tenha perdido alguns dados, mas aprendi que, se removesse o disco errado do array, esperaria até que o array estivesse em sincronia...
O comando que usei para fazer meu ataque funcionar novamente:
sudo mdadm --stop /dev/md0
sudo mdadm -v -A --force /dev/md0 /dev/sda1 /dev/sdc1 /dev/sdd1 /dev/sdf1
Atualizar:
Provavelmente uma unidade não foi adicionada, então a força adicionou apenas um driver para colocar a matriz de volta em um estado funcional. O dispositivo com o maior evento diferente teve que ser adicionado posteriormente com --re-add
:
sudo mdadm --manage /dev/md0 --re-add /dev/sdc1
Agora meu array está sincronizado novamente e posso tentar remover o disco rígido com defeito novamente.