Как расширить LVM раздел
Очень часто возникает необходимость расширения Linux раздела. Это актуально как для виртуальных машин, так и для железных серверов. Если в системе используется LVM, то сделать это достаточно просто.
LVM — это прослойка между дисками и ОС, которая добавляет гибкости при работе с дисками. В общем виде схема такая:
/dev/sda <-> PV(physical volume) <-> VG(volume group) <-> LV(logical volume) <-> ext4
Файловая система устанавливается поверх LV. LV состоит из VG. VG состоит из PV. PV - состоит из устройств. Вот картинка которая описывает схему работы LVM
Итак, допустим у нас был диск /dev/sda, свободное место на нем закончилось, и нужно расширить рутовый раздел:
#fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00037385
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 3917 30944256 8e Linux LVM
После подключения нового диска, в системе он определился как /dev/sdb.
Если разделы больше 2ТБ, то нужно использовать parted и размечать под GPT:
#parted -a optimal /dev/sdb
Если меньше 2ТБ, то можно размечать fdisk-ом. Создадим LVM раздел на этом диске с помощью fdisk:
#fdisk /dev/sdb
/dev/sdb
Команда (m для справки): n
Действие команды
e расширенный
p основной раздел (1-4)
p
Номер раздела (1-4): 1
Первый цилиндр (1045-1305, по умолчанию 1):
Используется значение по умолчанию 1045
Последний цилиндр или +size или +sizeM или +sizeK (1045-1305, по умолчанию
1305):
Используется значение по умолчанию 1305
Меняем тип раздела на LVM (8e):
Команда (m для справки): t
Номер раздела (1-4): 1
Шестнадцатеричный код (введите L для получения списка кодов): 8e
Системный тип раздела 1 изменен на 8e (Linux LVM)
Сохраняем изменения:
Команда (m для справки): w
Таблица разделов была изменена!
#echo 1 > /sys/block/sdb/device/rescan
Теперь можно запустить lvm:
#lvm
И создать физический том из раздела /dev/sdb1:
#lvm> pvcreate /dev/sdb1
Узнаем имя VG:
#vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup00 2 2 0 wz--n- 20.50g 0
#vgextend VolGroup00 /dev/sdb1
Узнаем имя LV:
#lvs
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
lv_root VolGroup00 -wi-ao-- 35.53g
lv_swap VolGroup00 -wi-ao-- 3.97g
#lvextend -l +100%FREE /dev/VolGroup00/lv_root
И последнее, что нужно сделать — расширить файловую систему:
#resize2fs -p /dev/mapper/VolGroup00-lv_root
Всё. После этого можно использовать новый расширенный диск.