Установка NFS на CentOS 7 и настройка хранилища Proxmox
В статье пошагово показано, как установить и настроить NFS-сервер на CentOS 7, поделиться директорией, подключить её в Proxmox и выполнять резервное копирование виртуальных машин. Приведены команды, настройки firewall и рекомендации по безопасности и отладке.
Что вы получите в этой инструкции
- Установите NFS и необходимые службы на CentOS 7.
- Создадите общую директорию и пропишите её в
/etc/exports. - Откроете порты в
firewalldи стартуете службы. - Подключите NFS-хранилище в Proxmox через веб-интерфейс.
- Выполните резервное копирование и восстановление VM.
- Получите чек-лист, тесты приёмки и рекомендации по безопасности.
Предварительные требования
- Два сервера в одной сети:
- Proxmox: 192.168.1.111
- CentOS 7 (NFS server): 192.168.1.102
- SSH-доступ к CentOS 7 и права
rootили доступ черезsudo. - Базовое понимание работы Linux, systemd и сетей.
Важно: в продуктивной среде используйте статические IP-адреса или DHCP с резервированием.
Шаг 1 — Установить NFS на CentOS 7
Подключитесь по SSH к CentOS 7 и станьте root:
ssh [email protected]
sudo suУстановите пакеты:
yum -y install nfs-utils libnfsidmap rpcbindКоротко о пакетах:
nfs-utils— утилиты для запуска и управления NFS (нужны и на сервере, и на клиентах).rpcbind— демон, позволяющий клиентам находить порты NFS-сервисов (порт 111).libnfsidmap— библиотека для сопоставления UID/GID при NFSv4.
Включите автозапуск сервисов:
systemctl enable rpcbind
systemctl enable nfs-serverЗапустите службы:
systemctl start rpcbind
systemctl start nfs-server
systemctl start rpc-statd
systemctl start nfs-idmapdПроверьте статус:
systemctl status nfs-server rpcbindЕсли служба не стартует — посмотрите логи:
journalctl -u nfs-server -bОткрываем порты в firewalld
Откроем сервисы mountd, rpc-bind и nfs в публичной зоне:
systemctl start firewalld
firewall-cmd --permanent --zone=public --add-service=mountd
firewall-cmd --permanent --zone=public --add-service=rpc-bind
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reloadПроверка текущих правил:
firewall-cmd --list-all
Факты о портах (важно для сетевой политики):
rpcbind— TCP/UDP 111nfs— TCP/UDP 2049mountdи другие — могут использовать динамические порты, пока их явно не задать
Если у вас строгие политики, зафиксируйте номера портов для mountd и statd в конфигурации NFS и откройте их вручную.
Шаг 2 — Создание общей директории
Создадим директорию для резервных копий и выдадим права:
mkdir -p /var/nfsproxmox
chmod -R 777 /var/nfsproxmox/Важно: права 777 удобны для теста, но небезопасны в проде. Для рабочего сервера используйте 750 или 755 и назначьте владельца:
chown backupuser:backupgroup /var/nfsproxmox
chmod 750 /var/nfsproxmoxИзмените файл /etc/exports, чтобы описать раздачу:
vim /etc/exportsДобавьте строку (в данном примере — доступ только Proxmox по IP):
/var/nfsproxmox 192.168.1.111(rw,sync,no_root_squash)Пояснения к опциям:
rw— разрешить чтение и запись.sync— отвечать после записи на диск (безопаснее для данных).no_root_squash— клиентский root получает права root на шару (опасно, используйте с осторожностью).
Примените экспорт:
exportfs -rПолезные команды NFS на сервере:
exportfs -a # экспортировать все из /etc/exports
exportfs -v # показать текущие экспорты
showmount -e localhost # показать, что экспортируется на сервереДополнительный совет: при включённом SELinux нужно учитывать контекст безопасности. Для NFS-папок можно назначить контекст:
semanage fcontext -a -t nfsd_export_t "/var/nfsproxmox(/.*)?"
restorecon -Rv /var/nfsproxmoxЕсли semanage не установлен:
yum -y install policycoreutils-pythonШаг 3 — Подключение NFS в Proxmox
Откройте веб-интерфейс Proxmox:
В интерфейсе: выберите Datacenter → вкладка Storage → Add → NFS.
Заполните поля, например:
ID→ используйте понятное имя, напримерnfsproxmox(в интерфейсе будет отображаться как идентификатор).Server→ 192.168.1.102Export→/var/nfsproxmoxContent→ выберите типы:VZDump backup file,ISO image,Disk imageи т.д.Enable→ включитеMax Backups→ установите лимит (по желанию)

Нажмите Add. После этого хранилище появится в дереве слева.

Если Proxmox не видит шару — проверьте:
- Доступность по сети:
ping 192.168.1.102с Proxmox host. - Можно ли смонтировать шару вручную на тестовом Linux-клиенте:
mkdir -p /mnt/testnfs
mount -t nfs 192.168.1.102:/var/nfsproxmox /mnt/testnfs- Проверяйте логи Proxmox:
journalctl -u pvestatdи веб-интерфейс.

Шаг 4 — Резервное копирование VM в NFS
У меня есть VM с ID 100 и именем debian.
В веб GUI Proxmox: выберите нужную VM → вкладка Backup → Backup Now.
Параметры:
Storage→ выберитеnfsproxmox.Mode→ выбирайтеSnapshot,SuspendилиStop:Snapshot— без простоев (если гостевая ОС и файловая система поддерживают LVM или QEMU snapshot).Suspend— приостановить VM на время резервного копирования.Stop— остановить VM, выполнить бэкап, затем запустить (короткое прерывание).
Compression→LZOилиGZIP.
Нажмите Backup для запуска.

