- Как смонтировать общий ресурс NFS в Linux
- Установка клиентских пакетов NFS
- Монтирование файловых систем NFS вручную
- Автоматическое монтирование файловых систем NFS с помощью /etc/fstab
- Размонтирование файловых систем NFS
- Выводы
- Как установить и настроить сервер NFS в Ubuntu 18.04
- Подготовка
- Настройте сервер NFS
- Установка сервера NFS
- Создание файловых систем
- Экспорт файловых систем
- Конфигурация межсетевого экрана
- Настройка клиентов NFS
- Установка клиента NFS
- Монтирование файловых систем
- Тестирование доступа по NFS
- Размонтирование файловой системы NFS
- Выводы
- Установка
- Настройка сервера
- Настройка клиента
- Монтирование вручную
- Монтирование с записью в fstab
- Проблемы
- Использование на ноутбуке
- Монтирование с помощью autofs
- Установка
- Настройка
- Проблемы
- Недоступность удаленного сервера
- Использование
- Проблемы
- Проблемы с гибернацией или выключением
- Причина №1: пакет NFS
- Причина №2: пакет updatedb.mloc
Как смонтировать общий ресурс NFS в Linux
Сетевая файловая система (NFS) — это протокол распределенной файловой системы, который позволяет вам обмениваться удаленными каталогами по сети. С помощью NFS вы можете монтировать удаленные каталоги в своей системе и работать с удаленными файлами, как если бы они были локальными файлами.
В операционных системах Linux и UNIX вы можете использовать команду mount для монтирования общего каталога NFS в определенной точке монтирования в локальном дереве каталогов.
В этом руководстве мы покажем вам, как вручную и автоматически смонтировать общий ресурс NFS на машинах Linux.
Установка клиентских пакетов NFS
Чтобы смонтировать общий ресурс NFS в системе Linux, сначала необходимо установить клиентский пакет NFS. Название пакета отличается в разных дистрибутивах Linux.
Установка клиента NFS в Ubuntu и Debian:
Установка клиента NFS на CentOS и Fedora:
Монтирование файловых систем NFS вручную
Подключение удаленного общего ресурса NFS аналогично монтированию обычных файловых систем.
Чтобы смонтировать файловую систему NFS в заданной точке монтирования, используйте команду mount в следующей форме:
Выполните следующие действия, чтобы вручную смонтировать удаленный общий ресурс NFS в вашей системе Linux:
Сначала создайте каталог, который будет точкой монтирования для удаленного общего ресурса NFS:
Точка монтирования — это каталог на локальном компьютере, где должен быть смонтирован общий ресурс NFS.
Подключите общий ресурс NFS, выполнив следующую команду от имени пользователя root или пользователя с привилегиями sudo :
Где 10.10.0.10 — это IP-адрес сервера NFS, /backup — это каталог, который сервер экспортирует, а /var/backups — локальная точка монтирования.
В случае успеха вывод не производится.
Если вы хотите указать дополнительные параметры монтирования , используйте параметр -o . Несколько вариантов могут быть представлены в виде списка, разделенного запятыми. Чтобы получить список всех параметров монтирования, введите в терминале man mount .
Чтобы убедиться, что удаленный том NFS успешно смонтирован, используйте команду mount или df -h .
После монтирования общего ресурса точка монтирования становится корневым каталогом смонтированной файловой системы.
Когда вы монтируете общий ресурс вручную, подключение общего ресурса NFS не сохраняется после перезагрузки.
Автоматическое монтирование файловых систем NFS с помощью /etc/fstab
Как правило, вы хотите автоматически монтировать удаленный каталог NFS при загрузке системы.
Файл /etc/fstab содержит список записей, определяющих, где, как и какая файловая система будет монтироваться при запуске системы.
Чтобы автоматически монтировать общий ресурс NFS при запуске системы Linux, добавьте строку в файл /etc/fstab . Строка должна включать имя хоста или IP-адрес сервера NFS, экспортированный каталог и точку монтирования на локальном компьютере.
Используйте следующую процедуру для автоматического монтирования общего ресурса NFS в системах Linux:
Настройте точку монтирования для удаленного общего ресурса NFS:
Добавьте в файл следующую строку:
Где 10.10.0.10 — IP-адрес сервера NFS, /backup — это экспортированный каталог, а /var/backups — локальная точка монтирования.
Выполните команду mount в одной из следующих форм, чтобы смонтировать общий ресурс NFS:
Команда mount прочитает содержимое /etc/fstab и смонтирует общий ресурс.
В следующий раз, когда вы перезагрузите систему, общий ресурс NFS будет смонтирован автоматически.
Размонтирование файловых систем NFS
Команда umount отсоединяет (размонтирует) смонтированную файловую систему от дерева каталогов.
Чтобы отсоединить смонтированный общий ресурс NFS, используйте команду umount за которой следует либо каталог, в котором он был смонтирован, либо удаленный общий ресурс:
Если для монтирования NFS есть запись в fstab , удалите ее.
Команда umount не сможет отсоединить общий ресурс, когда смонтированный том используется. Чтобы узнать, какие процессы обращаются к общему ресурсу NFS, используйте команду fuser :
Как только вы найдете процессы, вы можете остановить их с помощью команды kill и отключить общий ресурс NFS.
Если у вас все еще есть проблемы с —lazy ресурса, используйте параметр -l ( —lazy ), который позволяет вам отключать загруженную файловую систему, как только она больше не занята.
Если удаленная система NFS недоступна, используйте параметр -f ( —force ) для принудительного размонтирования.
Как правило, не рекомендуется использовать опцию принудительного выполнения, так как это может повредить данные в файловой системе.
Выводы
Мы показали вам, как подключать и отключать удаленный общий ресурс NFS. Те же команды применимы для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian и Linux Mint.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Источник
Как установить и настроить сервер NFS в Ubuntu 18.04
Сетевая файловая система (NFS) — это протокол распределенной файловой системы, который позволяет вам обмениваться удаленными каталогами по сети. С помощью NFS вы можете монтировать удаленные каталоги в своей системе и работать с файлами на удаленном компьютере, как если бы они были локальными файлами.
Протокол NFS по умолчанию не зашифрован и, в отличие от Samba , не обеспечивает аутентификацию пользователя. Доступ к серверу ограничен IP-адресами клиентов или именами хостов.
В этом руководстве мы рассмотрим, как настроить сервер NFSv4 в Ubuntu 18.04. Мы также покажем вам, как смонтировать файловую систему NFS на клиенте.
Подготовка
В этом примере предполагается, что у вас есть один сервер под управлением Ubuntu 18.04, а другой — с любым другим дистрибутивом Linux. Сервер и клиенты должны иметь возможность общаться друг с другом по частной сети. Если ваш хостинг-провайдер не предлагает частные IP-адреса, вы можете использовать общедоступные IP-адреса и настроить брандмауэр сервера, чтобы разрешить трафик на порт 2049 только из надежных источников.
Машины в этом примере имеют следующие IP-адреса:
Настройте сервер NFS
Начнем с установки и настройки сервера NFS.
Установка сервера NFS
Обновите индекс пакетов и установите пакет сервера NFS:
После завершения установки службы NFS запустятся автоматически.
По умолчанию в Ubuntu 18.04 NFS версии 2 отключена. Версии 3 и 4 включены. Вы можете убедиться в этом, выполнив следующую команду cat :
NFSv2 сейчас довольно старый, и нет причин для его включения.
Параметры конфигурации сервера NFS задаются в /etc/default/nfs-kernel-server и /etc/default/nfs-common . В нашем случае достаточно настроек по умолчанию.
Создание файловых систем
При настройке сервера NFSv4 рекомендуется использовать глобальный корневой каталог NFS и привязать монтирование фактических каталогов к точке монтирования общего ресурса. В этом примере мы будем использовать директор /srv/nfs4 качестве корня NFS.
Мы собираемся поделиться двумя каталогами ( /var/www и /opt/backups ) с разными параметрами конфигурации, чтобы лучше объяснить, как можно настроить монтирование NFS.
/var/www/ принадлежит пользователю, а группа www-data и /opt/backups принадлежит пользователю root .
Создайте файловую систему экспорта с помощью команды mkdir :
Смонтируйте актуальные каталоги:
Чтобы сделать монтирование привязки постоянным, откройте файл /etc/fstab :
и добавьте следующие строки:
Экспорт файловых систем
Следующим шагом является определение файловых систем, которые будут экспортированы сервером NFS, параметров общих ресурсов и клиентов, которым разрешен доступ к этим файловым системам. Для этого откройте файл /etc/exports :
В нашем случае нам нужно экспортировать каталоги www и backups и разрешить доступ только для клиентов в сети 192.168.33.0/24 :
Первая строка содержит fsid=0 который определяет корневой каталог NFS /srv/nfs . Доступ к этому тому NFS разрешен только клиентам из подсети 192.168.33.0/24 . Параметр crossmnt требуется для совместного использования каталогов, которые являются подкаталогами экспортированного каталога.
Во второй строке показано, как указать несколько правил экспорта для одной файловой системы. Он экспортирует /srv/nfs4/backups и разрешает доступ только для чтения ко всему диапазону 192.168.33.0/24 а также доступ для чтения и записи к 192.168.33.3 . Параметр sync указывает NFS записывать изменения на диск перед ответом.
Последняя строка не требует пояснений. Для получения дополнительной информации обо всех доступных параметрах введите в терминале команду man exports .
Сохраните файл и экспортируйте акции:
Вам нужно запускать указанную выше команду каждый раз, когда вы изменяете файл /etc/exports . Если есть какие-либо ошибки или предупреждения, они будут показаны на терминале.
Чтобы просмотреть текущий активный экспорт и его состояние, используйте:
Вывод будет включать все акции с их опционами. Как видите, есть также параметры, которые мы не определили в /etc/exports . Это параметры по умолчанию, и если вы хотите их изменить, вам необходимо явно установить эти параметры.
В Ubuntu root_squash включен по умолчанию. Это один из наиболее важных параметров безопасности NFS. Это не позволяет пользователям root, подключенным с клиентов, иметь привилегии root на подключенных общих ресурсах. Он будет отображать корень UID и GID , чтобы nobody / nogroup UID / GID .
Чтобы пользователи на клиентских машинах имели доступ, NFS ожидает, что идентификаторы пользователя и группы клиента совпадают с идентификаторами на сервере. Другой вариант — использовать функцию отображения идентификаторов NFSv4, которая преобразует идентификаторы пользователей и групп в имена и наоборот.
Вот и все. На этом этапе вы настроили сервер NFS на своем сервере Ubuntu. Теперь вы можете перейти к следующему шагу и настроить клиентов и подключиться к серверу NFS.
Конфигурация межсетевого экрана
Если вы используете брандмауэр в своей сети, вам нужно будет добавить правило, которое будет разрешать трафик через порт NFS.
Предполагая, что вы используете UFW для управления своим брандмауэром, чтобы разрешить доступ из подсети 192.168.33.0/24 вам необходимо выполнить следующую команду:
Чтобы проверить запуск изменений:
Вывод должен показать, что трафик через порт 2049 разрешен:
Настройка клиентов NFS
Теперь, когда сервер NFS настроен и общие ресурсы экспортированы, следующим шагом настройте клиентов и смонтируйте удаленные файловые системы.
Вы также можете смонтировать общий ресурс NFS на компьютерах с macOS и Windows, но мы сосредоточимся на системах Linux.
Установка клиента NFS
На клиентских машинах нам нужно установить только инструменты, необходимые для монтирования удаленных файловых систем NFS.
Установите клиент NFS в Debian и Ubuntu
Имя пакета, который включает программы для монтирования файловых систем NFS в дистрибутивах на основе Debian, — nfs-common . Для его установки выполните:
Установите клиент NFS на CentOS и Fedora
В Red Hat и ее производных установите пакет nfs-utils :
Монтирование файловых систем
Мы будем работать на клиентской машине с IP 192.168.33.110 которая имеет доступ для чтения и записи к файловой системе /srv/nfs4/www и доступ только для чтения к файловой системе /srv/nfs4/backups .
Создайте два новых каталога для точек монтирования. Вы можете создавать эти каталоги в любом месте.
Смонтируйте экспортированные файловые системы с помощью команды mount :
Где 192.168.33.10 — это IP-адрес сервера NFS. Вы также можете использовать имя хоста вместо IP-адреса, но оно должно быть разрешено клиентским компьютером. Обычно это делается путем сопоставления имени хоста с IP в /etc/hosts .
При монтировании файловой системы NFSv4 вам необходимо опустить корневой каталог NFS, поэтому вместо /srv/nfs4/backups вам нужно использовать /backups .
Убедитесь, что удаленные файловые системы успешно смонтированы, используя команду mount или df :
Команда распечатает все смонтированные файловые системы. Последние две строки — это смонтированные акции:
Чтобы сделать монтирование постоянным при перезагрузке, откройте файл /etc/fstab :
и добавьте следующие строки:
Чтобы получить дополнительную информацию о доступных параметрах монтирования файловой системы NFS, введите в терминале man nfs .
Другой вариант монтировать удаленные файловые системы — использовать инструмент autofs или создать модуль systemd.
Тестирование доступа по NFS
Проверим доступ к общим ресурсам, создав для каждой из них новый файл .
Сначала попробуйте создать тестовый файл в каталоге /backups с помощью touch команды:
Файловая система /backup экспортируется как доступная только для чтения, и, как и ожидалось, вы увидите сообщение об ошибке Permission denied :
Затем попробуйте создать тестовый файл в каталоге /srv/www в качестве корневого с помощью команды sudo :
Вы снова увидите сообщение Permission denied .
Если вспомнить /var/www каталог принадлежат к www-data пользователя и эта доля имеет root_squash вариант набор , который отображает суперпользователь к nobody пользователю и nogroup группе , которая не имеет права на запись на удаленный ресурс.
Предполагая, что у вас есть использование www-data на клиентском компьютере с тем же UID и GID что и на удаленном сервере (что должно быть, если, например, вы установили nginx на обеих машинах), вы можете протестировать создание файла как пользователь www-data с:
Команда не покажет никаких выходных данных, что означает, что файл был успешно создан.
Чтобы проверить это, перечислите файлы в каталоге /srv/www :
На выходе должен отобразиться только что созданный файл:
Размонтирование файловой системы NFS
Если вам больше не нужен удаленный общий ресурс NFS, вы можете размонтировать его, как любую другую подключенную файловую систему, с помощью команды umount. Например, чтобы отключить общий ресурс /backup , выполните:
Если точка монтирования определена в /etc/fstab , убедитесь, что вы удалили строку или закомментировали ее, добавив # в начале строки.
Выводы
В этом руководстве мы показали вам, как настроить сервер NFS и как смонтировать удаленные файловые системы на клиентских машинах. Если вы внедряете NFS в производство и обмениваетесь разумными данными, рекомендуется включить аутентификацию Kerberos.
В качестве альтернативы NFS вы можете использовать SSHFS для монтирования удаленных каталогов через SSH-соединение. SSHFS по умолчанию зашифрован, и его гораздо проще настроить и использовать.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Источник
Установка
Для установки и сервера, и клиента необходимы одни и те же пакеты nfs-kernel-server и nfs-common
Настройка сервера
Все настройки сервера хранятся в файле /etc/exports . Открываем его на редактирование
и добавляем в конец файла строки вида (строк может быть произвольное количество):
/data –путь к папке, для которой раздается доступ;
192.168.1.1 –IP-адрес, которому раздается доступ к папке(можно указать всю сеть, тогда запись примет вид 192.168.1.0/24)
(rw,no_root_squash,sync) –набор опций, опции могут быть:
rw –чтение запись(может принимать значение ro-только чтение);
no_root_squash –по умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать;
nohide — NFS автоматически не показывает нелокальные ресурсы (например, примонтированые с помощью mount –bind), эта опция включает отображение таких ресурсов;
sync – синхронный режим доступа(может принимать обратное значение- async). sync (async) — указывает, что сервер должен отвечать на запросы только после записи на диск изменений, выполненных этими запросами. Опция async указывает серверу не ждать записи информации на диск, что повышает производительность, но понижает надежность, т.к. в случае обрыва соединения или отказа оборудования возможна потеря данных;
noaccess – запрещает доступ к указанной директории. Может быть полезной, если перед этим вы задали доступ всем пользователям сети к определенной директории, и теперь хотите ограничить доступ в поддиректории лишь некоторым пользователям.
Необходимо добавить описание опций.
all_squash– подразумевает, что все подключения будут выполнятся от анонимного пользователя
subtree_check (no_subtree_check)- в некоторых случаях приходится экспортировать не весь раздел, а лишь его часть. При этом сервер NFS должен выполнять дополнительную проверку обращений клиентов, чтобы убедиться в том, что они предпринимают попытку доступа лишь к файлам, находящимся в соответствующих подкаталогах. Такой контроль поддерева (subtree checks) несколько замедляет взаимодействие с клиентами, но если отказаться от него, могут возникнуть проблемы с безопасностью системы. Отменить контроль поддерева можно с помощью опции no_subtree_check. Опция subtree_check, включающая такой контроль, предполагается по умолчанию. Контроль поддерева можно не выполнять в том случае, если экспортируемый каталог совпадает с разделом диска;
anonuid=1000– привязывает анонимного пользователя к «местному» пользователю;
anongid=1000– привязывает анонимного пользователя к группе «местного» пользователя.
В последствии после внесения изменений в файл /etc/exports не обязательно перезапускать сервер, достаточно выполнить:
Настройка клиента
Для монтирования сетевой папки необходимо создать папку на локальном компьютере:
Монтирование вручную
Для монтирования папки вручную необходимо выполнить в терминале команду:
Монтирование с записью в fstab
Для большего удобства можно добавить запись с сетевой папкой в fstab. Целесообразно создать точку монтирования сетевой папки в /media, потому что каталоги, созданные там, будут отображаться в Nautilus в левой колонке, монтировать их можно будет одним кликом.
В файл /etc/fstab добавляем подобную запись:
опция «noauto» запрещает автоматическое монтирование сетевого диска при старте системы.
Проблемы
Использование на ноутбуке
При монтировании удаленных папок NFS посредством fstab, в ситуации, когда сеть с сервером будет не доступна, ноутбук невозможно выключить или отправить в спящий режим. Для использования удаленных папок NFS на ноутбуке лучше воспользоваться монтированием при помощи autofs
Монтирование с помощью autofs
Данный способ монтирования позволяет автоматически монтировать папку после обращения к ней в наутилусе (к примеру, через закладки) или в терминале:
и автоматически отмонтировать при отсутствии активности.
Установка
Для реализации данного способа необходимо доустановить пакет autofs :
Настройка
Для настройки autofs в файле /etc/auto.master необходимо добавить строку
Здесь –timeout=60 указывает отмонтировать раздел при отсутствии активности на нём более чем 60 секунд. Создаем в корне файловой системы папку /nfs :
В файле /etc/auto.nfs добавляем строку
-rw,soft,intr,rsize=8192,wsize=8192 – параметры монтирования;
server – папка, которая будет создаваться в каталоге /nfs при монтировании удаленных папок;
192.168.1.2:/path_to_share– IP-адрес и общая папка сервера.
Перезапускаем службу autofs :
Проблемы
Недоступность удаленного сервера
Если сеть с сервером NFS недоступна, возможна большая задержка (по умолчанию 3 минуты) при открытии nautilus, в закладках которого находится примонтированная удаленная папка NFS.
Для решения этой проблемы необходимо уменьшить время ожидания монтирования autofs, для этого в файле /etc/default/autofs необходимо раскомментировать или добавить следующие строки:
#время ожидания ответа от mount
#время ожидания при неудачной попытке монтирования
После этого autofs будет пытаться примонтировать удаленную папку только 10 секунд.
Использование
Проблемы
Проблемы с гибернацией или выключением
После настройки автомонтирования сетевых папок NFS могут обнаружится некотрые проблемы с выключением или гибернацией системы. Чаще всего это проявляется как прерывающаяся гибернация (компьютер начинает уходить в гибернацию, гаснет экран, после чего экран опять загорается и работа продолжается, так же в этих случаях возможны проблемы с выключением и перезагрузкой системы. При последующих попытках отправить компьютер в гибернацию на черном экране вверрху можно наблюдать строку типа:
Для диагностирования смотрим лог dmesg, возможный вывод:
Пакет, являющийся причиной зависания указан в начале строки, следующей после сообщения об ошибке.
Причина №1: пакет NFS
Причиной данной проблемы является скрипт прерывания работы NetworkManager, необходимо запретить его выполнение переименовав его:
Причина №2: пакет updatedb.mloc
updatedb является частью пакета mlocate— удобного пакета для быстрого поиска файлов по системе. К сожалению, версия 0.23.1-1ubuntu2 1) , находящаяся в репозиториях Ubuntu содержит баг, при котором возникает ситуация, когда компьютер не может выключиться или отправиться в гибернацию, когда сервер NFS выключен. Для решения данной проблемы необходимо установить пакет версии 0.23.1-1 из репозитория debian-sid:
Источник