Расширение LVM диска (без изменения его структуры)¶
Примечание
Менеджер логических томов (англ. logical volume manager) — подсистема операционных систем Linux и OS/2, позволяющая использовать разные области одного жёсткого диска и/или области с разных жёстких дисков как один логический том. Реализована с помощью подсистемы device mapper. LVM добавляет уровень абстракции между физическими/логическими дисками (привычными разделами, с которыми работает fdisk и аналогичные программы) и файловой системой. Это достигается путём разбивки изначальных разделов на блоки, либо использования отдельных разделов или блочных устройств (physical volume (pv)) и объединения их в единый виртуальный том, точнее группу томов (volume group (vg)), которая далее разбивается на логические тома (logical volume (lv)). Для файловой системы логический том представлен как обычное блочное устройство, хотя отдельные pv тома могут находиться на разных физических устройствах (и даже сам pv может быть распределён подобно RAID).
Исходные данные
Операционная система | Linux (Ubuntu 16.04.6 LTS) |
Файловая система | ext4 |
метод распределения пространства жёсткого диска | LVM |
Исходный размер тома | 5ГБ |
Размер тома после расширения | 10ГБ |
С помощью команды fdisk мы видим, что размер диска со стороны операционной системы (/dev/vda) составляет 10 GiB, а размер раздела с LVM (/dev/vda1) - 5G
fdisk -l /dev/vda
Disk /dev/vda: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x71473ce9
Device Boot Start End Sectors Size Id Type
/dev/vda1 * 2048 10483711 10481664 5G 8e Linux LVM
Теперь произведём ряд операций, в результате которых наш корневой раздел (root) будет занимать всё доступное пространство.
1. Смотрим текущее состояние для корневого раздела (root), перед преобразованием его размер составляет 4.8G
df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-rootfs 4.8G 1.8G 2.8G 40% /
- Расширим раздел vda1 до 10ГБ с помощью ПО parted
- «откроем» диск с помощью команды parted
parted /dev/vda
- посмотрим состояние диска в целом и разделов на нём
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 5368MB 5367MB primary boot, lvm
- изменим размер раздела №1 (текущий размер - 5367MB) до максимально возможного. Цифру возьмём из описания диска в предыдущем пункте (10.7GB)
(parted) resizepart 1
End? [5368MB]? 10.7GB
- убедимся, что теперь раздел vda1 занимает всё доступное пространство (10ГБ)
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 10.7GB 10.7GB primary boot, lvm
- выйдем из программы
(parted) quit
- Расширим LVM, содержащий корневой раздел
- расширим физический том (Physical Volume).
pvresize /dev/vda1
Physical volume "/dev/vda1" changed
1 physical volume(s) resized / 0 physical volume(s) not resized
- пересканируем логические разделы
lvscan
ACTIVE '/dev/vg0/rootfs' [5.00 GiB] inherit
- расширим логический раздел (Logical Volume) до максимально доступного размера. Название раздела возьмём из предыдущего пункта
lvextend /dev/vg0/rootfs -l +100%FREE
Size of logical volume vg0/rootfs changed from 5.00 GiB (1279 extents) to 9.96 GiB (2550 extents).
Logical volume rootfs successfully resized.
4. Расширим файловую систему до максимально доступного размера (название раздела возьмём из пункта №1).
resize2fs /dev/mapper/vg0-rootfs
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/mapper/vg0-rootfs is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/mapper/vg0-rootfs is now 2611200 (4k) blocks long.
5. Проверяем, что что наши манипуляции увенчались успехом. Для этого посмотрим актуальный размер корневого раздела (root), теперь он равен 9.7G
df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg0-rootfs 9.7G 1.9G 7.5G 20% /