В этой статье мы рассмотрим ситуацию, когда нужна замена диска в программном RAID 1 с помощью утилиты MDADM.
- Удаление сбойного диска из RAID
- Клонирование раздел linux с разметкой MBR на новый диск
- Клонирование раздел linux с разметкой GPT на новый диск
- Добавление диска диска в массив RAID
- Установка загрузчика GRUB2
Для начала посмотрим список наших дисков с разделами. Определим какой диск мы будем удалять из массива RAID 1 командой lsblk:
[root@localhost ~] lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 15G 0 disk
├─sda1 8:1 0 2G 0 part
│ └─md127 9:127 0 2G 0 raid1 [SWAP]
├─sda2 8:2 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sda3 8:3 0 12G 0 part
└─md125 9:125 0 12G 0 raid1 /
sdb 8:16 0 15G 0 disk
├─sdb1 8:17 0 2G 0 part
│ └─md127 9:127 0 2G 0 raid1 [SWAP]
├─sdb2 8:18 0 1G 0 part
│ └─md126 9:126 0 1023M 0 raid1 /boot
└─sdb3 8:19 0 12G 0 part
└─md125 9:125 0 12G 0 raid1 /
sr0 11:0 1 1024M 0 rom
В данной ситуации у нас есть 2 диска sda и sdb. Мы определили, что один из них выходит из строя и лучше его заменить. У меня это диск sda.
Как проверить жесткий диск в linux можно посмотреть в моей статье.
Посмотрим состояние нашего raid массива командой cat /proc/mdstat:
[root@localhost ~] cat /proc/mdstat
Personalities : [raid1]
md125 : active raid1 sdb3[1] sda3[2]
12569600 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md126 : active raid1 sdb2[1] sda2[2]
1047552 blocks super 1.2 [2/2] [UU]
bitmap: 0/1 pages [0KB], 65536KB chunk
md127 : active raid1 sda1[2] sdb1[1]
2096128 blocks super 1.2 [2/2] [UU]
Если ваш вывод будет [_U] вместо [UU], то это значит рейд неисправен и работа одного диска уже нарушена.
Как удалить сбойный диск из RAID
Сначала нам нужно пометить диск sda как сбойный:
mdadm /dev/md125 --fail /dev/sda3
mdadm /dev/md126 --fail /dev/sda2
mdadm /dev/md127 --fail /dev/sda1
Теперь удалим разделы из нашего массива:
mdadm /dev/md125 —remove /dev/sda2
mdadm /dev/md126 —remove /dev/sda1
mdadm /dev/md127 —remove /dev/sda3
Проверим вывод команды cat /proc/mdstat и убедимся, что sda разделы удалены из массива. Далее выключаем сервер и меняем неисправный диск на новый.
После включения нам нужно скопировать разделы старого диска на новый, чтобы они были идентичны.
Для определения какая таблица используется — GPT или MBR введите:
fdisk -l /dev/sdb
Disklabel type: dos (для mbr) или Disklabel type: gpt
Как клонировать раздел linux с разметкой MBR
! В данном случае sdb исходный диск, а sda диск назначения.
sfdisk -d /dev/sdb | sfdisk --force /dev/sda
Как клонировать раздел linux с разметкой GPT
! При использовании этой команды на sdb диск мы копируем разметку с диска sda
sgdisk -R /dev/sdb /dev/sda
Проверим нашу новую разметку, она должна совпадать на обоих дисках:
[root@localhost ~]# fdisk -l | grep dev
Disk /dev/sda: 16.1 GB, 16106127360 bytes, 31457280 sectors
/dev/sda1 2048 4200447 2099200 fd Linux raid autodetect
/dev/sda2 * 4200448 6299647 1049600 fd Linux raid autodetect
/dev/sda3 6299648 31457279 12578816 fd Linux raid autodetect
Disk /dev/sdb: 16.1 GB, 16106127360 bytes, 31457280 sectors
/dev/sdb1 2048 4200447 2099200 fd Linux raid autodetect
/dev/sdb2 * 4200448 6299647 1049600 fd Linux raid autodetect
/dev/sdb3 6299648 31457279 12578816 fd Linux raid autodetect
После разметки все готово, чтобы добавить новый диск в наш программный RAID 1.
Как добавить диск в массив RAID
Теперь добавим наши новые разделы в RAID:
mdadm /dev/md125 --add /dev/sda3
mdadm /dev/md126 --add /dev/sda2
mdadm /dev/md127 --add /dev/sda1
Статус синхронизации можно проверить несколькими командами:
cat /proc/mdstat и более детально mdadm —detail /dev/md125
Установка загрузчика grub2 на новый диск
В завершении всего нужно установить grub на новый диск и обновить конфигурацию.
Для Ububtu:
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
Также можно настроить автоматическую настройку grub командой:
dpkg-reconfigure grub-pc
Для Rhel:
grub2-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg
Теперь можно смело сделать ребут и проверить, что сервер загружается.
Подробное описание команд утилиты MDADM.