Поиск по сайту:

Как установить сервер и клиент NFS в дистрибутивах RHEL


В Linux существует несколько протоколов совместного использования файлов, используемых для совместного использования хранилища и файлов по сети. Наиболее широко используемые из них — Samba и NFS.

Samba – популярный пакет приложений с открытым исходным кодом, работающий в архитектуре клиент-сервер. Он обеспечивает кросс-платформенную совместимость, обеспечивая беспрепятственный обмен файлами в операционных системах Linux, Windows и macOS. Доступ к общему файловому ресурсу, размещенному в системе Linux, можно получить с разных платформ, что способствует сотрудничеству.

Другой широко используемый протокол обмена файлами — NFS, сокращение от Network File Share. Как и Samba, он работает по модели клиент-сервер и позволяет пользователю обмениваться каталогами и файлами по сети с несколькими удаленными пользователями клиента.

В этом руководстве мы узнаем, как установить сервер и клиент NFS в дистрибутивах на основе RHEL, таких как Fedora, CentOS Stream, Rocky Linux и AlmaLinux.

Службы НФС

В настоящее время существует три версии NFS, последней из которых является NFSv4, которая включает в себя такие функции, как возможность работы через Интернет и через брандмауэр. Кроме того, существуют NFSv3 и NFSv2, которые являются старейшими протоколами.

Служба NFS состоит из NFS-сервера и клиента. Сервер NFS содержит следующие ключевые файлы:

  • nfs-server – позволяет клиентским системам получать доступ к общим файлам NFS.
  • rpcbind – преобразует программы RPC в универсальные адреса.
  • nfs-idmap — выполняет преобразование идентификаторов пользователей и групп в имена, а имена пользователей и групп в идентификаторы.
  • portmap – это сервер, который преобразует номера программ RPC в номера IP-портов.
  • nfslock – в случае сбоя сервера NFS nfslock запускает необходимые процессы RPC.

Службы настройки NFS

Вот некоторые ключевые файлы конфигурации для NFS:

  • /etc/exports – основной файл конфигурации, в котором указываются файловые системы или каталоги, которые будут экспортированы и к которым будут иметь доступ удаленные пользователи.
  • /etc/fstab – это файл, содержащий записи о смонтированных разделах. В NFS файл содержит записи общих каталогов или файловых систем NFS, которые постоянно смонтированы и могут сохраняться после перезагрузки.
  • /etc/sysconfig/nfs – определяет порты, необходимые во время работы служб RPC.

Настройка NFS-сервера и клиента

Чтобы настроить общие ресурсы NFS, нам понадобятся как минимум две машины с Linux/Unix. В этом уроке я буду использовать два сервера.

  • Сервер NFSRHEL 9 с IP 10.128.15.213
  • Клиент NFSRHEL 9 с IP 10.128.15.214

Установите NFS на сервере и клиенте.

Для начала вам необходимо войти в оба узла (сервер и клиент NFS) и установить службы NFS. Сначала обновите информацию о пакете, как показано. Следующая команда dnf также обновит все интересные пакеты до последних версий.

sudo dnf update 

После завершения обновления продолжите установку необходимых служб NFS.

sudo dnf install rpcbind nfs-utils -y

Следующим шагом будет включение служб NFS, как показано.

sudo systemctl enable nfs-server
sudo systemctl enable rpcbind

Обязательно запустите службы NFS.

sudo systemctl enable nfs-server
sudo systemctl enable rpcbind

Крайне важно убедиться, что все службы NFS работают.

sudo systemctl status nfs-server
sudo systemctl status rpcbind

Обязательно также настройте брандмауэр, чтобы разрешить входящие службы NFS следующим образом.

sudo firewall-cmd --permanent --add-service={nfs,rpc-bind,mountd}
sudo firewall-cmd --reload

Создайте общий каталог NFS

Когда все службы NFS установлены и работают как положено, пришло время создать общий каталог NFS, который будет содержать файлы, к которым будут иметь доступ клиенты NFS в сети.

