RAID управление · 6 min read · Oct 09, 2025

Руководство для начинающих по LVM - Страница 8

8 Замена жестких дисков на более крупные

Мы в настоящее время используем четыре жестких диска размером по 25 ГБ каждый (по крайней мере, мы так себя ведем). Теперь предположим, что этого больше недостаточно, и нам нужно больше места в нашей RAID-конфигурации. Поэтому мы заменим наши 25 ГБ жесткие диски на 80 ГБ жесткие диски (на самом деле мы все еще будем использовать текущие жесткие диски, но теперь использовать их полную емкость - в реальной жизни вы бы заменили свои старые, маленькие жесткие диски на новые, более крупные).

Процедура следующая: сначала мы удаляем /dev/sdb и /dev/sdd из RAID-массивов, заменяем их на более крупные жесткие диски, возвращаем их обратно в RAID-массивы, а затем делаем то же самое с /dev/sdc и /dev/sde.

Сначала мы помечаем /dev/sdb1 как неисправный:

mdadm --manage /dev/md0 --fail /dev/sdb1
server1:~# mdadm --manage /dev/md0 --fail /dev/sdb1  
 mdadm: set /dev/sdb1 faulty in /dev/md0

Вывод команды

cat /proc/mdstat

выглядит теперь так:

server1:~# cat /proc/mdstat  
 Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]  
 md0 : active raid1 sdc1[0] sdb1[2](F)  
       24418688 blocks [2/1] [U_]  
   
 md1 : active raid1 sde1[0] sdd1[1]  
       24418688 blocks [2/2] [UU]  
   
 unused devices: 

Затем мы удаляем /dev/sdb1 из RAID-массива /dev/md0:

mdadm --manage /dev/md0 --remove /dev/sdb1
server1:~# mdadm --manage /dev/md0 --remove /dev/sdb1  
 mdadm: hot removed /dev/sdb1
cat /proc/mdstat
server1:~# cat /proc/mdstat  
 Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]  
 md0 : active raid1 sdc1[0]  
       24418688 blocks [2/1] [U_]  
   
 md1 : active raid1 sde1[0] sdd1[1]  
       24418688 blocks [2/2] [UU]  
   
 unused devices: 

Теперь мы делаем то же самое с /dev/sdd1:

mdadm --manage /dev/md1 --fail /dev/sdd1
server1:~# mdadm --manage /dev/md1 --fail /dev/sdd1  
 mdadm: set /dev/sdd1 faulty in /dev/md1
cat /proc/mdstat
server1:~# cat /proc/mdstat  
 Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]  
 md0 : active raid1 sdc1[0]  
       24418688 blocks [2/1] [U_]  
   
 md1 : active raid1 sde1[0] sdd1[2](F)  
       24418688 blocks [2/1] [U_]  
   
 unused devices: 
mdadm --manage /dev/md1 --remove /dev/sdd1
server1:~# mdadm --manage /dev/md1 --remove /dev/sdd1  
 mdadm: hot removed /dev/sdd1
cat /proc/mdstat
server1:~# cat /proc/mdstat  
 Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]  
 md0 : active raid1 sdc1[0]  
       24418688 blocks [2/1] [U_]  
   
 md1 : active raid1 sde1[0]  
       24418688 blocks [2/1] [U_]  
   
 unused devices: 

На реальной системе вы бы сейчас выключили ее, вытащили 25 ГБ /dev/sdb и /dev/sdd и заменили их на 80 ГБ. Как я уже сказал, нам не нужно этого делать, потому что все жесткие диски уже имеют емкость 80 ГБ.

Следующим шагом мы должны отформатировать /dev/sdb и /dev/sdd. Мы должны создать раздел /dev/sdb1 и /dev/sdd1, тип fd (Linux RAID autodetect), размер 25 ГБ (те же настройки, что и на старых жестких дисках), и раздел /dev/sdb2 и /dev/sdd2, тип fd, который охватывает оставшуюся часть жестких дисков. Поскольку /dev/sdb1 и /dev/sdd1 все еще присутствуют на наших жестких дисках, нам нужно создать только /dev/sdb2 и /dev/sdd2 в этом специальном примере.

fdisk /dev/sdb

server1:~# fdisk /dev/sdb

Количество цилиндров для этого диска установлено на 10443.
С этим нет ничего плохого, но это больше, чем 1024,
и может в некоторых конфигурациях вызвать проблемы с:

  1. программным обеспечением, которое работает во время загрузки
    (например, старые версии LILO)
  2. загрузкой и программным обеспечением для разделов
    с других ОС
    (например, DOS FDISK, OS/2 FDISK)

Команда (m для помощи): <– p

Диск /dev/sdb: 85.8 ГБ, 85899345920 байт
255 голов, 63 сектора/трек, 10443 цилиндра
Единицы = цилиндры по 16065 * 512 = 8225280 байт

Устройство Загрузка Начало Конец Блоки Id Система
/dev/sdb1 1 3040 24418768+ fd Linux raid autodetect

