Ошибка TASK ERROR: storage 'local-lvm' is not available on node при запуске виртуальной машины в Proxmox VE почти всегда означает одно: диск ВМ привязан к хранилищу, которое недоступно на текущем узле кластера или отключено в конфигурации. Первое действие — открыть Datacenter → Storage и проверить, активно ли хранилище и включён ли нужный узел в его список Nodes. Только после этого имеет смысл разбираться с самими дисками.
Хранилище (storage) в Proxmox VE — это абстракция, которая связывает физические диски, разделы, сетевые ресурсы и виртуальные машины. От правильного выбора типа хранилища зависят производительность ВМ, возможность live-миграции, создание снапшотов и тонких дисков. В этой статье разберём, какие типы хранилищ поддерживает Proxmox, чем они отличаются, как добавить новое хранилище и что делать при типичных проблемах.
Как Proxmox организует хранение данных ВМ
В основе системы лежит файл /etc/pve/storage.cfg, в котором описаны все подключённые хранилища кластера. Каждое хранилище имеет тип (dir, lvm, zfs, nfs и т.д.), набор поддерживаемого контента (образы дисков, ISO, бэкапы, шаблоны контейнеров) и список узлов, на которых оно доступно.
Важно понимать различие между файловыми и блочными хранилищами. Файловые (dir, NFS) хранят диски ВМ как файлы формата qcow2, raw или vmdk. Блочные (LVM, ZFS, Ceph RBD) выделяют логические тома, и диск ВМ выглядит как блочное устройство. От этого зависит поддержка снапшотов и тонкого выделения места.
- 📁 Directory (dir) — обычная папка на локальной файловой системе, поддерживает qcow2 со снапшотами.
- 📦 LVM / LVM-thin — логические тома; thin-версия даёт тонкое выделение и снапшоты.
- 💾 ZFS — комбинированная ФС и менеджер томов с снапшотами, сжатием и проверкой целостности.
- 🌐 NFS / SMB / iSCSI — сетевые хранилища для общих ресурсов и миграции между узлами.
- 🐙 Ceph RBD — распределённое хранилище для кластеров с отказоустойчивостью.
Тип хранилища определяет возможности ВМ: снапшоты, тонкие диски и live-миграция доступны не везде — выбирайте storage под задачи, а не «по умолчанию».
Сравнение популярных типов хранилищ
Однозначно «лучшего» типа не существует — выбор зависит от того, один у вас сервер или кластер, нужны ли снапшоты и насколько критична производительность дисковой подсистемы. Ниже сводная таблица основных характеристик.
| Тип | Формат дисков | Снапшоты | Тонкое выделение | Общий доступ (кластер) |
|---|---|---|---|---|
| Directory (dir) | qcow2, raw, vmdk | Только qcow2 | Только qcow2 | Нет |
| LVM-thin | Блочные тома | Да | Да | Нет |
| ZFS (zfspool) | Блочные тома (zvol) | Да | Да | Нет (репликация возможна) |
| NFS | qcow2, raw | Только qcow2 | Только qcow2 | Да |
| Ceph RBD | Блочные тома | Да | Да | Да |
Обратите внимание: на обычном LVM (не thin) снапшоты виртуальных машин недоступны — это одна из самых частых причин, почему кнопка Snapshot в веб-интерфейсе неактивна. Если хранилище уже создано как «толстое» LVM, переход на thin потребует переноса данных.
Добавление нового хранилища через веб-интерфейс
Базовый сценарий: у вас появился второй диск или массив, и нужно отдать его под диски ВМ. Проще всего это сделать через веб-интерфейс Proxmox в разделе Datacenter → Storage → Add.
Для локального каталога выберите тип Directory, укажите ID (имя хранилища), путь к смонтированной папке, например /mnt/datastore, и отметьте типы контента: Disk image и Container. Диск при этом должен быть предварительно отформатирован и смонтирован — Proxmox сам файловую систему для типа dir не создаёт.
Для ZFS сначала создаётся пул в разделе Node → Disks → ZFS → Create, после чего хранилище типа ZFS Pool появляется автоматически. Для NFS укажите адрес сервера и экспортируемый путь — Proxmox сам смонтирует ресурс.
☑️ Проверка перед добавлением хранилища
⚠️ Внимание: при добавлении диска в ZFS-пул через веб-интерфейс все данные на нём будут уничтожены. Убедитесь, что вы выбрали правильное устройство — имена дисков (/dev/sdbи т.п.) могут меняться после перезагрузки, надёжнее ориентироваться на идентификаторы в/dev/disk/by-id/.
Настройка хранилища через командную строку
Всё, что делается в веб-интерфейсе, доступно и через утилиту pvesm (Proxmox VE Storage Manager). Это удобно для автоматизации и диагностики.
pvesm add dir backups --path /mnt/backups --content backup
pvesm status
pvesm list local-lvm
Первая команда создаёт хранилище типа dir с именем backups, вторая показывает состояние всех хранилищ, третья — список томов в конкретном хранилище. Изменения сразу записываются в storage.cfg и реплицируются на все узлы кластера.
Если нужно вручную поправить конфигурацию, редактируйте /etc/pve/storage.cfg аккуратно: этот файл общий для кластера, и синтаксическая ошибка может «уронить» отображение хранилищ на всех узлах. Перед правкой сделайте копию файла.
Команда pvesm status быстро покажет, какие хранилища активны, сколько места занято и не отвалилось ли сетевое хранилище — начинайте диагностику с неё.
Перенос диска ВМ между хранилищами
Типичная задача: диск виртуальной машины создан на local-lvm, а нужно перенести его на новый быстрый SSD-пул или сетевое хранилище. В веб-интерфейсе это делается через выбор диска ВМ и пункт Disk Action → Move Storage. ВМ при этом может продолжать работать — данные копируются в фоне.
Через консоль та же операция выглядит так:
qm move-disk 100 scsi0 zfs-pool
Здесь 100 — идентификатор ВМ, scsi0 — переносимый диск, zfs-pool — целевое хранилище. После завершения старый том удаляется автоматически, если не указана опция сохранения.
Учтите, что при переносе с блочного хранилища на файловое формат диска может преобразоваться (например, в qcow2). Длительность операции зависит от объёма диска и скорости обоих хранилищ — на больших дисках планируйте окно обслуживания.
⚠️ Внимание: не прерывайте процесс Move Storage перезагрузкой узла или служб. Прерванное копирование может оставить «осиротевший» том в целевом хранилище и диск, отключённый от конфигурации ВМ. Если это произошло, проверьте конфиг ВМ в/etc/pve/qemu-server/<VMID>.confи список томов черезpvesm list, прежде чем удалять что-либо.
Типичные проблемы и их диагностика
Чаще всего администраторы сталкиваются с тремя сценариями: хранилище недоступно, закончилось место, не создаётся снапшот. У каждого — свой порядок проверки.
Хранилище inactive. Для сетевых хранилищ проверьте доступность сервера: ping до NFS-сервера, затем showmount -e <server> для проверки экспорта. Для локальных — смонтирован ли диск и не ушёл ли он в read-only из-за ошибок ФС (смотрите dmesg).
Переполнение. При заполнении LVM-thin пула на 100% записывающие ВМ могут аварийно остановиться, а сам пул — повредиться. Следите за столбцом %Used в pvesm status и настройте оповещения. Для ZFS помните, что пулу вредна работа при заполнении выше примерно 80–90% — производительность и надёжность снижаются.
- 🔍 Проверьте статус:
pvesm status— все ли хранилища active. - 📊 Оцените заполнение:
df -hдля dir,lvsдля LVM,zpool listдля ZFS. - 🧾 Изучите логи:
journalctl -u pve-storageи системный журнал узла. - 🔗 Для NFS/iSCSI проверьте сетевую связность и права на стороне сервера.
Почему снапшот недоступен на raw-диске
Формат raw не поддерживает встроенные снапшоты — это особенность самого формата, а не ограничение Proxmox. На файловых хранилищах пересоздайте диск в qcow2 (например, через Move Storage с выбором формата), а на блочных используйте LVM-thin, ZFS или Ceph, где снапшоты реализованы на уровне тома.
Рекомендации по выбору хранилища
Для одиночного сервера с парой ВМ практичный вариант — ZFS: снапшоты, сжатие и защита от повреждения данных «из коробки». Минус — требовательность к оперативной памяти и необходимость понимать устройство пулов.
Для кластера с live-миграцией нужно общее хранилище: NFS как простой вариант или Ceph для отказоустойчивых конфигураций. Локальные хранилища тоже допустимы, но миграция диска между узлами займёт время, пропорциональное его размеру.
Правило выбора: одиночный узел — ZFS или LVM-thin; кластер с миграцией — NFS или Ceph; ISO и бэкапы удобно держать на отдельном dir/NFS-хранилище.
Независимо от выбора разделяйте хранилища по назначению: диски ВМ, ISO-образы и бэкапы лучше держать отдельно. Это упрощает контроль места и позволяет применять разные политики резервного копирования.
Часто задаваемые вопросы
Чем local отличается от local-lvm в Proxmox?
local — это каталог на корневой файловой системе (обычно /var/lib/vz) для ISO, бэкапов и шаблонов. local-lvm — LVM-thin пул, создаваемый при установке, предназначенный для дисков ВМ и контейнеров. Диски ВМ в local тоже можно хранить (в формате qcow2), но стандартная практика — разделять эти роли.
Можно ли увеличить хранилище без остановки ВМ?
Для dir — расширьте файловую систему и точку монтирования. Для LVM-thin — добавьте диск в volume group командой vgextend и расширьте thin-пул через lvextend. ВМ при этом продолжают работать. Для ZFS добавляются новые устройства в пул. Конкретные команды зависят от вашей разметки — сверяйтесь с документацией Proxmox перед изменениями.
Как удалить хранилище, не потеряв данные?
Удаление записи через Datacenter → Storage → Remove убирает только конфигурацию из storage.cfg — сами данные на дисках остаются. Но если в хранилище есть привязанные к ВМ диски, сначала перенесите их через Move Storage, иначе ВМ перестанут запускаться.
Почему диск ВМ занимает больше места, чем показывает гостевая ОС?
На «толстых» томах (raw, обычный LVM) выделяется весь объём сразу — это нормально. На тонких хранилищах место растёт по мере записи и не уменьшается при удалении файлов внутри ВМ, если не включён discard/TRIM. Проверьте, что в настройках диска ВМ включена опция Discard, а гостевая ОС поддерживает TRIM.
Поддерживает ли Proxmox хранилище на внешнем USB-диске?
Технически USB-диск можно смонтировать и добавить как хранилище типа dir. Однако для дисков работающих ВМ это небезопасно: случайное отключение приведёт к повреждению данных. USB-накопители разумно использовать только для бэкапов и ISO-образов.