Глава 18. Применение NFS в RHEL9 для совместного с Удалёнными системами применения файлов

RHEL9 для совместного использования с прочими системами в сетевой среде файлов и папок предоставляет два механизма. Один подход состоит в применении технологии с названием Samba. Samba основывается на совместном применении папок Microsoft Windows и позволяет системам Linux делать доступными папки для систем Windows, а также получать доступ к совместным папкам на основе Windows из Linux. Такой подход также может применяться для разделения папок между прочими системами на основе Linux и UNIX, пока они обладают установленной и сконфигурированной поддержкой Samba. Это наиболее популярный подход совместного использования папок в неоднородных сетевых средах. Использование разделяемых папок Samba описывается в Главе 19, Совместное применение файлов между системами RHEL9 и Windows при помощи Samba.

Другой вариант в явном виде имеющий целью совместное использование папок между системами на основе Linux и UNIX применяет NFS (Network File System, сетевую файловую систему). NFS делает возможным для файловой системы в одном компьютере Linux быть доступной через сетевое соединение другой системе Linux или UNIX. Первоначально NFS была разработана Sun Microsystems (теперь часть корпорации Oracle) в 1980-х и остаётся стандартным механизмом для разделения удалённых файловых систем Linux/ UNIX.

NFS очень сильно отличается от технологии совместного применения ресурсов SMB Windows, применяемых Samba. Данная глава рассмотрит совместное применение на основе сетевой среды папок между RHEL9 и прочими системами на основе UNIX/ Linux при помощи NFS.

Обеспечение служб NFS в рабочем состоянии в RHEL9

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

За сценой NFS для совместного применения файловых систем поверх сетевой среды между различными компьютерами пользуется RPC (Remote Procedure Calls, удалённым вызовом процедур) в виде службы rpcbind. Начните с установки служб и rbcbind, и NFS выполнив в окне терминала такую команду:


# dnf install rpcbind nfs-utils
		

Затем настройте эти службы с тем, чтобы они автоматически стартовали во время запуска:


# systemctl enable rpcbind
# systemctl enable nfs-server
		

Когда эти службы разрешены, запустите из следующим образом:


# systemctl start rpcbind
# systemctl start nfs-server
		

Настройка Межсетевого экрана RHEL9 для разрешения обмена NFS

Затем необходимо настроить свой межсетевой экран дабы он допускал обмен NFS. Чтобы достичь этого, выполните приводимые ниже команды firewall-cmd , где <zone> заменяется соответствующей зоной для ваших межсетевого экрана и конфигурации системы:


# firewall-cmd --zone=<zone> --permanent --add-service=mountd
# firewall-cmd --zone=<zone> --permanent --add-service=nfs
# firewall-cmd --zone=<zone> --permanent --add-service=rpc-bind
# firewall-cmd --reload
		

Определение Папок для совместного применения

Теперь, когда NFS запущена и межсетевой экран был настроен, нам потребуется определить к каким путям из нашей файловой системы RHEL9 может выполняться доступ удалёнными системами Linux и Unix. Эти настройки могут объявляться в файле /etc/exports, который следует изменить чтобы экспортировать такие каталоги для удалённого доступа по NFS. Вот синтаксис для строки экспорта в этом файле:


<export> <host1>(<options>) <host2>(<options>)...
 	   

В приведённой выше строке <export> заменяется подлежащим экспорту каталогом, <host1> это значение имени или IP адрес отй системы, которой предоставляется доступ, а <options> представляют те ограничения, которые выставлены для данного доступа (read-only, read-write и т.п.). Если это необходимо, в одной и той же строке могут размещаться множество записей хостов и параметров. Например, приводимая далее строка предоставляет полномочия только на чтение для каталога /datafiles хосту с IP адресом 192.168.2.38:


/datafiles 192.168.2.38(ro)
 	   

Для применения экспорта множеству хостов допускается применение символов замены. Например, следующая строка допускает доступ на чтение- запись к /home/demo для всех внешних хостов:


/home/demo *(rw)
 	   

Полный перечень поддерживаемых файлами экспорта параметров можно найти прочитав страницы руководства exports:


# man exports
 	   

Для целей этой главы мы настроим файл /etc/exports следующим образом:


/tmp        *(rw,sync)
/vol1       192.168.86.42(ro,sync)
 	   

Будучи настроенной, эта поддерживаемая своим сервером NFS таблица экспортируемых в системы файлов требует обновления самой последней версией /etc/exports при помощи команды exportfs следующим образом:


# exportfs -a
		

Также имеется возможность просмотра текущих настроек совместных ресурсов из командной строки при помощи того же инструмента exportfs:


# exportfs
		

Приведённая выше команда произведёт такой вывод:


