Estoy observando el siguiente error en dmesg para una matriz RAID. ¿Cómo puedo encontrar qué unidad del RAID está defectuosa?
[Fri Aug 26 19:31:13 2022] EXT4-fs warning (device md0): ext4_end_bio:349: I/O error 10 writing to inode 100728932 starting block 1514702321)
[Fri Aug 26 19:31:13 2022] buffer_io_error: 80 callbacks suppressed
[Fri Aug 26 19:31:13 2022] Buffer I/O error on device md0, logical block 1514702124
[Fri Aug 26 19:31:13 2022] Buffer I/O error on device md0, logical block 1514702125
También hice una verificación de estado con smartctl en todos los discos que forman parte de RAID. Todo resultóDE ACUERDOAsí que estaba pensando que podría volver a colocar los discos una vez y eso debería funcionar, pero quería una solución a más largo plazo para identificar el disco defectuoso subyacente o algún comando que pudiera ayudarme a verificar qué está provocando el problema.
Respuesta1
Escribí un script para verificar mi RAID ya que tuve problemas con mi RAID. Resulta que necesitaba bloquear los cables SATA porque se estaban aflojando y parecía que mis unidades estaban fallando.
De todos modos, aquí está el script que ejecuto y un ejemplo a continuación en acción:
La secuencia de comandos:
#!/bin/bash
# Check for root
if [ "$EUID" -ne 0 ]; then
echo "Please run $0 as root"
echo ""
echo "example:"
echo "sudo $0"
exit 1
fi
# Check for smartmontools
smartctl -h > /dev/null
case $? in
1) echo "smartmontools is not installed. Please install it with the following command:"
echo ""
echo "sudo apt install smartmontools"
exit 1;;
0) ;;
esac
awk '/: active/ {print $1}' /proc/mdstat | while read drv
do
sudo mdadm -D /dev/$drv
done
echo ""
# Create drive array
drives=( $(smartctl --scan | awk '{print $1}') )
# Loop through array and check each drive
for ((i=0; i < ${#drives[@]}; ++i))
do
model=$(smartctl -a ${drives[$i]} | grep -i "device model:" | awk '{print substr($0,index($0,$3))}')
serial=$(smartctl -a ${drives[$i]} | grep -i "serial number:" | awk '{print $NF}')
result=$(smartctl -H ${drives[$i]} | awk '/overall-health/ {print $NF}')
echo -n "${drives[$i]} Model: $model Serial: $serial SMART: $result"
j=$(echo ${drives[$i]} | cut -d/ -f3); echo -n " Errors: "
grep -i error /var/log/kern.log 2>/dev/null | grep "$j," | wc -l
done
Ejemplo:
terrance@Intrepid:~$ sudo ./drive_check.bsh
/dev/md0:
Version : 1.2
Creation Time : Wed Dec 27 18:06:03 2017
Raid Level : raid1
Array Size : 484323328 (461.89 GiB 495.95 GB)
Used Dev Size : 484323328 (461.89 GiB 495.95 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Thu Sep 1 08:12:59 2022
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : bitmap
Name : Intrepid:root (local to host Intrepid)
UUID : f9b257fc:d64f97c7:95581e88:004e3a4b
Events : 71486
Number Major Minor RaidDevice State
2 8 161 0 active sync /dev/sdk1
1 8 1 1 active sync /dev/sda1
/dev/md2:
Version : 1.2
Creation Time : Wed Dec 27 18:18:25 2017
Raid Level : raid1
Array Size : 3927040 (3.75 GiB 4.02 GB)
Used Dev Size : 3927040 (3.75 GiB 4.02 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sun Aug 7 10:59:07 2022
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : Intrepid:swap (local to host Intrepid)
UUID : 2cdfcb03:e5e0c30f:d68d4e20:37b50e41
Events : 191
Number Major Minor RaidDevice State
2 8 165 0 active sync /dev/sdk5
1 8 5 1 active sync /dev/sda5
/dev/md1:
Version : 1.2
Creation Time : Tue Feb 3 01:16:55 2015
Raid Level : raid5
Array Size : 15627542528 (14.55 TiB 16.00 TB)
Used Dev Size : 3906885632 (3.64 TiB 4.00 TB)
Raid Devices : 5
Total Devices : 5
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Thu Sep 1 07:39:42 2022
State : clean
Active Devices : 5
Working Devices : 5
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : bitmap
Name : Intrepid:1 (local to host Intrepid)
UUID : 3bb988cb:d5270497:36e75f46:67a9bc65
Events : 1155019
Number Major Minor RaidDevice State
0 8 81 0 active sync /dev/sdf1
1 8 97 1 active sync /dev/sdg1
2 8 113 2 active sync /dev/sdh1
3 8 129 3 active sync /dev/sdi1
5 8 145 4 active sync /dev/sdj1
/dev/sda Model: MAXTOR STM3500630A Serial: 9QG9152W SMART: PASSED Errors: 0
/dev/sdf Model: WDC WD40EFRX-68WT0N0 Serial: WD-WCC4EJPD3EXP SMART: PASSED Errors: 0
/dev/sdg Model: WDC WD40EFRX-68WT0N0 Serial: WD-WCC4E5UZUKPY SMART: PASSED Errors: 0
/dev/sdh Model: WDC WD40EFRX-68WT0N0 Serial: WD-WCC4E3XCP660 SMART: PASSED Errors: 0
/dev/sdi Model: WDC WD40EFRX-68WT0N0 Serial: WD-WCC4E7ZRRN8U SMART: PASSED Errors: 0
/dev/sdj Model: WDC WD40EFRX-68WT0N0 Serial: WD-WCC4EJXKY26C SMART: PASSED Errors: 0
/dev/sdk Model: ST3500418AS Serial: 6VM1HTNN SMART: PASSED Errors: 0