Proxmox: LVM или LVM-Thin — какое хранилище выбрать для виртуальных машин

При установке Proxmox VE на сервер с одним диском инсталлятор по умолчанию создаёт структуру, где диски виртуальных машин размещаются в LVM-Thin пуле data, — и именно на этом этапе многие администраторы впервые сталкиваются с выбором: оставить тонкое выделение или перейти на классический thick LVM. Неправильный выбор на старте потом оборачивается либо невозможностью делать снапшоты, либо переполнением тонкого пула с остановкой всех виртуальных машин разом.

Оба варианта построены на одной технологии — Logical Volume Manager, но принципиально различаются способом выделения пространства. В этой статье разберём, чем отличаются LVM и LVM-Thin в контексте Proxmox, какие ограничения есть у каждого варианта и как проверить текущую конфигурацию хранилища на уже работающем гипервизоре.

Чем классический LVM отличается от LVM-Thin

Thick LVM (толстые тома) выделяет всё запрошенное пространство сразу: если вы создали диск ВМ на 100 ГБ, эти 100 ГБ физически зарезервированы в группе томов, независимо от того, сколько данных реально записано. Пространство расходуется предсказуемо, переполнение невозможно, но суммарный объём всех дисков не может превышать ёмкость хранилища.

LVM-Thin работает иначе: создаётся тонкий пул (thin pool), внутри которого тома получают блоки по мере фактической записи данных. Диск на 100 ГБ с 10 ГБ реальных данных занимает физически около 10 ГБ. Это позволяет суммарный номинальный объём дисков сделать больше физического — так называемый overprovisioning.

Ключевое практическое различие: снапшоты дисков виртуальных машин в Proxmox на блочном LVM поддерживаются только в варианте LVM-Thin. На классическом thick LVM кнопка создания снапшота для ВМ будет недоступна, что для многих сценариев становится решающим аргументом.

Сравнительная таблица LVM и LVM-Thin

КритерийThick LVMLVM-Thin
Выделение местаСразу полный объёмПо мере записи данных
Снапшоты ВМ в ProxmoxНе поддерживаютсяПоддерживаются
Риск переполнения пулаОтсутствуетЕсть, при overprovisioning
Эффективность использования дискаНизкаяВысокая
ПроизводительностьСтабильная, предсказуемаяЗависит от заполненности пула

Преимущества и недостатки LVM-Thin

Тонкое выделение особенно выгодно, когда на гипервизоре размещается много виртуальных машин с большими номинальными дисками, но небольшой фактической заполненностью. Типичный пример — десяток ВМ с дисками по 200 ГБ, в каждой из которых реально занято 20–40 ГБ.

  • 📸 Снапшоты — мгновенные точки восстановления перед обновлениями и экспериментами.
  • 💾 Экономия места — физически расходуется только реально записанный объём.
  • Быстрое создание дисков — том создаётся мгновенно, без выделения полного объёма.
  • 📊 Overprovisioning — можно выдать ВМ больше места, чем есть физически (с осторожностью).

Обратная сторона — риск исчерпания тонкого пула. Когда thin pool заполняется полностью, виртуальные машины, пытающиеся записать данные, получают ошибки ввода-вывода и могут остановиться с повреждением файловых систем гостевых ОС. Это самая тяжёлая аварийная ситуация для LVM-Thin.

⚠️ Внимание: следите за заполненностью тонкого пула через lvs (столбец Data%) или в веб-интерфейсе Proxmox. При приближении к 80–85% пора либо расширять пул, либо переносить часть ВМ на другое хранилище. Промедление грозит одновременной остановкой всех машин на этом пуле.
📊 Какое хранилище вы используете на своём Proxmox?
LVM-Thin
Thick LVM
ZFS
Directory/NFS или другое

Когда выбрать классический thick LVM

Толстые тома оправданы в сценариях, где важнее предсказуемость, чем гибкость. Если на хосте работает одна-две критичные ВМ с базами данных, занимающими почти весь выделенный объём, тонкое выделение не даёт никакой экономии — зато добавляет точку отказа в виде метаданных пула.

Также thick LVM проще в аварийном восстановлении: тома можно смонтировать стандартными средствами LVM без активации тонкого пула. Для небольших установок, где снапшоты заменяются регулярными бэкапами через Proxmox Backup Server или vzdump, отсутствие снапшотов не критично.

  • 🎯 Максимальная предсказуемость — свободное место группы томов всегда соответствует реальности.
  • 🛠️ Простота восстановления — тома доступны без активации thin pool.
  • 🚫 Нет риска overprovisioning — переполнение исключено архитектурно.

