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

Содержание

Как настроить NFS (Network File System) на RHEL/CentOS/Fedora и Debian/Ubuntu

Настройка NFS сервера в Ubuntu
NFS (Network File System) в основном разработана для совместного использования файлов и папок между Linux/Unix систем от компании Sun Microsystems в 1980 году.

Она позволяет монтировать локальные файловые системы по сети и удаленных хостов, для взаимодействия с ними так, как будто они установлены локально на той же системе.

С помощью NFS, мы можем настроить общий доступ к файлам между Unix в Linux системе и Linux для системы Unix.

Преимущества NFS

  1. NFS создает локальный доступ к удаленным файлам.
  2. Он использует стандартную архитектуру клиент/сервер для обмена файлами между всеми машинами на базе * NIX.

  3. С помощью NFS не нужно, чтобы обе машины работали на той же ОС.
  4. С помощью NFS мы можем настроить решение централизованного хранения.

  5. Пользователи получают свои данные независимо от их физического расположения.
  6. Автоматическое обновление для новых файлов.

  7. Более новая версия NFS поддерживает монтирование acl, pseudo под root.
  8. Может быть защищен брандмауэрами и Kerberos.

Услуги NFS

Cервис System V-launched. Серверный пакет NFS включает в себя три средства, входящие в состав пакетов portmap и nfs-Utils.

  1. portmap: отображает вызовы, сделанные из других машин к правильной службе RPC (не требуется с NFSv4 ).
  2. nfs: преобразует удаленные запросы общего доступа к файлам в запросы на локальной файловой системе.
  3. rpc.mountd: эта служба отвечает за монтирование и размонтирования файловых систем.

Важные файлы конфигурации для NFS

  1. /etc/exports: его основной конфигурационный файл NFS, все экспортируемые файлы и каталоги, которые определены в этом файле и на конечном сервере NFS.

  2. /etc/fstab: Для того, чтобы смонтировать каталог NFS на вашей системе без перезагрузок, нам нужно сделать запись в /etc/fstab.

  3. /etc/sysconfig/nfs: Конфигурационный файл NFS для управления, на котором порт RPC и другие услуги прослушивания.

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

Для настройки монтирования NFS, мы будем нуждаться по крайней мере, в двух машинах Linux/Unix. Вот в этом учебнике, мы будем использовать два сервера.

  1. Сервер NFS: nfsserver.example.ru с IP – 192.168.0.55
  2. Клиент NFS: nfsclient.example.ru с IP – 192.168.0.60

Установка сервера NFS и клиента NFS

Нам нужно установить пакеты NFS на нашем сервере NFS, а также на машине клиента NFS. Мы можем установить его с помощью “yum” (Red Hat Linux) и установочный пакет “apt-get” (Debian и Ubuntu).

[root@nfsserver ~]# yum install nfs-utils nfs-utils-lib[root@nfsserver ~]# yum install portmap (not required with NFSv4)[root@nfsserver ~]# apt-get install nfs-utils nfs-utils-lib

Теперь запустите службы на обеих машинах.

[root@nfsserver ~]# /etc/init.d/portmap start[root@nfsserver ~]# /etc/init.d/nfs start[root@nfsserver ~]# chkconfig –level 35 portmap on[root@nfsserver ~]# chkconfig –level 35 nfs on

После установки пакетов и запуск сервисов на обеих машинах, нам нужно настроить обе машины для совместного использования файлов.

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

Сначала настроим сервер NFS.

Настройка каталога экспорта

Для обмена каталог с NFS, нам нужно сделать запись в  файл конфигурации “/etc/exports”. Здесь мы будем создавать новый каталог с именем “nfsshare” в разделе “/” для обмена с сервером клиента, вы также можете поделиться уже существующим каталогом с NFS.

[root@nfsserver ~]# mkdir /nfsshare

Теперь нам нужно сделать запись в “/etc/exports” и перезапустить службы, чтобы сделать наш каталог разделяемыми в сети.

[root@nfsserver ~]# vi /etc/exports /nfsshare 192.168.0.60(rw,sync,no_root_squash)В приведенном выше примере, есть каталог, в разделе / под названием “nfsshare“, в настоящее время совместно с клиентом IP “192.168.0.

60” с привилегиями чтения и записи (RW), вы можете также использовать имя хоста клиента вместо IP в приведенном выше примере.

Параметры NFS

Некоторые другие варианты мы можем использовать в файлы “/etc/exports” для совместного использования файлов выглядит следующим образом.

  1. ro: С помощью этой опции мы можем предоставить доступ только для чтения к общим файлам, то есть клиент будет только в состоянии прочитать.
  2. rw: Эта опция позволяет клиент – серверу доступ для обоих для чтения и записи в пределах общего каталога.
  3. sync: Синхронизация подтверждает запросы к общему каталогу только после того, как изменения были совершены.
  4. no_subtree_check: Эта опция предотвращает проверку поддерева. Когда общий каталог является подкаталогом большей файловой системы, NFS выполняет сканирование каждой директории над ним, чтобы проверить свои разрешения и детали. Отключение проверки поддерева может повысить надежность NFS, но снижают безопасность.
  5. no_root_squash: Эта фраза позволяет root, подключиться к определенной папке.

