linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • Симулятор
  • База знаний
  • Собеседование
Index
Categories
All entries
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
home/linux/kb/Файловая система/lvm

kb/filesystem ── Файловая система ── advanced

LVM - Logical Volume Manager

LVM - слой между [[block-devices]] и ФС: объединяет диски в pool'ы и нарезает логические тома любого размера, которые можно расширять, снапшотить, мигрировать вживую.

view as markdownaka: logical-volume, lvm2, pv, vg, lv

Зачем

Без LVM раздел /dev/sda1 - фиксированный кусок диска. Чтобы расширить /home - надо двигать физические разделы. С LVM ты добавляешь диск в pool и расширяешь логический том на лету, не размонтируя.

Дополнительно: снапшоты, миграция между дисками, RAID, thin provisioning.

Иерархия

PV (Physical Volume)  ← обычный раздел или диск целиком
     ↓
VG (Volume Group)     ← пул из одного или нескольких PV
     ↓
LV (Logical Volume)   ← виртуальный том внутри VG, под него делаешь ФС

Создание с нуля

bash
# 1. Подготовить физические тома (на разделах или целом диске)
sudo pvcreate /dev/sdb1 /dev/sdc1
sudo pvs                              # список PV
sudo pvdisplay /dev/sdb1              # подробно
# 2. Создать volume group из них
sudo vgcreate vg-data /dev/sdb1 /dev/sdc1
sudo vgs                              # список VG
sudo vgdisplay vg-data
# 3. Нарезать logical volumes
sudo lvcreate -L 50G -n web vg-data        # 50 GB том "web"
sudo lvcreate -l 100%FREE -n logs vg-data  # весь оставшийся объём
sudo lvs                              # список LV
sudo lvdisplay /dev/vg-data/web
# 4. Создать ФС и смонтировать
sudo mkfs.ext4 /dev/vg-data/web
sudo mount /dev/vg-data/web /var/www

Имена для fstab - /dev/<vg>/<lv> или /dev/mapper/<vg>-<lv> (оба указывают на один device).

Расширение онлайн (главная фича)

bash
# 1. Добавить ещё один диск в VG
sudo pvcreate /dev/sdd1
sudo vgextend vg-data /dev/sdd1
# 2. Расширить LV
sudo lvextend -L +100G /dev/vg-data/web        # +100 GB
sudo lvextend -l +100%FREE /dev/vg-data/logs   # весь свободный
# 3. Расширить ФС поверх (БЕЗ размонтирования)
sudo resize2fs /dev/vg-data/web                # ext4
sudo xfs_growfs /var/www                        # xfs (по mount-точке!)
# ext4: всё одной командой
sudo lvextend -L +100G -r /dev/vg-data/web     # -r = автоматом resize2fs

Уменьшение (опасно!)

Поддерживает только ext4 / btrfs (xfs - нельзя). Порядок ОБРАТНЫЙ: сначала ужать ФС, потом LV.

bash
sudo umount /var/www
sudo e2fsck -f /dev/vg-data/web
sudo resize2fs /dev/vg-data/web 30G
sudo lvreduce -L 30G /dev/vg-data/web
sudo mount /var/www

Если перепутать порядок → потеря данных. Делай бэкап.

Снапшоты

COW-снапшот - мгновенный, занимает место только на изменения:

bash
# Снапшот для бэкапа: 5 GB места под изменения, имя snap-web
sudo lvcreate -L 5G -s -n snap-web /dev/vg-data/web
# Использовать (например, бэкап через rsync с замороженного состояния):
sudo mkdir /mnt/snap
sudo mount -o ro /dev/vg-data/snap-web /mnt/snap
rsync -av /mnt/snap/ /backup/web/
# Удалить снапшот
sudo umount /mnt/snap
sudo lvremove /dev/vg-data/snap-web

ВАЖНО: снапшот сломается если изменений больше выделенного места. Мониторить: lvs - колонка Data%.

Thin provisioning

Обычные LV занимают своё место сразу. Thin LV - overcommit'ятся: можно создать 5 томов по 100 GB при 200 GB реального места. Потребляют место по мере записи.

bash
sudo lvcreate -L 200G -T vg-data/thin-pool          # пул
sudo lvcreate -V 100G -T vg-data/thin-pool -n vm1   # тонкий том 100G "виртуально"

Опасно если кто-то реально запишет - dmesg начнёт ругаться, и тома начнут стопориться. Мониторить usage пула обязательно.

Миграция между дисками онлайн

Заменить старый диск на новый без downtime:

bash
sudo pvcreate /dev/sde1
sudo vgextend vg-data /dev/sde1
sudo pvmove /dev/sdb1                  # переехать с sdb1 на свободные PV
sudo vgreduce vg-data /dev/sdb1
sudo pvremove /dev/sdb1
# Теперь sdb1 можно вынуть

Полезный обзор

bash
sudo pvs && echo --- && sudo vgs && echo --- && sudo lvs
sudo lsblk                              # дерево с LV видно
sudo lvs -o +devices                    # на каких PV лежит каждый LV

§ команды

bash
sudo pvs && sudo vgs && sudo lvs

Все три уровня LVM в одной команде - обзор pool'а

bash
sudo lvextend -L +50G -r /dev/vg/data

Расширить том на 50G и сразу resize ФС (-r)

bash
sudo lvcreate -L 5G -s -n snap /dev/vg/data

Снапшот для backup'а - быстрая заморозка состояния

bash
sudo pvmove /dev/sdb1

Перенести данные с диска онлайн перед его извлечением

bash
sudo lvs -o +devices

На каких физических устройствах лежит каждый LV

§ см. также

  • block-devicesBlock devices - диски в LinuxBlock device - устройство которое читается/пишется блоками фиксированного размера (обычно 512B или 4K). Диски, SSD, NVMe - всё block devices в `/dev/`.
  • filesystemsФайловые системы: ext4, xfs, btrfs, zfsext4 - дефолт, надёжный. xfs - для больших файлов и parallel I/O. btrfs/zfs - снапшоты, чексуммы, RAID встроенный, но сложнее.
  • ext4ext4 - рабочая лошадь Linux-ФСext4 - дефолтная ФС большинства дистро: журналирование, extents, фиксированное число inode при mkfs. Главные тюны - data-mode, noatime, lazy init. Стабилен 15+ лет. Не масштабируется как XFS.
  • xfsXFS - extents и параллельный I/OXFS - дефолт RHEL 7+: allocation groups (параллельный I/O), extents-based allocation, online grow. **Нельзя уменьшить** - только grow. Идеален для big files, БД, parallel workload.
  • cmd-lsblk-blkidlsblk и blkid - block-устройства и UUIDlsblk показывает дерево block-устройств (диск → раздел → LVM/crypt → mountpoint). blkid печатает UUID/LABEL/TYPE ФС. Связка для написания строки в [[mount-and-fstab|/etc/fstab]] по UUID.
Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки