Logical Volume Manager (LVM)
Logical 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 vg1 /dev/sdaИ, наконец, удалим физический том:
pvremove /dev/sdaВообще-то, последняя команда просто убирает отметку о том, что диск является членом lvm, и особой пользы не приносит. После удаления из LVM для дальнейшего использования диск придётся переразбивать/переформатировать.
Изменение размеров
LVM позволяет легко изменять размер логических томов. Для этого нужно сначала изменить сам логический том:
lvresize -L 40G vg1/lv2а затем файловую систему на нём:
resize2fs /dev/vg1/lv2 resize_reiserfs /dev/vg1/lv2
Изменение размеров физического тома -
задача весьма сложная и обычно не применяется. Целесообразнее и
безопаснее удалить физический том, изменить размер раздела и создать том
заново.
Как просто попробовать
Если LVM устанавливается не для дальнейшего использования, а
«напосмотреть», то диски и разделы можно заменить файлами. Не
понадобятся ни дополнительные диски, ни виртуальные машины. Мы создадим
виртуальные накопители и будем с ними работать. Например, можно создать
4 диска по 1 Гбайт, но можно создать другое количество большего или
меньшего размера как вам хочется.
Создаем сами файлы, имитирующие устройства:
mkdir /mnt/sdc1/lvm cd /mnt/sdc1/lvm dd if=/dev/zero of=./d01 count=1 bs=1G dd if=/dev/zero of=./d02 count=1 bs=1G dd if=/dev/zero of=./d03 count=1 bs=1G dd if=/dev/zero of=./d04 count=1 bs=1GСоздаем loopback устройства из файлов:
losetup -f --show ./d01 losetup -f --show ./d02 losetup -f --show ./d03 losetup -f --show ./d04Дальше поступаем так же, как если бы ми создавали LVM на реальных дисках. Обратите внимание на названия loop-устройств — они могут отличаться от приведённых здесь.
pvcreate /dev/loop0 pvcreate /dev/loop1 pvcreate /dev/loop2 pvcreate /dev/loop3 vgcreate -s 32M vg /dev/loop0 /dev/loop1 /dev/loop2 /dev/loop3 lvcreate -n first -L 2G vg lvcreate -n second -L 400M vg ...
Снапшоты
Одна из важнейших особенностей LVM - это поддержка механизма снапшотов. Снапшоты позволяют сделать мгновенный снимок логического тома и использовать его в дальнейшем для работы с данными.
Примеры использования
LVM активно используется, когда необходим механизм снапшотов. Например,
этот механизм крайне важен при бекапе постоянно меняющихся файлов. LVM
позволяет заморозить некоторое состояние ФС и скопировать с неё все
нужные данные, при этом на оригинальной ФС останавливать запись не
нужно.
Также снапшоты можно применить для организации поддержки файловым сервером с Samba механизма архивных копий, об этом в соответствующей статье:
Также снапшоты можно применить для организации поддержки файловым сервером с Samba механизма архивных копий, об этом в соответствующей статье:
LVM с LiveCD
Если у вас возникла необходимость работать с LVM с LiveCD Ubuntu, то вам
придётся выполнить несколько дополнительных действий, поскольку по
умолчанию утилит для работы с LVM нет.
Сначала вам нужно установить эти утилиты:
Сначала вам нужно установить эти утилиты:
sudo apt-get install lvm2Далее посмотрите командами
sudo vgscan sudo vgdisplay YOUR_VGNAMEдоступность ваших групп томов. Ну а дальше запустите все группы командой
sudo vgchange -a yЭта команда должна сообщить о том, что все ваши логические тома активированы. Теперь можно работать с ними обычным образом.
Комментарии
Отправить комментарий