В этом случае мы создадим общий каталог NFS с именем my_nfsshare в нашем домашнем каталоге.

mkdir -p /home/tecmint/my_nfsshare

Затем назначьте права доступа к каталогу. В демонстрационных целях мы назначим глобальные разрешения, которые будут предоставлять клиентам NFS разрешения на чтение, запись и выполнение.

sudo chmod 777 -R /home/tecmint/my_nfsshare

Экспорт общего каталога NFS

Следующим шагом будет экспорт общего каталога NFS. Для этого нам нужно сделать запись в файле /etc/exports. Поэтому откройте файл с помощью предпочитаемого вами текстового редактора. В данном случае мы будем использовать редактор Vim.

sudo vim /etc/exports

Добавьте следующую запись. Обязательно замените IP-адрес сервера на IP-адрес вашего сервера NFS.

/home/tecmint/my_nfsshare server-ip/24(rw,no_root_squash)

Наконец, экспортируйте общий каталог или файловую систему NFS.

sudo exportfs -rv

Запустите следующую команду, чтобы просмотреть общие ресурсы NFS.

showmount -e localhost

Настройка клиента NFS

Оставшийся этап этого упражнения — настройка клиента NFS для доступа к общему каталогу. Сначала убедитесь, что вы можете просматривать список экспорта или общие ресурсы NFS на сервере NFS.

showmount -e 10.128.15.213

Следующим шагом будет подключение общего ресурса NFS с сервера к клиенту. Для этого нам сначала нужно создать каталог монтирования. В данном случае мы создадим каталог под названием nfs_backup.

mkdir nfs_backup

После этого мы смонтируем общий ресурс NFS в каталог монтирования, который мы только что создали в корневом домашнем каталоге.

mount -t nfs 10.128.15.213:/home/tecmint/my_nfsshare  ~/nfs_backup 

Чтобы сохранить общий ресурс NFS, отредактируйте файл /etc/fstab.

vim /etc/fstab

Затем добавьте следующую запись.

10.128.15.213:/home/tecmint/my_nfsshare    /root/nfs_backup  nfs     defaults 0 0

Сохраните и выйдите из файла конфигурации.

Тестирование настройки NFS

Последний шаг — проверить, работает ли настройка NFS должным образом. Мы создадим несколько файлов на сервере и проверим их доступность на стороне клиента NFS.

На стороне сервера мы создадим файлы в общем каталоге NFS.

sudo touch my_nfsshare/file{1..4}.txt

Чтобы убедиться, что файлы созданы, мы выполним команду ls:

ls -l my_nfsshare/

Вернемся к стороне клиента и убедитесь, что файлы доступны в каталоге монтирования без какого-либо обновления служб или перезапуска каких-либо служб, как показано в следующем выводе.

ls -l nfs_backup/

Удаление монтирования NFS

Если смонтированный каталог вам больше не нужен в вашей системе, вы можете отмонтировать его со стороны клиента, используя следующую команду umount:

umount ~/nfs_backup

Команды общего доступа NFS

Еще несколько важных команд для NFS.

  • showmount -e – показывает доступные общие ресурсы на вашем локальном компьютере.
  • showmount -e ip-address – выводит список доступных общих ресурсов на удаленном сервере.
  • showmount -d – выводит список всех подкаталогов.
  • exportfs -v – отображает список общих файлов и параметров на сервере.
  • exportfs -a — экспортирует все общие ресурсы, перечисленные в /etc/exports или по заданному имени.
  • exportfs -u – отменяет экспорт всех общих ресурсов, перечисленных в /etc/exports или по заданному имени.
  • exportfs -r – обновить список серверов после изменения /etc/exports.
Заключение

На этом завершается наше руководство по установке сервера и клиента NFS в дистрибутивах на базе RedHat. Мы установили службы NFS на сервере, создали общий каталог NFS и, наконец, смонтировали общий каталог на клиенте. Наконец, мы проверили настройку NFS, обратившись к файлу, созданному на сервере, со стороны клиента.