Давече сработал алерт, что на одном из серверов в селектеле RAID поломался.
Зашел на сервер, глянул mdadm —detail /dev/md1 и увидел, что один из дисков пропал. /dev/sda работает корректно и продолжает держать строй. Посмотрел smartctl -i /dev/sdb, у поломанного диска, в ответ отказ. Значит точно с ним все плохо. Создал тикет по замене диска в поддержку.
Поддержка отработал отлично, попросили данные о живом диске ( smartctl -i /dev/sda) и сказали что в течении часа заменят. Договорились о начале работ.
После того как диск поменяли и запустили сервер, поддержка отчиталась что все хорошо, диск заменен и работает. Посмотрел на сервере, диск есть, инфу возвращает, но он чистый и не пренадлежит RAID. Спросил у поддержки, самому мне его добавлять или они справятся, на что ответили что они отвечают только за железо, а дальше как хотите.
Что ж, не беда. Погуглил) Понял как добавить диск. Итак начинаем, умеем.
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 447.1G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 977M 0 part
│ └─md0 9:0 0 976M 0 raid1 /boot
└─sda3 8:3 0 446.2G 0 part
└─md1 9:1 0 446.1G 0 raid1
└─vg0-root 253:0 0 446G 0 lvm /
sdb 8:16 0 447.1G 0 disk
# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Nov 5 18:15:20 2019
Raid Level : raid1
Array Size : 999424 (976.00 MiB 1023.41 MB)
Used Dev Size : 999424 (976.00 MiB 1023.41 MB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Thu Jan 23 12:47:05 2025
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Consistency Policy : resync
Name : Litleo:0 (local to host Litleo)
UUID : 452ac8fd:9ca6ed27:3dad65bc:59ba198a
Events : 247
Number Major Minor RaidDevice State
0 8 2 0 active sync /dev/sda2
- 0 0 1 removed
Убедился что разметка GPT, скомандовав fdisk -l /dev/sda. Далее дампим таблицу разметки (партиций) с живого диска в файл table.bin.
# sgdisk --backup=table.bin /dev/sda
Накатываем этот дамп на новый диск
# sgdisk --load-backup=table.bin /dev/sdb
Генерируем новый Disk Identifier для новог диска
# sgdisk -G /dev/sdb
Убеждаемся что разметка в точности как в sda
# fdisk -l /dev/sda /dev/sdb
Disk /dev/sda: 447.13 GiB, 480103981056 bytes, 937703088 sectors
Disk model: KINGSTON SA400S3
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: EDCA112F-88BB-4F8E-8A6F-06D726DDEEBF
Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 2004991 2000896 977M Linux RAID
/dev/sda3 2004992 937701375 935696384 446.2G Linux RAID
Disk /dev/sdb: 447.13 GiB, 480103981056 bytes, 937703088 sectors
Disk model: CT480BX500SSD1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: EA67925F-A0AE-4CE8-85F8-4B3181B5B8BB
Device Start End Sectors Size Type
/dev/sdb1 2048 4095 2048 1M BIOS boot
/dev/sdb2 4096 2004991 2000896 977M Linux RAID
/dev/sdb3 2004992 937701375 935696384 446.2G Linux RAID
Теперь осталось связать разделы в RAID 1, для этого командуем
# mdadm /dev/md0 -a /dev/sdb2
mdadm: added /dev/sdb2
И проверяем что рейд собрался для раздела:
# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Nov 5 18:15:20 2019
Raid Level : raid1
Array Size : 999424 (976.00 MiB 1023.41 MB)
Used Dev Size : 999424 (976.00 MiB 1023.41 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Thu Jan 23 13:16:46 2025
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Проделываем тоже самое для второго раздела:
# mdadm /dev/md1 -a /dev/sdb3
mdadm: added /dev/sdb3
И проверяем
mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Tue Nov 5 18:15:20 2019
Raid Level : raid1
Array Size : 467716096 (446.05 GiB 478.94 GB)
Used Dev Size : 467716096 (446.05 GiB 478.94 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Thu Jan 23 13:17:26 2025
State : clean, degraded, recovering
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1
Consistency Policy : bitmap
Rebuild Status : 0% complete
Name : Litleo:1 (local to host Litleo)
UUID : 5ac32b62:688303c5:d8d47f8c:8af6f6b0
Events : 74406
Number Major Minor RaidDevice State
0 8 3 0 active sync /dev/sda3
2 8 19 1 spare rebuilding /dev/sdb3
Все, рейд собран обратно, проверяем стату
# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md1 : active raid1 sdb3[2] sda3[0]
467716096 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 0.7% (3614400/467716096) finish=95.0min speed=81393K/sec
bitmap: 4/4 pages [16KB], 65536KB chunk
md0 : active raid1 sdb2[2] sda2[0]
999424 blocks super 1.2 [2/2] [UU]
Процесс синхронизации md1 идет полным ходом. На этом все, ждем когда закончится и поздравляем себя, что все прошло удачно.
Делаем из этого еще один вывод: Обязательно нужно иметь средства мониторинга серверов + систему оповещений. Если бы не алерт, фиг знает когда бы я узнал что рейд деградировал.
На серверах стоит node_exporter + настроены vicroriametrics и алерты
No comments
RSS / trackback