Вики / Хранилище и ФС
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 # откат к снапшоту
См. также
- Монтирование и fstab — Хранилище и ФС
- Место на диске (df, du, inode) — Хранилище и ФС