Введение в LVM: основные понятия и операции

LVM (Logical Volume Management), или управление логическими томами – это технология управления устройствами хранения, позволяющая объединять области различных физических устройств в один логический том. С помощью подсистемы device mapper текущая версия LVM2 может объединять физические устройства хранения в группы и по мере необходимости выделять логические единицы из полученного тома.

Основными преимуществами LVM являются повышенная абстракция, гибкость и высокий контроль. Логическим томам можно присваивать описательные и понятные имена (например, databases или root-backup). Кроме того, по мере изменения требований к пространству том можно динамически изменять и перемещать между физическими устройствами в пуле текущей системы или легко экспортировать в другую систему. LVM также предлагает продвинутые функции: снепшоты, страйпинг и зеркалирование.

Терминология и архитектура LVM

Для начала нужно ознакомиться с базовыми понятиями и терминами LVM. Также важно иметь общее представление о том, как LVM организовывает запоминающие устройства.

Структуры управления хранилищами LVM

Работа LVM основана на иерархии физических устройств хранения. Рассмотрим основные уровни абстракции в этой иерархии LVM, начиная с самого простого.

  • Физические тома (physical volumes, префикс pv) – физические блочные устройства или другие устройства, подобные дискам (например, созданные device mapper устройства, такие как RAID-массивы). Они используются LVM в качестве исходного строительного материала для более высоких уровней абстракции. Физические тома – это обычные устройства хранения.
  • Группа томов (volume groups, префикс vg) – пул хранения, состоящий из нескольких физических томов. Группы томов абстрагируют характеристики базовых устройств и функционируют как единое логическое устройство (при этом объемы компонентов пула объединяются).
  • Логический том (logical volumes, префикс lv или lvm) – это логический раздел, который выделяется из единого пространства группы томов. Логические тома эквивалентны разделам на физическом диске, но они гораздо более гибкие. Логические тома являются основным компонентом, с которым будут взаимодействовать пользователи и приложения.

Таким образом, LVM может объединять физические тома в группы томов и получить общий пул памяти, доступной в системе. В дальнейшем этот пул  можно делить на произвольные логические тома, которые функционируют как гибкие разделы.

Что такое экстенты?

Каждый том в группе томов сегментируется на небольшие куски фиксированного размера, называемые экстентами. Размер экстентов определяется группой томов (все тома в группе соответствуют одному размеру экстента).

Экстенты на физических устройствах называются экстентами. Экстенты в логическом томе называются логическими экстентами. Логический том получается в результате преобразования физических экстентов в логические. Поэтому размер экстента представляет собой наименьший объем пространства, который может быть выделен в LVM.

В значительной степени гибкость и производительность LVM обеспечивается экстентами. Логические экстенты, которые LVM представляет в виде единого устройства, не должны сопоставляться с непрерывными физическими экстентами. LVM может копировать и реорганизовывать физические экстенты, которые составляют логический том, без прерывания работы пользователей. Логические тома также можно легко расширить или уменьшить, просто добавив или удалив экстенты из тома.

Применение LVM

Теперь, когда вы знакомы с терминологией и структурами LVM, мы можем рассмотреть некоторые общие способы применения LVM. Начнем с простой процедуры, которая использует два физических диска для формирования четырех логических томов.

Физические устройства как физические тома

Для начала нужно просканировать систему и обнаружить блочные устройства, которые может использовать LVM. Для этого введите:

sudo lvmdiskscan

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

/dev/ram0  [      64.00 MiB] /dev/sda   [     200.00 GiB] /dev/ram1  [      64.00 MiB] . . .
/dev/ram15 [      64.00 MiB] /dev/sdb   [     100.00 GiB] 2 disks
17 partitions
0 LVM physical volume whole disks
0 LVM physical volumes

Как видите, на данный момент существует два диска и 17 разделов (преимущественно это /dev/ram*, которые используются системой как Ram-диск для повышения производительности). Диски в этом примере – /dev/sda с 200G пространства, и /dev/sdb, который имеет 100G.

Важно! Убедитесь, что устройства, которые вы собираетесь использовать в LVM, не содержат важных данных. Использование этих устройств в LVM перезапишет текущее содержимое. Если на устройствах уже есть важные данные, сделайте их резервные копии.

Вы получили информацию о физических устройствах, и теперь их можно отметить как физические тома.

sudo pvcreate /dev/sda /dev/sdb
Physical volume "/dev/sda" successfully created
Physical volume "/dev/sdb" successfully created

Эта команда присвоит устройствам заголовок LVM, чтобы указать, что их можно добавить в группу томов.

Чтобы просмотреть физические тома, зарегистрированные в LVM, наберите:

sudo pvs
PV         VG   Fmt  Attr PSize   PFree
/dev/sda        lvm2 ---  200.00g 200.00g
/dev/sdb        lvm2 ---  100.00g 100.00g

Добавление физического тома в группу томов

Теперь, когда у вас есть физические тома, можно создать группу томов. Для группы томов нужно выбрать имя. В большинстве случаев для максимальной гибкости в каждой системе находится одна группа томов. Для простоты мы назовём группу томов LVMVolGroup.

Чтобы создать группу томов и добавить в неё оба физических тома, введите:

sudo vgcreate LVMVolGroup /dev/sda /dev/sdb
Volume group "LVMVolGroup" successfully created

Снова запустите pvs, и вы увидите, что физические тома теперь связаны с новой группой томов:

