LVM (Logical Volume Manager)

Материал из Bryansk Linux Users Group.

Перейти к: навигация, поиск

Условные обозначения

  1. Физический том (Physical Volume, или PV) - специальным образом отформатированное блочное устройство. Может быть как диском целиком, так и партицией, MD-устройствомь и т.д.
  2. Логическая группа (Volume Group, или VG) - по сути "пул ресурсов". Имеет логическое и физическое представление. С физической точки зрения является объединением физических томов, с логической точки зрения является "емкостью", из которой "разливаются" логические тома.
  3. Логический том (Logical Volume, или LV) - собственно логическая "партиция", расположенная на логической группе.

Основы практической работы

Работает все это следующим образом. Физические партиции форматируются в физические тома, например вот так:

# pvcreate /dev/sda

можно не указывать само устройство а указать только раздел который будет использован под LVM

# pvcreate /dev/sda1

После команды pvcreate могут вообще говоря следовать несколько блочных устройств. В этом случае все они будут отформатированы как PV. Затем следует объединить физические тома в логические группы. Для начала мы сделаем группу, состоящую только из одного PV:

# vgcreate -s 32M vg0 /dev/sda

По сути, единственный актуальный параметр - это так называемый Physical Extent Size. Он определяет "квант" места, то есть единицу, до которой округляются все размеры логических томов. По сути Extent - это "клеточка", в которую "разлинована" ваша логическая группа.

После того, как мы сделали логическую группу, время создать логические тома:

# lvcreate -L 20G -n lv0 vg0

Последняя команда создает логический том в группе vg0 с размером 20Gb. Она имеет множество опций, самые важные, впрочем, это -L РАЗМЕР -n ИМЯ.

Теперь самое время отформатировать логический том нашей любимой(а может и нет) файловой системой ext3:

# mkfs.ext3 /dev/vg0/lv0

Допустим, что позднее мы добавляем в систему еще одно блочное устройство /dev/sdb. Причем хотим не просто добавить, а использовать его как "расширение" уже имеющегося хранилища, желательно в рамках той же файловой системы и без остановки приложений. Делается это следующим образом: форматируем новое устройство как физический том:

# pvcreate /dev/sdb

Расширяем имеющуюся логическую группу, вводя в нее новорожденный физический том:

# vgextend vg0 /dev/sdb

Расширяем логический том, добавляя, например, еще 8Gb места:

# lvextend -L +8G /dev/vg0/lv0

После чего осталось лишь расширить файловую систему на устройстве. К счастью для нас файловая система Ext3 (как впрочем и GFS) поддерживает online resize в большую сторону.

# resize2fs /dev/vg0/lv0

Для использования файловой системы reiserfs а не ext3 следует использовать resize_reiserfs вместо resize2fs и при создании файловой системы mkfs.reiserfs вместо mkfs.ext3

Вот и все. В итоге мы не отключая файловую систему смогли увеличить ее размер до 20Gb, причем эти 20Gb вполне могут располагаться на разных физических дисках. В итоге размер физического устройства не является причиной не иметь разделы большего размера. =) И при этом оставаться чрезвычайно гибким в управлении хранением данных.

для работы всего этого чуда в debian - выполняем:

# apt-get install lvm2

для работы всего этого в gentoo - выполняем:

# emerge lvm2

пути до созданных нами разделов LVM будут примерно такого вида /dev/vg0/lv0 где vg0 = название созданной нами логической группы а lv0 = название созданного нами логического устройства

Личные инструменты