Как проверить текущую конфигурацию хранилища

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

lvs -a

Если в выводе виден пул с именем data и типом tw-pool, а тома ВМ имеют тип V (thin volume) — у вас LVM-Thin. Толстые тома отображаются как обычные линейные тома linear без привязки к пулу. Дополнительно посмотрите конфигурацию хранилищ Proxmox:

cat /etc/pve/storage.cfg

В этом файле хранилище типа lvmthin будет описано директивой lvmthin с указанием vgname и thinpool, а классический вариант — директивой lvm только с группой томов.

Что означают поля в выводе lvs

Столбец Attr показывает атрибуты тома: буква t указывает на thin pool, V — на тонкий том. Столбец Data% для пула показывает фактическую заполненность — это главный показатель для мониторинга. Столбец Meta% отражает заполненность метаданных пула, которые тоже могут закончиться при большом числе томов и снапшотов.

Создание и расширение LVM-Thin пула

Тонкий пул можно создать вручную на отдельном диске или разделе. Сначала создаётся физический том и группа томов, затем сам пул:

pvcreate /dev/sdb

vgcreate pve-data /dev/sdb

lvcreate -l 95%FREE -T pve-data/thinpool

После этого хранилище регистрируется в Proxmox через веб-интерфейс: Datacenter → Storage → Add → LVM-Thin, либо командой pvesm add lvmthin. Оставлять часть группы томов незанятой (как в примере выше — 95% вместо 100%) полезно: запас понадобится для расширения метаданных пула или самого пула без остановки ВМ.

☑️ Безопасная настройка LVM-Thin

Выполнено: 0 / 5
⚠️ Внимание: снапшот — не замена резервной копии. Снапшоты LVM-Thin хранятся в том же пуле на том же физическом диске: при отказе носителя пропадут и ВМ, и все её снапшоты. Резервные копии всегда размещайте на отдельном хранилище.

Производительность и нюансы эксплуатации

По скорости линейного чтения и записи оба варианта близки, поскольку работают поверх одного механизма device mapper. Разница проявляется в момент первого выделения блоков тонкому тому и при сильной фрагментации заполненного пула. На практике для большинства домашних и офисных нагрузок разница незаметна, а вот для высоконагруженных СУБД стоит тестировать оба варианта на своём железе.

Отдельный нюанс — очереди отброшенных блоков (discard/TRIM). Если гостевая ОС и диск ВМ настроены с поддержкой discard, удалённые внутри ВМ файлы будут освобождать место в тонком пуле. Без этого пул со временем «распухает»: данные в госте удалены, а физически место не возвращается. Проверьте, что для диска ВМ включена опция Discard в настройках оборудования, если ваша модель использования этого требует.

Итоговые рекомендации по выбору

Для большинства установок Proxmox разумным выбором остаётся LVM-Thin: снапшоты, экономия места и гибкость перевешивают риск переполнения, который полностью нейтрализуется мониторингом заполненности пула. Именно поэтому инсталлятор Proxmox создаёт тонкий пул по умолчанию.

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

Частые вопросы

Можно ли преобразовать thick LVM в LVM-Thin без потери данных?

Прямой конвертации существующего толстого тома в тонкий штатными средствами Proxmox нет. Обычный путь — создать тонкий пул, перенести диски ВМ через Move Disk в веб-интерфейсе или восстановить машины из резервных копий на новое хранилище.

Что произойдёт, если LVM-Thin пул заполнится на 100%?

Операции записи в тонкие тома начнут завершаться с ошибками ввода-вывода. Гостевые системы могут перевести файловые системы в режим только для чтения или аварийно остановиться. Потребуется срочно освободить место (удалить ненужные тома или снапшоты) либо расширить пул командой lvextend.

Делают ли снапшоты LVM-Thin ВМ медленнее?

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

Как расширить тонкий пул, если место заканчивается?

Если в группе томов есть свободное пространство, выполните lvresize -L +100G pve/data (подставив своё имя VG и пула). Если места нет — добавьте новый диск в группу томов через pvcreate и vgextend, затем расширьте пул.

Что лучше для Proxmox: LVM-Thin или ZFS?

ZFS даёт снапшоты, сжатие и контроль целостности данных, но требователен к оперативной памяти и требует понимания своей модели хранения. LVM-Thin проще и легче по ресурсам. Для серверов с небольшим объёмом RAM LVM-Thin часто предпочтительнее, для больших систем с ECC-памятью многие выбирают ZFS.