Заменить диск в RAID
- Удалите диск из массива.
- Определите схему разметки диска.
- Скопируйте разметку на новый диск.
- Добавьте диск в RAID-массив.
- Установите загрузчик.
1. Удалить диск из массива
-
Подключитесь к серверу по SSH или через KVM-консоль.
-
Выведите информацию о разметке дисков в RAID-массиве:
cat /proc/mdstatВ ответе появится информация о разметке дисков в RAID-массиве. Например:
Personalities : [raid1]
md1 : active raid1 sda3[0] sdb3[1]
975628288 blocks super 1.2 [2/2] [UU]
bitmap: 3/8 pages [12KB], 65536KB chunk
md0 : active raid1 sda2[2] sdb2[1]
999872 blocks super 1.2 [2/2] [UU]
unused devices: <none>Здесь:
md0— имя RAID-массива, который собран из разделовsda2иsdb2;md1— имя RAID-массива, который собран из разделовsda3иsdb3.
-
Выведите информацию о разделах на ди сках:
lsblkВ ответе появится список дисков с разделами. Например:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 985M 1 loop
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 977M 0 part
│ └─md0 9:0 0 976.4M 0 raid1
└─sda3 8:3 0 930.6G 0 part
└─md1 9:1 0 930.4G 0 raid1 /
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 1M 0 part
├─sdb2 8:18 0 977M 0 part
│ └─md0 9:0 0 976.4M 0 raid1
└─sdb3 8:19 0 930.6G 0 part
└─md1 9:1 0 930.4G 0 raid1 /Здесь:
sda— имя диска с рабочими RAID-массивами;sdb— имя диска под замену;sdb2— имя раздела на дискеsdb, который является компонентом первого RAID-массива;md0— имя первого RAID-массива, который собран из разделовsda2иsdb2;sdb3— имя раздела на дискеsdb, который является компонентом второго RAID-массива;md1— имя второго RAID-массива, который собран из разделовsda3иsdb3.
-
Пометьте диск, который нужно заменить, как неисправный:
mdadm /dev/<raid_array_1> -f /dev/<partition_1>
mdadm /dev/<raid_array_2> -f /dev/<partition_2>Укажите:
<raid_array_1>— имя первого RAID-массива, которое вы получили на шаге 3, в примере этоmd0;<partition_1>— имя раздела первого RAID-массива на диске под замену, которое вы получили на шаге 3, в примере этоsdb2;<raid_array_2>— имя второго RAID-массива, которое вы получили на шаге 3, в примере этоmd1;<partition_2>— имя раздела второго RAID-массива на диске под замену, которое вы получили на шаге 3, в примере этоsdb3.
-
Удалите диск, который на шаге 4 вы отметили как неисправный, из всех устройств:
mdadm /dev/<raid_array_1> --remove /dev/<partition_1>
mdadm /dev/<raid_array_2> --remove /dev/<partition_2>Укажите:
<raid_array_1>— имя первого RAID-массива, которое вы получили на шаге 3, в примере этоmd0;<partition_1>— имя раздела первого RAID-массива на диске под замену, которое вы получили на шаге 3, в примере этоsdb2;<raid_array_2>— имя второго RAID-массива, которое вы получили на шаге 3, в примере этоmd1;<partition_2>— имя раздела второго RAID-массива на диске под замену, которое вы получили на шаге 3, в примере этоsdb3.
2. Определить схему разметки диска
-
Подключитесь к серверу по SSH или через KVM-консоль.
-
Установите утилиту для работы с таблицей разделов GPT (GUID Partition Table) на дисках —
gdisk:apt-get install gdisk -y -
Выведите информацию о разделах на дисках:
lsblkВ ответе появится список дисков с разделами. Например:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 985M 1 loop
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 977M 0 part
│ └─md0 9:0 0 976.4M 0 raid1
└─sda3 8:3 0 930.6G 0 part
└─md1 9:1 0 930.4G 0 raid1 /
sdb 8:16 0 931.5G 0 diskЗдесь:
sda— имя диска с рабочими RAID-разделами;sdb— имя нового диска.
-
Определите схему разметки дисков:
gdisk -l /dev/<source_disk>Укажите
<source_disk>— имя диска с рабочими с RAID-разделами, которое вы получили на шаге 3, в примере этоsda.Ответ зависит от схемы разметки дисков:
-
GPT:
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present -
MBR:
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
-
3. Скопировать разметку на новый диск
Процесс копирования разметки зависит от схемы разметки диска — GPT или MBR.
При копировании разметки важно в правильном порядке указать диски в команде. Если порядок дисков будет указан неверно, то исправный диск будет перезаписан, а данные удалены. Данные нельзя будет восстановить.
GPT
MBR
-
Подключитесь к серверу по SSH или через KVM-консоль.
-
Выведите информацию о разделах на дисках:
lsblkВ ответе появится список дисков с разделами. Например:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 985M 1 loop
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 977M 0 part
│ └─md0 9:0 0 976.4M 0 raid1
└─sda3 8:3 0 930.6G 0 part
└─md1 9:1 0 930.4G 0 raid1 /
sdb 8:16 0 931.5G 0 diskЗдесь:
sda— имя диска с рабочими RAID-разделами;sdb— имя нового диска.
-
Скопируйте разметку н а новый диск. В команде важно указать диски в правильном порядке, иначе разметка и данные на изначально исправном диске будут уничтожены.
sgdisk -R /dev/<new_disk> /dev/<source_disk>Укажите:
<new_disk>— имя нового диска, на который копируется разметка, вы получили его на шаге 2, в примере этоsdb;<source_disk>— имя диска с рабочими RAID-разделами, с которого копируется разметка, вы получили его на шаге 2, в примере этоsda.
-
Присвойте новому диску случайный UUID:
sgdisk -G /dev/<new_disk>Укажите
<new_disk>— имя нового диска, на который копировалась разметка, вы получили его на шаге 2, в примере этоsdb. -
Убедитесь, что разметка на дисках полностью совпадает:
lsblkВ ответе появится список дисков с разделами. Например:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 985M 1 loop
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 977M 0 part
│ └─md0 9:0 0 976.4M 0 raid1
└─sda3 8:3 0 930.6G 0 part
└─md1 9:1 0 930.4G 0 raid1 /
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 1M 0 part
├─sdb2 8:18 0 977M 0 part
└─sdb3 8:19 0 930.6G 0 part
-
Подключитесь к серверу по SSH или через KVM-консоль.
-
Выведите информацию о разделах на дисках:
lsblkВ ответе появится список дисков с разделами. Например:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 985M 1 loop
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 977M 0 part
│ └─md0 9:0 0 976.4M 0 raid1
└─sda3 8:3 0 930.6G 0 part
└─md1 9:1 0 930.4G 0 raid1 /
sdb 8:16 0 931.5G 0 diskЗдесь:
sda— имя диска с рабочими RAID-разделами;sdb— имя нового диска.
-
Скопируйте разметку на новый диск. В команде важно указать диски в правильном порядке, иначе разметка и данные на изначально исправном диске будут уничтожены.
sfdisk -d /dev/<source_disk> | sfdisk /dev/<new_disk>Укажите:
<source_disk>— имя диска с рабочими RAID-разделами, с которого копируется разметка, вы получили его на шаге 2, в примере этоsda;<new_disk>— имя нового диска, на который копируется разметка, вы получили его на шаге 2, в примере этоsdb.
-
Если разделы не видны в системе, обновите информацию о разделах:
partprobe /dev/<new_disk>Укажите
<new_disk>— имя нового диска, на который копировалась разметка, вы получили его на шаге 2, в примере этоsdb. -
Убедитесь, что разметка на дисках полностью совпадает:
lsblkВ ответе появится список дисков с разделами. Например:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 985M 1 loop
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 977M 0 part
│ └─md0 9:0 0 976.4M 0 raid1
└─sda3 8:3 0 930.6G 0 part
└─md1 9:1 0 930.4G 0 raid1 /
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 1M 0 part
├─sdb2 8:18 0 977M 0 part
└─sdb3 8:19 0 930.6G 0 part
4. Добавить диск в RAID-массив
-
Подключитесь к серверу по SSH или через KVM-консоль.
-
Выведите информацию о разделах на дисках:
lsblkВ ответе появится список дисков с разделами. Например:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 985M 1 loop
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 1M 0 part
├─sda2 8:2 0 977M 0 part
│ └─md0 9:0 0 976.4M 0 raid1
└─sda3 8:3 0 930.6G 0 part
└─md1 9:1 0 930.4G 0 raid1 /
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 1M 0 part
├─sdb2 8:18 0 977M 0 part
└─sdb3 8:19 0 930.6G 0 partЗдесь:
md0— имя первого RAID-массива, который собран из разделаsda2;md1— имя второго RAID-массива, который собран из разделаsda3;sdb2— имя первого раздела на новом диске, который нужно добавить в RAID-массив;sdb3— имя второго раздела на новом диске, который нужно добавить в RAID-массив.
-
Добавьте разделы нового диска в RAID-массив:
mdadm /dev/<raid_array_1> -a /dev/<partition_1>
mdadm /dev/<raid_array_2> -a /dev/<partition_2>Укажите:
<raid_array_1>— имя первого RAID-массива, которое вы получили на шаге 2, в примере этоmd0;<partition_1>— имя первого раздела на новом диске, которое вы получили на шаге 2, в примере этоsdb2;<raid_array_2>— имя второго RAID-массива, которое вы получили на шаге 2, в примере этоmd1;<partition_2>— имя второго раздела на новом диске, которое вы получили на шаге 2, в примере этоsdb3.
После добавления диска в RAID-массив начнется синхронизация. Скорость синхронизации зависит от размера и типа диска — SSD или HDD.