linux-labs

Вики / Хранилище и ФС

LVM (логические тома)

Концепция Ubuntu 24.04 · LVM2 ХранилищеLVM

PV → VG → LV; гибкое управление дисками, расширение и снапшоты.

LVM добавляет слой абстракции над дисками: тома можно расширять, переносить и снапшотить без переразбивки.

физические диски/разделы → PV (physical volume)
        PV(ы)            → VG (volume group, «пул» места)
        VG               → LV (logical volume, на нём ФС)

Статус всего стека: pvs, vgs, lvs (или подробно pvdisplay/vgdisplay/lvdisplay).

Слой Создать Показать Расширить
PV pvcreate /dev/sdb pvs
VG vgcreate data /dev/sdb vgs vgextend data /dev/sdc
LV lvcreate -L 10G -n vol1 data lvs lvextend -r -L +5G ...
lsblk                             # дерево блочных устройств (что во что входит)
pvs ; vgs ; lvs                   # краткий статус
vgs -o +vg_free                   # сколько свободного в группе
# с нуля:
sudo pvcreate /dev/sdb
sudo vgcreate data /dev/sdb
sudo lvcreate -L 10G -n vol1 data           # фикс. размер
sudo lvcreate -l 100%FREE -n vol1 data      # занять всё свободное VG
sudo mkfs.ext4 /dev/data/vol1
sudo mount /dev/data/vol1 /mnt/vol1

# РАСШИРЕНИЕ (самая частая задача):
sudo vgextend data /dev/sdc                  # добавить диск в группу (если VG полна)
sudo lvextend -r -L +5G /dev/data/vol1       # +5G к LV И сразу растянуть ФС (-r)
sudo lvextend -r -l +100%FREE /dev/data/vol1 # отдать тому всё свободное
# вручную, без -r:
sudo lvextend -L +5G /dev/data/vol1
sudo resize2fs /dev/data/vol1                # ext4 (xfs: sudo xfs_growfs /mnt/vol1)
# снапшот (для бэкапа/отката; нужно свободное место в VG):
sudo lvcreate -L 2G -s -n vol1_snap /dev/data/vol1   # -s снапшот
sudo mount -o ro /dev/data/vol1_snap /mnt/snap        # смонтировать для копии
sudo lvconvert --merge /dev/data/vol1_snap            # ОТКАТ к снапшоту
sudo lvremove /dev/data/vol1_snap                     # удалить снапшот

# перенести данные с диска и вывести его из VG:
sudo pvmove /dev/sdb              # эвакуировать экстенты с sdb на другие PV
sudo vgreduce data /dev/sdb      # убрать диск из группы

Расширил LV, а место не появилось

LV — не ФС. После lvextend растяни файловую систему: resize2fs (ext4) или xfs_growfs (xfs). Либо сразу lvextend -r.

vgs показывает мало свободного (VFree=0)

Группа заполнена — добавь PV: pvcreate /dev/sdc + vgextend data /dev/sdc.

Снапшот «переполнился» и стал невалидным

Снапшот хранит изменения; если исходный том активно пишется и снапшот мал — он переполняется (lvs покажет 100%). Делай снапшот достаточного размера и снимай копию быстро.

Не вижу том после ребута

sudo vgchange -ay (активировать), проверь автоактивацию и /etc/fstab (монтируй по /dev/<vg>/<lv> или UUID).

Случайно lvremove не того тома

Данные теряются. Перед lvremove/lvreduce сверяйся с lvs и делай снапшот/бэкап.

pvs ; vgs ; lvs ; lsblk           # статус и дерево
sudo lvextend -r -l +100%FREE /dev/vg/lv   # расширить LV+ФС на всё свободное
sudo vgextend vg /dev/sdc         # добавить диск в группу
sudo lvcreate -L 2G -s -n snap /dev/vg/lv  # снапшот
sudo lvconvert --merge /dev/vg/snap        # откат к снапшоту

См. также