Для большего количества вариантов с “/etc/exports“, рекомендуется прочитать страницы руководства для экспорта.

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

После настройки NFS-сервера, нам необходимо смонтировать этот общий каталог или раздел на клиентском сервере.

Монтирование общих каталогов на клиенте NFS

Теперь на клиенте NFS, нам нужно смонтировать этот каталог для доступа к нему на местном уровне. Для этого, во-первых, мы должны выяснить, какие ресурсы доступны на удаленном сервере или сервере NFS.

[root@nfsclient ~]# showmount -e 192.168.0.55 Export list for 192.168.0.55:/nfsshare 192.168.0.60

Командой показывает, что каталог с именем “nfsshare” доступна на “192.168.0.55” , чтобы поделиться с вашим сервером.

Монтирование доступного каталога в NFS

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

[root@nfsclient ~]# mount -t nfs 192.168.0.55:/nfsshare /mnt/nfsshare

Приведенная выше команда установит общий каталог в “/mnt/nfsshare” на сервере клиента. Вы можете проверить его следующей командой.

[root@nfsclient ~]# mount | grep nfs sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)nfsd on /proc/fs/nfsd type nfsd (rw)192.168.0.55:/nfsshare on /mnt type nfs (rw,addr=192.168.0.55)

Выше команда mount монтирует на NFS совместно используемый каталог на NFS клиента временно, чтобы смонтировать каталог NFS постоянно на вашей системе вне зависимости от перезагрузок, нам нужно сделать запись в “/etc/fstab“.

[root@nfsclient ~]# vi /etc/fstab

Добавьте следующую новую строку, как показано ниже.

192.168.0.55:/nfsshare /mnt nfs defauls 0 0

Тестирование режима работы установки NFS

Мы можем протестировать нашу установку сервера NFS путем создания тестового файла на стороне сервера и проверить его наличие на NFS клиента стороне или наоборот.

На стороне сервера nfsserver

Мы создали новый текстовый файл с именем “nfstest.txt” в этом общем каталоге.

[root@nfsserver ~]# cat > /nfsshare/nfstest.txt This is a test file to test the working of NFS server setup.

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

Перейдите в общий каталог на сервере клиента и вы обнаружите общий файл без какого-либо ручного обновления или службы перезагрузки.

[root@nfsclient]# ll /mnt/nfssharetotal 4-rw-r–r– 1 root root 61 Sep 21 21:44 nfstest.txtroot@nfsclient ~]# cat /mnt/nfsshare/nfstest.txtThis is a test file to test the working of NFS server setup.

Удаление монтирования NFS

Если вы хотите размонтировать этот общий каталог с сервера после того, как вы закончите с обменом файлами, вы можете просто размонтировать этот конкретный каталог с помощью команды “umount“. Смотрите этот пример ниже.

root@nfsclient ~]# umount /mnt/nfsshare

Вы можете видеть, что монтирование было удалено в файловой системе.

[root@nfsclient ~]# df -h -F nfs

Вы увидите, что эти общие каталоги не доступны больше.

Важные команды для NFS

Некоторые более важные команды для NFS .

  1. showmount -e : Показывает доступные расшаренные объекты на локальном компьютере
  2. showmount -e: Список доступных расшаренных объектов на удаленном сервере
  3. showmount -d : Список всех поддиректорий
  4. exportfs -v : Отображает список расшаренных файлов и опций на сервере
  5. exportfs -a : Экспорт всех доступных объектов, перечисленных в /etc/exports, или имя
  6. exportfs -u : Реэкспорт всех доступных объектов, перечисленные в /etc/exports, или имя
  7. exportfs -r : Обновить список сервера после изменения /etc/exports

Это все про монтирование NFS на данный момент, если интересно, можете прочитать гид о том как настроить сервер NFS на Ubuntu 16. Оставляйте свои комментарии и предложения ниже в поле для комментариев.

, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник: https://andreyex.ru/operacionnaya-sistema-linux/kak-nastroit-nfs-network-file-system-na-rhel-centos-fedora-i-debian-ubuntu/

Настройка nfs в Ubuntu 16.04

Настройка NFS сервера в Ubuntu
Сетевая файловая система NFS или Network File System, это популярный протокол сетевой файловой системы, который позволяет пользователям подключать удаленные сетевые каталоги на своей машине и передавать файлы между серверами.

Вы можете использовать дисковое пространство на другой машине для своих файлов и работать с файлами, расположенными на других серверах.

По сути, это альтернатива общего доступа Windows для Linux, в отличие от Samba реализована на уровне ядра и работает более стабильно.

В этой статье будет рассмотрена установка nfs в Ubuntu 16.04. Мы разберем установку всех необходимых компонентов, настройку общей папки, а также подключение сетевых папок.

Немного теории

Как уже было сказано, NFS, это сетевая файловая система. Для работы необходим сервер, на котором будет размещена общая папка и клиенты, которые могут монтировать сетевую папку как обычный диск в системе.

