12 KiB
#omv #settings #nfs-share #pve #pbs #nfs #mount #lxc
Гайд: Разшаривание NFS на OMV и подключение к PVE + PBS
Инфраструктура: OMV 8 (192.168.1.73), Proxmox VE, Proxmox Backup Server (отдельная VM/CT)
1. Настройка NFS-шары на OMV
1.1. Через веб-интерфейс
Services → NFS → Settings
- Enable NFS v4
- Enable async (повышает производительность)
- Порт: 2049 (по умолчанию)
- Apply
Services → NFS → Shares → Add
| Поле | Значение |
|---|---|
| Shared folder | /путь/к/шаре (создать заранее через Storage → Shared Folders) |
| Client | 192.168.1.0/24 — вся локальная сеть |
| Options | rw,subtree_check,no_root_squash |
no_root_squashкритически важен для LXC: без него клиентский root внутри контейнера будет преобразован в nobody и не сможет писать в шару.
Применить: кнопка Apply (галочка) вверху.
1.2. Через CLI — проверка
# Убедиться, что NFS запущен
systemctl status nfs-server
# Просмотреть экспорты
showmount -e localhost
# Или файл конфигурации
cat /etc/exports
# Пример содержимого:
# /srv/mergerfs/pool/backup 192.168.1.0/24(rw,subtree_check,no_root_squash,sync)
Важно: после каждого Apply в веб-UI OMV переписывает
/etc/exports. Ручные правки там не переживают следующего Apply.
2. Подключение NFS к PVE и проброс в LXC
2.1. Создание PVE Storage для NFS через UI
Datacenter → Storage → Add → NFS
| Поле | Значение |
|---|---|
| ID | nfs-omv (произвольное имя) |
| Server | 192.168.1.73 |
| Export | Путь из /etc/exports на OMV (например /export/backup) |
| Content | Выбрать, для чего это хранилище: Container template, ISO image, VZDump backup file, Container, Snippets |
Через CLI (альтернатива):
pvesm add nfs nfs-omv --server 192.168.1.73 --path /mnt/pve/nfs-omv --export /export/backup
Проверка:
pvesm status | grep nfs-omv
# Должно показать storage nfs-omv online
Ограничение: PVE NFS storage не позволяет пробросить NFS-шару напрямую в LXC как bind mount. Для LXC нужен ручной mount на хосте PVE, потом
mp0проброс.
2.2. Монтирование NFS на хосте PVE (для LXC)
При подключении NFS через UI - отдельно точку монтирования создавать не нужно Создаём точку монтирования на хосте Proxmox:
# Создать директорию
mkdir -p /mnt/nfs-omv-backup
# Монтировать (проверка)
mount -t nfs 192.168.1.73:/export/backup /mnt/nfs-omv-backup -o rw,vers=4,hard,timeo=600,rsize=1048576,wsize=1048576,no_root_squash
# Проверить
ls -la /mnt/nfs-omv-backup
df -h /mnt/nfs-omv-backup
Варианты опций:
vers=4— NFSv4 (безопаснее, быстрее)vers=3— NFSv3 (если v4 не работает)hard— процессы ждут восстановления соединения (vssoft— таймаут с ошибкой)no_root_squash— root на LXC может писать как rootrsize,wsize=1048576— максимальный размер блока (1 МБ) для производительности
Если шару надо использовать как хранилище CT templates или VZDump backup, лучше сначала смонтировать, потом добавить через pvesm add dir:
pvesm add dir nfs-omv-lxc --path /mnt/nfs-omv-backup --content vztmpl,backup,snippets
2.2.1. Автомонтирование (fstab)
Добавить в /etc/fstab на хосте PVE:
# OMV NFS share — для проброса в LXC
192.168.1.73:/export/backup /mnt/nfs-omv-backup nfs4 rw,hard,timeo=600,rsize=1048576,wsize=1048576,_netdev 0 0
Проверка автомонтирования:
umount /mnt/nfs-omv-backup
mount -a
df -h | grep nfs
_netdev— система не пытается монтировать NFS до поднятия сети.
2.3. Проброс NFS-шары в LXC контейнер
Редактировать конфиг контейнера /etc/pve/lxc/<CT_ID>.conf:
# Синтаксис: mp0: /путь/на/хосте,mp=/путь/в/LXC
mp0: /mnt/nfs-omv-backup,mp=/mnt/backup
Через CLI:
pct set <CT_ID> -mp0 /mnt/nfs-omv-backup,mp=/mnt/backup
В веб-интерфейсе PVE: выбрать контейнер → Resources → Add → Mount Point.
Проверка внутри LXC:
pct enter <CT_ID>
ls -la /mnt/backup
touch /mnt/backup/test-root && rm /mnt/backup/test-root
Если
touchвыдаётPermission denied— на OMV включеноroot_squash(сменить наno_root_squash).
2.4. Полный пример: LXC с backup-шара
# Хост PVE: монтируем NFS
mkdir -p /mnt/nfs-omv-backup
echo '192.168.1.73:/export/backup /mnt/nfs-omv-backup nfs4 rw,hard,timeo=600,_netdev 0 0' >> /etc/fstab
mount -a
# Пробрасываем в LXC (ID = 200)
pct set 200 -mp0 /mnt/nfs-omv-backup,mp=/mnt/backup
# Внутри LXC: проверяем
pct enter 200
df -h | grep /mnt/backup
3. Подключение NFS к PBS (Proxmox Backup Server)
3.1. Вариант A: Через веб-интерфейс PBS
Server → Storage → Add → NFS
| Поле | Значение |
|---|---|
| Server | 192.168.1.73 (OMV) |
| Export | /export/backup или путь из OMV |
| Content | backup (основное) |
| Node | выбрать текущую ноду PBS |
| Enable | [x] |
Важно для NFS на PBS:
- PBS хранит данные в собственной структуре (
.chunk+datastore). Не надо указывать уже существующую директорию с файлами — PBS создаст свою иерархию. - NFS-шара НЕ может одновременно быть datastore PBS и использоваться для чего-то другого (в PBS своя структура хранения).
3.2. Вариант B: Через CLI на PBS
pvesm add nfs pbs-nfs-omv \
--server 192.168.1.73 \
--export /export/pbs-datastore \
--content backup
Проверка:
pvesm status | grep pbs-nfs-omv
# Должно показать status: available
3.3. Настройка бэкапа на NFS datastore
После добавления storage в PBS:
-
В PVE: Datacenter → Backup → Add
- Storage: выбрать
pbs-nfs-omv(имя storage в PBS) - Schedule: по необходимости
- Selection Mode: Include/Exclude
- Compression: ZSTD (рекомендуется)
- Encryption: по желанию
- Enable: [x]
- Storage: выбрать
-
Или ручной бэкап через CLI на PVE:
# Полный бэкап VM 100 в PBS-storage
vzdump 100 --mode snapshot --compress zstd --storage pbs-nfs-omv
# Или с указанием PBS напрямую
proxmox-backup-client backup \
--backup-id "vm-100" \
--backup-type "qemu" \
--repository 192.168.1.73:datastore:pbs-nfs-omv
3.4. Особенности NFS c PBS
| Аспект | Комментарий |
|---|---|
| Производительность | NFS добавляет latency — для PBS лучше локальный диск (ZFS/SATA SSD) |
| Надёжность | soft,timeo=600 на PBS клиенте — при временной потере NFS бэкап упадёт с ошибкой, а не зависнет (hard) |
| GC (Garbage Collection) | PBS периодически чистит expired backup snapshots. Убедиться, что NFS шара смонтирована с опцией rw |
| Verification | PBS verifying jobs будут читать данные бэкапов — NFS latency замедлит. Нормально для периодических verify |
| Multi-node access | PBS поддерживает кластер — NFS datastore доступен всем нодам |
Рекомендуемый fstab на PBS (с soft для бэкапов):
192.168.1.73:/export/pbs-datastore /mnt/datastore nfs4 soft,timeo=600,retrans=2,rsize=1048576,wsize=1048576,_netdev 0 0
4. Проверка работоспособности
4.1. Доступность NFS
# С любого узла (PVE, PBS, LXC)
showmount -e 192.168.1.73
# Должен показать:
# Export list for 192.168.1.73:
# /export/backup 192.168.1.0/24
4.2. Монтирование
# На PVE хосте
mount | grep nfs
df -h | grep nfs
4.3. Проброс в LXC
pct enter <CT_ID>
df -h | grep /mnt/backup # Должна быть видна шара
touch /mnt/backup/test && rm /mnt/backup/test # root должен писать
4.4. Бэкап через PBS
# В PVE сделать пробный бэкап на PBS storage
vzdump <VM_ID> --mode snapshot --compress zstd --storage pbs-nfs-omv
# Убедиться, что exit code = 0
5. Типовые ошибки и решения
| Проблема | Причина | Решение |
|---|---|---|
mount.nfs: access denied by server |
IP клиента не в списке Client NFS шары | Проверить OMV NFS Share → Client |
Permission denied при записи из LXC |
root_squash на OMV |
Включить no_root_squash в Options NFS шары |
| LXC не стартует с mp0 | Путь на хосте не смонтирован | mount -a, проверить fstab |
| PBS: datastore недоступен | NFS шара упала | systemctl restart proxmox-backup |
NFS mount зависает (hung |
Потеря сети, опция hard |
umount -f /mnt/nfs-... или soft опция |
| LXC: mount inside container readonly | LXC не имеет privileged: 1 |
Использовать привилегированный контейнер или настроить device cgroup |
6. Сводная схема
OMV (192.168.1.73)
├── NFS export: /export/backup (no_root_squash, rw)
│
├── PVE host
│ ├── mount /mnt/nfs-omv-backup
│ ├── pvesm dir → templates/snippets
│ └── mp0 проброс → LXC контейнер /mnt/backup
│
├── PBS node
│ ├── mount /mnt/datastore (export: /export/pbs-datastore)
│ ├── pvesm add nfs pbs-nfs-omv
│ └── datastore для backup/verify/GC
│
└── Другие клиенты (RPi5, VM)
└── mount -t nfs 192.168.1.73:/export/backup /mnt/shared
7. Ограничения и рекомендации
- NFS → PBS: для продакшена используйте локальные SSD/NVMe, NFS добавляет latency и риск потери связи во время бэкапа
- no_root_squash: безопасно только в доверенной подсети (192.168.1.0/24)
- Автомонтирование:
_netdevобязателен, иначе система может зависнуть при загрузке до поднятия сети - PBS datastore: выделите отдельную NFS-шару для PBS — не смешивайте с общими файлами
- Бэкап конфига OMV:
omv-confbackupсохраняет настройки NFS-шар