# LVM на сервері: розширення диска без простою

> Розширення диска через LVM на VDS без простою: pvresize, lvextend, resize2fs і xfs_growfs, перевірка групи томів і типові помилки.

## Що таке LVM і навіщо розширювати диск без простою

LVM (Logical Volume Manager) — шар абстракції між фізичними дисками та файловою системою. Замість прямого монтування розділу LVM збирає один чи декілька дисків у групу томів (volume group), а потім нарізає з неї логічні томи (logical volume) будь-якого розміру. Головна перевага для VDS: після збільшення розміру диска в панелі хостинг-провайдера логічний том та файлову систему розширюють «на льоту», без зупинки сервісів та перезавантаження.

Без LVM для збільшення розділу зазвичай потрібна зупинка сервісів, перестворення таблиці розділів чи перенесення даних. З LVM це декілька команд на працюючій системі.

## Перевірка поточної конфігурації LVM

Перед розширенням варто глянути, з чого складається поточна структура:

```
lsblk
pvs
vgs
lvs
```

`pvs` показує фізичні томи (physical volume), `vgs` — групи томів із загальним розміром і вільним місцем, `lvs` — логічні томи з точками монтування. Команда `lsblk` потрібна для перевірки нового розміру диска на рівні блокового пристрою після збільшення в панелі хостингу.

## Крок 1: збільшення диска на рівні системи

Після збільшення диска в панелі хостинг-провайдера (у ZevsHost.net це роблять у клієнтській панелі без перезавантаження VDS) ядру повідомляють про зміну розміру:

```
echo 1 > /sys/class/block/sda/device/rescan
partprobe /dev/sda
lsblk
```

За використання розділу (наприклад, `/dev/sda3`) з LVM всередині розділ розширюють командою `growpart`:

```
apt install -y cloud-guest-utils
growpart /dev/sda 3
```

Після цього `lsblk` показує збільшений розмір розділу `/dev/sda3`.

## Крок 2: розширення physical volume і logical volume

LVM отримує сигнал про те, що фізичний том став більшим:

```
pvresize /dev/sda3
vgs
```

Поле `VFree` у виводі `vgs` показує нове вільне місце у групі томів. Далі розширюють логічний том — на все доступне місце (`-l +100%FREE`) чи на конкретний розмір:

```
lvextend -l +100%FREE /dev/mapper/vgname-root
```

Ім'я логічного тому уточнюють командою `lvs` — воно відрізняється залежно від дистрибутива та способу створення VDS.

## Крок 3: розширення файлової системи

Збільшення логічного тому не змінює розмір файлової системи автоматично — її розширюють окремою командою залежно від типу ФС:

| Файлова система | Команда розширення |
| --- | --- |
| ext4 | `resize2fs /dev/mapper/vgname-root` |
| xfs | `xfs_growfs /` |

Обидві команди виконуються на змонтованій, працюючій файловій системі — простій не потрібен. Результат перевіряють так:

```
df -h /
```

## Типові помилки за розширення LVM

Найчастіша проблема — пропуск кроку з `growpart` чи `partprobe`: тоді `pvresize` не бачить нового місця, тому що розділ у таблиці розділів лишився попереднього розміру. Друга помилка — плутанина з іменем пристрою: `lvextend` та `resize2fs` вказують на один і той самий logical volume, видний у `lvs` у колонці `LV Path`. Коли місце за збільшення диска так і не з'явилось, діагностику починають наново зі статті [про пошук того, що займає місце на диску](https://www.zevshost.net/uk/kb/disk-zapolnen-diagnostika/) — вільне місце вже може бути, просто файлову систему забули розширити.

## Підсумок: чек-лист розширення диска на LVM

- Збільшіть диск у панелі хостингу, потім виконайте `partprobe` та, за потреби, `growpart`.
- Перевірте структуру: `pvs`, `vgs`, `lvs`.
- Розширте фізичний том: `pvresize /dev/sdaN`.
- Розширте логічний том: `lvextend -l +100%FREE /dev/mapper/ім'я`.
- Розширте файлову систему: `resize2fs` для ext4 чи `xfs_growfs` для xfs.
- Перевірте результат командою `df -h` та налаштуйте [моніторинг ресурсів VDS](https://www.zevshost.net/uk/kb/monitoring-vds/) для контролю наступного заповнення диска.

---

Джерело: https://www.zevshost.net/uk/kb/lvm-rasshirenie-diska/
