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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:lvm [2010/08/17 16:47]
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 поддерживает механизм снапшотов,​ копирование разделов "на лету"​ и зеркалирование,​ подобное RAID-1.+Logical ​Volume Manager (LVM) - это очень мощная система управления томами с данными для Linux. Она позволяет создавать поверх физических разделов (или даже неразбитых винчестеров) логические тома, которые в самой системе будут видны как обычные блочные устройства с данными (т.е. как обычные разделы). Основные преимущества LVM в том, что во-первых одну группу логических томов можно создавать поверх любого количества физических разделов,​ а во-вторых размер логических томов можно легко менять прямо во время работы. Кроме того, LVM поддерживает механизм снапшотов,​ копирование разделов "на лету"​ и зеркалирование,​ подобное RAID-1.
  
 <​note>​Если планируются большие работы с LVM, то можно запустить специальную "​оболочку"​ командой ''​sudo lvm''​. Команда ''​help''​ покажет список команд.</​note>​ <​note>​Если планируются большие работы с LVM, то можно запустить специальную "​оболочку"​ командой ''​sudo lvm''​. Команда ''​help''​ покажет список команд.</​note>​
Строка 10: Строка 10:
  
 Как уже отмечалось,​ LVM строится на основе разделов жёсткого диска и/или целых жёстких дисков. На каждом из дисков/​разделов должен быть создан **физический том** (physical volume). К примеру,​ мы используем для LVM диск //sda// и раздел //sdb2//: Как уже отмечалось,​ LVM строится на основе разделов жёсткого диска и/или целых жёстких дисков. На каждом из дисков/​разделов должен быть создан **физический том** (physical volume). К примеру,​ мы используем для LVM диск //sda// и раздел //sdb2//:
-<​code>​pvcreate /dev/sda + 
-pvcreate /dev/sdb2</​code>​+  ​pvcreate /dev/sda 
 +  pvcreate /dev/sdb2 
 На этих физических томах создаём **группу томов**,​ которая будет называться,​ скажем,​ //vg1//: На этих физических томах создаём **группу томов**,​ которая будет называться,​ скажем,​ //vg1//:
-<​code>​vgcreate -s 32M vg1 /dev/sda /dev/sdb2</​code>​+ 
 +  ​vgcreate -s 32M vg1 /dev/sda /dev/sdb2 
 Посмотрим информацию о нашей группе томов: Посмотрим информацию о нашей группе томов:
-<​code>​vgdisplay vg1</​code>​+ 
 +  ​vgdisplay vg1 
 Групп можно создать несколько,​ каждая со своим набором томов. Но обычно это не требуется. Групп можно создать несколько,​ каждая со своим набором томов. Но обычно это не требуется.
  
 Теперь в группе томов можно создать **логические тома** //lv1// и //lv2// размером 20 Гбайт и 30 Гбайт соответствено:​ Теперь в группе томов можно создать **логические тома** //lv1// и //lv2// размером 20 Гбайт и 30 Гбайт соответствено:​
-<​code>​lvcreate -n lv1 -L 20G vg1 + 
-lvcreate -n lv2 -L 30G vg1</​code>​+  ​lvcreate -n lv1 -L 20G vg1 
 +  lvcreate -n lv2 -L 30G vg1 
 Теперь у нас есть блочные устройства ///​dev/​vg1/​lv1//​ и ///​dev/​vg1/​lv2//​. Теперь у нас есть блочные устройства ///​dev/​vg1/​lv1//​ и ///​dev/​vg1/​lv2//​.
  
 Осталось создать на них файловую систему. Тут различий с обычными разделами нет: Осталось создать на них файловую систему. Тут различий с обычными разделами нет:
-<​code>​mkfs.ext4 /​dev/​vg1/​lv1 + 
-mkfs.reiserfs /​dev/​vg1/​lv2</​code>​+  ​mkfs.ext4 /​dev/​vg1/​lv1 
 +  mkfs.reiserfs /​dev/​vg1/​lv2
  
 Удаление LVM (или отдельных его частей,​ например,​ логических томов или групп томов) происходит в обратном порядке - сначала нужно отмонтировать разделы,​ затем удалить логические тома (''​lvremove''​),​ после этого можно удалить группы томов (''​vgremove''​) и ненужные физические тома (''​pvremove''​). Удаление LVM (или отдельных его частей,​ например,​ логических томов или групп томов) происходит в обратном порядке - сначала нужно отмонтировать разделы,​ затем удалить логические тома (''​lvremove''​),​ после этого можно удалить группы томов (''​vgremove''​) и ненужные физические тома (''​pvremove''​).
Строка 32: Строка 41:
  
 Чтобы добавить новый винчестер //sdc// в группу томов, создадим физический том: Чтобы добавить новый винчестер //sdc// в группу томов, создадим физический том:
-<​code>​pvcreate /dev/sdc</​code>​+ 
 +  ​pvcreate /dev/sdc 
 И добавим его в нашу группу:​ И добавим его в нашу группу:​
-<​code>​vgextend vg1 /dev/sdc</​code>​+ 
 +  ​vgextend vg1 /dev/sdc 
 Теперь можно создать ещё один логический диск (''​lvcreate''​) или увеличить размер существующего (''​lvresize''​). Теперь можно создать ещё один логический диск (''​lvcreate''​) или увеличить размер существующего (''​lvresize''​).
  
Строка 40: Строка 53:
  
 Чтобы убрать из работающей группы томов винчестер //sda// сначала перенесём все данные с него на другие диски: Чтобы убрать из работающей группы томов винчестер //sda// сначала перенесём все данные с него на другие диски:
-<​code>​pvmove /dev/sda</​code>​+ 
 +  ​pvmove /dev/sda 
 + 
 Затем удалим его из группы томов: Затем удалим его из группы томов:
-<​code>​vgreduce ​vg /dev/sda</​code>​+ 
 +  ​vgreduce ​vg1 /dev/sda 
 И, наконец,​ удалим физический том: И, наконец,​ удалим физический том:
-<​code>​pvremove /dev/sda</​code>​ + 
-Вообще-то,​ последняя команда просто убирает отметку о том, что диск является членом lvm, и особой пользы не приносит. После удаления из LVM для дальнейшего использования диск придётся переразбивать/​форматировать.+  ​pvremove /dev/sda 
 + 
 +Вообще-то,​ последняя команда просто убирает отметку о том, что диск является членом lvm, и особой пользы не приносит. После удаления из LVM для дальнейшего использования диск придётся переразбивать/​переформатировать.
  
 ===== Изменение размеров ===== ===== Изменение размеров =====
  
 LVM позволяет легко изменять размер логических томов. Для этого нужно сначала изменить сам логический том: LVM позволяет легко изменять размер логических томов. Для этого нужно сначала изменить сам логический том:
-<​code>​lvresize -L 40G vg1/lv2</​code>​+ 
 +  ​lvresize -L 40G vg1/lv2
 а затем файловую систему на нём: а затем файловую систему на нём:
-<​code>​resize_reiserfs /​dev/​vg1/​lv2</​code>​ 
  
-<note important>​ Изменение размеров физического тома - затача весьма сложная и обычно не применяется. Целесообразнее и безопаснее удалить физический том, изменить размер раздела и создать том заново.</​note>​+  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_на_предприятии Можно_улучшить}} {{tag> Администрирование LVM HOWTO Сервер Linux_на_предприятии Можно_улучшить}}