В отличие от других протоколов NFS предоставляет прозрачный доступ к удаленным файлам.

Программы будут видеть файлы как в обычной файловой системе и работать с ними как с локальными файлами, nfs возвращает только запрашиваемую часть файла, вместо файла целиком, поэтому эта файловая система будет отлично работать в системах с быстрым интернетом или в локальной сети.

Установка компонентов NFS

Перед тем как мы сможем работать с NFS, нам придется установить несколько программ. На машину, которая будет сервером нужно установить пакет nfs-kernel-server, с помощью которого будет выполнено открытие шары nfs в ubuntu 16.04. Для этого выполните:

sudo apt install nfs-kernel-server

Теперь давайте проверим правильно ли установился сервер. Сервис NFS слушает соединения как для TCP, так и для UDP на порту 2049. Посмотреть действительно ли сейчас используются эти порты можно командой:

rpcinfo -p | grep nfs

Также важно проверить поддерживается ли NFS на уровне ядра:

cat /proc/filesystems | grep nfs

Видим, что работает, но если нет, нужно вручную загрузить модуль ядра nfs:

modprobe nfs

Давайте еще добавим nfs в автозагрузку:

sudo systemctl enable nfs

На клиентском компьютере вам нужно установить пакет nfs-common, чтобы иметь возможность работать с этой файловой системой. Вам необязательно устанавливать компоненты сервера, достаточно будет только этого пакета:

sudo apt install nfs-common

Вот и все, дальше настройка nfs ubuntu.

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

Мы можем открыть NFS доступ к любой папке, но давайте создадим для этих целей новую:

sudo mkdir /var/nfs

Дальше нас интересует настройка ubuntu nfs server. Все общие папки и другие настройки nfs находятся в файле /etc/exports. Синтаксис записи папки такой:

адрес_папки клиент (опции)

Адрес папки – это та папка, которую нужно сделать доступной по сети. Клиент – ip адрес или адрес сети, из которой могут получить доступ к этой папке. А вот с опциями немного сложнее. Рассмотрим некоторые из них:

  • rw – разрешить чтение и запись в этой папке
  • ro – разрешить только чтение
  • sync – отвечать на следующие запросы только тогда, когда данные будут сохранены на диск (по умолчанию)
  • async – не блокировать подключения пока данные записываются на диск
  • secure – использовать для соединения только порты ниже 1024
  • insecure – использовать любые порты
  • nohide – не скрывать поддиректории при, открытии доступа к нескольким директориям
  • root_squash – подменять запросы от root на анонимные
  • all_squash – превращать все запросы в анонимные
  • anonuid и anongid – указывает uid и gid для анонимного пользователя.

Например, для нашей папки эта строка может выглядеть вот так:

/var/nfs 127.0.0.1(rw,sync,no_subtree_check)

Когда все было настроено, осталось обновить таблицу экспорта NFS:

sudo exportfs -a

Вот и все, открытие шары nfs в ubuntu 16.04 завершено. Теперь попытаемся настроем клиента и попытаемся ее примонтировать.

Подключение NFS

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

Чтобы подключить сетевую папку вам не нужен никакой nfs клиент ubuntu, достаточно использовать команду mount:

 sudo mount 127.0.0.1:/var/nfs/ /mnt/

Теперь вы можете попытаться создать файл в подключенной директории:

touch /mnt/test

Также мы посмотрите подключенные файловые системы с помощью df:

df -h

127.0.0.1:/var/nfs 30G 6,7G 22G 24% /mnt

Чтобы отключить эту файловую систему достаточно использовать стандартный umount:

sudo umount /mnt/

Выводы

Источник: https://losst.ru/nastrojka-nfs-v-ubuntu-16-04

Настройка и монтирование NFS

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

Если у Вас дома(или на работе) не один компьютер, то естественным желанием будет объединить их в сеть для использования совместных ресурсов на компьютерах.

Ubuntu позволяет сделать это разными способами — SMB (Server Message Block) с использованием Samba (об этом способе напишу в следующий раз) и с использованием NFS (network file system).

Если у вас в сети компьютеры работают под управлением разных операционных систем (Linux, Windows), то целесообразнее использовать Samba. Но если все компьютеры работают под Ubuntu, то имеет смысл поставить NFS

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

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

Конечно, в сети достаточно много информации по nfs, но приходится перелопачивать множество сайтов в поисках «подводных камней», поэтому я решил собрать свой опыт в данной статье.

Устанавливаем необходимые пакеты клиента (nfs-common) и сервера (nfs-kernel-server). В терминале выполняем следующую команду:

sudo apt-get install nfs-kernel-server nfs-common portmap

Настраиваем NFS-сервер.

Для примера мы предоставим общий доступ к папкам /common, /common1 и /common2, находящимся в домашней папке /user пользователя user, под чьим именем мы вошли в систему на компьютере с адресом 192.168.0.1.

Условия использования папок (для примера):

  • /common — доступ на запись/чтение для всех компьютеров в локальной сети (из любой подсети);
  • /common1 — доступ на чтение компьютеру с адресом 192.168.0.100, остальным доступ запрещен;
  • /common2 — доступ на запись/чтение всем компьютерам с диапазона адресов 192.168.0.1 — 192.168.0.255 кроме компьютера с адресом 192.168.0.200.

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