Статус задачи видно в задачах. После завершения бэкапа вы увидите файлы в Content хранилища nfsproxmox.

Для проверки содержимого: выберите nfsproxmox → вкладка Content.

Шаг 5 — Восстановление VM из NFS
Чтобы восстановить VM: выберите VM (или Datacenter → хранилище) и нажмите Restore.
Параметры восстановления:
Source→ файл бэкапа.Storage→ куда развернуть диск/файлы.VM ID→ назначьте ID для восстановленной VM.
Нажмите Restore.

Процесс восстановления отобразится в логах задач.

Если нужно заменить существующую VM, выберите цель и выполните Restore с тем же VM ID.

Отладка и частые причины проблем
- Невозможно смонтировать шару: проверьте
firewalld,rpcbind, и порт 2049. - Ошибка прав доступа: проверьте
exportsи владелец/права директории, а также SELinux. - Проблемы с UID/GID: при NFSv4 убедитесь, что настроен
idmapdи совпадают пользовательские идентификаторы. - Версии NFS: иногда полезно явно указать
vers=3илиvers=4при монтировании.
Команды для диагностики с клиента (Proxmox host или другой Linux):
showmount -e 192.168.1.102
mount -t nfs -o vers=4 192.168.1.102:/var/nfsproxmox /mnt/testnfs
dmesg | tail -n 50Безопасность и производительность
- Не используйте
no_root_squashв публичных или мультиарендных средах. - Для изоляции используйте отдельную VLAN или подсеть для бэкап-трафика.
- Рассмотрите использование LUKS/скриптов шифрования на уровне блочного устройства, если NFS-шара хранит чувствительные данные.
- Для больших объёмов и высокой нагрузки подумайте о параметрах монтирования:
rsize,wsize,async(опасно для данных), а также настройкеnfsdworker-потоков.
Альтернативы и когда NFS не подходит
- CIFS/SMB — если вам нужна интеграция с Windows ACL и удобство для рабочих станций.
- iSCSI — если требуется блочный доступ и производительность, сравнимая с локальными дисками.
- Ceph/RADOS — для масштабируемого распределённого хранилища, интеграции с Proxmox в больших кластерах.
Выбирайте NFS, если вам нужна простота, совместимость с UNIX-подобными системами и поддержка резервного копирования виртуальных машин.
Чек-лист администратора (роль: Sysadmin)
- [ ] Обновить CentOS и установить
nfs-utils,rpcbind,libnfsidmap. - [ ] Настроить
/etc/exportsс ограничением по IP и безопасными опциями. - Настроить SELinux контексты при необходимости.
- [ ] Открыть необходимые сервисы в
firewalldи перезапуститьexportfs -r. - Проверить доступность шары с клиента и вручную примонтировать для теста.
- Настроить мониторинг свободного места и доступности NFS.
Чек-лист администратора (роль: Proxmox admin)
- Добавить NFS-хранилище через GUI.
- Выполнить пробный бэкап нескольких VM.
- Выполнить пробное восстановление VM и проверить работоспособность.
- Настроить расписание бэкапов и удержание (Max Backups).
Критерии приёмки
- NFS-шара успешно монтируется с Proxmox.
- Произведённый бэкап видим в
Contentхранилища и имеет корректный размер. - Восстановленная VM запускается и проходит базовую проверку работоспособности.
- Мониторинг не показывает ошибок ввода/вывода и свободного места достаточно для заданного RPO.
Мини-плейбук: шаги для быстрой настройки (сокращённо)
- На CentOS:
yum -y install nfs-utils rpcbind libnfsidmap. - Создать
/var/nfsproxmoxи задать права/владельца. - Добавить строку в
/etc/exportsи выполнитьexportfs -r. - Открыть сервисы в
firewalldи перезапустить NFS-сервисы. - В Proxmox GUI:
Datacenter→Storage→Add→NFS→ добавить шару. - Выполнить тестовый бэкап VM и восстановление.
Типовые тесты / критерии приёмки
- Монтирование:
mount -t nfs 192.168.1.102:/var/nfsproxmox /mnt/testnfsуспешно. - Права: создать файл от имени
rootи от имени не-root на Proxmox; проверить записи в шаре. - Бэкап: завершить задачу без ошибок и восстановить тестовую VM.
Рекомендации по миграции и совместимости
- NFSv4 использует
idmapdдля сопоставления имен; при проблемах с UID/GID проверьте/etc/idmapd.conf. - При миграции на другой сервер проверьте совместимость SELinux и прав доступа.
Краткое резюме
NFS — простой и проверенный способ организовать централизованное хранилище для резервных копий Proxmox. Следуйте принципам минимизации прав, контролю доступа по сети и мониторингу свободного места. Для больших нагрузок и продвинутых сценариев стоит рассмотреть блочные решения или распределённые системы хранения.
Важно: перед внедрением в продакшн отработайте процесс восстановления и автоматизацию мониторинга.
Справочная таблица: ключевые команды
# Установка
yum -y install nfs-utils libnfsidmap rpcbind
# Экспорт
vim /etc/exports
exportfs -r
exportfs -v
# Firewalld
firewall-cmd --permanent --zone=public --add-service=mountd
firewall-cmd --permanent --zone=public --add-service=rpc-bind
firewall-cmd --permanent --zone=public --add-service=nfs
firewall-cmd --reload
# Проверка
showmount -e 192.168.1.102
mount -t nfs 192.168.1.102:/var/nfsproxmox /mnt/testnfsКонец статьи.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента