Поиск по сайту:

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


Введение

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

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

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

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

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

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

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

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

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

Понимание экстентов

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

Экстенты физического тома называются физическими экстентами, а экстенты логического тома называются логическими экстентами. Логический том — это сопоставление, которое 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 сопоставляет и обрабатывает ее за вас. Вам нужно только указать размер тома и имя.

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

  • Объем «проектов»: 10 ГБ
  • Громкость 5G \www для веб-контента
  • Объем 20G \db для базы данных
  • Объем \рабочей области, который заполнит оставшееся пространство

Чтобы создать логические тома, используйте команду lvcreate. Вы должны указать группу томов, из которой будет выполняться извлечение, и можете назвать логический том с помощью параметра -n. Чтобы указать размер напрямую, вы можете использовать параметр -L. Если вместо этого вы хотите указать размер с точки зрения количества экстентов, вы можете использовать параметр -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
. . .

/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.