sudo gedit /etc/exports

В появившемся редакторе записываем:

/home/user/common *(rw,async)

/home/user/common1 192.168.0.100(ro,async)

/home/user/common2 192.168.0.1/24(rw,sync) 192.168.0.200(noaccess)

Сохраняем файл.

Обратите внимание, что:

  • записывается полный путь к папке для совместного использования от самого корня;
  • пробелов между адресом компьютера и опциями монтирования нет!

Примечание на счет пробелов:

/home/user/common1 192.168.0.100(rw,async)

В этом случае доступ к папке /home/user/common1 получит компьютер с адресом 192.168.0.100 с правами на чтение/запись, остальные доступ не получат.

/home/user/common1 192.168.0.100 (rw,async)

В этом случае доступ к папке /home/user/common1 получит компьютер с адресом 192.168.0.100 с правами на чтение, остальные компьютеры получат доступ с правами на чтение/запись!

Доступные опции:

    ro (rw) – Разрешает только запросы на чтение (чтение/ запись). subtree_check (no_subtree_check) – Если экспортируется подкаталог фаловой системы, но не вся файловая система, сервер проверяет, находится ли запрошенный файл в экспортированном подкаталоге. Отключение проверки уменьшает безопасность, но увеличивает скорость передачи данных. sync (async) – указывает, что сервер должен отвечать на запросы только после записи на диск изменений, выполненных этими запросами. Опция async указывает серверу не ждать записи информации на диск, что повышает производительность, но понижает надежность, т.к. в случае обрыва соединения или отказа оборудования возможна потеря информации. wdelay (no_wdelay) – указывает серверу задерживать выполнение запросов на запись, если ожидается последующий запрос на запись, записывая данные более большими блоками. Это повышает производительность при отправке больших очередей команд на запись. no_wdelay указывает не откладывать выполнение команды на запись, что может быть полезно, если сервер получает большое количество команд не связанных друг с другом.
    noaccess— запрещает доступ к указанной директории. Может быть полезной, если перед этим вы задали доступ всем пользователям сети к определенной директории, и теперь хотите ограничить доступ в поддиректории лишь некоторым пользователям.

Перезапускаем nfs-kernel-server:

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

в дальнейшем при изменении конфигурационного файла будет достаточно перечитать конфигурационный файл:

sudo exportfs -a

Настройка сервера закончена.

Настройка КЛИЕНТА

Установка и настройка NFS-клиента.

Установка (если мы не ставили сервер, в противном случае клиент уже установлен):

sudo apt-get install portmap nfs-common

Монтирование:

Для начала создадим папки, в которые будут монтироваться сетевые ресурсы. Пусть они в нашем примере монтируются в домашнюю папку пользователя user2, в которой мы создадим папки общих ресурсов: /net/disk1, /net/disk2, /net/disk3. Для этого в терминале выполним команды:

mkdir net cd /net mkdir disk1 mkdir disk2

mkdir disk3

То же самое можно сделать просто в Nautilus.

Монтирование сетевых ресурсов возможно сделать как автоматически, так и вручную.

Для ручного монтирования в терминале выполняем команды:

sudo mount -t nfs -o rw,hard,intr 192.168.0.1:/home/user/common ~/net/disk1 sudo mount -t nfs -o ro,soft,intr 192.168.0.1:/home/user/common1 ~/net/disk2

sudo mount -t nfs -o rw,soft,intr 192.168.0.1:/home/user/common2 ~/net/disk3

Примечание:Опция hard жестко привязывает папку на клиенте к серверу и если сервер отвалится, то может зависнуть и ваш компьютер. Опция soft, как понятно из её названия, не такая категоричная. Полный спискок опций Вы можете посмотреть по команде man nfs, набранной в терминале.

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

Для автоматического монтирования редактируем файл /etc/fstab

sudo gedit /etc/fstab

В конец открытого файла добавляем наши данные

192.168.0.1:/home/user/common /home/user2/net/disk1 nfs defaults 0 0 192.168.0.1:/home/user/common1 /home/user2/net/disk2 nfs defaults 0 0

192.168.0.1:/home/user/common2 /home/user2/net/disk3 nfs defaults 0 0

Сохраняем файл.

Выполним монтирование дисков:

Теперь наши сетевые диски видны в проводнике как простые папки.

Сетевая файловая система NFS или Network File System, это популярный протокол сетевой файловой системы, который позволяет пользователям подключать удаленные сетевые каталоги на своей машине и передавать файлы между серверами.

Вы можете использовать дисковое пространство на другой машине для своих файлов и работать с файлами, расположенными на других серверах.

По сути, это альтернатива общего доступа Windows для Linux, в отличие от Samba реализована на уровне ядра и работает более стабильно.

В этой статье будет рассмотрена установка nfs в Ubuntu 16.04. Мы разберем установку всех необходимых компонентов, настройку общей папки, а также подключение сетевых папок.

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

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

