Гид по технологиям

Установка NFS на CentOS 7 и настройка хранилища Proxmox

• 6 min read • Серверы • Обновлено 25 Nov 2025
NFS на CentOS 7 и настройка для Proxmox
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

Отображение правил firewalld и открытых портов.

Факты о портах (важно для сетевой политики):

  • rpcbind — TCP/UDP 111
  • nfs — TCP/UDP 2049
  • mountd и другие — могут использовать динамические порты, пока их явно не задать

Если у вас строгие политики, зафиксируйте номера портов для 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:

https://192.168.1.111:8006/

В интерфейсе: выберите Datacenter → вкладка Storage → Add → NFS.

Заполните поля, например:

  • ID → используйте понятное имя, например nfsproxmox (в интерфейсе будет отображаться как идентификатор).
  • Server → 192.168.1.102
  • Export → /var/nfsproxmox
  • Content → выберите типы: VZDump backup file, ISO image, Disk image и т.д.
  • Enable → включите
  • Max Backups → установите лимит (по желанию)

Добавление NFS в Proxmox: окно конфигурации.

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

NFS-хранилище отображается в Proxmox.

Если 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 и веб-интерфейс.

Подключенное NFS-хранилище в Proxmox.

Шаг 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 для запуска.

Запуск бэкапа VM в Proxmox.

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

Процесс резервного копирования.

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

Содержимое NFS-хранилища с бэкапами.

Шаг 5 — Восстановление VM из NFS

Чтобы восстановить VM: выберите VM (или Datacenter → хранилище) и нажмите Restore.

Параметры восстановления:

  • Source → файл бэкапа.
  • Storage → куда развернуть диск/файлы.
  • VM ID → назначьте ID для восстановленной VM.

Нажмите Restore.

Окно восстановления VM.

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

Процесс восстановления в Proxmox.

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

Восстановление и замена VM из бэкапа.

Отладка и частые причины проблем

  • Невозможно смонтировать шару: проверьте 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 (опасно для данных), а также настройке nfsd worker-потоков.

Альтернативы и когда 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.

Мини-плейбук: шаги для быстрой настройки (сокращённо)

  1. На CentOS: yum -y install nfs-utils rpcbind libnfsidmap.
  2. Создать /var/nfsproxmox и задать права/владельца.
  3. Добавить строку в /etc/exports и выполнить exportfs -r.
  4. Открыть сервисы в firewalld и перезапустить NFS-сервисы.
  5. В Proxmox GUI: Datacenter → Storage → Add → NFS → добавить шару.
  6. Выполнить тестовый бэкап 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

Конец статьи.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро