Введение в концепции, терминологию и операции LVM

Введение

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

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

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

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

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

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

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

  • Физические тома: Префикс утилиты LVM для физических томов – pv.... Это физические блочные устройства или другие устройства похожие на диски (например, другие устройства, созданные диспетчером устройств, такие как массивы RAID), которые используются LVM как сырье для создания более высоких уровней абстракции. Физические тома являются обычными устройствами хранения. LVM записывает заголовок на устройство для его выделения под управление.

  • Группы томов: Префикс утилиты LVM для групп томов – vg....
    LVM объединяет физические тома в хранилища, известные как группы томов. Группы томов абстрагируют характеристики базовых устройств и функционируют как объединенное логическое устройство с общей емкостью для хранения составляющих физических томов.

  • Логические тома: Префикс утилиты LVM для логических томов – lv..., общие утилиты LVM могут начинаться с lvm.... Группу объемов можно разбить на любое количество логических томов. Логические тома функционально эквивалентны разделам на физическом диске, но с гораздо большей гибкостью. Логические тома являются основным компонентом, с которым взаимодействуют пользователи и приложения.

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

Понимание единиц измерения

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

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

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

Общие случаи использования

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

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

Начните с сканирования системы для блочных устройств, к которым LVM может получить доступ и управлять ими. Вы можете сделать это с помощью следующей команды:

  1. sudo lvmdiskscan

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

Output
/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 с объемом 200 Гб и /dev/sdb с объемом 100 Гб.

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

Теперь, когда вы знаете физические устройства, которые хотите использовать, отметьте их как физические тома в LVM с помощью команды pvcreate:

  1. sudo pvcreate /dev/sda /dev/sdb
Output
Physical volume "/dev/sda" successfully created Physical volume "/dev/sdb" successfully created

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

Убедитесь, что LVM зарегистрировал физические тома, запустив команду pvs:

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

Обратите внимание, что оба устройства присутствуют в столбце PV, что означает физический том.

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

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

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

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

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

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

Выведите краткое резюме группы томов с помощью vgs:

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

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

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

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

В следующем примере вы создадите четыре отдельных логических тома из вашей группы томов:

  • Том “projects” объемом 10 ГБ
  • Том “www” объемом 5 ГБ для веб-контента
  • Том “db” объемом 20 ГБ для базы данных
  • Том “workspace”, который займет оставшееся пространство

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

Создайте первые три логических тома с опцией -L:

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

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

  1. sudo vgs -o +lv_size,lv_name
Output
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:

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

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

  1. sudo vgs -o +lv_size,lv_name
Output
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/имя_группы_томов/имя_логического_тома
  • /dev/mapper/имя_группы_томов-имя_логического_тома

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

  1. sudo mkfs.ext4 /dev/LVMVolGroup/projects
  2. sudo mkfs.ext4 /dev/LVMVolGroup/www
  3. sudo mkfs.ext4 /dev/LVMVolGroup/db
  4. sudo mkfs.ext4 /dev/LVMVolGroup/workspace

Как альтернативу, вы можете выполнить следующее:

  1. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-projects
  2. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-www
  3. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-db
  4. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-workspace

После форматирования создайте точки монтирования:

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

Затем смонтируйте логические тома в соответствующее место:

  1. sudo mount /dev/LVMVolGroup/projects /mnt/projects
  2. sudo mount /dev/LVMVolGroup/www /mnt/www
  3. sudo mount /dev/LVMVolGroup/db /mnt/db
  4. sudo mount /dev/LVMVolGroup/workspace /mnt/workspace

Чтобы сделать монтирование постоянным, используйте ваш любимый текстовый редактор, чтобы добавить их в файл /etc/fstab. Следующий пример использует nano:

  1. sudo nano /etc/fstab
/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

После редактирования файла сохраните его и выйдите. Если вы используете nano, нажмите CTRL+c, затем y, затем ENTER.

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

Заключение

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

Чтобы узнать больше о работе с LVM, ознакомьтесь с нашим руководством по использованию LVM с Ubuntu 18.04.

Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-lvm-concepts-terminology-and-operations