null

Настройка NFS

При настройке кластеров или других систем, включающих несколько серверов, бывает очень удобно иметь некоторую "шару", куда каждое устройство может класть и извлекать общие файлы, предназначенные для всех устройств в данной системе. С этим вам может помочь очень простое решение - Network File System или NFS.

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

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

Для настройки NFS необходим

1. NFS server - предоставляет свое дисковое пространство, и

2. NFS Clients - монтируют сетевую директорию как обычный диск в системе.

 

 

NFS Server

На устройстве, которое вы решили выбрать в качестве NFS Сервера, произведите следующие действия.

1. Устанавливаем пакет nfs-kernel-server

sudo apt install nfs-kernel-server

2. Проверим корректность установки. 

- Выполните команду

 rpcinfo -p | grep nfs

 и убедитесь, что nfs-kernel-server слушает TCP/UDP на порту 2049.

- Проверьте поддерживается ли NFS на уровне ядра

 cat /proc/filesystems | grep nfs

 Вывод должен быть таким:
 nodev nfsd

 Если ваш вывод выглядит не так, то стоит вручную загрузить модуль nfs. Это можно сделать, выполнив команду

 modprobe nfs

3. Добавьте NFS в автозагрузку, чтобы сервер NFS автоматически запускался при каждом включении или перезагрузки системы.
sudo systemctl enable nfs-server

Проверьте, что все корректно добавилось. Статус должен быть active:
sudo systemctl status nfs-server

 

NFS Client

На устройствах NFS Пользователей произведите следующие действия:

1. Установите пакет nfs-common

sudo apt install nfs-common

2. Проверьте наличие nfs-client:

showmount

Также это можно проверить, набрав mount. и нажав 2 раза на TAB, должен найтись mount.nfs

 

Конфигурация NFS Server

1. Выбираем директорию на nfs-сервере, к которой мы откроем доступ
Пусть это будет /nfs

mkdir /nfs -p
chown nobody:nogroup /nfs

2. Редактируем конфиг /etc/exports, подставляя IP NFS клиентов

/nfs 10.0.0.1(rw,sync,no_subtree_check)
/nfs 10.0.0.2(rw,sync,no_subtree_check)
/nfs 10.0.0.3(rw,sync,no_subtree_check)
/nfs 10.0.0.4(rw,sync,no_subtree_check)
/nfs 10.0.0.5(rw,sync,no_subtree_check)

/nfs - путь к каталогу в файловой системе сервера, который будет экспортирован и станет доступен для клиентов NFS

10.0.0.1 - 10.0.0.5 - IP NFS клиентов

(rw,sync,no_subtree_check) - опции доступа и настройки для данного экспорта. Рассмотрим значения некоторых возможных опций:

rw - разрешает чтение/запись в указанную директорию (в данном случае /nfs)

ro - разрешает только чтение

sync - означает, что сервер NFS будет синхронизировать записи прежде чем отвечать на следующие запросы

async - не блокирует подключения, пока данные записываются на диск

no_subtree_check - позволяет клиентам обращаться ко всем файлам и подкаталогам внутри указанного каталога (в данном случае /nfs)

subtree_check - проверяет имеет ли клиент права доступа к каждому подкаталогу. Таким образом, обеспечивается более строгий контроль доступа

secure - для соединения используются только порты ниже 1024

insecure - для подключения используются любые порты

nohide - не скрывать поддиректории при открытии доступа к нескольким директориям

all_squash - превращать все запросы в анонимные

root_squash - подменять запросы от root на анонимные

no_root_squash - не подменять запросы от root на анонимные

 

3. После этого необходимо рестартнуть сервер

systemctl restart nfs-kernel-server

4. Если включен брандмауэр, надо открыть необходимые порты
Проверим, что он включен

sudo ufw status

Если статус active, то открываем порты для клиентов данной командой, подставляя IP клиентов, 

sudo ufw allow from 10.0.0.1 to any port nfs

 

Примонтировать NFS клиента к серверу

1. На клиенте создаем директорию, к которой будем монтировать директорию с сервера

sudo mkdir -p /nfs

2. Монтируем клиента к серверу

Вставляем IP NFS сервера

sudo mount 10.0.0.10:/nfs /nfs

3. Проверяем, что все примонтировалось командой

df -h

 

После этого настройка NFS закончена, вы можете пользоваться общей директорией /nfs!

 

Чтобы отмонтировать эту директорию достаточно выполнить команду:

sudo umount /nfs

 

Сколько места используется в точке монтирования?

du -sh

/nfs 4.0K /nfs

 

Настройка автоматического монтирования fstab на клиенте

Будет хорошо также настроить автоматическое монтирование fstab на клиенте. Это позволит обеспечить постоянный доступ к ресурсам после каждой загрузки системы без необходимости ручного вмешательства.

Для данной настройки достаточно изменить 1 конфигурационный файл:

В конец файла /etc/fstab добавляем строку:

10.0.0.10:/nfs /nfs nfs defaults 0 0

 

Разберем содержимое этой строки:

10.0.0.10:/nfs - <IP-адрес NFS сервера>:<экспортированный каталог>

/nfs - локальная точка монтирования

nfs - тип файловой системы, который будет использоваться для монтирования

defaults - набор параметров монтирования, который включает стандартные настройки, такие как чтение и запись. Вы можете настроить дополнительные параметры, если это необходимо.

0 0 - эти 2 числа обозначают, будут ли выполняться проверки при загрузке и выключении системы. В данной конфигурации "0 0" проверки не выполняются. Они могут быть настроены, чтобы включить автоматическую проверку файловой системы при загрузке или выключении, если это необходимо.

Вперед