Гибкая файловая система с LVM: пошаговая инструкция

Что такое LVM?
LVM — это уровень абстракции для управления дисковым пространством в Linux. Кратко: вместо фиксированных разделов вы создаёте логические тома (LV) поверх группы томов (VG), собранной из физических томов (PV). Это похоже на аренду нескольких земельных участков (физические диски), объединение их в одно поле (VG) и выделение гибких огородов (LV) под разные нужды.
Определения в одну строку:
- Physical Volume (PV): физический диск или раздел, подготовленный для LVM.
- Volume Group (VG): пул из PV, общий ресурс для логических томов.
- Logical Volume (LV): логический том, на который создаётся файловая система.
Почему LVM полезен
- Позволяет расширять и сжимать файловые системы без остановки сервисов при корректном использовании.
- Поддерживает снимки (snapshots) для бэкапов и тестирования.
- Упрощает замену и добавление дисков без простоя данных.
- Позволяет реализовать страйпинг и зеркалирование при необходимости.
Важно: LVM не заменяет резервное копирование. Снимки удобны для бэкапов, но не заменяют внешние копии данных.
Предварительные требования
- Linux-сервер с доступом root или пользователь с sudo.
- Три дополнительных диска по 50 ГБ (в примере): /dev/sdb, /dev/sdc, /dev/sdd.
Посмотреть все диски:
fdisk -lУстановка LVM
На некоторых дистрибутивах пакет lvm2 может быть не установлен. Установите его перед началом.
Для RHEL/CentOS/Fedora:
sudo dnf install lvm2 -yДля Ubuntu/Debian/Linux Mint:
sudo apt-get update
sudo apt-get install lvm2 -yСоздание разделов для LVM
Каждый физический диск нужно подготовить разделом с типом “LVM”. Для этого используйте fdisk или parted.
Пример для /dev/sdb:
sudo fdisk /dev/sdb
# Внутри fdisk последовательно: n, p, <номер>, , , t, 8e, w Порядок действий (кратко):
- n — создать новый раздел.
- p — выбрать primary.
- выбрать номер раздела (обычно 1).
- нажать Enter дважды, чтобы занять весь диск.
- t — изменить тип раздела.
- указать 8e — тип Linux LVM.
- w — записать изменения.
Повторите для /dev/sdc и /dev/sdd.
Проверить разделы:
fdisk -lСоздание физических томов (PV)
После создания разделов подготовьте их для LVM:
sudo pvcreate /dev/sdb1 /dev/sdc1 /dev/sdd1Вы должны увидеть подтверждение успешного создания PV. Проверить список PV:
pvs
pvdisplayСоздание группы томов (VG)
Создаём группу томов vg01 из трёх физических томов:
sudo vgcreate vg01 /dev/sdb1 /dev/sdc1 /dev/sdd1Проверить состояние VG:
vgs
vgdisplay vg01В нашем примере VG vg01 имеет суммарно 150 ГБ свободного места.
Создание логических томов (LV)
Создадим три логических тома по 5000 МБ (≈4.88 ГБ) каждый:
sudo lvcreate -L 5000M -n lv01 vg01
sudo lvcreate -L 5000M -n lv02 vg01
sudo lvcreate -L 5000M -n lv03 vg01Проверьте список логических томов:
lvs
lvdisplayСоздание файловых систем и монтирование
Создайте файловые системы (пример — ext4) на каждом логическом томе:
sudo mkfs.ext4 -m 0 /dev/vg01/lv01
sudo mkfs.ext4 -m 0 /dev/vg01/lv02
sudo mkfs.ext4 -m 0 /dev/vg01/lv03Создайте точки монтирования и смонтируйте тома:
sudo mkdir -p /mount1 /mount2 /mount3
sudo mount /dev/vg01/lv01 /mount1
sudo mount /dev/vg01/lv02 /mount2
sudo mount /dev/vg01/lv03 /mount3Проверить смонтированные тома:
df -hАвтоматическое монтирование при загрузке
Рекомендуется указывать в /etc/fstab UUID, а не устройство напрямую, чтобы избежать проблем при смене имён устройств. Узнать UUID можно через blkid.
sudo blkid /dev/vg01/lv01
# затем добавить в /etc/fstab
# Пример строк в /etc/fstab:
/dev/vg01/lv01 /mount1 ext4 defaults 0 0
/dev/vg01/lv02 /mount2 ext4 defaults 0 0
/dev/vg01/lv03 /mount3 ext4 defaults 0 0Отобразите и примените изменения:
sudo nano /etc/fstab
sudo mount -avВы увидите подтверждение успешного монтирования:
/: ignored
/mount1 : successfully mounted
/mount2 : successfully mounted
/mount3 : successfully mountedРасширение и уменьшение логического тома
LVM удобно расширять, но уменьшение требует аккуратности и резервной копии.
Расширение LV и растяжение файловой системы ext4:
# добавить 10G к lv01
sudo lvextend -L +10G /dev/vg01/lv01
# если ext4 — затем увеличить FS онлайн
sudo resize2fs /dev/vg01/lv01Для XFS нельзя уменьшать файловую систему; расширить её можно следующим образом:
sudo lvextend -L +10G /dev/vg01/lv01
sudo xfs_growfs /mount1Уменьшение LV (ext4) — опасная операция, требующая отмонтирования и резервной копии:
sudo umount /mount1
sudo e2fsck -f /dev/vg01/lv01
sudo resize2fs /dev/vg01/lv01 5G
sudo lvreduce -L 5G /dev/vg01/lv01
sudo mount /dev/vg01/lv01 /mount1Не пытайтесь уменьшать XFS — сначала нужно сделать бэкап, создать новый меньший LV и восстановить данные.
Снимки (snapshots)
Снимки полезны для бэкапов и тестирования. Пример создания временного снимка:
# создать снимок типа COW размером 1G
sudo lvcreate -L 1G -s -n lv01_snap /dev/vg01/lv01
# при необходимости смонтировать снимок
sudo mount /dev/vg01/lv01_snap /mnt/snap
# после использования удалить
sudo umount /mnt/snap
sudo lvremove /dev/vg01/lv01_snapУчтите, что снимки используют место в VG; если место закончится, снимок и исходный том могут стать недоступны.
Когда LVM не подходит
- Если требуется файловая система с встроённым дедуплицированием и проверкой целостности на уровне блоков (например, ZFS), LVM — не лучший выбор.
- Для простых статических дисков без планов на гибкое масштабирование можно обойтись стандартным разделением.
- На системах с ограниченными ресурсами и где нет навыков администратора, неправильное использование LVM повышает риск потерь данных.
Альтернативы и сочетания
- ZFS — мощная файловая система с интегрированным управлением RAID, снэпшотами и дедуплом, но требует других навыков.
- mdadm + LVM — можно собирать RAID на уровне блоков (md), а затем использовать LVM поверх md-устройств.
- Btrfs — альтернативная файловая система с собственной логикой томов и снапшотов.
Практические рекомендации и лучшие практики
- Всегда делайте резервные копии перед уменьшением томов или сложными операциями.
- Используйте UUID в /etc/fstab для стабильного монтирования.
- Планируйте размер VG с запасом для снимков и пуша логов.
- Мониторьте свободное место в VG: lvdisplay / vgs / vgs –segments.
- Для критичных данных рассмотрите зеркалирование (mirroring) или использование RAID перед LVM.
Чек-лист администратора
- Установлен пакет lvm2.
- Подготовлены физические диски и разделы с типом 8e.
- Созданы PV: pvcreate.
- Создан VG: vgcreate.
- Созданы LV: lvcreate.
- Созданы файловые системы: mkfs.
- Тома смонтированы и добавлены в /etc/fstab (лучше по UUID).
- Настроены регулярные бэкапы и мониторинг.
Примерное руководство действий (SOP)
- Подключить диск и убедиться, что он виден (fdisk -l).
- Разметить диски под LVM (fdisk /dev/sdX, тип 8e).
- Создать PV на новых разделах (pvcreate).
- Добавить PV в существующий VG (vgextend) или создать новый (vgcreate).
- Создать LV (lvcreate) или расширить существующий (lvextend).
- Создать/расширить файловую систему (mkfs, resize2fs, xfs_growfs).
- Добавить в /etc/fstab по UUID.
- Тестировать восстановление с бэкапа.
Частые проблемы и как их решать
- «Нет места в VG при создании снапшота» — освободите/добавьте PV (vgextend) или уменьшите нагрузку на снапшот.
- «При уменьшении LV потеря данных» — если нет бэкапа, восстановление часто невозможно.
- «Имена устройств меняются после перезагрузки» — используйте UUID в /etc/fstab.
- «XFS нельзя уменьшить» — делайте бэкапы и пересоздавайте том меньшего размера.
1‑строчная глоссарий
- PV — физический том; VG — группа томов; LV — логический том; COW — копирование при записи (snapshots).
Риски и меры
- Риск: потеря данных при lvreduce. Меры: бэкап, тестирование на ненужных данных.
- Риск: заполнение VG снапшотами. Меры: мониторинг, лимит на размер снапшотов, отдельный VG для снапшотов.
Краткое резюме
LVM даёт гибкость управления дисковым пространством: объединяйте диски, создавайте логические тома, делайте снимки и расширяйте файловые системы без простоя. Важные моменты — всегда иметь бэкапы, использовать UUID в fstab и аккуратно уменьшать тома только после проверки целостности и создания резервных копий.
Важно
- Перед уменьшением томов всегда делайте полную резервную копию.
- Мониторьте свободное место в VG при использовании снапшотов.
Похожие материалы
2x in-sensor zoom на Galaxy S23 — как включить
Синхронизация буфера обмена Android и ПК
Исправить ошибки osppsvc.exe в Windows
Включить автологин в Windows 11
Изменить и установить циферблаты Galaxy Watch