Как настроить сервер NFS на CentOS 8 / RHEL 8

Как настроить сервер 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 на CentOS 8

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

$ sudo systemctl start nfs-server.service
$ sudo systemctl enable nfs-server.service

Как настроить сервер NFS на CentOS 8

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

$ sudo systemctl status nfs-server.service

Как настроить сервер NFS на CentOS 8

Вы можете проверить версию используемого протокола nfs, выполнив команду:

$ rpcinfo -p | grep nfs

Версия указывается во втором столбце выходных данных, представленных ниже.

Как настроить сервер NFS на CentOS 8

Для дополнительной настройки сервера NFS вы можете найти файлы конфигурации в /etc/nfs.conf, который является файлом конфигурации демона NFS, и /etc/nfsmount.conf, который является файлом конфигурации для монтирования NFS.

Шаг 2) Создание и экспорт общего ресурса NFS

На этом этапе мы собираемся создать файловую систему, которая будет использоваться сервером для клиентских систем. В этом руководстве мы создадим каталог в / mnt / nfs_share / docs, как показано ниже.

$ sudo mkdir -p /mnt/nfs_shares/docs

Как настроить сервер NFS на CentOS 8

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

$ sudo chown -R nobody: /mnt/nfs_shares/docs

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

$ sudo chmod -R 777 /mnt/nfs_shares/docs

Как настроить сервер NFS на CentOS 8

Чтобы изменения вступили в силу, перезапустите демон 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

Как настроить сервер NFS на CentOS 8

Параметр -a означает, что все каталоги будут экспортированы, -r означает повторный экспорт всех каталогов и, наконец, флаг -v отображает подробный вывод.

Чтобы быть уверенным в списке экспорта, вы можете отобразить список экспорта с помощью команды:

$ sudo exportfs -s

Как настроить сервер NFS на CentOS 8

Идеально! Наш экспортный список существует. Все идет нормально. Единственная конфигурация, оставшаяся на сервере 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 на CentOS 8

Теперь давайте перейдем к клиентской системе и настроим ее для доступа к общим ресурсам 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 на CentOS 8

Чтобы отобразить подключенные общие ресурсы NFS на сервере, используйте команду showmount :

$ showmount -e 192.168.2.102

Как настроить сервер NFS на CentOS 8

Шаг 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 на CentOS 8

Вы можете проверить, что удаленный общий ресурс NFS смонтирован, выполнив:

$ sudo mount | grep -i nfs

Как настроить сервер NFS на CentOS 8

Чтобы сделать общий ресурс монтирования постоянным после перезагрузки, вам необходимо отредактировать файл /etc/fstab и добавить запись ниже.

192.168.2.102:/mnt/nfs_shares/docs  /mnt/client_share  nfs  defaults  0  0

 

Как настроить сервер NFS на CentOS 8

Сохраните и закройте файл.

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

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

$ sudo touch /mnt/nfs_shares/docs/server_nfs_file.txt

Как настроить сервер NFS на CentOS 8

Теперь перейдите в клиентскую систему и проверьте, существует ли файл на стороне клиента.

$ ls -l /mnt/client_share/

Как настроить сервер NFS на CentOS 8

Большой! Из вывода мы ясно видим, что файл существует. А теперь сделаем наоборот. Мы собираемся создать файл в клиентской системе NFS и проверить, можно ли получить к нему доступ с сервера NFS.

На клиенте создайте файл, как показано:

$ sudo touch /mnt/client_share/client_nfs_file.txt

Как настроить сервер NFS на CentOS 8

Теперь вернитесь на сервер и проверьте, присутствует ли файл в общей директории NFS.

$ ls -l /mnt/nfs_shares/docs

Как настроить сервер NFS на CentOS 8

Потрясающие! Мы можем просмотреть файл и получить к нему доступ.

Как видите, вы можете легко создавать файлы как на сервере NFS, так и на клиенте и беспрепятственно обмениваться ими между двумя системами, а также другими клиентскими системами, которые были настроены для доступа к общим папкам. И на этом мы подошли к концу нашего сегодняшнего урока. В этом руководстве мы показали вам, как установить и настроить сервер NFS и настройку клиентской системы на CentOS 8 и RHEL 8.