С протоколами передачи данных знаком не каждый. А вот соединить свои компьютеры в одну сеть или использовать сервер для хранения файлов хотели бы многие. Один из способов это осуществить: NFS. Как настроить NFS сервер в Ubuntu — читайте далее.

Правильно настроив NFS можно объединить в одну сеть компьютеры на разных ОС.

Что такое NFS?

Network File System — протокол сетевого доступа к файлам. Как водится, состоит из двух частей. Одна — клиентская, которая расположена на компьютере, с которого просматривают удалённые данные.

Другая — серверная — расположена на компьютере, где эти данные хранятся. Довольно удобно использовать дополнительное дисковое пространство, особенно в локальной сети.

А если речь идёт о каких-то корпоративных ПК, то это просто необходимо.

Чем отличается?

Сегодня существует большое число протоколов и самого разного программного обеспечения, которое выполняет те же самые функции. Чем выделяется NFS?

  • Возможность соединения в одну сеть компьютеров на разных операционных системах. Часто ОС Windows удобно соединить по NFS с Unix-системой, например, Ubuntu. Для этих же целей существует и применяется Samba, но NFS легче, проще и быстрее этой программы, поскольку реализован на уровне ядра. Поэтому настроить доступ через него, как правило, будет проще.
  • NFS предоставляет прозрачный доступ к файлам. Это означает, что все удалённые файлы воспроизводятся точно так же, как и локальные. Программы не надо апгрейдить, чтобы воспроизвести любой файл, находящийся на сервере.
  • NFS отправляет только запрашиваемую часть файла, а не весь файл.

Устанавливать Network File System для полноценной работы необходимо, как минимум, на два компьютера: сервер и клиент. Естественно, новичку больше всего попотеть придётся над серверной частью, поскольку именно там необходимо «расшаривать» (открывать доступ) папки. Однако всё это выполняется довольно легко.

Как и большинство протоколов передачи данных, NFS совсем не молод. Разработан он был в 1984 году и предназначался для UNIX-систем.

Это и сейчас главная роль NFS, однако многие обнаружили, что при помощи его очень удобно соединять Windows-компьютеры с линуксовыми.

Кроме того, NFS отлично подходит для воспроизведения мультимедийного контента по локальной домашней сети. Samba в этой роли часто подвисает и подтормаживает.

Установка серверной части NFS

Серверную часть протокола мы будем ставить на Ubuntu 16.04. Естественно, если у вас стоит редакция Server, то процесс никоим образом не отличается. Просто в традиционной версии Убунту некоторые действия можно выполнить при помощи графического интерфейса.

Устанавливаем программу. Для этого можно воспользоваться центром загрузки приложений, а можно просто ввести команду:

sudo apt install nfs-kernel-server

После этого нелишним будет проверить корректность установки. Делать это не обязательно, но мы всё же проверим. Вводим команду:

rpcinfo -p | grep nfs

Порт везде должен быть 2049.

Теперь проверяем, поддерживает ли ядро NFS. Для этого вводим:

cat /proc/filesystems | grep nfs

Полученное значение должно выглядеть так: nodev nfsd

Это означает, что всё функционирует правильно. Если нет, то вводим команду:

modprobe nfs

При помощи её мы ставим модуль ядра самостоятельно.

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

sudo systemctl enable nfs

Итак, серверную часть мы установили, осталось правильно её настроить и перейти к клиентской.

Настройка

Настройка NFS в Ubuntu заключает в себе расшаривание определённых папок.

Помимо просто открытия доступа необходимо также указать параметры, которые определяют возможности пользователя по отношению к этой папке.

  • rw — reading and writing этот параметр разрешает чтение и запись файлов в папке.
  • ro — reading only — разрешает только чтение папки.
  • sync (по умолчанию) — параметр обеспечивает надёжность передачи. Если включен он, то нельзя будет одновременно передавать несколько файлов или на разные компьютеры. Эта настройка не даст отвечать на другие запросы. Предотвращает утерю данных, но передача может идти медленнее.
  • async — обратный предыдущему параметр. Передача идёт быстрее, но возникает риск потери информации.
  • secure — опция разрешает использовать только порты, номер которых ниже 1024. Включена по умолчанию.
  • insecure — разрешает использование любых портов.
  • nohide — если вы монтируете несколько директорий, среди которых есть вложенные, то вложенные в отличие от родительской будут отображаться как пустые. Исправить это поможет параметр
  • anonuid — указывает uid для анонимов. Это специальный идентификатор пользователя.
  • anongid — указывает gid для анонимов. GID (Group ID) — ещё один идентификатор пользователя.
  • no_subtree_check — функция отключает контроль поддерева. Дело в том, что без неё NFS дополнительно проверяет, что пользователи обращаются только в нужные разделы каталога. Это замедляет работу. Параметр позволяет ускорить её, но понижает безопасность.

Их мы и будем использовать в зависимости от того, что нужно в конкретной ситуации.

Создадим новую папку. Можно использовать и новую. Наша папка будет /var/network.

Теперь необходимо добавить эту папку в файл /etc/exports. Там хранятся все файлы и папки с открытым сетевым доступом. Запись должна выглядеть так:

