Настройка nfs на линукс

Настройка сервера

и добавляем в конец файла строки вида (строк может быть произвольное количество):

/data 192.168.1.1/255.255.255.0(rw,insecure,nohide,all_squash,anonuid=1000,anongid=1000,no_subtree_check)

192.168.1.1 –IP-адрес, которому раздается доступ к папке(можно указать всю сеть, тогда запись примет вид 192.168.1.0/24)

no_root_squash –по умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать;

nohide — NFS автоматически не показывает нелокальные ресурсы (например, примонтированые с помощью mount –bind), эта опция включает отображение таких ресурсов;

sync – синхронный режим доступа(может принимать обратное значение- async). sync (async) — указывает, что сервер должен отвечать на запросы только после записи на диск изменений, выполненных этими запросами. Опция async указывает серверу не ждать записи информации на диск, что повышает производительность, но понижает надежность, т.к. в случае обрыва соединения или отказа оборудования возможна потеря данных;

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

FIXME

Необходимо добавить описание опций.

subtree_check (no_subtree_check)- в некоторых случаях приходится экспортировать не весь раздел, а лишь его часть. При этом сервер NFS должен выполнять дополнительную проверку обращений клиентов, чтобы убедиться в том, что они предпринимают попытку доступа лишь к файлам, находящимся в соответствующих подкаталогах. Такой контроль поддерева (subtree checks) несколько замедляет взаимодействие с клиентами, но если отказаться от него, могут возникнуть проблемы с безопасностью системы. Отменить контроль поддерева можно с помощью опции no_subtree_check. Опция subtree_check, включающая такой контроль, предполагается по умолчанию. Контроль поддерева можно не выполнять в том случае, если экспортируемый каталог совпадает с разделом диска;

Под «местным» пользователем понимается пользователь, который будет осуществлять запись в файлы (запускать приложения, скачивающие файлы и т.д.), поэтому значение 1000 может отличаться от вашего. Для определения uid пользователя воспользуйтесь командой

sudo /etc/init.d/nfs-kernel-server restart

В последствии после внесения изменений в файл /etc/exports не обязательно перезапускать сервер, достаточно выполнить:

Читайте также:  Linux get processor count

Настройка клиента

Для монтирования сетевой папки необходимо создать папку на локальном компьютере:

Монтирование вручную

Для монтирования папки вручную необходимо выполнить в терминале команду:

sudo mount -t nfs -O uid=1000,iocharset=utf-8 192.168.1.2:/data ~/Общедоступные

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

Монтирование с записью в fstab

Для большего удобства можно добавить запись с сетевой папкой в fstab. Целесообразно создать точку монтирования сетевой папки в /media, потому что каталоги, созданные там, будут отображаться в Nautilus в левой колонке, монтировать их можно будет одним кликом.

sudo mkdir /media/Общедоступные

В файл /etc/fstab добавляем подобную запись:

192.168.1.1:/data /media/Общедоступные nfs user,rw,noauto 0 0

опция «noauto» запрещает автоматическое монтирование сетевого диска при старте системы.

Проблемы

Использование на ноутбуке

При монтировании удаленных папок NFS посредством fstab, в ситуации, когда сеть с сервером будет не доступна, ноутбук невозможно выключить или отправить в спящий режим. Для использования удаленных папок NFS на ноутбуке лучше воспользоваться монтированием при помощи autofs

Монтирование с помощью autofs

Данный способ монтирования позволяет автоматически монтировать папку после обращения к ней в наутилусе (к примеру, через закладки) или в терминале:

и автоматически отмонтировать при отсутствии активности.

Установка

Для реализации данного способа необходимо доустановить пакет autofs :

sudo apt-get install autofs

Настройка

Для настройки autofs в файле /etc/auto.master необходимо добавить строку

Здесь –timeout=60 указывает отмонтировать раздел при отсутствии активности на нём более чем 60 секунд. Создаем в корне файловой системы папку /nfs :

sudo touch /etc/auto.nfs && sudo mkdir /nfs

В файле /etc/auto.nfs добавляем строку

server -rw,soft,intr,rsize=8192,wsize=8192 192.168.1.2:/path_to_share

Перезапускаем службу autofs :

sudo service autofs restart

Проблемы

Недоступность удаленного сервера

Если сеть с сервером NFS недоступна, возможна большая задержка (по умолчанию 3 минуты) при открытии nautilus, в закладках которого находится примонтированная удаленная папка NFS.
Для решения этой проблемы необходимо уменьшить время ожидания монтирования autofs, для этого в файле /etc/default/autofs необходимо раскомментировать или добавить следующие строки:

Читайте также:  Linux unsupported locale setting

#время ожидания ответа от mount

#время ожидания при неудачной попытке монтирования

После этого autofs будет пытаться примонтировать удаленную папку только 10 секунд.

Использование

FIXME

Проблемы

Проблемы с гибернацией или выключением

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

