LVM (Logical Volume Management) — это система управления дисковым пространством. Она позволяет объединить несколько физических томов (PV) в одну группу томов (VG), из которой затем можно выделять логические тома (LV), доступные для использования.
Использование LVM повышает гибкость управления хранилищем: логические тома можно легко создавать, удалять и перемещать между физическими устройствами хранения. Если группа томов LVM размещена на общем хранилище, доступном со всех узлов PVE (например, через общий iSCSI LUN или реплицированном через DRBD), то все узлы могут получать доступ к образам ВМ, что делает возможной live-миграцию.
Хранилище типа lvm поддерживает общие свойства хранилищ PVE (content, nodes, disable). Кроме того, для его настройки используются следующие параметры:
vgname — имя группы томов LVM (должна существовать в системе);
base — базовый том. Этот том автоматически активируется перед доступом к хранилищу. Параметр особенно полезен, если группа томов LVM находится на удалённом iSCSI-сервере;
saferemove — безопасное удаление томов (соответствует опции Стереть удалённые тома в веб-интерфейсе). При удалении LVM-тома все его данные полностью затираются нулями, что исключает возможность восстановления остаточных данных при последующем создании томов на тех же физических экстентах;
saferemove_throughput — скорость операции безопасного удаления (значение параметра cstream -t утилиты cstream);
snapshot-as-volume-chain — снимки как цепочки томов. Включает поддержку создания снимков для ВМ в LVM через механизм цепочек томов:
при создании снимка текущее состояние виртуального диска сохраняется как отдельный том с именем снимка;
для дальнейшей работы создаётся новый том, который использует снимок в качестве базового (backing volume) и сохраняет только изменения;
таким образом формируется цепочка томов:
snapshot1 → snapshot2 → active-volume
Преимущества по сравнению с нативными LVM-снимками (COW):
отсутствует значительное снижение производительности;
исключён риск аварийного завершения при исчерпании выделенного пространства;
работает на любом блочном хранилище, включая SAN (iSCSI, Fibre Channel).
Эта опция применяется только к вновь создаваемым дискам.
Пример файла конфигурации (
/etc/pve/storage.cfg):
lvm: vg
vgname vg
content images,rootdir
saferemove 0
shared 0
snapshot-as-volume-chain 1
nodes pve03
Допустимые типы содержимого:
26.4.8.1. Создание локального LVM-хранилища в веб-интерфейсе
Для создания локального LVM-хранилища в системе должен быть как минимум один пустой диск.
Для создания локального LVM-хранилища в веб-интерфейсе следует выбрать узел, на котором будет создано хранилище, в разделе выбрать пункт и нажать кнопку Создать: Volume Group:
В открывшемся окне следует выбрать диск, задать имя группы томов, отметить пункт Добавить хранилище (если этот пункт не отмечен, будет создана только группа томов без подключения к хранилищу PVE) и нажать кнопку Создать:
Для изменения параметров хранилища следует перейти в → , выбрать нужное хранилище и нажать кнопку Редактировать. В открывшемся окне можно изменить тип содержимого контейнера, включить/отключить хранилище и настроить другие параметры:
Одним из преимуществ хранилища LVM является возможность его использования поверх общего блочного хранилища, например, iSCSI LUN. В таком случае бэкенд (например, кластерный менеджер блокировок) обеспечивает корректную координацию доступа между узлами.
26.4.8.2. Создание LVM-хранилища в командной строке
Пример создания LVM-хранилища на пустом диске
/dev/sdd:
Создание физического тома (PV):
# pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created.
Создание группы томов (VG) с именем vg:
# vgcreate vg /dev/sdd
Volume group "vg" successfully created
Просмотр информации о физических томах:
# pvs
PV VG Fmt Attr PSize PFree
/dev/sdd vg lvm2 a-- <18,00g <3,00g
Просмотр информации о группах томов:
# vgs
VG #PV #LV #SN Attr VSize VFree
vg 1 2 0 wz--n- <18,00g <3,00g
Получение списка доступных групп томов PVE:
# pvesm lvmscan
vg
Создание LVM-хранилища с именем myspace:
# pvesm add lvm myspace --vgname vg --nodes pve03