Это старая версия документа.


Linux Volume Manager (LVM)

Linux Volume Manager (LVM) - это очень мощная система управления томами с данными для Linux. Она позволяет создавать поверх физических разделов (или даже неразбитых винчестеров) логические тома, которые в самой системе будут видны как обычные блочные устройства с данными (т.е. как обычные разделы). Основные преимущества LVM в том, что во-первых одну группу логических томов можно создавать поверх любого количества физических разделов, а во-вторых размер логических томов можно легко менять прямо во время работы. Кроме того, LVM поддерживает механизм снапшотов, копирование разделов «на лету» и зеркалирование, подобное RAID-1.

Если планируются большие работы с LVM, то можно запустить специальную «оболочку» командой sudo lvm. Команда help покажет список команд.

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

Большинство команд требуют прав суперпользователя.

Как уже отмечалось, LVM строится на основе разделов жёсткого диска и/или целых жёстких дисков. На каждом из дисков/разделов должен быть создан физический том (physical volume). К примеру, мы используем для LVM диск sda и раздел sdb2:

pvcreate /dev/sda
pvcreate /dev/sdb2

На этих физических томах создаём группу томов, которая будет называться, скажем, vg1:

vgcreate -s 32M vg1 /dev/sda /dev/sdb2

Посмотрим информацию о нашей группе томов:

vgdisplay vg1

Групп можно создать несколько, каждая со своим набором томов. Но обычно это не требуется.

Теперь в группе томов можно создать логические тома lv1 и lv2 размером 20 Гбайт и 30 Гбайт соответствено:

lvcreate -n lv1 -L 20G vg1
lvcreate -n lv2 -L 30G vg1

Теперь у нас есть блочные устройства /dev/vg1/lv1 и /dev/vg1/lv2.

Осталось создать на них файловую систему. Тут различий с обычными разделами нет:

mkfs.ext4 /dev/vg1/lv1
mkfs.reiserfs /dev/vg1/lv2

Удаление LVM (или отдельных его частей, например, логических томов или групп томов) происходит в обратном порядке - сначала нужно отмонтировать разделы, затем удалить логические тома (lvremove), после этого можно удалить группы томов (vgremove) и ненужные физические тома (pvremove).

Добавление физических томов

Чтобы добавить новый винчестер sdc в группу томов, создадим физический том:

pvcreate /dev/sdc

И добавим его в нашу группу:

vgextend vg1 /dev/sdc

Теперь можно создать ещё один логический диск (lvcreate) или увеличить размер существующего (lvresize).

Удаление физических томов

Чтобы убрать из работающей группы томов винчестер sda сначала перенесём все данные с него на другие диски:

pvmove /dev/sda

Затем удалим его из группы томов:

vgreduce vg /dev/sda

И, наконец, удалим физический том:

pvremove /dev/sda

Вообще-то, последняя команда просто убирает отметку о том, что диск является членом lvm, и особой пользы не приносит. После удаления из LVM для дальнейшего использования диск придётся переразбивать/форматировать.

Изменение размеров

LVM позволяет легко изменять размер логических томов. Для этого нужно сначала изменить сам логический том:

lvresize -L 40G vg1/lv2

а затем файловую систему на нём:

resize_reiserfs /dev/vg1/lv2
Изменение размеров физического тома - затача весьма сложная и обычно не применяется. Целесообразнее и безопаснее удалить физический том, изменить размер раздела и создать том заново.

Ссылки