Как установить сервер и клиент 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. В этом уроке я буду использовать два сервера.
- Сервер NFS – RHEL 9 с IP 10.128.15.213
- Клиент NFS – RHEL 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, обратившись к файлу, созданному на сервере, со стороны клиента.