Команда (m для помощи): <– n
Команда действия
e расширенный
p основной раздел (1-4)
<– p
Номер раздела (1-4): <– 2
Первый цилиндр (3041-10443, значение по умолчанию 3041): <–
Используя значение по умолчанию 3041
Последний цилиндр или +размер или +размерM или +размерK (3041-10443, значение по умолчанию 10443): <–
Используя значение по умолчанию 10443

Команда (m для помощи): <– t
Номер раздела (1-4): <– 2
Шестнадцатеричный код (тип L для списка кодов): <– fd
Изменен тип системы раздела 2 на fd (Linux raid autodetect)

Команда (m для помощи): <– w
Таблица разделов была изменена!

Вызов ioctl() для повторного чтения таблицы разделов.
Синхронизация дисков.

Сделайте то же самое для /dev/sdd:

fdisk /dev/sdd

Вывод команды

fdisk -l

выглядит теперь так:

server1:~# fdisk -l  
   
 Диск /dev/sda: 21.4 ГБ, 21474836480 байт  
 255 голов, 63 сектора/трек, 2610 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
    Устройство Загрузка      Начало         Конец      Блоки   Id  Система  
 /dev/sda1   *           1          18      144553+  83  Linux  
 /dev/sda2              19        2450    19535040   83  Linux  
 /dev/sda4            2451        2610     1285200   82  Linux swap / Solaris  
   
 Диск /dev/sdb: 85.8 ГБ, 85899345920 байт  
 255 голов, 63 сектора/трек, 10443 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
    Устройство Загрузка      Начало         Конец      Блоки   Id  Система  
 /dev/sdb1                1        3040    24418768+  fd  Linux raid autodetect  
 /dev/sdb2            3041       10443    59464597+  fd  Linux raid autodetect  
   
 Диск /dev/sdc: 85.8 ГБ, 85899345920 байт  
 255 голов, 63 сектора/трек, 10443 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
    Устройство Загрузка      Начало         Конец      Блоки   Id  Система  
 /dev/sdc1                1        3040    24418768+  fd  Linux raid autodetect  
   
 Диск /dev/sdd: 85.8 ГБ, 85899345920 байт  
 255 голов, 63 сектора/трек, 10443 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
    Устройство Загрузка      Начало         Конец      Блоки   Id  Система  
 /dev/sdd1                1        3040    24418768+  fd  Linux raid autodetect  
 /dev/sdd2            3041       10443    59464597+  fd  Linux raid autodetect  
   
 Диск /dev/sde: 85.8 ГБ, 85899345920 байт  
 255 голов, 63 сектора/трек, 10443 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
    Устройство Загрузка      Начало         Конец      Блоки   Id  Система  
 /dev/sde1                1        3040    24418768+  fd  Linux raid autodetect  
   
 Диск /dev/sdf: 85.8 ГБ, 85899345920 байт  
 255 голов, 63 сектора/трек, 10443 цилиндров  
 Единицы = цилиндры по 16065 * 512 = 8225280 байт  
   
    Устройство Загрузка      Начало         Конец      Блоки   Id  Система  
 /dev/sdf1                1        3040    24418768+  8e  Linux LVM  
   
 Диск /dev/md1: 25.0 ГБ, 25004736512 байт  
 2 голов, 4 сектора/трек, 6104672 цилиндров  
 Единицы = цилиндры по 8 * 512 = 4096 байт  
   
 Диск /dev/md1 не содержит действительной таблицы разделов  
   
 Диск /dev/md0: 25.0 ГБ, 25004736512 байт  
 2 голов, 4 сектора/трек, 6104672 цилиндров  
 Единицы = цилиндры по 8 * 512 = 4096 байт  
   
 Диск /dev/md0 не содержит действительной таблицы разделов

Теперь мы снова добавляем /dev/sdb1 в /dev/md0 и /dev/sdd1 в /dev/md1:

mdadm --manage /dev/md0 --add /dev/sdb1
server1:~# mdadm --manage /dev/md0 --add /dev/sdb1  
 mdadm: re-added /dev/sdb1
mdadm --manage /dev/md1 --add /dev/sdd1
server1:~# mdadm --manage /dev/md1 --add /dev/sdd1  
 mdadm: re-added /dev/sdd1

Теперь содержимое обоих RAID-массивов будет синхронизировано. Мы должны подождать, пока это не завершится, прежде чем сможем продолжить. Мы можем проверить статус синхронизации с помощью

cat /proc/mdstat

Вывод выглядит так во время синхронизации:

server1:~# cat /proc/mdstat  
 Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]  
 md0 : active raid1 sdb1[1] sdc1[0]  
       24418688 blocks [2/1] [U_]  
       [=>...................]  recovery =  9.9% (2423168/24418688) finish=2.8min speed=127535K/sec  
   
 md1 : active raid1 sdd1[1] sde1[0]  
       24418688 blocks [2/1] [U_]  
       [=>...................]  recovery =  6.4% (1572096/24418688) finish=1.9min speed=196512K/sec  
   
 unused devices: 

и так, когда это завершится:

server1:~# cat /proc/mdstat  
 Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]  
 md0 : active raid1 sdb1[1] sdc1[0]  
       24418688 blocks [2/2] [UU]  
   
 md1 : active raid1 sdd1[1] sde1[0]  
       24418688 blocks [2/2] [UU]  
   
 unused devices: 
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.