/vol1       192.168.86.42
/tmp        <world>
 	   

Доступ к папкам Совместных ресурсов

Из клиентских систем для доступа к папкам совместных ресурсов можно монтировать их вручную из командной строки. Тем не менее, прежде чем выполнить попытку монтирования удалённой папки NFS, сначала в такой системе клиента должен быть установлен пакет nfs-utils:


# dnf install nfs-utils
		

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


$ mkdir /home/demo/tmp
		

Затем введите необходимую для монтирования этой удалённой папки команду либо с соответствующим IP адресом, либо с именем хоста её удалённого сервера NFS, например:


$ sudo mount -t nfs 192.168.86.24:/tmp /home/demo/tmp
		

Эта удалённая папка /tmp затем будет смонтирована в вашей локальной системе. После монтирования соответствующая папка /home/demo/tmp будет содержать поставленную ей в соответствие папку и всё её содержимое.

При монтировании удалённой файловой системы также можно определять параметры. Приводимая ниже команда, например, монтирует ту же самую папку, но настраивает её исключительно на доступ по чтению:


$ sudo mount -t nfs -o ro 192.168.86.24:/tmp /home/demo/tmp
		

Монтирование файловой системы NFS в запуске системы

Путём редактирования своего файла /etc/fstab также имеется возможность настройки в RHEL9 автоматического монтирования файловой системы при каждом её запуске. При загрузке в редактор, он, скорее всего, будет напоминать следующее:


/dev/mapper/rhel-root   /                         xfs         defaults        0 0
UUID=c4ba0b0f-777a-42a8 /boot                     xfs         defaults        0 0
UUID=052D-19D8          /boot/efi                 vfat      umask=0077,shortname=winnt 0 2
/dev/mapper/rhel-swap   none                      swap        defaults        0 0
 	   

Скажем, чтобы смонтировать папку с путём /tmp, которая расположена в системе с IP адресом 192.168.86.24 в свою локальную папку с путём /home/demo/tmp (обращаем ваше внимание на то, что эта папка уже должна присутствовать) в свой файл /etc/fstab добавьте такую строку:


192.168.86.24:/tmp      /home/demo/tmp            nfs         rw              0 0
 	   

При перезапуске вашей системы в следующий раз соответствующая папка /tmp из указанной удалённой системы будет смонтирована в вашей локальной точке монтирования /home/demo/tmp. Все имеющиеся в той удалённой папке файлы затем становятся доступными как если бы они располагались на вашем жёстком дисковом устройстве.

Размонтирование Точки монтирования NFS

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


$ sudo umount /home/demo/tmp
		

Доступ к файловым системам NFS в Cockpit

Дополнительно к монтированию удалённой файловой системы NFS в клиенте при помощи приглашения командной строки, также имеется возможность выполнения операций монтирования внутри веб интерфейса Cockpit. Допустим, в системе вашего клиента Cockpit был установлен и запущен, зарегистрируйтесь в интерфейсе Cockpit из веб браузера и выберите параметр Storage в расположенной слева панели навигации. Если параметр Storage не перечислен, требуется установить пакет cockpit-storaged :


# dnf install cockpit-storaged
# systemctl restart cockpit.socket
		

После перезапуска службы Cockpit зарегистрируйтесь обратно в интерфейсе Cockpit, причём пункт с параметром Storage теперь должен наблюдаться.

После его выбора основная страница хранилища будет содержать раздел с перечислением всех смонтированных в настоящее время файловых систем NFS, как это иллюстрируется на Рисунке 18-1:

 

Рисунок 18-1


 

Чтобы смонтировать удалённую файловую систему, кликните по выделенной выше кнопке '+' и введите сведения относительно необходимых удалённых сервера NFS и совместного файлового ресурса совместно со значением локальной точки монтирования и всех необходимых параметров в появляющемся в результате окне диалога прежде чем кликните по кнопке Add:

 

Рисунок 18-2


 

Для изменения, размонтирования или удаления совместного ресурса NFS, выберите соответствующую точку монтирования из списка NFS Mounts (Рисунок 18-1 выше) чтобы отобразить страницу, показанную ниже на Рисунке 18-3:

 

Рисунок 18-3


 

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

Заключение

Network File System (NFS) это основанная на клиенте/ сервере система, изначально разработанная Sun Microsystems, которая предоставляет некий способ совместного использования файловых систем поверх сетевой среды в системах Linux и Unix. NFS делает возможным для системы клиента выполнять доступ и (предмет для полномочий) изменять файлы, расположенные в удалённом сервере как если бы эти файлы хранились в локальной файловой системе. Данная глава предоставила обзор NFS и очертила основные параметры для настройки систем клиента и сервера при помощи командной строки или интерфейса Cockpit.