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

Вступление

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

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

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

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

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

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

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

  • Physical Volumes:

    • LVM utility prefix:pv...

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

  • Volume Groups:

    • LVM utility prefix:vg...

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

  • Logical Volumes:

    • LVM utility prefix:lv... (общие утилиты LVM могут начинаться сlvm...)

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

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

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

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

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

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

Простой вариант использования

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

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

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

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 disk для повышения производительности. В этом примере используются диски/dev/sda с объемом памяти 200 ГБ и/dev/sdb с объемом памяти 100 ГБ.

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

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

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

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

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

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.

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

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

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

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

Мы можем увидеть краткое описание самой группы томов, набрав:

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

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

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

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

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

  • 10G «проекты» объем

  • 5G «www» объем для веб-контента

  • Том 20 ГБ для базы данных

  • Объем «рабочей области», который заполнит оставшееся пространство

Для создания логических томов мы используем команду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
Output  Logical volume "projects" created.
  Logical volume "www" created.
  Logical volume "db" created.

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

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

Мы добавили последние два столбца вывода, чтобы мы могли видеть пространство, выделенное для наших логических томов.

Теперь мы можем выделить остальное пространство в группе томов для тома «рабочее пространство», используя флаг-l, который работает в экстентах. Мы также можем предоставить процент и единицу, чтобы лучше донести наши намерения. В нашем случае мы хотим выделить оставшееся свободное пространство, поэтому мы можем передать100%FREE:

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

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

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

Как видите, том «рабочая область» создан, и группа томов «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

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

Это руководство лишь кратко коснулось мощности и контроля, которые LVM предоставляет администраторам систем Linux. Чтобы узнать больше о работе с LVM, ознакомьтесь с нашимguide to using LVM with Ubuntu 16.04.

Related