RAID 1 – замена диска

Имеем два жестких диска: /dev/sda и /dev/sdb. Из них созданы четыре программных RAID-массива:

/dev/sda1 + /dev/sdb1 - swap
/dev/sda5 + /dev/sdb5 /dev/md126 - /boot
/dev/sda2 + /dev/sdb2 /dev/md127 - /
/dev/sda1 + /dev/sdb1 /dev/md125 - /home
/dev/sda6 + /dev/sdb6 /dev/md124 - /var/www
[root@cen753 svm]# cat /proc/mdstat
Personalities : [raid1]
md124 : active raid1 sdb6[1] sda6[0]
 13590528 blocks super 1.2 [2/2] [UU]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md125 : active raid1 sda1[0] sdb1[1]
 26213376 blocks super 1.2 [2/2] [UU]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md126 : active raid1 sda5[0] sdb5[1]
 1047552 blocks super 1.2 [2/2] [UU]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md127 : active raid1 sdb2[1] sda2[0]
 10484736 blocks super 1.2 [2/2] [UU]
 bitmap: 0/1 pages [0KB], 65536KB chunk
[root@cen753 svm]# ls -l /dev/sd*
brw-rw----. 1 root disk 8, 0 Июн 17 13:40 /dev/sda
brw-rw----. 1 root disk 8, 1 Июн 17 13:40 /dev/sda1
brw-rw----. 1 root disk 8, 2 Июн 17 13:40 /dev/sda2
brw-rw----. 1 root disk 8, 3 Июн 17 13:40 /dev/sda3
brw-rw----. 1 root disk 8, 4 Июн 17 13:40 /dev/sda4
brw-rw----. 1 root disk 8, 5 Июн 17 13:40 /dev/sda5
brw-rw----. 1 root disk 8, 6 Июн 17 13:40 /dev/sda6
brw-rw----. 1 root disk 8, 16 Июн 17 13:40 /dev/sdb
brw-rw----. 1 root disk 8, 17 Июн 17 13:40 /dev/sdb1
brw-rw----. 1 root disk 8, 18 Июн 17 13:40 /dev/sdb2
brw-rw----. 1 root disk 8, 19 Июн 17 13:40 /dev/sdb3
brw-rw----. 1 root disk 8, 20 Июн 17 13:40 /dev/sdb4
brw-rw----. 1 root disk 8, 21 Июн 17 13:40 /dev/sdb5
brw-rw----. 1 root disk 8, 22 Июн 17 13:40 /dev/sdb6
[root@cen753 svm]# df -h
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
/dev/md127 10G 1,1G 8,9G 11% /
devtmpfs 484M 0 484M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 6,8M 490M 2% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
/dev/md126 1020M 160M 861M 16% /boot
/dev/md124 13G 33M 13G 1% /var/www
/dev/md125 25G 33M 25G 1% /home
tmpfs 100M 0 100M 0% /run/user/1000
tmpfs 100M 0 100M 0% /run/user/0
[root@cen753 svm]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
+-sda1 8:1 0 25G 0 part
¦ L-md125 9:125 0 25G 0 raid1 /home
+-sda2 8:2 0 10G 0 part
¦ L-md127 9:127 0 10G 0 raid1 /
+-sda3 8:3 0 1G 0 part
¦ L-centos-swap 253:0 0 2G 0 lvm [SWAP]
+-sda4 8:4 0 1K 0 part
+-sda5 8:5 0 1G 0 part
¦ L-md126 9:126 0 1023M 0 raid1 /boot
L-sda6 8:6 0 13G 0 part
 L-md124 9:124 0 13G 0 raid1 /var/www
sdb 8:16 0 50G 0 disk
+-sdb1 8:17 0 25G 0 part
¦ L-md125 9:125 0 25G 0 raid1 /home
+-sdb2 8:18 0 10G 0 part
¦ L-md127 9:127 0 10G 0 raid1 /
+-sdb3 8:19 0 1G 0 part
¦ L-centos-swap 253:0 0 2G 0 lvm [SWAP]
+-sdb4 8:20 0 1K 0 part
+-sdb5 8:21 0 1G 0 part
¦ L-md126 9:126 0 1023M 0 raid1 /boot
L-sdb6 8:22 0 13G 0 part
 L-md124 9:124 0 13G 0 raid1 /var/www
sr0 11:0 1 1024M 0 rom

Пробуем удалить – не дает:

[root@cen753 svm]# mdadm /dev/md124 -r /dev/sdb6
mdadm: hot remove failed for /dev/sdb6: Device or resource busy

Помечаем раздел как сбойный, а потом удаляем из массива – получается:

[root@cen753 svm]# mdadm /dev/md124 -f /dev/sdb6
mdadm: set /dev/sdb6 faulty in /dev/md124
[root@cen753 svm]# cat /proc/mdstat
Personalities : [raid1]
md124 : active raid1 sdb6[1](F) sda6[0]
 13590528 blocks super 1.2 [2/1] [U_]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md125 : active raid1 sda1[0] sdb1[1]
 26213376 blocks super 1.2 [2/2] [UU]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md126 : active raid1 sda5[0] sdb5[1]
 1047552 blocks super 1.2 [2/2] [UU]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md127 : active raid1 sdb2[1] sda2[0]
 10484736 blocks super 1.2 [2/2] [UU]
 bitmap: 1/1 pages [4KB], 65536KB chunk

unused devices: <none>

Повторяем для остальных разделов:

