Apesar de o array não ter qualquer problema o SMART do disco indica problemas. A troca do disco é aconselhada.
Verificar o array
Para ver o estado do array:
cat /proc/mdstat
md0 : active raid1 sdb1[0] sdc1[1]
976629760 blocks super 1.2 [2/2] [UU]
bitmap: 0/8 pages [0KB], 65536KB chunk
Para ver os detalhes do array:
mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sat Jan 21 17:33:16 2017
Raid Level : raid1
Array Size : 976629760 (931.39 GiB 1000.07 GB)
Used Dev Size : 976629760 (931.39 GiB 1000.07 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Tue Mar 19 08:48:42 2019
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : data:0 (local to host hostname)
UUID : f047a10d:ae9c8424:c469fb59:5f6773bd
Events : 13799
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
Verificar erros nos discos
É possível os discos com a ferramenta smartctl, fazendo o teste curto (cerca de 2 minutos) ou o teste longo (mais demorado):
smartctl -t short /dev/sdb
smartctl -t long /dev/sdb
Assim, apesar de o array indicar que está tudo bem, um dos disco apresenta erros nos testes SMART.
smartctl -a /dev/sdb(...)
=== START OF INFORMATION SECTION ===
Model Family: Western Digital Green
Device Model: WDC WD10EARX-00N0YB0
Serial Number: WD-WMC0T0383723(...)
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 33281 296
# 2 Short offline Completed: read failure 90% 33281 296
(...)
Substituir disco do array
Para substituir o disco é necessário provocar uma falha no disco:
mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
cat /proc/mdstat
md0 : active raid1 sdb1[0](F) sdc1[1] 976629760 blocks super 1.2 [2/1] [_U]
bitmap: 3/8 pages [12KB], 65536KB chunk
Depois é necessário remover o disco do array:
mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm: hot removed /dev/sdb1 from /dev/md0
Agora é necessário:
- desligar a máquina;
- retirar o disco em falha (é possível ver o serial number com o smartctl -a para remover o disco correto);
- colocar o novo disco;
- ligar a máquina.
Como o novo disco está vazio é necessário clonar a tabela de partições do disco bom do array para o novo:
sfdisk -d /dev/sdc | sfdisk /dev/sdbChecking that no-one is using this disk right now ... OK
Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0xd6ec1f12.
/dev/sdb1: Created a new partition 1 of type 'Linux raid autodetect' and of size 931.5 GiB.
/dev/sdb2: Done.
New situation:
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 1953523711 1953521664 931.5G fd Linux raid autodetect
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Após esta operação pode adicionar-se o novo disco ao array:
mdadm --manage /dev/md0 --add /dev/sdb1mdadm: added /dev/sdb1
O array inicia o processo de espelho do disco bom para o novo.
Como o processo é demorado, pode ser acompanhado com:
watch cat /proc/mdstat md0 : active raid1 sdb1[2] sdc1[1]
976629760 blocks super 1.2 [2/1] [_U]
[>....................] recovery = 1.0% (10220864/976629760) finish=122.3min speed=131660K/sec
bitmap: 7/8 pages [28KB], 65536KB chunk
Referências:
[1] -
Replacing a Failed Mirror Disk in a Software RAID Array (mdadm) - https://www.thegeekdiary.com/replacing-a-failed-mirror-disk-in-a-software-raid-array-mdadm/
[2] - mdadm cheat sheet - http://www.ducea.com/2009/03/08/mdadm-cheat-sheet/