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

Одним из самых важных решений при установкеLinux-системы является выделение объема для файлов системы, домашних каталогов и других. Если вы в этот момент допустите ошибку, увеличение размера раздела, исчерпавшего свободное пространство, может быть трудным и несколько рискованным.
Управление логическими卷 (также известно как LVM), ставшее стандартным для установки большинства (如不是全部) Linux-дистрибутивов, имеет множество преимуществ перед традиционным управлением разделами.可能的но самой выдающейся особенностью LVM является возможность изменения размера логических разделов (уменьшение или увеличение) по demandwithout much hassle.
Структура LVM состоит из:
- Одного или более целых жестких дисков или разделов, настроенных как физические разделы (PVs).
- A volume group (VG) is created using one or more physical volumes. You can think of a volume group as a single storage unit.
- В том числе логические разделы могут быть созданы в группе volume. Each logical volume is somewhat equivalent to a traditional partition – with the advantage that it can be resized at will as we mentioned earlier.
В этой статье мы будем использовать три диска по 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
Как и ранее, вы можете просмотреть список логических томов и основную информацию с помощью:
# lvs
и подробную информацию с
# lvdisplay
Чтобы просмотреть информацию о конкретном логическом томе, используйте lvdisplay с параметрами VG и LV, следующим образом:
# lvdisplay vg00/vol_projects

На изображении выше мы видим, что логические тома были созданы в качестве устройств хранения (см. строку LV Path). Прежде чем каждый логический том можно будет использовать, необходимо создать файловую систему поверх него.
Здесь мы воспользуемся ext4 в качестве примера, поскольку он позволяет как увеличивать, так и уменьшать размер каждого логического тома (в отличие от 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

Теперь вы можете использовать вновь добавленное пространство для изменения размеров существующих LV в соответствии с вашими потребностями или создания дополнительных по мере необходимости.
Монтирование логических томов при загрузке и по требованию
Конечно, не имеет смысла создавать логические тома, если мы не собираемся их действительно использовать! Для более точной идентификации логического тома нам нужно узнать, какой у него 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

Когда речь идет о фактическом использовании LV, вам потребуется назначить правильные разрешения ugo+rwx
, как объяснено в Часть 8 – Управление пользователями и группами в Linux этой серии.
Резюме
В этой статье мы представили Управление логическими томами, универсальный инструмент для управления устройствами хранения, обеспечивающий масштабируемость. Когда он используется с RAID (о котором мы рассказали в Часть 6 – Создание и управление RAID в Linux этой серии), вы можете наслаждаться не только масштабируемостью (предоставляемой LVM), но и избыточностью (предлагаемой RAID).
В такой настройке вы обычно найдете LVM поверх RAID, то есть сначала настроите RAID, а затем настроите LVM поверх него.
Если у вас есть вопросы по этой статье или предложения по ее улучшению, не стесняйтесь обращаться к нам, используя форму комментариев ниже.
Source:
https://www.tecmint.com/manage-and-create-lvm-parition-using-vgcreate-lvcreate-and-lvextend/