/var/network168.1.1(rw,async,no_subtree_check)

192.168.1.1 — это IP, по которому мы осуществляем передачу. Указывать его обязательно.

Обновляем таблицу экспорта:

sudo exportfs –a

Теперь попробуем получить доступ к папке со стороны клиента.

Ubuntu

На Убунту подключить настроенный сервер не составит труда. Делается это всего за пару команд.

Устанавливаем специальный клиентский пакет:

sudo apt install nfs-common

Дальше просто пользуемся командой:

sudo mount 192.168.1.1:/var/network/ /mnt/

Сетевая папка подключена. С помощью df можно проверить все подключенные сетевые папки:

df –h

Также можно проверить свой уровень доступа специальной командой:

touch /mnt/test

Отключаем файловую систему следующим образом:

sudo umount /mnt/

Почти везде используется команда mount. Она отвечает за процесс монтирования, то есть, подготовки пространства на жёстком диске для использования его операционной системой. Звучит сложно, но если упростить, получится, что мы просто перекидываем сетевые файлы на наш компьютер в новоявленную папку. Здесь она называется /mnt/.

Windows

С Виндой, как правило, всё складывается куда сложнее. NFS клиент без проблем можно запустить на всех серверных Windows. Из стандартных он присутствует на:

  • Windows 7 Ultimate/Enterprise
  • Windows 8/8.1 Enterprise
  • Windows 10 Enterprise

Больше нигде не найти. Если у вас одна из этих версий, делаем следующее:

  1. Открываем меню «Программы и компоненты».
  2. Жмём «Добавление компонентов».
  3. Находим там NFS и ставим только «Клиент для NFS», другой компонент нам не нужен.

После подключения монтируется всё такой же командой:

mount 192.168.1.1:/var/network/ /mnt/

Размонтировать можно следующим образом:

umount Z: -F

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

А что делать, если клиента для NFS на компьютере нет? Можно попробовать загрузить софт через сайт Microsoft или со сторонних ресурсов. Возможно, что здесь понадобятся другие команды или действия.

Теперь у вас появились базовые представления о том, как можно использовать NFC и провести простейшую настройку. Этих знаний хватит, чтобы наладить доступ с одного компьютера к другому. Причём в роли клиента может выступить и ПК на Windows.

Источник: https://nastroyvse.ru/opersys/lix/kak-nastroit-nfs-server-v-ubuntu.html

Настройка NFS сервера под Ubuntu 12.04

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

Навожу инструкцию по установке и настройке NFS (Network File System). NFS – это сетевая файловая система, с помощью которой можно обращаться к файлам и каталогам удалённого компьютера (сервера), как будто эти файлы и каталоги были локальными.

Главным преимуществом такой системы является то, что отдельно взятые рабочие станции могут использовать меньше собственного дискового пространства, так как совместно используемые данные хранятся на отдельной машине (хранилище данных) и доступны для других машин в сети.

NFS – это клиент-серверное приложение, где роль хранилища возлагается на сервер. Каждый участник сети – это NFS-клиент, который монтирует сетевой диск сервера у себя в файловой системе.В роли сервера возьмем Ubuntu 12.04.

В качестве клиентов будем использовать и тестировать Centos и Winows 7.

Clients: 192.168.2.72 (Centos), 192.168.2.180 (Windows)

Для начала нужно настроить сервер. Так как мы будем использовать Ubuntu в роли сервера, нужно установить соответствующий пакет

root@ubuntu:~# apt-get install nfs-kernel-server

После установки нужного пакеты у нас создались два файла конфигураций. Из лога установки:

… Creating config file /etc/idmapd.conf with new version Creating config file /etc/default/nfs-common with new version …

В первом файле описан user (созданный при установке пакета) и group , для участия в mapping-e (идентификации пользователей).

root@ubuntu:~# cat /etc/idmapd.conf [General] Verbosity = 0 Pipefs-Directory = /run/rpc_pipefs # set your own domain here, if id differs from FQDN minus hostname # Domain = localdomain [Mapping] Nobody-User = nobody Nobody-Group = nogroup Как мы знаем, в Linux каждый файл принадлежит конкретному пользователю, у которого есть свой (UID,GID), но у Windows системах схема немного другая.

И в связи с этим был придуман механизм mapping, который делает трансляцию разных пользователей с различных ОС в понятный для файловой системы Linux вид.

Второй файл нужен для настройки идентификации Kerberos и настройке нестандартного порта, на котором будет слушаться демон. Он пока нам не нужен. Об настройке Kerberos речь пойдет в следующей статье.

root@ubuntu:~# cat /etc/default/nfs-common # If you do not set values for the NEED_ options, they will be attempted # autodetected; this should be sufficient for most people. Valid alternatives # for the NEED_ options are “yes” and “no”. # Do you want to start the statd daemon? It is not needed for NFSv4. NEED_STATD= # Options for rpc.statd. # Should rpc.statd listen on a specific port? This is especially useful # when you have a port-based firewall. To use a fixed port, set this # this variable to a statd argument : “–port 4000 –outgoing-port 4001”. # For more information, see rpc.statd(8) or http://wiki.debian.org/SecuringNFS STATDOPTS= # Do you want to start the gssd daemon? It is required for Kerberos mounts. NEED_GSSD=

