В рамках данной заметки рассмотрим процесс установки NFS сервера в локальной сети на базе Linux CentOS 7. Данная файловая шара мне потребовалась для работы с XenServer 6.5 (установка ОС на виртуальные машины с ISO NFS library).
Выполняем к командной строке (нужны привилегии супер пользователя) следующие операции. Сначала устанавливает требуемые пакеты:
sudo yum install nfs-utils nfs-utils-lib
Затем включаем установленную службу:
sudo systemctl enable rpcbind
sudo systemctl enable nfs-server
sudo systemctl enable nfs-lock
sudo systemctl enable nfs-idmap
sudo systemctl start rpcbind
sudo systemctl start nfs-server
sudo systemctl start nfs-lock
sudo systemctl start nfs-idmap
После этого переходим к настройке каталога, которые будет использоваться для раздачи контента нашим NFS сервером. Рекомендуется делать NFS шару в «/var/nfs_name», чтобы не иметь проблем с записью файлов и назначением прав доступа. В моей ситуации по определенным причинам используется каталог «/home/nfs». Итак, создаем папку и назначаем права доступа:
sudo mkdir -p /home/nfs
sudo chmod -R 777 /home/nfs
После этого необходимо добавить в файл «/etc/exports’ информацию о предоставляемой шаре через NFS:
sudo nano /etc/exports
и добавляем строку:
/home/nfs 192.168.10.0/24(rw,sync,no_root_squash,no_all_squash)
При этом:
/home/nfs – расшариваемая директория
192.168.10.0/24 – IP адрес клиента (или, как в моем случае, возможность подключения для всей подсети)
rw – разрешение на запись
sync – синхронизация указанной директории
no_root_squash – включение root привилегий
no_all_squash — включение пользовательской авторизации
Выполняем в командной строке exportfs -a ,чтобы подключить этот каталог в список экспортируемых. В завершение настройки NFS сервера перезапускаем его:
sudo systemctl restart nfs-server
Теперь добавляем (открываем) порты NFS сервера в брандмауэре (firewalld) для корректной работы в сети:
firewall-cmd —permanent —add-port=111/tcp
firewall-cmd —permanent —add-port=54302/tcp
firewall-cmd —permanent —add-port=20048/tcp
firewall-cmd —permanent —add-port=2049/tcp
firewall-cmd —permanent —add-port=46666/tcp
firewall-cmd —permanent —add-port=42955/tcp
firewall-cmd —permanent —add-port=875/tcp
firewall-cmd —permanent —zone=public —add-service=nfs
firewall-cmd —permanent —zone=public —add-service=mountd
firewall-cmd —permanent —zone=public —add-service=rpc-bind
firewall-cmd —reload