Русские Блоги
Linux использует NFS для обмена каталогами или файлами
Технология NFS
NFS позволяет различным хост-системам обмениваться файлами или каталогами друг с другом по сети.
Во время использования сервера обычно используются выделенные машины для хранения данных и машины для обслуживания приложений. Что нам нужно сделать, так это как разрешить серверу приложений доступ к данным модема. Здесь используется технология NFS (сетевая файловая система).
Способ использования NFS также основан на архитектуре C / S, то есть модем может действовать как S-сторона, а посетитель действует как C-сторона. При подключении к каталогу на терминале данных можно получить доступ как к локальному каталогу.
Поскольку данные и прикладная программа находятся на разных машинах, вы можете знать, что NFS используется для передачи данных по сети, а затем некоторые порты также используются для передачи данных. Когда порт выбран, он обычно выбирается случайным образом. Чтобы клиент NFS знал, какой порт использует сервер, он обычно реализуется с помощью протокола / службы RPC (удаленный вызов процедур).
Технология RPC
Существует множество функций NFS, и когда различные функции включают сетевую передачу, некоторые порты могут передавать данные.Поэтому порт, соответствующий функции NFS, не может быть зафиксирован, но некоторые неиспользуемые порты выбираются для передачи случайным образом. Эти порты должны быть записаны, чтобы разные клиенты могли находить правильные данные через разные порты при доступе к серверу.
Основная функция RPC — записать номер порта, соответствующий каждой функции NFS, и передать информацию, соответствующую порту и функции, клиенту, когда клиент NFS запрашивает ее, чтобы гарантировать, что клиент может Правильно подключитесь к порту NFS. Это эквивалентно функции посредника.
Как работает NFS
1. Сначала пользователь обращается к программе веб-сайта, и программа отправляет запрос на функцию доступа к файлу NFS на клиенте NFS. В это время клиент NFS (то есть сервер, который выполняет программу) RPC-сервис (служба portmap или rpcbind) будет отправлен через сеть Порт службы RPC (portmap или rpcbind) сервера NFS отправляет запрос на функцию доступа к файлу NFS.
2. После того, как служба RPC сервера NFS (portmap или rpcbind) находит соответствующий зарегистрированный порт демона NFS, она уведомляет службу RPC клиента NFS (служба portmap или rpcbind).
3. В это время клиент NFS может получить правильный порт, а затем напрямую получить доступ к данным в сети с помощью демона NFS.
4. После того, как клиент NFS успешно обращается к данным, он возвращается к текущей программе доступа, чтобы проинформировать пользователя о результате доступа.Как пользователь веб-сайта, мы завершили операцию доступа. Поскольку каждая функция NFS должна регистрироваться в службе RPC, служба RPC может получить порт, PID и IP, отслеживаемые NFS на хосте, для каждой функции службы NFS, а клиент NFS может запросить службу RPC. Только найти правильный порт. Другими словами, NFS требуется помощь служб RPC для успешного предоставления услуг внешнему миру. Из приведенного выше описания нам нетрудно представить: будь то клиент NFS или сервер NFS, когда вы хотите использовать NFS, вам нужно сначала запустить службу RPC, а затем запустить службу NFS, клиенту не нужно запускать службу NFS.
Пример развертывания
Сервер
Проверить статус каждой услуги
Запустите службу rpcbind:
Просмотр информации о rpc rpcinfo
Если он не включен, указанная выше команда сообщит об ошибке:
Запустить службу nfs
Снова просмотреть информацию о rpc rpcinfo
Как видно выше, есть еще несколько портов, что указывает на то, что NFS зарегистрировал порт в службе RPC.
Клиент
Как и сервер, клиенту нужно только запустить службу RPC, и конкретное использование такое же, как указано выше.
Настроить сервер
Предположим, что IP-адрес сервера — 1, 2, 3, 4, а IP-адрес клиента — 5, 6, 7, 8.
- Создать общий каталог
- Настроить / etc / exports
Среди них URL 5.6.7.8 — это IP-адрес клиента, что означает, что клиент может работать с папкой / data, а разрешения на операции указаны в параметрах в круглых скобках. Если для этого адреса установлено значение *, это означает, что любой клиент может получить доступ к папке.
Следующие параметры означают следующее:
- Проверить результаты конфигурации
Это может не вступить в силу сразу после изменения экспорта, тогда вы можете передатьПерезапустите службы rpc и nfs, Затем выполните указанную выше команду, вы увидите измененный результат. Приведенный выше результат показывает, что любому клиенту разрешен доступ в открытом состоянии.
- Самопроверка сервера
Ситуация с сервером
Указывает, что этот путь открыт.
Настроить клиента
- Проверка клиента
Проверить статус сервера
- Каталог монтирования клиента
Выполните следующую команду на клиенте
- Проверить состояние диска
Ситуация с установкой диска
Как видите, появляются адрес сервера и соответствующий каталог, включая размер, и, наконец, абсолютный путь к локально смонтированному каталогу.
Состояние ошибки
- Отказ в разрешении обычно является проблемой разрешения, поэтому проверьте права доступа к файлу.
- Иногда сервер перезагружается или по различным неизвестным причинам путь / данные сервера имеют проблемы. В это время, если клиент обращается, будет обнаружено, что при доступе к локальному каталогу смонтировано: "mount .nfs: ошибка дескриптора устаревшего файла
Чтобы просмотреть атрибуты файла с помощью инструкций, результат смонтированного каталога может быть следующим:
Изменения атрибутов файла
Его нельзя удалить такими командами, как rm, и он указывает, что это дескриптор.
Чтобы решить эту проблему, вы можете решить ее, удалив каталог:
Затем, если вы проверите его еще раз, вы можете обнаружить, что каталог был восстановлен до нормальной формы локальной папки, и в это время могут быть выполнены другие операции, такие как удаление.
одинаков для сервера.
После этого вы можете снова настроить его в соответствии с предыдущим методом.
NFS против SAMBA против CIFS
NFS, САМБА, и CIFS — это три разных термина, которые часто используются, когда кто-то упоминает об обмене файлами между двумя или более системами. Но знаете ли вы, что делают эти три реализации и чем они отличаются друг от друга? Почему-то эти технологии остаются загадкой даже для некоторых опытных системных администраторов.
На самом деле, у каждого из трех есть некоторые определяющие характеристики, которые делают их разными, и ни одну из них не очень сложно понять. В этой статье мы подробно рассмотрим NFS, SAMBA и CIFS и поговорим об их реализации в контексте Система Linux . Мы также взвесим плюсы и минусы этих трех технологий, чтобы вы могли решить, какая из них лучше всего подходит для вашей сети.
В этом уроке вы узнаете:
- Сравнение NFS, SAMBA и CIFS
- Как установить NFS и SAMBA в Linux
NFS против SAMBA против CIFS
Категория | Требования, условные обозначения или используемая версия программного обеспечения |
---|---|
Система | Любой Дистрибутив Linux |
$ — требует данных команды linux будет выполняться как обычный непривилегированный пользователь
NFS против SAMBA против CIFS
Начнем с Samba и CIFS. Оба они реализуют протокол SMB (Server Message Block), созданный Microsoft. Samba и CIFS могут взаимодействовать друг с другом, поскольку они оба делают одно и то же, только по-разному. Если вы не работаете с устаревшими системами, вам следует придерживаться Samba. Samba более современная, надежная и быстрая.
Итак, решение здесь очень простое. Если вам нужно поддерживать совместимость с компьютерами Windows, используйте Samba. Если это не работает в вашей среде из-за того, что вы используете устаревшие системы, возможно, вы застряли на CIFS. И это может вызвать у вас головную боль, поскольку серверы Samba могут выступать в роли контроллера домена, а серверы CIFS — нет. Это позволяет пользователям Windows использовать свои учетные данные с сервером Samba, вместо того, чтобы дублировать весь набор пользователей от Windows до Linux в случае CIFS.
NFS работает очень похоже на Samba — они оба позволяют одному или нескольким клиентам обмениваться файлами с сервером. Но есть одна явная оговорка: NFS и SMB не являются совместимыми протоколами. Это означает, что сервер Samba не сможет взаимодействовать с сервером NFS, по крайней мере, без некоторых настроек. NFS был разработан Sun Microsystems, но Windows Server может размещать общие ресурсы NFS, а другие операционные системы Windows могут подключаться к нему. Конечно, системы Linux также могут размещать или подключаться к общим ресурсам NFS.
Очевидный вывод, который мы можем сделать из этого, заключается в том, что NFS отлично работает в средах Linux, а Samba лучше работает в средах Windows или смешанных средах (Linux + Windows). Если ваш сервер хранения — Linux, используйте NFS. Если это Windows, придерживайтесь Samba. Это должно дать вам наиболее идеальную настройку и лучшую производительность, хотя определенно можно запустить любой из них.
Установка Samba в Linux
Чтобы начать использовать Samba в Linux, используйте соответствующую команду ниже, чтобы установить программное обеспечение в вашей системе.
В Ubuntu, Linux Mint и других дистрибутивах на основе Debian:
В Fedora, CentOS, AlmaLinux и других дистрибутивах на основе RHEL:
Установка NFS в Linux
Чтобы начать использовать NFS в Linux, используйте соответствующую команду ниже, чтобы установить программное обеспечение в вашей системе.
В Ubuntu, Linux Mint и других дистрибутивах на основе Debian:
В Fedora, CentOS, AlmaLinux и других дистрибутивах на основе RHEL:
Заключительные мысли
В этом руководстве мы рассмотрели основы NFS, SAMBA и CIFS. Это должно помочь вам принять решение о том, какая технология обмена файлами лучше всего подходит для вашей сетевой среды. Когда вы будете готовы приступить к работе, мы предоставим вам необходимые команды для установки программного обеспечения в вашей системе. Оттуда вам нужно будет настроить NFS или SAMBA, чтобы завершить настройку и начать совместное использование файлов.
Подпишитесь на новостную рассылку Linux Career Newsletter, чтобы получать последние новости, вакансии, советы по карьере и рекомендуемые руководства по настройке.
LinuxConfig ищет технических писателей, специализирующихся на технологиях GNU / Linux и FLOSS. В ваших статьях будут представлены различные руководства по настройке GNU / Linux и технологии FLOSS, используемые в сочетании с операционной системой GNU / Linux.
Ожидается, что при написании статей вы сможете идти в ногу с технологическим прогрессом в вышеупомянутой технической области. Вы будете работать самостоятельно и сможете выпускать как минимум 2 технических статьи в месяц.
- 08/08/2021
- 0
- Файловая системаСетиМесто храненияАдминистрация
Как отключить SElinux на CentOS 7
- 31/01/2022
- 0
- Красная ШапкаБезопасностьCentosАдминистрация
SELinux, что означает Security Enhanced Linux, представляет собой дополнительный уровень контроля безопасности, созданный для Linux-системы. Первоначальная версия SELinux была разработана АНБ. Другие ключевые участники включают Red Hat, которая вк.
Введение в Powerline, плагин строки состояния для VIM
- 07/02/2022
- 0
- Файловая системаМонтажАдминистрацияКоманды
Vim — один из наиболее часто используемых и известных текстовых редакторов в Linux и других операционных системах на базе Unix. Это бесплатное программное обеспечение с открытым исходным кодом, основанное на оригинальном редакторе Vi (Vim означает.
Как установить Grub Customizer в Linux (все основные дистрибутивы)
- 09/02/2022
- 0
- МонтажНовичокАдминистрацияЖратва
Grub Customizer — это программный пакет, который работает точно так, как следует из названия. Это позволяет пользователю настраивать различные аспекты загрузочного меню grub — например, порядок появления записей в списке, время ожидания grub перед.
Стоит ли использовать NFS?
Есть офис, есть файл-сервер. Разумно ли использовать NFS? Оно живо? Если нет, то что стоит?
Очевидно же, что от клиентов и от целей зависит.
ещё как живо, если в клиентах преобладают линуксы-маки, то однозначно стоит
В клиентах пусто пока. Будет linux only.
Живо, стоит. Ещё загрузку рабочих станций по сети настрой раз уж такое дело.
Просто есть ещё выбор использовать Samba/FTP/WebDAV или что-то такое.
NFS по сравнению с Samba и SFTP ресурсы маршрутизатора-сервера экономит, хотя если сервер → десктоп — уже не так актуально.
Судите сами: NFS обычно монтируется системой (с правами суперпользователя) и поддерживает все атрибуты POSIX-совместимых ФС (хотя полтора NFS-клиента в природе существует), а FTP и WebDAV предполагают наличие программы-клиента, хотя и могут быть смонтированы при помощи FUSE или какой-нибудь абстракции вроде KIO или GVFS.
для локалки — ни в коем разе
примитивно, для монтирования нужны костыли
тоже костыли, да и без виндов смысла нет
а так, nfs+autofs рулят
Ещё PXE сверху и самое то.
Однозначно стоит использовать NFS.
Вот под оффтопик, правда, родной клиент только в ынтырпрайз версиях почему то. (
По сути мне нужен только загрузчик и ядро, так? Как передавать параметры ядру?
А чем самба от NFS отличается принципиально?
Гуглил про, NFS ничего не понял. а самба вроде устраивает.
Живо, но несекурно. Если пропало соединение — клиент виснет.
Для связи дом — сервер(а) — рабочий комп использую fuse-sshfs
используй samba, тебе для этого ничего устанавливать не нужно.
Так винда тоже nfs понимает. Или я ошибаюсь?
Есть Services for UNIX, но с каждой новой версией они требуют более дорогой вариант windows. Последняя ставится на Enterprise и Ultimate, объявлена устаревшей.
И правда:
Warning: Serious performance issues may occur (it randomly takes 30-60 seconds to display a folder, 2 MB/s file copy speed on gigabit LAN, . ) to which Microsoft does not have a solution yet.[1]
Производительность высокая. С правами будет путаница и локальный рут будет рутом и на удалённой ФС. Для уменьшения вероятности невозможности отмонтировать при отвалившейся сети можно использовать autofs. Если в сети есть виндос машины то для них может быть проще включить самбу.
И, да, когда я последний раз имел дело, были проблемы с офисом. С совместным использованием документа. То ли он не лочил открытый кем-то другим, то ли наоборот, лочил что то не так. Не помню.
А если использовать авторизацию?
Надо мапить UIDы, или что-то в этом роде, иначе UID будет совпадать на локальной и на сервере. Но не помню, это уже сделали или нет. И если сделали то в четвёртой, а может и вообще нет.
Использовать то вроде стоит — ибо родное.
Другой вопрос что толкового best practics мануала по настройке nfs считай что нет. Особенно на фоне вот этого http://wiki.debian.org/SecuringNFS
When you set up a tight firewally, you go with the «deny all, allow some» paradigm. The SunRPC system was designed around the «trust the remote system» and the «make it simple for the admin, use dynamic ports» paradigm. Fortunatly, the services you use with NFS have port options to work better with your firewall.
Использовать то вроде стоит — ибо родное.
А если ничего не стоит и есть желание поставить NFS?
Просто сделай и попробуй. Его «поднимать» и особо не нужно. На сервере заполнил /etc/exports и стартовал nfs, или, если уже работает, просто сказал exportfs -r . На клиенте просто сказал mount 1.2.3.4:/path/to/share /mountpoint и готово, наслаждайся жизнью.
Открыл холодильник, положил слона, закрыл холодильник. Легкотня чо
Если только UID’ы и GID’ы пользователей различаются на разных машинах. Если обеспечить одинаковые UID’ы (например, средствами NIS, LDAP), то все будет отлично.
локальный рут будет рутом и на удалённой ФС
По умолчанию root мапится в nobody. Чтобы он был рутом и на удаленной ФС — это надо специально включать (no_root_squash в /etc/exports), и это очень не рекомендуется. Другое дело, что локальный root всегда может сделать su на любого пользователя и обращаться от его имени к его файлам на удаленной ФС.
NFSv4 вроде призвана решить обе эти проблемы, но не видел, чтобы где-то ее использовали. Похоже, NFSv4 повторяет судьбу NIS+.
NFS точно стоит использовать, когда клиентами выступают не пользовательские машины, а другие серверы:
- на серверах может быть зоопарк из разных коммерческих Unix’ов, а NFS работает везде;
- cервера обычно не выключаются — нет проблем с отмонтированием;
- рута тоже обычно пользователям не дают — решается проблема с безопасностью.
- автоматическое монтирование хомяков по NFS — очень удобная штука.
Открыл холодильник, положил слона, закрыл холодильник. Легкотня чо
Факт — кроме как /etc/exports ее реально особо настраивать не нужно.
NFSv3, по крайней мере.
Открыл холодильник, положил слона, закрыл холодильник.
Мой вариант содержит еще всяческие squach-и и no_wdelay.
Без последнего копирование на примонтированный nfs представляет из себя классическую синусоиду кеширования . принимаем, принимаем, принимаем, ой клиент тормози, я сейчас тут всё на диск сброшу, ждем, ждем, ждем
Это тот который работает по ID пользователей ? Спасибо, нафиг не нужно.
Ну чисто потыкать палочкой достаточно, а так — да, конфиг можно и готовый найти, или самому составить. Вообще норутскваш у меня есть, да, а ноделай нет и вроде копируется нормально.
да, конфиг можно и готовый найти, или самому составить.
Угу .. найти . а хотелось бы нормальный толковый мануал с бест практикс и прочими объяснением магии, как я и писал выше.
Одно мапирование пользователей требует трех четырех вдумчивых страниц текста с описанием как это работает, за счет чего это работает и чем грозит.
nfs linux что это
Рассказываем как быстро и просто поднять свой NFS сервер на Ubuntu Linux Server 14-04.1, а также разберёмся с принципами работы протокола NFS и рассмотрим теорию.
Теория
Протокол имеет клиент-серверную модель, то есть один сервер (ещё его называют “шара” от слова share), с установленным пакетом NFS, будет обеспечивать доступ к своим каталогам и файлам, а клиентские компьютеры будут подключаться к нему по сети. Закрепим прочитанное схемкой:
Обращения к серверу NFS осуществляются в виде пакетов протокола RPC (Remote Call Procedure), который позволяет выполнить различные функции или процедуры в другом сетевом пространстве, то есть на удалённом сервере.
Авторизация пользователей, которые подключаются к серверу осуществляется по IP-адресу, а также по специальным идентификаторам пользователя UID и группы GID. Это не лучший способ относительно безопасности хранимых файлов, в сравнении с классической моделью «логин/пароль». Зато, благодаря такой архитектуре и тому, что NFS использовал протокол UDP без установления сессии, он практически невосприимчив к сбоям сети и самих клиентских компьютеров. Так, при каком-либо сбое, передача файла просто приостановится, а когда связь будет налажена, то передача возобновиться без необходимости какой-либо перенастройки.
Настройка
Думаю, с теорией понятно, так что давайте переходить к практике. Как было сказано, все настройки будет проводить на Ubuntu 14.04.1
Прежде всего, на компьютер, который будет выступать в роли сервера NFS, нужно установить необходимые компоненты.
Теперь создаём собственно директорию к которой хотим раздать доступ. Стоит отметить, что можно также “расшарить” уже имеющиеся на сервере директории, но мы создадим новую:
Далее мы должны сделать так, чтобы владельцем директории /var/nfs и группе, к которой он принадлежит стали все пользователи в нашей системе. Для этого вводим на сервере команду:
Перед вами откроется конфигурационный файл с закомментированными строками, которые содержат примеры настройки для разных версий NFS.
Закомментированные – это те, в начале которых стоит символ #, и это значит, что параметры, указанные в них, не имеют силы.
Нам необходимо внести в этот файл следующие не закомментированные строки:
После этого, нужно создать таблицу соответствия расшаренных директорий и клиентов, а затем запустить NFS сервис. Для этого вводим следующие команды:
После выполненных действий расшаренные директории должны стать доступными для доступа с клиентов.
Сетевая файловая система (NFS)
Содержание
Сетевая файловая система (NFS)
NFS позволяет системе предоставлять в общее пользование каталоги и файлы другим системам через сеть. С помощью NFS пользователи и программы могут получить доступ к файлам на удаленной системе так же, как если бы они были локальными файлами.
Некоторые наиболее значимые преимущества, предоставляемые NFS:
Локальные рабочие станции используют меньше дискового пространства, поскольку совместно используемые данные можно сохранять на одной машине, а другим предоставлять к ним доступ по сети.
Нет необходимости пользователям иметь отдельные домашние каталоги на каждом компьютере в сети. Домашние каталоги могут устанавливаться на NFS сервер и предоставляться через сеть.
Такие накопители, как флоппи-дисководы, CDROM и USB флэш диски могут использоваться другими машинами в сети. Это может уменьшить количество приводов удаляемых устройств в вашей сети.
Установка
Для установки NFS срвера в терминале наберите следующую команду:
Настройка
Вы можете настроить какие каталоги будут экспортированы, добавив их в файл /etc/exports. Например:
Вы можете заменить * на один из форматов сетевого имени. Делайте объявление сетевого имени настолько точным, насколько это возможно, чтобы нежелательные системы не смогли получить доступ к ресурсам монтирования NFS.
Для запуска NFS сервера вы можете выполнить следующую команду в терминале:
Настройка клиента NFS
Используйте команду mount для подключения NFS каталога общего пользования другой машины, набрав в терминале команду, похожую на приведенную ниже:
Альтернативным вариантом подключения NFS ресурса является добавления строки в файл /etc/fstab. Строка должна содержать сетевое имя NFS сервера, экспортируемый каталог на сервере и каталог на локальной машине, куда будет монтироваться NFS ресурс.
Общий синтаксис для этой строки в файле /etc/fstab следующий:
Если вы испытываете сложности с монтированием NFS ресурса, убедитесь, что пакет nfs-common установлен на вашем клиенте. Для установки пакета nfs-common введите следующую команду в терминале:
Настройка монтажа NFS в Ubuntu 20.04
Введение
NFS (сетевая файловая система) — это распределенный протокол файловой системы, позволяющий монтировать на сервер удаленные каталоги. Это позволяет управлять пространством хранения в другом месте и выполнять запись в это пространство с нескольких клиентов. NFS обеспечивает относительно стандартизированный и производительный способ доступа к удаленным системам через сеть и хорошо работает в ситуациях, когда требуется регулярный доступ к общим ресурсам.
В этом обучающем модуле мы узнаем об установке необходимого программного обеспечения для использования NFS в Ubuntu 20.04, настроим два монтируемых тома NFS на сервере и клиенте и попробуем смонтировать и демонтировать удаленные общие тома.
Предварительные требования
Для целей этого обучающего модуля мы используем два сервера, один из которых будет делиться с другим частью своей файловой системы. Чтобы выполнить описанные ниже шаги, вам потребуется следующее:
В этом обучающем модуле мы будем называть хостом сервер, который предоставляет доступ к своим каталогам, а клиентом — сервер, который монтирует эти каталоги. Вам нужно будет знать IP-адреса обеих систем. Обязательно используйте адрес частной сети, если он известен.
Шаг 1 — Загрузка и установка компонентов
Вначале установим на каждом сервере необходимые компоненты.
На хосте
После установки пакетов переключитесь на клиентский сервер.
На клиенте
Теперь на обоих серверах установлены необходимые пакеты, и мы можем приступить к их настройке.
Шаг 2 — Создание общих каталогов на хосте
Мы откроем доступ к двум отдельным каталогам с разными параметрами конфигурации, чтобы продемонстрировать два способа настройки монтажа NFS с доступом суперпользователя.
Суперпользователи могут выполнять в своей системе абсолютно любые действия. Однако смонтированные каталоги NFS не являются частью системы, на которую они смонтированы, и поэтому по умолчанию сервер NFS отказывается выполнять операции, для которых нужны права суперпользователя. Это установленное по умолчанию ограничение означает, что суперпользователи клиента не могут записывать файлы от имени root, переназначать владение или выполнять любые другие задачи суперпользователя на смонтированном каталоге или томе NFS.
Инлгда доверенным пользователям клиентской системы бывает необходимо выполнить эти действия в смонтированной файловой системе, но им не нужен доступ суперпользователя к хосту. Вы можете настроить сервер NFS соответствующим образом, хотя это сопряжено с определенным риском и возможностью получения пользователем доступа root ко всей системе хоста.
Пример 1: Экспорт смонтированного ресурса общего назначения
В первом примере мы создадим монтируемый ресурс NFS общего назначения, используя стандартное поведение NFS, в результате чего пользователю клиента с привилегиями root будет сложно взаимодействовать с хостом, используя права суперпользователя клиента. Вы можете использовать что-то подобное для сохранения файлов, выгруженных через систему управления контентом, или для создания папок общего доступа к проектным файлам.
Для начала создайте общий каталог
Теперь мы готовы к экспорту каталога.
Пример 2: Экспорт домашнего каталога
Во втором примере мы делаем домашние каталоги пользователей, хранящиеся на хосте, доступными на клиентских серверах, что даст доверенным администраторам этих клиентских серверов необходимый доступ для удобства управления пользователями.
Шаг 3 — Настройка экспорта NFS на хосте
Теперь рассмотрим подробнее файл конфигурации NFS и настроим общий доступ к этим ресурсам.
Откройте на хосте файл /etc/exports в текстовом редакторе с привилегиями root.
Файл содержит комментарии, показывающие общую структуру каждой строки конфигурации. Синтаксис выглядит следующим образом:
Нам нужно создать строку для каждого каталога, к которым мы планируем предоставить общий доступ. Обязательно замените сокращение client_ip своим реальным IP-адресом:
Когда вы закончите внесение изменений, сохраните и закройте файл. Чтобы сделать общие ресурсы доступными для настроенных клиентов, перезапустите сервер NFS с помощью следующей команды:
Прежде чем вы сможете использовать новые общие ресурсы, вам нужно будет убедиться, что правила брандмауэра разрешают трафик этих общих ресурсов.
Шаг 4 — Настройка брандмауэра на хосте
Для начала проверим статус брандмауэра, чтобы посмотреть, включен ли он. Если он включен, проверьте текущие разрешения:
В нашей системе разрешен только трафик SSH, и поэтому нам нужно добавить правило для трафика NFS.
Используйте следующую команду, чтобы открыть порт 2049 на хосте. Обязательно укажите IP-адрес вашей клиентской системы:
Для проверки изменений введите:
На экране вы увидите, что трафик порта 2049 разрешен:
Это подтверждает, что UFW разрешает только трафик NFS на порту 2049 на нашей клиентской системе.
Шаг 5 — Создание точек монтирования и монтирование каталогов на клиентской системе
Теперь сервер хоста настроен и обслуживает общие ресурсы, и мы можем приступить к подготовке клиента.
Чтобы сделать удаленные общие ресурсы доступными на клиенте, нам нужно смонтировать каталоги хоста, к которым мы хотим предоставить доступ, в пустые каталоги клиента.
Примечание. Если точка монтажа содержит файлы или каталоги, они будут скрыты при монтировании общего ресурса NFS. Чтобы избежать потери важных файлов при монтировании ресурсов в существующий каталог, необходимо убедиться, что этот каталог пустой.
Мы создадим два каталога для монтируемых ресурсов:
Теперь у нас есть место для размещения удаленных общих ресурсов, и мы открыли брандмауэр, так что сейчас настало время монтировать общие ресурсы, используя IP-адрес сервера хоста:
Это показывает, что содержимое всего домашнего каталога использует всего 36 КБ доступного пространства.
Шаг 6 — Тестирование доступа NFS
Теперь мы протестируем доступ к общим ресурсам, для чего выполним запись в каждый из них.
Пример 1: общий ресурс общего назначения
Запишем тестовый файл в общий ресурс /var/nfs/general :
Проверим его права владения:
Пример 2: Общий домашний каталог
Чтобы сравнить разрешения общего каталога общего назначения и общего домашнего каталога, создайте файл в каталоге /nfs/home аналогичным образом:
Проверьте владельца файла:
Шаг 7 — Монтирование удаленных каталогов NFS при загрузке
Удаленные общие ресурсы NFS можно автоматически монтировать при загрузке, для чего их нужно добавить в файл /etc/fstab на клиентской системе.
Откройте этот файл в текстовом редакторе с привилегиями root:
Добавьте в конец файла строки для каждого из наших общих ресурсов. Они выглядят примерно так:
Примечание. Дополнительную информацию об указываемых опциях можно найти на странице руководства по NFS. Для доступа запустите следующую команду:
Клиент будет автоматически монтировать удаленные разделы при загрузке, хотя установка соединения и доступ к ресурсам могут требовать определенного времени.
Шаг 8 — Демонтирование удаленного общего ресурса NFS
Если вы больше не хотите использовать удаленный каталог в своей системе, вы можете демонтировать его, переместив его из структуры общих каталогов:
При этом удаляются общие удаленные ресурсы и доступным остается только локальное хранилище:
Заключение
В этом обучающем модуле мы создали хост NFS и продемонстрировали основные схемы поведения NFS, создав два разных монтируемых ресурса NFS и сделав их доступными на клиенте NFS.
Если вы хотите использовать NFS в производственной среде, обязательно учитывайте, что сам протокол не использует шифрование. Если вы организуете общий доступ через частную сеть, это не должно представлять проблему. В других случаях для защиты данных может потребоваться VPN или другой туннель с шифрованием.
Установка
Для установки и сервера, и клиента необходимы одни и те же пакеты nfs-kernel-server и nfs-common
Настройка сервера
и добавляем в конец файла строки вида (строк может быть произвольное количество):
/data –путь к папке, для которой раздается доступ;
192.168.1.1 –IP-адрес, которому раздается доступ к папке(можно указать всю сеть, тогда запись примет вид 192.168.1.0/24)
(rw,no_root_squash,sync) –набор опций, опции могут быть:
rw –чтение запись(может принимать значение ro-только чтение);
no_root_squash –по умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать;
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
Настройка NFS в Ubuntu
Сетевая файловая система NFS или Network File System, это популярный протокол сетевой файловой системы, который позволяет пользователям подключать удаленные сетевые каталоги на своей машине и передавать файлы между серверами. Вы можете использовать дисковое пространство на другой машине для своих файлов и работать с файлами, расположенными на других серверах. По сути, это альтернатива общего доступа Windows для Linux, в отличие от Samba реализована на уровне ядра и работает более стабильно.
В этой статье будет рассмотрена установка NFS в Ubuntu. Мы разберем установку всех необходимых компонентов, настройку общей папки, а также подключение сетевых папок.
Немного теории
Как уже было сказано, NFS, это сетевая файловая система. Для работы необходим сервер, на котором будет размещена общая папка и клиенты, которые могут монтировать сетевую папку как обычный диск в системе. В отличие от других протоколов NFS предоставляет прозрачный доступ к удаленным файлам. Программы будут видеть файлы как в обычной файловой системе и работать с ними как с локальными файлами, nfs возвращает только запрашиваемую часть файла, вместо файла целиком, поэтому эта файловая система будет отлично работать в системах с быстрым интернетом или в локальной сети.
Установка компонентов NFS
Перед тем как мы сможем работать с NFS, нам придется установить несколько программ. На машину, которая будет сервером нужно установить пакет nfs-kernel-server, с помощью которого будет выполнено открытие шары nfs в ubuntu 16.04. Для этого выполните:
sudo apt install nfs-kernel-server
Теперь давайте проверим правильно ли установился сервер. Сервис NFS слушает соединения как для TCP, так и для UDP на порту 2049. Посмотреть действительно ли сейчас используются эти порты можно командой:
Также важно проверить поддерживается ли NFS на уровне ядра:
cat /proc/filesystems | grep nfs
Видим, что работает, но если нет, нужно вручную загрузить модуль ядра nfs:
Давайте еще добавим NFS в автозагрузку:
sudo systemctl enable nfs-server
На клиентском компьютере вам нужно установить пакет nfs-common, чтобы иметь возможность работать с этой файловой системой. Вам необязательно устанавливать компоненты сервера, достаточно будет только этого пакета:
sudo apt install nfs-common
Вот и все, дальше настройка NFS в Ubuntu.
Настройка сервера NFS в Ubuntu
Мы можем открыть NFS доступ к любой папке, но давайте создадим для этих целей новую:
Дальше нас интересует настройка ubuntu nfs server. Все общие папки и другие настройки nfs находятся в файле /etc/exports. Синтаксис записи папки такой:
адрес_папки клиент (опции)
Например, для нашей папки, если вы хотите разрешить к ней подключаться только с определённого IP адреса, эта строка может выглядеть вот так:
sudo vi /etc/exports
Можно разрешить только нужную подсеть, например:
Для того чтобы разрешить все адреса используйте подсеть 0.0.0.0/0 или символ *.
Открытие шары NFS в Ubuntu почти завершено. Осталось разобраться с правами. Кроме ограничений IP адреса работает обычная система полномочий UNIX, поэтому если вы хотите чтобы определённый пользователь мог получить доступ к папке, то на сервере должен существовать пользователь с таким же UID и эта папка должна принадлежать ему или группе в которой он состоит.
Кроме того, обратите внимание на то, что все подключения от имени пользователя root считаются по умолчанию анонимными (nfsnobody), чтобы это отключить добавьте опцию монтирования no_root_squash, но это не безопасно, потому что любой root пользователь сможет получить доступ на запись ко всем файлам. Теперь попытаемся настроем клиента и попытаемся ее примонтировать.
Для того чтобы все пользователи могли получить доступ ко всем файлам можно создать пользователя с UID 1001 и попросить NFS все запросы считать запросами от анонимного пользователя, а анонимному пользователю присвоить UID 1001. Это делается такими опциями:
Когда все будет настроено, останется только обновить таблицу экспорта NFS:
Если на вашем сервере используется брандмауэр, то следует открыть порты 111 и 2049:
sudo ufw allow 111
sudo ufw allow 2049
Подключение NFS
Мы не будем подробно останавливаться на этом вопросе в сегодняшней статье. Это довольно большая тема, заслуживающая отдельной статьи. Но пару слов я все же скажу. Чтобы подключить сетевую папку вам не нужен никакой nfs клиент ubuntu, достаточно использовать команду mount:
sudo mount 127.0.0.1:/var/nfs/ /mnt/
Теперь вы можете попытаться создать файл в подключенной директории:
Также мы посмотрите подключенные файловые системы с помощью df:
127.0.0.1:/var/nfs 30G 6,7G 22G 24% /mnt
Чтобы отключить эту файловую систему достаточно использовать стандартный umount:
Выводы
В этой статье была рассмотрена настройка NFS в Ubuntu 20.04, как видите, все делается очень просто и прозрачно. Подключение NFS шары выполняется в несколько кликов, с помощью стандартных команд, а открытие шары NFS ненамного сложнее подключения. Если у вас остались вопросы, пишите в комментариях!