*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

Существует два распространенных сценария расширения:

  • Сценарий A: в VG уже есть свободное место → расширить LV и файловую систему
  • Сценарий B: в 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