Теперь продолжим настройку.
Все директории для шаринга нужно прописывать в файле /etc/exports. Для начала создадим 2 папки в домашней директории и закинем в них файлы. Дерево каталогов и файлов для экспорта:

root@ubuntu:~# tree /home/alex/ /home/alex/ ├── nfs_dir1 │ ├── file1_dir1 │ ├── file2_dir1 │ └── file3_dir1 ├── nfs_dir2 ├── file1_dir2 ├── file2_dir2 └── file3_dir2

Теперь нужно присвоит юзера и группу для этих каталогов (берем с файла /etc/idmapd.conf ).

root@ubuntu:~# chown –R nobody:nogroup nfs_dir1/ root@ubuntu:~# chown –R nobody:nogroup nfs_dir2/

Для начала сделаем экспорт директории nfs_dir1 для конкретного IP. Редактируем файл /etc/exprots.

root@ubuntu:~# vim /etc/exports # Для конкретного хоста (Windows) /home/alex/nfs_dir1 192.168.2.180(rw,sync,all_squash,no_subtree_check,insecure) # Для любого хоста подсети /home/alex/nfs_dir2 192.168.2.0/24(rw,no_root_squash,sync,no_subtree_check)

Здесь наведен минимальный набор опций для корректной работы хранилища с ОС Windows.

  • /home/alex/nfs_dir1 – путь к папке, для которой раздается доступ;
  • 192.168.2.180 – IP-адрес, которому раздается доступ к папке(можно указать всю сеть, тогда запись примет вид 192.168.2.0/24)
  • (rw,sync,all_squash,no_subtree_check) – набор опций.

Популярные опции:

  • rw –чтение/запись(может принимать значение ro-только чтение);
  • no_root_squash – по умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать;
  • sync – синхронный режим доступа(может принимать обратное значение — async);
  • noaccess – запрещает доступ к указанной директории. Может быть полезной, если перед этим вы задали доступ всем пользователям сети к определенной директории, и теперь хотите ограничить доступ в поддиректории лишь некоторым пользователям.
  • all_squash– подразумевает, что все подключения будут выполнятся от анонимного пользователя (нужно для Windows клиента)
  • anonuid=1000 – привязывает анонимного пользователя к «местному» пользователю;
  • anongid=1000 – привязывает анонимного пользователя к группе «местного» пользователя.
  • no_subtree_check(subtree_check) –если экспортируется подкаталог файловой системы, но не вся файловая система, сервер проверяет, находится ли запрошенный файл в экспортированном подкаталоге. Отключение проверки уменьшает безопасность, но увеличивает скорость передачи данных.
  • Обычно, Linux (и другие Unix-подобные операционные системы) резервируют TCP и UDP порты от 1-1023 (так называемые безопасные порты) для использования процессами пользователя root. Чтобы удостовериться, что именно root инициировал удаленное подключение NFS, сервер NFS обычно требует, чтобы удаленные клиенты использовали безопасные порты. Это соглашение, однако, не соблюдается некоторыми операционными системами (например Windows). В таких случаях опция insecure позволяет клиенту NFS использовать любой порт TCP/UDP. Обычно она требуется при обслуживании клиентов Windows.

Все доступные опции и синтаксис записи хостов, групп хостов и т.п. можно почитать в мануале

root@ubuntu:~# man exports

Далее нужно применить настройки

root@ubuntu:~# exportfs –a

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

root@ubuntu:~# exportfs -v /home/alex/nfs_dir1 192.168.2.180(rw,wdelay,all_squash,no_subtree_check,insecure) /home/alex/nfs_dir2 192.168.2.0/24(rw,wdelay,no_root_squash,no_subtree_check)

Сервер настроен.

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

Если не было сообщений об ошибке. Можно приступить к монтирование на клиентской стороне.
Для начала, нужно добавить сервис (службу-клиента) NFS.

Для этого переходив в Пуск —> Панель управления —> Программы и компоненты и нажимаем на пункт меню слева Включение или отключение компонентов Windows.

В появившимся окне выбираем Клиент для NFS и жмем ОК(рис. 1).

Рисунок 1

Далее нужно смонтировать диск. Для этого можно использовать командную строку или же просто щелкнуть правой кнопкой мыши на Мой компьютер и выбрать Подключение сетевого диска. И ввести строку \\192.168.2.213\home\alexfs_dir1. Это IP сервера и путь к папке (рис. 2).

Рисунок 2

Если все ок, мы увидим диск (рис. 3).

Рисунок 3

То же можно проделать, используя командную строку (рис. 4).

Рисунок 4

Возможные ошибки:

Вы не сможете подключить сетевой NFS диск к Windows OS (рис. 5), если1. Не установлен клиент NFS2. Включен (не настроен) фаэрвол3. Нет сетевого доступа к серверу4. Неверно введены параметры монтирования5. Не настроен (не применены настройки) экспорт на сервере.

