*Cube-Host — повний спектр хмарних послуг!!

Налаштування та управління розділами LVM у Linux

LVM (Logical Volume Manager) — це рівень зберігання даних у Linux, який дозволяє розглядати декілька дисків (або розділів) як єдиний гнучкий масив простору. За допомогою LVM можна розширювати томи в режимі реального часу, створювати знімки, налаштовувати дзеркалення та перерозподіляти простір без перевстановлення ОС.

LVM вбудовано в ядро Linux (через device-mapper) і є одним із найкорисніших інструментів системного адміністратора для управління VPS, виділеними серверами, базами даних, файловими сховищами, резервними копіями та проектами, що розширюються.

Чому використовується LVM

  • Гнучкість: зміна розміру логічних томів без перерозподілу розділів
  • Масштабованість: додавання нових дисків до того самого пулу сховища
  • Знімки: створення копій на певний момент часу (корисно для резервного копіювання та міграції)
  • Дзеркалювання: підвищення відмовостійкості (подібно до RAID1)
  • Абстракція: ваша файлова система працює з томами LVM, а не з «сирими дисками»

Рівні LVM (просте пояснення):

  • PV (фізичний том): диск або розділ, ініціалізований для LVM
  • VG (група томів): пул простору, створений з одного або декількох PV
  • LV (логічний том): «віртуальний розділ» всередині VG, де ви створюєте файлову систему
LVM layers: PV, VG, LV

Встановлення утиліти lvm2

Встановіть інструменти LVM (пакет lvm2) за допомогою менеджера пакетів вашого дистрибутива:

# Ubuntu / Debian
apt update
apt install -y lvm2

# RHEL / CentOS Stream / Rocky / Alma
dnf install -y lvm2

# Older CentOS
yum install -y lvm2

Перевірте, чи доступні команди LVM:

pvs
vgs
lvs

Створення розділів LVM (PV → VG → LV)

Приклад налаштування: у вас є два додаткові диски, підключені до сервера, наприклад /dev/vdb та /dev/vdc.

Крок 1 — ідентифікація дисків:

lsblk
fdisk -l
List disks with fdisk -l

Важливо: будьте на 100% впевнені, що вибрали правильні диски. На виробничих серверах неправильна команда може знищити дані.

Крок 2 — ініціалізація дисків як фізичних томів (PV):

pvcreate /dev/vdb /dev/vdc
pvcreate initialization

Перевірте стан PV:

pvdisplay
pvs
pvdisplay output

Крок 3 — створіть групу томів (VG). Тут ми назвемо її test:

vgcreate test /dev/vdb /dev/vdc

Перевірте VG:

vgdisplay
vgs

Крок 4 — створіть логічний том (LV). Приклад: LV розміром 5 ГБ з назвою test1 всередині VG test:

lvcreate -L 5G -n test1 test

Корисні приклади:

# Use 40% of VG capacity:
lvcreate -l 40%VG -n data test

# Use all free VG space:
lvcreate -l 100%FREE -n data test

Перевірте LV:

lvdisplay
lvs
lsblk

Створіть файлову систему та підключіть LV

Створіть файлову систему. Для загальних цілей виберіть ext4. (Якщо ви використовуєте XFS, зверніть увагу: XFS не можна зменшувати.)

# ext4 example:
mkfs.ext4 /dev/test/test1
mkfs.ext4 on LVM volume

Створіть точку монтування та змонтуйте її:

mkdir -p /var/www/home
mount /dev/test/test1 /var/www/home

Зробіть монтування постійним після перезавантаження, додавши запис у /etc/fstab:

nano /etc/fstab
/dev/test/test1  /var/www/home  ext4  defaults  0  2

Застосуйте та перевірте:

mount -a
df -h
lsblk -f
lsblk shows LVM mount

Розширити логічний том LVM

Існує два типових сценарії розширення:

  • Сценарій А: у VG вже є вільний простір → розширити LV та файлову систему
  • Сценарій Б: VG не має вільного місця → додати новий диск (PV) → розширити VG → розширити LV

Розширити LV (приклад: додати 10 ГБ):

lvextend -L  10G /dev/test/test1

Потім змініть розмір файлової системи:

# ext4:
resize2fs /dev/test/test1

# xfs (if you used XFS):
# xfs_growfs /var/www/home

Якщо спочатку потрібно додати новий диск:

pvcreate /dev/vdd
vgextend test /dev/vdd

Скоротити логічний том LVM (безпечний метод)

Попередження: зменшення є ризикованим. Робіть це лише за наявності резервних копій. Також пам’ятайте: XFS не можна зменшувати. Наведена нижче безпечна процедура зменшення призначена для ext4.

1) Змонтуйте:

umount /var/www/home

2) Перевірте цілісність файлової системи:

e2fsck -fy /dev/test/test1

3) Спочатку зменшіть файлову систему (наприклад: до 4 ГБ):

resize2fs /dev/test/test1 4G

4) Зменшіть LV відповідно (наприклад: зменшіть до 4 ГБ):

lvreduce -L 4G /dev/test/test1

5) Змонтуйте знову та перевірте:

mount /dev/test/test1 /var/www/home
df -h

Видалити групи та томи LVM

Щоб повністю видалити LVM:

  • Змонтуйте файлову систему
  • Видаліть запис у fstab
  • Видаліть LV → видаліть VG → видаліть мітки PV

umount /var/www/home

lvremove /dev/test/test1
vgremove test
pvremove /dev/vdb /dev/vdc

Створити дзеркальні томи

Дзеркалювання в LVM зберігає однакові дані на декількох дисках (подібно до RAID1). Це підвищує відмовостійкість, але зменшує корисний простір.

Класичний приклад (два диски):

pvcreate /dev/sdb /dev/sdc
vgcreate vgmirror /dev/sdb /dev/sdc

# Mirror LV (LVM mirror)
lvcreate -L 5G -m1 -n lvMirr1 vgmirror

У сучасних системах ви також можете використовувати типи LVM RAID (наприклад, RAID1), залежно від вашого дистрибутива та потреб.

Додаткові поради: знімки та найкращі практики

  • Використовуйте знімки для резервного копіювання/міграції (але пам’ятайте, що знімки не є «вічним сховищем»).
  • Давайте томам чіткі назви: vg_data/lv_mysql, vg_data/lv_www тощо
  • Стежте за вільним місцем у VG, щоб уникнути раптових випадків «нестачі місця».
  • Віддавайте перевагу розширенню, а не зменшенню. Зменшення завжди є більш небезпечним.

VPS Linux

Prev
Menu