Описание
NFS (Network File System) – это протокол сетевого доступа к файловым системам. RPC обычно доступен на 111 порту UDP и RPC.
Сетевой доступ к файловой системе сервера прозрачен, и любое приложение может работать с удалённой файловой системой как со своей собственной.
NFS – сейчас открытый стандарт, поддерживающий механизмы прав доступа и функции файловой системы, и активно развивается.
Серверы NFS экспортируют сетевые каталоги. Клиенты NFS – монтируют сетевой каталог в локальную точку монтирования.
- Варианты монтирования:
- Вручную, с помощью команды mount;
- Автоматически, с помощью заранее определённой конфигурации в /etc/fstab;
- По запросу, используя сервис автомонтирования.
- Обеспечение безопасности файлового доступа для общих папок NFS:
- none - анонимный доступ к файлам. Операции записи на сервера (если разрешено) получают идентификаторы UID и GID nobody;
- sys - файловый доступ на основе стандартных разрешений Linux. Используется по умолчанию;
- krb5 - клиенты должны пройти проверку подлинности с помощью Kerberos, после чего применяются стандартные разрешения Linux;
- krb5i - добавление криптографически сильной гарантии того, что данные в каждом запросе не были взломаны;
- krb5p - добавление шифрования во все запросы между клиентом и сервером. Влияет на производительность.
NFS-сервер может иметь различные настройки для каждого экспортируемого каталога. NFS-клиент должны подключаться к экспортируемому каталогу, явно указав режим безопасности в опции sec=<метод>.
Настройка сервера
yum install nfs-utils nfs4-acl-tools
/etc/nfs.conf /etc/nfsmount.conf /etc/sysconfig/nfs
systemctl start nfs systemctl enable nfs
- mount.nfs монтирование сетевой файловой системы
- mount.nfs4 монтирование сетевой файловой системы
- umount.nfs размонтирование сетевой файловой системы
- umount.nfs4 размонтирование сетевой файловой системы
- exportfs управление экспортируемыми каталогами на сервере
- nfsiostat статистика ввода-вывода для существующих точек монтирования
- nfsstat статистика взаимодействия с NFS-сервером
- showmount вывод экспортированных сетевых файловых систем, локальные или другого NFS сервера
- nfs4_editfacl, nfs4_getfacl, nfs4_setfacl команды управления ACL для смонтированной сетевой файловой системы
/etc/exportsнапример
/mnt/exp *(ro,sync) test1.home(rw,sync) /opt/exchange *.home(rw) /mnt/nfs_shares/backups 192.168.10.15/24(rw,sync,no_root_squash)Пробел используется для разделения полей. Может указываться ip адрес клиента или подсети.
showmount -eпокажет
/mnt/exp * /opt/exchange *.home
- exportfs -a активация настроек /etc/exports
- exportfs -ua остановка доступа к экспортированным каталогам (деактивация)
- exportfs -r применение изменений в /etc/exports и /etc/exports.d
- exportfs -arv применение изменений
- exportfs -s проверка
firewall-cmd --permanent --add-service=nfs firewall-cmd --permanent --add-service=mountd firewall-cmd --reload
Настройка клиента
showmount -e 192.168.10.15Создание каталога точки монтирования
mkdir /mnt/dataМонтирование каталога
mount -t nfs4 server:share_dir /mnt/dataнапример
mount -t nfs 192.168.10.15:/mnt/nfs_shares/backups /mnt/backups
По умолчанию при подключении пользователь root превращается в пользователя nobody, поэтому если запись в каталог только для рута, то будет запрет доступа.
- Диагностика проблем:
- Проверить, что nfs сервер и rpcbind работают (rpcbind должен быть запущен на обоих проверяемых узлах);
- Проверить доступность сервера по сети (ping);
- Проверить вывод showmount;
- Проверить настройку firewalld;
- Если firewalld был отключен или изменены его настройки, необходимо перезапустить nfs-сервер;
- Попробовать смонтировать сетевой каталог;
- Если проблемы остаются, проверьте правила экспорта ФС и опции монтирования;
- Проверьте политики SELinux и контекст/типы экспортируемых каталогов.
Автоматическое монтирование сетевого хранилища с помощью NFS на клиенте
Для автоматического монтирования используется сервис autofs (необходим пакет autofs). Служба autofs автоматически монтирует каталоги (в т.ч.) NFS по требованию, и демонтирует их, если они не используются. При этом пользователям не нужно иметь привилегированные права для запуска команд mount/umount. Общие каталоги NFS, настроенные с помощью автоматического монтирования, доступны для всех пользователей системы с учётом разрешений доступа.
touch /etc/auto.master.d/demo.autofsнаписать в нем
/mnt/demo /etc/auto.demo
touch /etc/auto.demoнаписать в нем Формат записи: точка монтирования, опции монтирования, экспортируемый каталог.
exchange -rw,sync 192.168.10.15:/opt/exchange
systemctl start autofs
* -rw,sync serverX:/shares/&где "*" - маска создаваемой точки монтирования, «&» маскирует имя экспортируемого каталога. Точка монтирования будет называться так же, как и экспортируемый каталог.