Глава 18. Применение NFS в RHEL9 для совместного с Удалёнными системами применения файлов
Содержание
- Глава 18. Применение NFS в RHEL9 для совместного с Удалёнными системами применения файлов
- Обеспечение служб NFS в рабочем состоянии в RHEL9
- Настройка Межсетевого экрана RHEL9 для разрешения обмена NFS
- Определение Папок для совместного применения
- Доступ к папкам Совместных ресурсов
- Монтирование файловой системы NFS в запуске системы
- Размонтирование Точки монтирования NFS
- Доступ к файловым системам NFS в Cockpit
- Заключение
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.
Самая первая задача состоит в том, чтобы проверить что в вашей системе 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
Затем необходимо настроить свой межсетевой экран дабы он допускал обмен 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
Путём редактирования своего файла /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, она может быть размонтирована с применением команды umount
и указанием локальной точки монтирования в качестве аргумента командной строки. Приводимая далее команда, к примеру, выполнит демонтаж точки монтирования нашего
примера файловой системы:
$ sudo umount /home/demo/tmp
Дополнительно к монтированию удалённой файловой системы NFS в клиенте при помощи приглашения командной строки, также имеется возможность выполнения операций
монтирования внутри веб интерфейса Cockpit. Допустим, в системе вашего клиента Cockpit был установлен и запущен, зарегистрируйтесь в интерфейсе Cockpit из веб
браузера и выберите параметр Storage в расположенной слева панели навигации. Если параметр Storage не перечислен, требуется установить пакет
cockpit-storaged
:
# dnf install cockpit-storaged
# systemctl restart cockpit.socket
После перезапуска службы Cockpit зарегистрируйтесь обратно в интерфейсе Cockpit, причём пункт с параметром Storage теперь должен наблюдаться.
После его выбора основная страница хранилища будет содержать раздел с перечислением всех смонтированных в настоящее время файловых систем NFS, как это иллюстрируется на Рисунке 18-1:
Чтобы смонтировать удалённую файловую систему, кликните по выделенной выше кнопке '+' и введите сведения относительно необходимых удалённых сервера NFS и совместного файлового ресурса совместно со значением локальной точки монтирования и всех необходимых параметров в появляющемся в результате окне диалога прежде чем кликните по кнопке Add:
Для изменения, размонтирования или удаления совместного ресурса NFS, выберите соответствующую точку монтирования из списка NFS Mounts (Рисунок 18-1 выше) чтобы отобразить страницу, показанную ниже на Рисунке 18-3:
Внутри данного окна выполните такие задачи как изменение имён сервера или точек монтирования, либо демонтажа соответствующей файловой системы. Например, параметр
Remove выполнит демонтаж соответствующей файловой системы и удалит её запись из файла /etc/fstab
с тем, чтобы
её монтаж не производился при последующих перезапусках данной системы.
Network File System (NFS) это основанная на клиенте/ сервере система, изначально разработанная Sun Microsystems, которая предоставляет некий способ совместного использования файловых систем поверх сетевой среды в системах Linux и Unix. NFS делает возможным для системы клиента выполнять доступ и (предмет для полномочий) изменять файлы, расположенные в удалённом сервере как если бы эти файлы хранились в локальной файловой системе. Данная глава предоставила обзор NFS и очертила основные параметры для настройки систем клиента и сервера при помощи командной строки или интерфейса Cockpit.