Freezing of tasks failed after 20.01 seconds (1 tasks refusing to freeze, wq_busy=0)

Для диагностирования смотрим лог dmesg, возможный вывод:

dmesg | grep -A 2 refuse [32467.560058] Freezing of tasks failed after 20.01 seconds (1 tasks refusing to freeze, wq_busy=0): [32467.560115] nfs D 0000000000000000 0 2065 1 0x00800004
dmesg | grep -A 2 refuse [32467.560058] Freezing of tasks failed after 20.00 seconds (1 tasks refusing to freeze): [32467.560115] updatedb.mloc D ffff88008e907578 0 9268 9261 0x00800004

Пакет, являющийся причиной зависания указан в начале строки, следующей после сообщения об ошибке.

Причина №1: пакет NFS

Причиной данной проблемы является скрипт прерывания работы NetworkManager, необходимо запретить его выполнение переименовав его:

sudo mv /usr/lib/pm-utils/sleep.d/55NetworkManager /usr/libg/pm-utils/sleep.d/old.55NetworkManager

Причина №2: пакет updatedb.mloc

updatedb является частью пакета mlocate— удобного пакета для быстрого поиска файлов по системе. К сожалению, версия 0.23.1-1ubuntu2 1) , находящаяся в репозиториях Ubuntu содержит баг, при котором возникает ситуация, когда компьютер не может выключиться или отправиться в гибернацию, когда сервер NFS выключен. Для решения данной проблемы необходимо установить пакет версии 0.23.1-1 из репозитория debian-sid:

wget http://ftp.ru.debian.org/debian/pool/main/m/mlocate/mlocate_0.23.1-1_i386.deb sudo dpkg -i mlocate*

Источник

Настройка сервера NFS на Linux Ubuntu

Обновлено и опубликовано

Опубликовано: 28.08.2022

Используемые термины: NFS, Ubuntu. В инструкции мы кратко пробежим по процессу установки и настройки сервера NFS на Ubuntu Server. Также мы рассмотрим пример подключения клиентом к шаре сервера.

Настройка сервера

  • rw / ro — разрешить чтение и запись или только чтение.
  • sync / async — отвечать на запросы только когда данные будут сохранены на диск или не блокировать подключения пока данные записываются на диск.
  • secure / insecure — использовать для соединения только порты ниже 1024 или любые порты.
  • root_squash / no_root_squash — подменять запросы от root на анонимные или не делать этого.
  • subtree_check / no_subtree_check — проверять попытки пользователя выйти за пределы экспортированной папки или отключить данную проверку.
  • nohide — не скрывать поддиректории, если открыт доступ к нескольким каталогам.
  • crossmnt — эта опция аналогична nohide, но позволяет клиентам перемещаться с файловой системы, помеченной crossmnt, на смонтированные на ней экспортированные файловые системы. Таким образом, когда дочерняя файловая система «B» монтируется в родительской «A», установка crossmnt для «A» имеет тот же эффект, что и установка «nohide» для B.
  • all_squash — делать все запросы анонимными.
  • anonuid — указывает uid анонимного пользователя.
  • anongid — указывает gid анонимного пользователя.
Читайте также:  Vst плагины на linux

Создадим каталог на сервере для нашей шары:

Выполним экспорт данных (перечитаем наш конфигурационный файл /etc/exports, чтобы сервер начал отдавать настроенные шары):

Сервер готов к работе. Состояние службы можно посмотреть командой:

systemctl status nfs-server

Если в нашей системе на сервере используется брандмауэр, нам нужно добавить порты 111 (udp, tcp) и 2049 (udp,tcp):

iptables -I INPUT -p udp —dport 111 -j ACCEPT

iptables -I INPUT -p tcp —dport 111 -j ACCEPT

iptables -I INPUT -p tcp —dport 2049 -j ACCEPT

iptables -I INPUT -p udp —dport 2049 -j ACCEPT

Для сохранения правил используем утилиту netfilter-persistent:

apt install netfilter-persistent

Настройка клиента

На стороне клиента может понадобиться поставить или обновить клиента NFS. В зависимости от используемого дистририбутива Linux, действия будут немного отличаться:

а) для систем на базе Deb (Ubuntu, Debian, Mint):

б) для систем на базе RPM (Rocky Linux, CentOS):

Клиент будет установлен или обновлен.

Теперь можно попробовать примонтировать нашу шару:

mount -t nfs 192.168.0.15:/data/nfs /mnt

* в нашем примере мы подключимся к серверу с IP-адресом 192.168.0.15; каталог, который мы монтируем /data/nfs (тот, который настроили в файле exports; монтирование будет выполнено в каталог /mnt.

Для того, чтобы монтирование осталось после перезагрузки, открываем файл fstab:

192.168.0.15:/data/nfs /mnt nfs auto 0 0

* где 192.168.0.15 — адрес сервера NFS; /mnt — каталог, куда будет примонтирована шара.

Источник

Оцените статью
Adblock
detector