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

LFCS: как управлять LVM и создавать его с помощью команд vgcreate, lvcreate и lvextend — часть 11


В связи с изменениями в требованиях к экзамену LFCS, вступающими в силу с февраля. 2 2016 г. мы добавляем необходимые темы в опубликованную здесь серию LFCS. Для подготовки к этому экзамену вам также настоятельно рекомендуется использовать серию LFCE.

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

Управление логическими томами (также известное как LVM), которое стало стандартным для установки большинства (если не всех) дистрибутивов Linux, имеет множество преимуществ по сравнению с традиционным управлением разделами. Возможно, наиболее отличительной особенностью LVM является то, что он позволяет без особых хлопот изменять размеры (уменьшать или увеличивать) логические подразделения по желанию.

В структуру LVM входят:

  1. Один или несколько целых жестких дисков или разделов настраиваются как физические тома (PV).
  2. Группа томов (VG) создается с использованием одного или нескольких физических томов. Вы можете рассматривать группу томов как единую единицу хранения.
  3. Затем в группе томов можно создать несколько логических томов. Каждый логический том в некоторой степени эквивалентен традиционному разделу с тем преимуществом, что его размер можно изменять по желанию, как мы упоминали ранее.

В этой статье мы будем использовать три диска по 8 ГБ каждый (/dev/sdb, /dev/sdc и /dev /sdd), чтобы создать три физических тома. Вы можете либо создать PV непосредственно поверх устройства, либо сначала разделить его.

Хотя мы выбрали первый метод, если вы решите использовать второй (как описано в Части 4 «Создание разделов и файловых систем в Linux» этой серии), обязательно настройте каждый раздел как тип 8e.

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

Чтобы создать физические тома поверх /dev/sdb, /dev/sdc и /dev/sdd, выполните:

pvcreate /dev/sdb /dev/sdc /dev/sdd

Вы можете перечислить вновь созданные PV с помощью:

pvs

и получите подробную информацию о каждом PV с помощью:

pvdisplay /dev/sdX

(где X — b, c или d)

Если вы опустите /dev/sdX в качестве параметра, вы получите информацию обо всех PV.

Чтобы создать группу томов с именем vg00, используя /dev/sdb и /dev/sdc (мы сохраним /dev/sdd для иллюстрации возможности добавления других устройств для увеличения емкости хранилища при необходимости):

vgcreate vg00 /dev/sdb /dev/sdc

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

vgdisplay vg00

Поскольку vg00 состоит из двух дисков 8 ГБ, он будет отображаться как один диск 16 ГБ:

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

Например, давайте создадим два логических тома с именами vol_projects (10 ГБ) и vol_backups (оставшееся пространство), которые мы сможем использовать позже для хранения проектной документации. и резервные копии системы соответственно.

Опция -n используется для указания имени логического тома, тогда как -L устанавливает фиксированный размер, а -l (строчная буква L) используется для указания процента оставшегося места в контейнере VG.

lvcreate -n vol_projects -L 10G vg00
lvcreate -n vol_backups -l 100%FREE vg00

Как и раньше, просмотреть список LV и основную информацию можно с помощью:

lvs

и подробную информацию с

lvdisplay

Чтобы просмотреть информацию об одном LV, используйте lvdisplay с параметрами VG и LV, как показано ниже:

lvdisplay vg00/vol_projects

На изображении выше мы видим, что LV были созданы как устройства хранения данных (см. строку LV Path). Прежде чем каждый логический том можно будет использовать, нам необходимо создать поверх него файловую систему.

Здесь мы будем использовать ext4 в качестве примера, поскольку он позволяет нам как увеличивать, так и уменьшать размер каждого LV (в отличие от xfs, который позволяет только увеличивать размер):

mkfs.ext4 /dev/vg00/vol_projects
mkfs.ext4 /dev/vg00/vol_backups

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

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

Теперь представьте себе следующий сценарий. Вам начинает не хватать места в vol_backups, хотя в vol_projects достаточно места. Благодаря природе LVM мы можем легко уменьшить размер последнего (скажем, 2,5 ГБ) и выделить его для первого, одновременно изменяя размер каждой файловой системы.

К счастью, это так же просто, как сделать:

lvreduce -L -2.5G -r /dev/vg00/vol_projects
lvextend -l +100%FREE -r /dev/vg00/vol_backups

При изменении размера логического тома важно включать знаки минус (-) или плюс (+). В противном случае вы устанавливаете фиксированный размер для LV вместо того, чтобы изменять его размер.

Может случиться так, что вы придете к тому, что изменение размера логических томов больше не сможет удовлетворить ваши потребности в хранилище, и вам придется купить дополнительное устройство хранения. Проще говоря, вам понадобится еще один диск. Мы собираемся смоделировать эту ситуацию, добавив оставшийся PV из нашей первоначальной настройки (/dev/sdd).

Чтобы добавить /dev/sdd в vg00, выполните

vgextend vg00 /dev/sdd

Если вы запустите vgdisplay vg00 до и после предыдущей команды, вы увидите увеличение размера VG:

vgdisplay vg00

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

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

Конечно, не было бы смысла создавать логические тома, если мы не собираемся их фактически использовать! Чтобы лучше идентифицировать логический том, нам нужно выяснить, каков его UUID (неизменяемый атрибут, который однозначно идентифицирует отформатированное устройство хранения).

Для этого используйте blkid, а затем путь к каждому устройству:

blkid /dev/vg00/vol_projects
blkid /dev/vg00/vol_backups

Создайте точки монтирования для каждого LV:

mkdir /home/projects
mkdir /home/backups

и вставьте соответствующие записи в /etc/fstab (обязательно используйте полученные ранее UUID):

UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects	ext4 defaults 0 0
UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4	defaults 0 0

Затем сохраните изменения и смонтируйте LV:

mount -a
mount | grep home

Когда дело доходит до фактического использования логических томов, вам необходимо назначить соответствующие разрешения ugo+rwx, как описано в Части 8 «Управление пользователями и группами в Linux» этой серии.

Краткое содержание

В этой статье мы представили управление логическими томами — универсальный инструмент для управления устройствами хранения, обеспечивающий масштабируемость. В сочетании с RAID (который мы объяснили в Части 6 «Создание и управление RAID в Linux» этой серии) вы можете наслаждаться не только масштабируемостью (обеспечиваемой LVM), но и избыточностью (обеспечиваемой RAID).

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

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