- Как настроить сервер NFS и смонтировать общие ресурсы NFS в Linux
- Установка пакетов
- Создание общего каталога на сервере
- Astra linux nfs server
- Настройка сервера NFS [ править ]
- синтаксис для экспорта через NFS 3 [ править ]
- синтаксис для экспорта через NFS 4 [ править ]
- настройка nfs на устаревших системах, до p8 [ править ]
- Настройка portmap (для p5 и ранее, устарело с p6) [ править ]
- Настройка rpcbind, для шестой платформы [ править ]
- Настройка kerberos [ править ]
- Запуск NFS [ править ]
- Запуск NFS под systemd (p8+) [ править ]
- Запуск NFS на устаревших системах до p8 [ править ]
- проблемы с запуском nfs на p8 [ править ]
- Использование NFS [ править ]
- Автомонтирование [ править ]
- autofs + avahi [ править ]
- autofs + avahi, проблемы на p8 и p9 [ править ]
- subfs (для p5 и ранее, устарело) [ править ]
- Монтирование NFS
Как настроить сервер NFS и смонтировать общие ресурсы NFS в Linux
Сетевая файловая система (NFS) – это популярный протокол распределенной файловой системы, который позволяет пользователям монтировать удаленные каталоги на своем компьютере. NFS довольно хорошо работает c каталогами, к которым пользователям требуется частый доступ. Практически во всех версиях Linux команды будут одинаковые. Мы рассмотрим как монтировать общий ресурс NFS на примере сервера Ubuntu 18.04.
Пусть компьютеры будут иметь следующие адреса:
Сервер: 192.168.1.5
Клиент: 192.168.1.100
Требуется подключить существующую папку /home и специально созданную папку /var/nfs с сервера к клиенту.
Установка пакетов
Прежде всего, требуется установить необходимые компоненты как на сервере, так и на клиентских компьютерах. На сервере вам потребуется установить пакет nfs-kernel-server , который позволит использовать совместный доступ к вашим каталогам.
На клиентском компьютере вам потребуется установить пакет nfs-common.
Создание общего каталога на сервере
Мы будем монтировать специально созданный на сервере каталог на клиентский компьютер. Создадим каталог nfs.
Теперь отредактируем файл, отвечающий за совместное использование ресурсов NFS
Здесь нужно создать строку для каждого из каталогов, которые должны быть общими и указать с какими компьютерами мы разделяем ресурсы. В нашем примере IP-адрес клиента – 192.168.1.100, поэтому строки должны выглядеть примерно так:
В случае если нужно раздать каталог на все компьютеры подсети вместо 192.168.1.100 нужно указать 192.168.1.0/24
Давайте разберем, что здесь написано.
rw: эта опция позволяет клиентскому компьютеру как читать, так и записывать в данный каталог.
sync: заставляет NFS записывать изменения на диск перед ответом, что приводит к более стабильной и согласованной среде. Это связано прежде всего с тем, что ответ повторяет фактическое состояние удаленного тома.
no_subtree_check: эта опция предотвращает проверку поддеревьев. Сервер при каждом запросе проверяет, действительно ли файл все еще доступен в экспортируемом дереве. Отключение проверки уменьшает безопасность, но увеличивает скорость передачи данных.
no_root_squash: по умолчанию NFS переводит запросы от пользователя root на клиентском компьютере в непривилегированного на сервере. Это параметр безопасности который не позволяет учетной записи root на клиенте использовать файловую систему сервера в качестве root.
После того, как необходимые изменения внесены и сохранены, выполним команду:
и запустим службу NFS
Данная команда сделает ваши ресурсы доступными для клиентов, которых вы настроили. Теперь перейдем к следующему шагу.
Создание точек монтирования и монтирование удаленных общих ресурсов на клиентском компьютере
Сперва создадим точки монтирования удаленных ресурсов.
Автоматическое монтирование производится через fstab
Допишем в конец файла
Если вам больше не требуется монтировать удаленный каталог в вашей системе, вы можете легко размонтировать его используя следующие команды:
NFS предлагает простой и быстрый механизм доступа к удаленным системам по сети. Однако протокол является не зашифрованным. Если вы намерены использовать это в производственной среде, рекомендуется рассмотреть возможность запуска NFS через SSH или VPN-соединение.
Источник
Astra linux nfs server
Важной особенностью NFS является то, что она рассчитана на использование внутри безопасной сети, рабочим станциям в которой можно доверять, поскольку авторизация доступа к файлам, смонтированным на NFS осуществляется на основании идентификатора пользователя, а подлинность пользователя каждая машина в сети проверяет самостоятельно. Вытекающим отсюда требованием является то, что пользователь должен быть зарегистрирован и на клиенте и на сервере NFS и иметь там одно и то же входное имя (login) и идентификатор. Это достигается использованием централизованной аутентификации (например, с помощью PAM и сервера аутентификации или NIS).
Для запуска nfs требуется, чтобы в системе были установлены следующие пакеты:
- nfs-server или unfs3 (в OpenVZ VE ядерный NFS-сервер не работает)
- rpcbind (с шестой платформы; ранее нужен был portmap)
- nfs-clients (содержит в себе nfslock)
(в некоторых системах вместо nfs-server и nfs-clients имеется пакет nfs-utils)
Настройка сервера NFS [ править ]
1. В файле /etc/exports указываются каталоги, которые мы экспортируем (разрешаем монтировать с других машин) (см. man exports).
По соображениям безопасности не рекомендуется экспортировать каталоги по протоколу NFS 3. Рекомендуется использовать NFS 4.
синтаксис для экспорта через NFS 3 [ править ]
В скобочках указываются дополнительные параметры:
rw — разрешены чтение и запись ro — разрешено только чтение no_root_squash — отключение ограничения прав root
По умолчанию пользователь root имеет на смонтированных ресурсах права пользователя nobody.
Можно указывать разрешение экспорта сразу для подсети. Например разрешение для машин из подсети 192.168.0.X строка будет выглядеть так:
Подробную информацию о формате файла можно посмотреть командой man exports
синтаксис для экспорта через NFS 4 [ править ]
экспортируемые по NFS 4 каталоги имеют тот же синтаксис, что и через NFS3, за исключением того, что все они должны быть в одном подкаталоге (chroot для безопасности). Пусть это каталог /exports. Тогда необходимо подмонтировать остальные экспортированные каталоги внутрь /exports с помощью mount —bind ( mount —bind /mysharedir /exports/mysharedir ), прописать в fstab:
и прописать в /etc/exports: отличие от NFS3 в том, что нужно будет добавить nohide к mysharedir и явно обьявить корневой каталог экспорта с fsid=0.
настройка nfs на устаревших системах, до p8 [ править ]
Настройка portmap (для p5 и ранее, устарело с p6) [ править ]
Для работы nfs необходим сервис portmap . По умолчанию, сервис portmap запущен только на loopback (lo) интерфейсе в целях безопасности. Этого достаточно для раздачи сетевых ресурсов через nfs4.
Однако при этом не будет работать монтирование каталогов по nfs3. Если это действительно нужно, то нехотя коментируем в файле /etc/sysconfig/portmap строку PORTMAP_ARGS=»-l», прописываем в /etc/hosts.allow сеть, в которую раздаем:
и в /etc/hosts.deny :
после этого еще раз вдумчиво читаем http://tldp.org/HOWTO/NFS-HOWTO/security.html. и глубоко размышляем над глубокой небезопасностью запуска portmap без PORTMAP_ARGS=»-l» и использования nfs3.
Настройка rpcbind, для шестой платформы [ править ]
Начиная с шестой платформы portmap заменен на rpcbind. Настраивается аналогично portmap. Конфигурационный файл /etc/sysconfig/rpcbind, для использования nfs 3, закомментировать:
control rpcbind server
Настройка kerberos [ править ]
Для rw каталогов желательно настроить kerberos.
Для read-only можно просто закоментировать в файле /etc/sysconfig/nfs строку
Запуск NFS [ править ]
Запуск NFS под systemd (p8+) [ править ]
Если все команды прошли успешно и не выдавали ошибок, то сервер можно считать работающим. Дополнительно можно запустить команду exportfs, которая выведет текущие настройки на данный момент. В случае нормальной работы она должна вывести на экран записи из файла /etc/exports
Для запуска сервисов при старте системы:
Запуск NFS на устаревших системах до p8 [ править ]
1. После настройки файла необходимо запустить сервис rpcbind (для p6,portmap для p5) командой:
2. Запустить непосредственно nfs-server командой:
3. Запустить сервис блокировок командой:
Если все команды прошли успешно и не выдавали ошибок, то сервер можно считать работающим. Дополнительно можно запустить команду exportfs, которая выведет текущие настройки на данный момент. В случае нормальной работы она должна вывести на экран записи из файла /etc/exports
Для запуска сервисов при старте системы:
проблемы с запуском nfs на p8 [ править ]
отлаживаем rpc.nfsd (опция -d):
Оказывается, включен ipv6 и включен протокол v.3 (см. version string to kernel: -2 +3 +4) который не получается повесить на ipv6 адрес.
- Решение1 (если nfs3 не нужен): выключить v.3 (опция -N3) в $NFSD_OPTIONS: прописываем в /etc/sysconfig/nfs
после чего nfs нормально запускается.
- Решение2 (если нужен nfs3, не тестировал):
в /etc/netconfig закомментировать
Использование NFS [ править ]
Подключение к nfs-серверу можно производить вручную, а можно настроить автоматическое подключение при загрузке.
Допустим машина где запущен nfs-server называется server, и нам необходимо смонтировать с сервера каталог /myshare Тогда, для ручного способа достаточно (из под пользователя root) выполнить команду:
где, /mnt/myshare — локальный каталог куда монтируется удалённый каталог.
Внимание: так nfs4 монтироваться не будет! myshare стоит убрать. Подробнее про nfs4 тут: http://www.altlinux.org/NFSv4#Монтирование клиентом(замечание неверно/устарело, с указанием каталога все монтируется под p8, p9, p10).
Для автоматического монтирования к nfs-серверу при загрузке необходимо добавить следующую строку в файл /etc/fstab:
где, intr — позволяет прервать процесс при необходимости soft — предотвращает от зависания в случае недоступности удалённой машины.
Кроме того, стоит убедиться, что сервис netfs запускается при старте системы.
Прежде чем изменять /etc/fstab, попробуйте смонтировать вручную и убедитесь, что всё работает.
Автомонтирование [ править ]
Осуществляется при помощи automount, autofs или subfs.
autofs + avahi [ править ]
Использование avahi. Установите пакет avahi-service-nfs или вручную создайте на сервере файл /etc/avahi/services/nfs.service , используется nfs4:
и запустите на сервере nfs сервис avahi-daemon. Проверьте с машин-клиентов, что сервер nfs виден с этих машин с помощью команды
Установите на машины-клиенты autofs. С настройками по умолчанию, ресурсы nfs будут монтироваться как /mnt/net/servername/netshare.
Для домашней локальной сети, когда nfs раздается не с сервера, а с другой рабочей станции, которую могут выключить в любой момент, рекомендуется прописывать у клиентов в /etc/sysconfig/autofs timeout поменьше (например, 5 сек):
autofs + avahi, проблемы на p8 и p9 [ править ]
при включенном ipv6 команда avahi-browse -tkrp _nfs._tcp кроме IPv4 _nfs сервиса
выдаст и IPv6 _nfs сервис
который не поддерживается autofs-5.1.5-alt1 из p9, что приведет к неработоспособности автомонтирования NFS. До исправления autofs можно отключить ipv6
проверяем и если заработало, то вносим изменения на постоянной основе либо собрать в бранчи autofs с поддержкой ipv6. Патчи для старых версий см. RH#711844.
subfs (для p5 и ранее, устарело) [ править ]
Рецепт mike@ для subfs (фрагмент /etc/fstab), NFS4
Источник
Монтирование NFS
Network File System (NFS) — протокол доступа к файловым системам по сети. NFS позволяет удаленно подключаться к общим папкам. Подключая общую папку мы работаем с ней как с локальной директорией. Давайте разберемся как происходит монтирование NFS на популярных дистрибутивах Linux.
В качестве NFS сервера у меня будет выступать FreeNAS — бесплатная сборка NAS на FreeBSD. Вероятно на вашей системе уже установлен клиент NFS, если нет установим его. Я буду монтировать NFS на Centos 8. Настройки для Ubuntu подобных также привожу.
Установка клиента NFS
Перед началом работы советую установить все текущие обновления.
Установка клиента NFS на Centos (и прочие на yum)
Установка клиента NFS на Ubuntu (и прочие на apt)
Монтирование NFS
Создадим в нашей системе папку куда будем монтировать NFS
Расположение и название папки может быть любым.
Монтирование NFS директории в папку /opt/nas
Разберем указанные параметры:
- -t — указывает тип файловой системы
- 192.168.20.2 — ip адрес моего NAS сервера
- :/mnt/GENERAL — путь к монтируемой папке на NAS сервере
- /opt/nas — папка на клиенте куда монтируем
Путь к монтируемой папке необходимо точно указывать. На разных серверах путь разный. В моём случае:
Если монтирование прошло удачно никаких сообщений не будет. Когда возникает ошибка, на экране это обязательно отобразится. У меня все прошло без ошибок.
У команды mount множество возможных ключей. Например можно подключить папку и сделать ее только для чтения, используя ключ -r. Полный список возможностей можно узнать прочитав man.
Либо посмотреть список ключей касательно монтирования NFS
Увидеть подключенные файловые системы с указанием точки монтирования можно так
Данная команда удобна тем, что показывает куда смонтирована файловая система. Также видна статистика по общему количеству места, занятому и свободному.
Ручной тип подключения файловых систем, а именно монтирование, работает до перезагрузки. Перезагрузив компьютер потребуется снова монтировать папку. Чтобы автоматизировать данный процесс переходим к следующему пункту.
Автоматическое монтирование NFS
Автоматическое монтирование NFS происходит путем редактирования файла /etc/fstab. Указанный файл содержит список файловых систем с параметрами, которые автоматически монтируются при старте системы. Добавим в /etc/fstab монтирование NFS.
Добавляем в конец файла новую строку
- 192.168.20.2 — адрес моего сервера NAS
- :/mnt/GENERAL — папка на сервере
- /opt/nas — папка на клиенте куда монтируем
- nfs — тип файловой системы
- defaults — использовать параметры монтирования по умолчанию
- 0 — не использовать дамп
- 0 — не проверять файловую систему при старте программой fsck
Сохраняем файл и перезагружаемся. Если все заполнили верно, после перезагрузки появится подключенная папка с файловой системой NFS.
Размонтирование NFS
При автоматическом монтировании размонтировать NFS папку можно удалив строку в файле /etc/fstab. После перезагрузки папка NFS не будет подключена. Отключить файловую систему без перезагрузки можно командой umount
Если размонтировать не получилось, по причине того что накопитель используется, поможет ключ -l
Ключ -l позволяет размонтировать файловую систему когда она больше не используется. Есть еще ключ -f позволяющий отключить файловую систему если она более не доступна. Однако использовать его нужно с осторожность, т.к. данные могут быть потеряны.
Источник