Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:lvm [2010/07/29 12:15] |
wiki:lvm [2017/07/07 15:12] (текущий) [Linux Volume Manager (LVM)] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Linux Volume Manager (LVM) ====== | + | ====== Logical Volume Manager (LVM) ====== |
- | Linux Volume Manager (LVM) - это очень мощная система управления томами с данными для Linux. Она позволяет создавать поверх физических разделов винчестеров логические тома, которые в самой системе будут видны как обычные блочные устройства с данными (т.е. как обычные разделы). Основные преимущества LVM в том, что во-первых одну группу логических томов можно создавать поверх любого количества физических разделов, а во-вторых размер логических томов можно легко менять прямо во время работы. Кроме того, LVM поддерживает механизм снапшотов и копирование разделов "на лету". | + | Logical Volume Manager (LVM) - это очень мощная система управления томами с данными для Linux. Она позволяет создавать поверх физических разделов (или даже неразбитых винчестеров) логические тома, которые в самой системе будут видны как обычные блочные устройства с данными (т.е. как обычные разделы). Основные преимущества LVM в том, что во-первых одну группу логических томов можно создавать поверх любого количества физических разделов, а во-вторых размер логических томов можно легко менять прямо во время работы. Кроме того, LVM поддерживает механизм снапшотов, копирование разделов "на лету" и зеркалирование, подобное RAID-1. |
+ | |||
+ | <note>Если планируются большие работы с LVM, то можно запустить специальную "оболочку" командой ''sudo lvm''. Команда ''help'' покажет список команд.</note> | ||
+ | |||
+ | ===== Создание и удаление ===== | ||
+ | |||
+ | <note>Большинство команд требуют [[суперпользователь_в_ubuntu|прав суперпользователя]].</note> | ||
+ | |||
+ | Как уже отмечалось, 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 | ||
+ | |||
+ | |||
+ | <note important> Изменение размеров физического тома - задача весьма сложная и обычно не применяется. Целесообразнее и безопаснее удалить физический том, изменить размер раздела и создать том заново.</note> | ||
+ | |||
+ | ===== Как просто попробовать ===== | ||
+ | |||
+ | Если LVM устанавливается не для дальнейшего использования, а "напосмотреть", то диски и разделы можно заменить файлами. Не понадобятся ни дополнительные диски, ни виртуальные машины. Мы создадим виртуальные накопители и будем с ними работать. Например, можно создать 4 диска по 1 Гбайт, но можно создать другое количество большего или меньшего размера как вам хочется. | ||
+ | Создаем сами файлы, имитирующие устройства: | ||
+ | <code>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 | ||
+ | </code> | ||
+ | Создаем loopback устройства из файлов: | ||
+ | <code> | ||
+ | losetup -f --show ./d01 | ||
+ | losetup -f --show ./d02 | ||
+ | losetup -f --show ./d03 | ||
+ | losetup -f --show ./d04 | ||
+ | </code> | ||
+ | |||
+ | Дальше поступаем так же, как если бы ми создавали LVM на реальных дисках. Обратите внимание на названия loop-устройств --- они могут отличаться от приведённых здесь. | ||
+ | <code> | ||
+ | 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 | ||
+ | ... | ||
+ | </code> | ||
+ | |||
+ | ===== Снапшоты ===== | ||
+ | |||
+ | Одна из важнейших особенностей LVM - это поддержка механизма снапшотов. Снапшоты позволяют сделать //мгновенный// снимок логического тома и использовать его в дальнейшем для работы с данными. | ||
+ | |||
+ | ==== Примеры использования ==== | ||
+ | |||
+ | LVM активно используется, когда необходим механизм снапшотов. Например, этот механизм крайне важен при бекапе постоянно меняющихся файлов. LVM позволяет заморозить некоторое состояние ФС и скопировать с неё все нужные данные, при этом на оригинальной ФС останавливать запись не нужно. | ||
+ | |||
+ | Также снапшоты можно применить для организации поддержки файловым сервером с [[Samba]] механизма архивных копий, об этом в соответствующей статье: | ||
+ | |||
+ | * [[samba_shadow_copy|Поддержка архивных копий файлов в Samba]] | ||
+ | |||
+ | ===== LVM с LiveCD ===== | ||
+ | |||
+ | Если у вас возникла необходимость работать с LVM с LiveCD Ubuntu, то вам придётся выполнить несколько дополнительных действий, поскольку по умолчанию утилит для работы с LVM нет. | ||
+ | |||
+ | Сначала вам нужно установить эти утилиты: | ||
+ | |||
+ | sudo apt-get install lvm2 | ||
+ | |||
+ | Далее посмотрите командами | ||
+ | |||
+ | sudo vgscan | ||
+ | sudo vgdisplay YOUR_VGNAME | ||
+ | |||
+ | доступность ваших групп томов. Ну а дальше запустите все группы командой | ||
+ | |||
+ | sudo vgchange -a y | ||
+ | |||
+ | Эта команда должна сообщить о том, что все ваши логические тома активированы. Теперь можно работать с ними обычным образом. | ||
===== Ссылки ===== | ===== Ссылки ===== | ||
* [[wpru>LVM|Статья на русской Википедии.]] | * [[wpru>LVM|Статья на русской Википедии.]] | ||
+ | * [[http://const.tltsu.ru/articles/lvm.pdf|Константин Баранов, "Linux: Logical Volume Manager"]] | ||
* [[http://xgu.ru/wiki/LVM|Подробное руководство по LVM на русском]] | * [[http://xgu.ru/wiki/LVM|Подробное руководство по LVM на русском]] | ||
+ | * [[http://forum.ubuntu.ru/index.php?topic=105829.0|Обсуждение на форуме]] | ||
- | {{tag> Администрирование LVM HOWTO Сервер Linux_на_предприятии FIXME}} | + | {{tag> Администрирование LVM HOWTO Сервер Linux_на_предприятии Можно_улучшить}} |
| | ||