Logical Volume Manager (LVM) Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
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_на_предприятии ​Можно_улучшить}}
   ​   ​