sudo pvs
PV         VG          Fmt  Attr PSize   PFree
/dev/sda   LVMVolGroup lvm2 a--  200.00g 200.00g
/dev/sdb   LVMVolGroup lvm2 a--  100.00g 100.00g

Чтобы получить краткую информацию о каждой группе томов, введите:

sudo vgs
VG          #PV #LV #SN Attr   VSize   VFree
LVMVolGroup   2   0   0 wz--n- 299.99g 299.99g

Теперь группа томов включает в себя два физических тома и ни одного логического тома.

Создание логических томов из пула групп томов

Группу томов можно использовать в качестве пула, из которого мы можем выделить логические тома. В отличие от обычного разбиения, при работе с логическими томами не нужен макет тома, поскольку за него отвечает LVM. Вам нужно указать только размер и имя тома.

Попробуйте создать четыре отдельных логических тома из полученной группы томов:

  • Том projects, 10G.
  • Том www, 5G для веб-контента.
  • Том db для базы данных, 20 G.
  • Том workspace, который займёт остальное пространство.

Чтобы создать логические тома, используйте команду lvcreate. Укажите в команде группу томов и выберите имя логического тома с помощью параметра –n. Чтобы указать размер тома, вы можете использовать опцию –L. Если вместо этого вы хотите указать размер в экстентах, вы можете использовать опцию -l.

Чтобы создать первые три логических тома, используйте –L:

sudo lvcreate -L 10G -n projects LVMVolGroup
sudo lvcreate -L 5G -n www LVMVolGroup
sudo lvcreate -L 20G -n db LVMVolGroup
Logical volume "projects" created.
Logical volume "www" created.
Logical volume "db" created.

Чтобы просмотреть логические тома и их связь с группой томов, введите:

sudo vgs -o +lv_size,lv_name
VG          #PV #LV #SN Attr   VSize   VFree   LSize  LV
LVMVolGroup   2   3   0 wz--n- 299.99g 264.99g 10.00g projects
LVMVolGroup   2   3   0 wz--n- 299.99g 264.99g  5.00g www
LVMVolGroup   2   3   0 wz--n- 299.99g 264.99g 20.00g db

Два последних столбца показывают пространство, выделенное для логических томов.

Оставшееся пространство можно присвоить последнему тому workspace с помощью флага –l, который работает с экстентами. Чтобы передать тому всё оставшееся пространство, укажите в команде 100%FREE:

sudo lvcreate -l 100%FREE -n workspace LVMVolGroup
Logical volume "workspace" created.

Проверьте информацию о группе томов, чтобы узнать, сколько пространства получил каждый логический том:

sudo vgs -o +lv_size,lv_name
VG          #PV #LV #SN Attr   VSize   VFree LSize   LV
LVMVolGroup   2   4   0 wz--n- 299.99g    0   10.00g projects
LVMVolGroup   2   4   0 wz--n- 299.99g    0    5.00g www
LVMVolGroup   2   4   0 wz--n- 299.99g    0   20.00g db
LVMVolGroup   2   4   0 wz--n- 299.99g    0  264.99g workspace

Как видите, теперь оставшееся пространство принадлежит тому workspace. Группа томов LVMVolGroup полностью распределена.

Форматирование и монтирование логических томов

Логические тома можно использовать как обычные блочные устройства.

Логические устройства (как и другие устройства хранения) находятся в каталоге /dev. Вы можете получить к ним доступ двумя путями:

  • /dev/volume_group_name/logical_volume_name
  • /dev/mapper/volume_group_name-logical_volume_name

Чтобы отформатировать четыре логических тома с файловой системой Ext4, введите:

sudo mkfs.ext4 /dev/LVMVolGroup/projects
sudo mkfs.ext4 /dev/LVMVolGroup/www
sudo mkfs.ext4 /dev/LVMVolGroup/db
sudo mkfs.ext4 /dev/LVMVolGroup/workspace

Или:

sudo mkfs.ext4 /dev/mapper/LVMVolGroup-projects
sudo mkfs.ext4 /dev/mapper/LVMVolGroup-www
sudo mkfs.ext4 /dev/mapper/LVMVolGroup-db
sudo mkfs.ext4 /dev/mapper/LVMVolGroup-workspace

После этого можно создать точки монтирования:

sudo mkdir -p /mnt/{projects,www,db,workspace}

Чтобы смонтировать логические тома, введите:

sudo mount /dev/LVMVolGroup/projects /mnt/projects
sudo mount /dev/LVMVolGroup/www /mnt/www
sudo mount /dev/LVMVolGroup/db /mnt/db
sudo mount /dev/LVMVolGroup/workspace /mnt/workspace

Чтобы настроить постоянную поддержку смонтированных томов, добавьте их в /etc/fstab:

sudo nano /etc/fstab
. . .
/dev/LVMVolGroup/projects /mnt/projects ext4 defaults,nofail 0 0
/dev/LVMVolGroup/www /mnt/www ext4 defaults,nofail 0 0
/dev/LVMVolGroup/db /mnt/db ext4 defaults,nofail 0 0
/dev/LVMVolGroup/workspace /mnt/workspace ext4 defaults,nofail 0 0

Теперь операционная система будет автоматически монтировать логические тома LVM во время загрузки.

Заключение

Теперь вы знакомы с базовыми понятиями и механизмами LVM и умеете выполнять основные операции по управлению логическими томами.

Читайте также:

Tags:

Добавить комментарий