Как настроить сервер NFS на CentOS 8 / RHEL 8
Аббревиатура от Network File Share, NFS — это межплатформенный протокол клиент / сервер, который позволяет клиентским машинам получать доступ к файлам, совместно используемым сервером NFS, по сети. Клиентские системы могут локально монтировать файловые системы с сервера NFS и получать доступ к файлам и каталогам, как если бы они были локально смонтированы. В этом руководстве мы проведем вас через установку и настройку сервера NFS на CentOS 8 / RHEL 8 .
Примечание: в CentOS 8 или RHEL 8 поддерживаются NFSv3 и v4 . NFSv3 обеспечивает безопасную асинхронную запись и поддерживает 64-битные размеры и смещение файлов. В то время как NFSv4 работает через брандмауэр ОС и поддерживает ACL (список контроля доступа) и не требует службы rpcbind.
Настройка сервера / клиента NFS
Прежде чем мы начнем, мы собираемся использовать приведенную ниже настройку, чтобы смоделировать, как протокол NFS работает в настройке клиент / сервер.
- IP-адрес серверной машины: адрес: 192.168.2.102 CentOS 8
- IP-адрес клиентской машины: адрес: 192.168.2.103 CentOS 8
Имея под рукой нашу настройку, давайте начнем установку NFS на сервере.
Шаг 1) Установите и настройте NFS на сервере CentOS 8 / RHEL 8
Для начала мы установим пакет сервера NFS под названием nfs-utils, который действует как демон NFS. Чтобы установить пакет nfs-utils, запустите терминал и выполните команду:
$ sudo dnf install nfs-utils -y
В приведенном ниже примере nfs-utils уже установлен.
После завершения установки запустите и включите службу nfs-server, чтобы она работала автоматически при перезагрузках. Выполните следующие команды,
$ sudo systemctl start nfs-server.service $ sudo systemctl enable nfs-server.service
После завершения установки запустите и включите службу nfs-server, чтобы она работала автоматически при перезагрузках. Выполните следующие команды,
$ sudo systemctl status nfs-server.service
Вы можете проверить версию используемого протокола nfs, выполнив команду:
$ rpcinfo -p | grep nfs
Версия указывается во втором столбце выходных данных, представленных ниже.
Для дополнительной настройки сервера NFS вы можете найти файлы конфигурации в /etc/nfs.conf, который является файлом конфигурации демона NFS, и /etc/nfsmount.conf, который является файлом конфигурации для монтирования NFS.
Шаг 2) Создание и экспорт общего ресурса NFS
На этом этапе мы собираемся создать файловую систему, которая будет использоваться сервером для клиентских систем. В этом руководстве мы создадим каталог в / mnt / nfs_share / docs, как показано ниже.
$ sudo mkdir -p /mnt/nfs_shares/docs
Чтобы избежать ограничений файлов в общем каталоге NFS, рекомендуется настроить владение каталогом, как показано. Это позволяет создавать файлы из клиентских систем без каких-либо проблем с разрешениями.
$ sudo chown -R nobody: /mnt/nfs_shares/docs
Кроме того, вы можете настроить права доступа к каталогу в соответствии с вашими предпочтениями. Например, в этом руководстве мы назначим все разрешения (чтение, запись и выполнение) общей папке NFS.
$ sudo chmod -R 777 /mnt/nfs_shares/docs
Чтобы изменения вступили в силу, перезапустите демон NFS:
$ sudo systemctl restart nfs-utils.service
Чтобы экспортировать общий ресурс NFS, чтобы клиентские системы могли получить к нему доступ, нам нужно отредактировать файл / etc / exports . Вы можете разрешить доступ нескольким клиентам к общему ресурсу, указав подсеть, как показано
/mnt/nfs_shares/docs 192.168.2.0/24(rw,sync,no_all_squash,root_squash
Также вы можете указать каждого клиента в отдельной строке:
/mnt/nfs_shares/docs client-IP(rw,sync,no_all_squash,root_squash)
/mnt/nfs_shares/docs client-IP(rw,sync,no_all_squash,root_squash)
Используя нашу настройку, мы предоставим доступ к нашей клиентской машине с IP 192.168.2.103. Добавьте следующую строку в файл ‘ /etc/exports ‘:
$ sudo vi /etc/exports /mnt/nfs_shares/docs 192.168.2.103(rw,sync,no_all_squash,root_squash)
Сохраните и выйдите из файла. Используйте команду cat, чтобы подтвердить ввод, как показано
[root@infoit.com.ua] cat /etc/exports /mnt/nfs_shares/docs 192.168.2.103(rw,sync,no_all_squash,root_squash) [root@infoit.com.ua]
Давайте посмотрим на значение используемых параметров:
- rw — это означает чтение / запись. Он предоставляет разрешения на чтение и запись для общего ресурса NFS.
- sync — параметр требует, чтобы изменения сначала записывались на диск, прежде чем можно будет выполнить любую другую операцию.
- no_all_squash — это сопоставит все UID и GID из клиентских запросов с идентичными UIDS и GID, находящимися на сервере NFS.
- root_squash — атрибут отображает запросы от пользователя root на стороне клиента на анонимный UID / GID.
Чтобы экспортировать созданную выше папку, используйте команду exportfs, как показано:
$ sudo exportfs -arv
Параметр -a означает, что все каталоги будут экспортированы, -r означает повторный экспорт всех каталогов и, наконец, флаг -v отображает подробный вывод.
Чтобы быть уверенным в списке экспорта, вы можете отобразить список экспорта с помощью команды:
$ sudo exportfs -s
Идеально! Наш экспортный список существует. Все идет нормально. Единственная конфигурация, оставшаяся на сервере NFS, разрешает службы NFS на брандмауэре.
Шаг 3) Настройка правил брандмауэра для NFS-сервера
Последний шаг в настройке сервера — разрешение служб NFS через брандмауэр на сервере CentOS 8. Это службы nfs, rpc-bind и mountd . Итак, выполняем команды ниже.
$ sudo firewall-cmd --permanent --add-service=nfs $ sudo firewall-cmd --permanent --add-service=rpc-bind $ sudo firewall-cmd --permanent --add-service=mountd
Затем перезагрузите брандмауэр, чтобы изменения вступили в силу.
$ sudo firewall-cmd --reload
Теперь давайте перейдем к клиентской системе и настроим ее для доступа к общим ресурсам NFS.
Настройка клиентской системы NFS
Чтобы настроить клиентскую систему для доступа к общим файловым ресурсам NFS, выполните следующую процедуру.
Шаг 1) Установите необходимые пакеты NFS
В клиентской системе CentOS 8 установите необходимые пакеты для доступа к общему ресурсу NFS, находящемуся на сервере NFS.
$ sudo dnf install nfs-utils nfs4-acl-tools -y
Для системы Debian или Ubuntu:
$ sudo apt install nfs-common nfs4-acl-tools -y
Чтобы отобразить подключенные общие ресурсы NFS на сервере, используйте команду showmount :
$ showmount -e 192.168.2.102
Шаг 2) Подключение удаленного общего ресурса NFS, расположенного на сервере
Затем нам нужно смонтировать удаленный общий каталог NFS, расположенный в локальной клиентской системе. Но сначала давайте создадим каталог для монтирования общего ресурса NFS.
$ sudo mkdir p /mnt/client_share
Чтобы смонтировать общий ресурс NFS, выполните команду ниже. Напомним, что 192.168.2.102 — это IP-адрес сервера NFS.
$ sudo mount -t nfs 192.168.2.102:/mnt/nfs_shares/docs /mnt/client_share
Вы можете проверить, что удаленный общий ресурс NFS смонтирован, выполнив:
$ sudo mount | grep -i nfs
Чтобы сделать общий ресурс монтирования постоянным после перезагрузки, вам необходимо отредактировать файл /etc/fstab и добавить запись ниже.
192.168.2.102:/mnt/nfs_shares/docs /mnt/client_share nfs defaults 0 0
Сохраните и закройте файл.
Тестирование сервера NFS и настройки клиента
На этом мы закончили со всеми настройками. Однако нам нужно протестировать нашу настройку и убедиться, что все работает. Итак, сначала мы собираемся создать тестовый файл в общем каталоге сервера NFS и проверить, присутствует ли он в смонтированном каталоге NFS клиента.
$ sudo touch /mnt/nfs_shares/docs/server_nfs_file.txt
Теперь перейдите в клиентскую систему и проверьте, существует ли файл на стороне клиента.
$ ls -l /mnt/client_share/
Большой! Из вывода мы ясно видим, что файл существует. А теперь сделаем наоборот. Мы собираемся создать файл в клиентской системе NFS и проверить, можно ли получить к нему доступ с сервера NFS.
На клиенте создайте файл, как показано:
$ sudo touch /mnt/client_share/client_nfs_file.txt
Теперь вернитесь на сервер и проверьте, присутствует ли файл в общей директории NFS.
$ ls -l /mnt/nfs_shares/docs
Потрясающие! Мы можем просмотреть файл и получить к нему доступ.
Как видите, вы можете легко создавать файлы как на сервере NFS, так и на клиенте и беспрепятственно обмениваться ими между двумя системами, а также другими клиентскими системами, которые были настроены для доступа к общим папкам. И на этом мы подошли к концу нашего сегодняшнего урока. В этом руководстве мы показали вам, как установить и настроить сервер NFS и настройку клиентской системы на CentOS 8 и RHEL 8.