[root@cen753 svm]# mdadm /dev/md125 -f /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md125
[root@cen753 svm]# mdadm /dev/md126 -f /dev/sdb5
mdadm: set /dev/sdb5 faulty in /dev/md126
[root@cen753 svm]# mdadm /dev/md127 -f /dev/sdb2
mdadm: set /dev/sdb2 faulty in /dev/md127
[root@cen753 svm]# cat /proc/mdstat
Personalities : [raid1]
md124 : active raid1 sdb6[1](F) sda6[0]
 13590528 blocks super 1.2 [2/1] [U_]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md125 : active raid1 sda1[0] sdb1[1](F)
 26213376 blocks super 1.2 [2/1] [U_]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md126 : active raid1 sda5[0] sdb5[1](F)
 1047552 blocks super 1.2 [2/1] [U_]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md127 : active raid1 sdb2[1](F) sda2[0]
 10484736 blocks super 1.2 [2/1] [U_]
 bitmap: 1/1 pages [4KB], 65536KB chunk

unused devices: <none>

Удаляем оставшиеся разделы:

[root@cen753 svm]# mdadm /dev/md124 -r /dev/sdb6
mdadm: hot removed /dev/sdb6 from /dev/md124
[root@cen753 svm]# mdadm /dev/md125 -r /dev/sdb1
mdadm: hot removed /dev/sdb1 from /dev/md125
[root@cen753 svm]# mdadm /dev/md126 -r /dev/sdb5
mdadm: hot removed /dev/sdb5 from /dev/md126
[root@cen753 svm]# mdadm /dev/md127 -r /dev/sdb2
mdadm: hot removed /dev/sdb2 from /dev/md127

Смотрим:

[root@cen753 svm]# cat /proc/mdstat
Personalities : [raid1]
md124 : active raid1 sda6[0]
 13590528 blocks super 1.2 [2/1] [U_]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md125 : active raid1 sda1[0]
 26213376 blocks super 1.2 [2/1] [U_]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md126 : active raid1 sda5[0]
 1047552 blocks super 1.2 [2/1] [U_]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md127 : active raid1 sda2[0]
 10484736 blocks super 1.2 [2/1] [U_]
 bitmap: 1/1 pages [4KB], 65536KB chunk

unused devices: <none>

Смотрим таблицу разделов:

[root@cen753 svm]# parted -l
Модель: ATA VBOX HARDDISK (scsi)
Диск /dev/sda: 53,7GB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: msdos
....

Или сразу устройство:

[root@cen753 svm]# parted /dev/sda print
Модель: ATA VBOX HARDDISK (scsi)
Диск /dev/sda: 53,7GB
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: msdos

Оба диска в массиве должны иметь абсолютно одинаковое разбиение. В зависимости от используемого типа таблицы разделов (MBR или GPT) необходимо использовать соответствующие утилиты для копирования таблицы разделов.

Для жесткого диска с MBR используем утилиту sfdisk:

# sfdisk -d /dev/sda | sfdisk --force /dev/sdb

где /dev/sda – диск источник, /dev/sdb – диск назначения.

Для жесткого диска с GPT используем утилиту sgdisk из GPT fdisk:

# sgdisk -R /dev/sdb /dev/sda
# sgdisk -G /dev/sdb

где /dev/sda – диск источник, /dev/sdb – диск назначения. Вторая строка назначает новому жесткому диску случайный UUID.

Добавляем новый, размеченный жесткий диск в массивы и установить на нем загрузчик:

[root@cen753 svm]# mdadm /dev/md124 -a /dev/sdb6
mdadm: re-added /dev/sdb1
[root@cen753 svm]# mdadm /dev/md125 -a /dev/sdb1
mdadm: re-added /dev/sdb1
[root@cen753 svm]# mdadm /dev/md126 -a /dev/sdb5
mdadm: re-added /dev/sdb5
[root@cen753 svm]# mdadm /dev/md127 -a /dev/sdb2
mdadm: re-added /dev/sdb2
[root@cen753 svm]# cat /proc/mdstat
Personalities : [raid1]
md124 : active raid1 sdb6[1] sda6[0]
 13590528 blocks super 1.2 [2/2] [UU]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md125 : active raid1 sdb1[1] sda1[0]
 26213376 blocks super 1.2 [2/2] [UU]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md126 : active raid1 sdb5[1] sda5[0]
 1047552 blocks super 1.2 [2/2] [UU]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md127 : active raid1 sdb2[1] sda2[0]
 10484736 blocks super 1.2 [2/1] [U_]
 [>....................] recovery = 0.9% (102720/10484736) finish=6.7min speed=25680K/sec
 bitmap: 1/1 pages [4KB], 65536KB chunk

unused devices: <none>

Проверяем:

[root@cen753 svm]# cat /proc/mdstat
Personalities : [raid1]
md124 : active raid1 sdb6[1] sda6[0]
 13590528 blocks super 1.2 [2/2] [UU]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md125 : active raid1 sdb1[1] sda1[0]
 26213376 blocks super 1.2 [2/2] [UU]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md126 : active raid1 sdb5[1] sda5[0]
 1047552 blocks super 1.2 [2/2] [UU]
 bitmap: 0/1 pages [0KB], 65536KB chunk

md127 : active raid1 sdb2[1] sda2[0]
 10484736 blocks super 1.2 [2/2] [UU]
 bitmap: 1/1 pages [4KB], 65536KB chunk

unused devices: <none>

Если в системе используется загрузчик GRUB2 достаточно выполнить следующие команды (при этом нет необходимости дожидаться окончания процесса синхронизации):

# grub-install /dev/sdb
# update-grub

http://www.sysadmin.in.ua/info/index/21/24/28
http://avreg.net/howto_software-raid-replacing-faulty-drive.html
http://avreg.net/howto_software-raid-remove.html