# uname -a
Linux sdata.imp.kiev.ua 3.10.0-1160.66.1.el7.x86_64 #1 SMP Wed May 18 16:02:34 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
На почту начали прилетать такие сообщения
....
Device: /dev/sdb [SAT], 1 Offline uncorrectable sectors
Device info:
WDC WD10EADS-11M2B2, S/N:WD-WMAV52053354, WWN:5-0014ee-259d8f05a, FW:80.00A80, 1.00 TB
....
Готовимся к замене диска. Нужно выполнить такие пункты:
- Удаление диска из массива
- Определение таблицы разделов (GPT или MBR) и перенос её на новый диск
- Добавление диска в массив
- Установка загрузчика
Определяем таблицу разделов MBR or GPT.
# gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
Я подключил новый диск sdc заранее (т.е. сейчас в системе три диска sda и sdb – рэйд, sdc резервный ) и cкопировал разметку с рабочего диска на новый, у меня MBR.
Для MBR:
# sfdisk -d /dev/sda | sfdisk /dev/sdc
sda – старый диск, sdc – новый диск.
Для GPT:
# sgdisk -R /dev/sdc /dev/sda
Здесь наоборот, сперва новый диск sdc потом старый sda.
Смотрим состояние:
# cat /proc/mdstat
Personalities : [raid1]
md124 : active raid1 sdb5[1]
952491008 blocks super 1.2 [2/1] [_U]
bitmap: 7/8 pages [28KB], 65536KB chunk
md125 : active raid1 sdb3[1] sda3[0]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md126 : active raid1 sda1[0]
20970496 blocks super 1.2 [2/1] [U_]
bitmap: 1/1 pages [4KB], 65536KB chunk
md127 : active raid1 sdb2[1] sda2[0]
2096128 blocks super 1.2 [2/2] [UU]
синхронизированный [UU] и не синхронизированные масивы [_U][U_]
Немного не стандартная ситуация. На здоровом диске (sda) отвалился масив md124 на разделе sda5, но он есть на заболевшем диске sdb.
Пробуем пересобрать масив:
# mdadm /dev/md124 --add /dev/sda5
mdadm: re-added /dev/sda5
# cat /proc/mdstat
Personalities : [raid1]
md124 : active raid1 sda5[0] sdb5[1]
952491008 blocks super 1.2 [2/1] [_U]
[>....................] recovery = 2.3% (22164480/952491008) finish=306.3min speed=50613K/sec
bitmap: 7/8 pages [28KB], 65536KB chunk
md125 : active raid1 sdb3[1] sda3[0]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md126 : active raid1 sda1[0]
20970496 blocks super 1.2 [2/1] [U_]
bitmap: 1/1 pages [4KB], 65536KB chunk
md127 : active raid1 sdb2[1] sda2[0]
2096128 blocks super 1.2 [2/2] [UU]
Получилось
# cat /proc/mdstat
Personalities : [raid1]
md124 : active raid1 sda5[0] sdb5[1]
952491008 blocks super 1.2 [2/2] [UU]
bitmap: 0/8 pages [0KB], 65536KB chunk
md125 : active raid1 sdb3[1] sda3[0]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md126 : active raid1 sda1[0]
20970496 blocks super 1.2 [2/1] [U_]
bitmap: 1/1 pages [4KB], 65536KB chunk
md127 : active raid1 sdb2[1] sda2[0]
2096128 blocks super 1.2 [2/2] [UU]
Теперь помечаем сбойный диск
# mdadm /dev/md125 --fail /dev/sdb3
# mdadm /dev/md124 --fail /dev/sdb5
На двух разделах получил такое сообщение
# mdadm /dev/md126 --fail /dev/sdb1
mdadm: set device faulty failed for /dev/sdb1: No such device
# mdadm /dev/md127 --fail /dev/sdb2
mdadm: set device faulty failed for /dev/sdb2: No such device
оно и понятно, диска нет в масиве.
# cat /proc/mdstat
Personalities : [raid1]
md124 : active raid1 sda5[0] sdb5[1](F)
952491008 blocks super 1.2 [2/1] [U_]
bitmap: 0/8 pages [0KB], 65536KB chunk
md125 : active raid1 sda3[0] sdb3[1](F)
1047552 blocks super 1.2 [2/1] [U_]
bitmap: 0/1 pages [0KB], 65536KB chunk
md126 : active raid1 sda1[0]
20970496 blocks super 1.2 [2/1] [U_]
bitmap: 1/1 pages [4KB], 65536KB chunk
md127 : active (auto-read-only) raid1 sda2[0]
2096128 blocks super 1.2 [2/1] [U_]
Удаляем его
# mdadm /dev/md125 --remove /dev/sdb3
# mdadm /dev/md124 --remove /dev/sdb5
Опять эти сообщения, но продолжаем
# mdadm /dev/md126 --remove /dev/sdb1
mdadm: hot remove failed for /dev/sdb1: No such device or address
# mdadm /dev/md127 --remove /dev/sdb2
mdadm: hot remove failed for /dev/sdb2: No such device or address
Проверяем
# cat /proc/mdstat
Personalities : [raid1]
md124 : active raid1 sda5[0]
952491008 blocks super 1.2 [2/1] [U_]
bitmap: 0/8 pages [0KB], 65536KB chunk
md125 : active raid1 sda3[0]
1047552 blocks super 1.2 [2/1] [U_]
bitmap: 0/1 pages [0KB], 65536KB chunk
md126 : active raid1 sda1[0]
20970496 blocks super 1.2 [2/1] [U_]
bitmap: 1/1 pages [4KB], 65536KB chunk
md127 : active (auto-read-only) raid1 sda2[0]
2096128 blocks super 1.2 [2/1] [U_]
Добавляем новый диск
# mdadm /dev/md125 --add /dev/sdc3
# mdadm /dev/md126 --add /dev/sdc1
# mdadm /dev/md127 --add /dev/sdc2
# mdadm /dev/md124 --add /dev/sdc5
Выключаем ПК убираем сбойный диск. Загружаемся и ждем синхронизацию (название нового диска изменилось с /dev/sdc на /dev/sdb)
# cat /proc/mdstat
Personalities : [raid1]
md124 : active raid1 sdb5[2] sda5[0]
952491008 blocks super 1.2 [2/1] [U_]
resync=DELAYED
bitmap: 0/8 pages [0KB], 65536KB chunk
md125 : active raid1 sdb3[2] sda3[0]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md126 : active raid1 sdb1[2] sda1[0]
20970496 blocks super 1.2 [2/1] [U_]
[============>........] recovery = 62.3% (13069184/20970496) finish=1.5min speed=87675K/sec
bitmap: 1/1 pages [4KB], 65536KB chunk
md127 : active raid1 sdb2[2] sda2[0]
2096128 blocks super 1.2 [2/1] [U_]
resync=DELAYED
unused devices: <none>
Установка загрузчика
После загрузки системы, установим на диск sdb загрузчик GRUB2
# grub2-install /dev/sdb
Если сервер загружен в recovery или rescue, т.е с live cd, то установка загрузчика выглядит следующим образом. Монтируем корневую файловую систему в /mnt:
# mount /dev/md126 /mnt
Монтируем boot:
# mount /dev/md125 /mnt/boot
Монтируем /dev, /proc и /sys:
# mount --bind /dev /mnt/dev
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys
Затем делаем chroot в примонтированную систему:
# chroot /mnt
И устанавливаем grub на sdb:
# grub2-install /dev/sdb
Теперь можно попробовать загрузится в нормальный режим.