6. Добавить опцию insecure в настройках экспорта

Рисунок 5 – Ошибка подключения сетевого NFS диска

Вы не сможете добавить файл в смонтированную файловую систему (рис. 6) , если:1. На сервере не выставлены права на папку (nobody:nogroup)2. Не выставлена опция all_squash в настройках экспорта

3. Не выставлена опция rw в настройках экспорта

Рисунок 6 – Ошибка при добавлении файла на NFS диска

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

Настройка линукс систем довольно проста и безболезненна. Нужно просто установить нужные пакеты и смонтировать диск. Для Centos нужны следующие пакеты

[root@centos ~]# yum install nfs-utils nfs-utils-lib

Далее создаем папку и монтируем NFS раздела

[root@centos ~]# mkdir -p /mnt/nfs [root@centos ~]# mount 192.168.2.213:/home/alex/nfs_dir1 /mnt/nfs [root@centos ~]# mount /dev/mapper/vg_slave-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext=”system_u:object_r:tmpfs_t:s0″) /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) 192.168.2.213:/home/alex/nfs_dir1 on /mnt/nfs type nfs (rw,vers=4,addr=192.168.2.213,clientaddr=192.168.2.72)

В данном случае мы можем добавлять любой файл и директорию в смонтированную nfs_dir1 папку от имени любого пользователя системы (all_squash). Но если мы смонтируем вторую папку nfs_dir2, то в нее может записывать ТОЛЬКО root, так как там стоит опция no_root_squash. Проверяем.

[root@centos ~]# mkdir /mnt/dir1 [root@centos ~]# mkdir /mnt/dir2 [root@centos ~]# mount 192.168.2.213:/home/alex/nfs_dir1 /mnt/dir1 [root@centos ~]# mount 192.168.2.213:/home/alex/nfs_dir2 /mnt/dir2 или [root@centos ~]# mount -t nfs4 -o rw,hard,intr,bg 192.168.2.213:/home/alex/nfs_dir2 /mnt/dir2 [root@centos ~]# echo “Hello” > /mnt/dir1/file1 [root@centos ~]# echo “Hello” > /mnt/dir2/file1 [root@centos ~]# su alex [alex@centos root]$ echo “Hello” > /mnt/dir1/file1 [alex@centos root]$ echo “Hello” > /mnt/dir2/file1 bash: /mnt/dir2/file1: Permission denied

Возможные флаги монтирования.

ФлагОписание
rwМонтирование файловой системы для чтения/записи (она должна экспортировать­ся сервером в режиме чтения/записи)
гоМонтирование файловой системы только для чтения
bgЕсли смонтировать файловую систему не удается (сервер не отвечает), следует перевести операцию в фоновый режим и продолжить обработку других запросов на монтирование
hardЕсли сервер отключился, операции, которые пытаются получить к нему доступ, блокируются до тех пор, пока сервер не включится вновь
softЕсли сервер отключился, операции, которые пытаются получить к нему доступ, завершаются выдачей сообщения об ошибке. Этот флаг полезно устанавливать для того, чтобы предотвратить зависание процессов в случае неудачного монтирова­ния не очень важных файловых систем
intrПозволяет прерывать с клавиатуры заблокированные операции (будут выдаваться сообщения об ошибке)
nointrНе позволяет прерывать с клавиатуры заблокированные операции
retrans=nУказывает, сколько раз нужно повторить запрос, прежде чем будет выдано со­общение об ошибке (для файловых систем, смонтированных с флагом soft)
timeo=nЗадает интервал тайм-аута для запросов (в десятых долях секунды)
rsize=nЗадает размер буфера чтения равным n байт
wsize=flЗадает размер буфера записи равным n байт
sec=режимЗадает режим безопасности
vers=nЗадает версию протокола NFS
proto = протоколВыбирает транспортный протокол; им должен быть протокол tcp для версии NVS 4

Так же можно проверить с консоли, правильно ли сервер экспортировал файловую систему.

root@centos ~# showmount -e 192.168.2.213 Export list for 192.168.2.213: /home/alex/nfs_dir2 192.168.2.0/24 /home/alex/nfs_dir1 192.168.2.180

Добавляем монтирование в автозагрузку

[root@centos ~]# cat /etc/fstab … 192.168.2.213:/home/alex/nfs_dir2 /mnt/dir2 nfs4 rw,bg,intr,hard,nodev,nosuid 0 0

Чтобы проверить правильно ли добавили запись в fstab — смонтируем ФС.

root@centos ~# mount -a -t nfs4

Возможные ошибки.

root@centos ~# mount -a -t nfs4 mount.nfs4: mount point /mnt/dir2 does not exist root@centos ~# mount -a -t nfs4 mount.nfs4: remote share not in 'host:dir' format

В первом случаи нужно создать папку. Во втором — синтаксические ошибки в fstab.
Если возникли ошибки при монтировании NFS разделов – пройдитесь по списку Возможные ошибки из предыдущего раздела.
Для монтирования NFS разделов можно также использовать autofs. О чем пойдет речь в следующей статье.

Источник: http://sysadm.pp.ua/linux/nfs-configuration.html

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.