Сетевая файловая система 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/
Выводы
В этой статье была рассмотрена настройка nfs ubuntu 16.04, как видите, все делается очень просто и прозрачно. Подключение NFS шары выполняется в несколько кликов, с помощью стандартных команд, а открытие шары nfs в ubuntu 16.04 ненамного сложнее подключения. Если у вас остались вопросы, пишите в х!
(8
Источник: https://losst.ru/nastrojka-nfs-v-ubuntu-16-04
Как настроить NFS (Network File System) на RHEL/CentOS/Fedora и Debian/Ubuntu
NFS (Network File System) в основном разработана для совместного использования файлов и папок между Linux/Unix систем от компании Sun Microsystems в 1980 году.
Она позволяет монтировать локальные файловые системы по сети и удаленных хостов, для взаимодействия с ними так, как будто они установлены локально на той же системе.
С помощью NFS, мы можем настроить общий доступ к файлам между Unix в Linux системе и Linux для системы Unix.
Преимущества NFS
- NFS создает локальный доступ к удаленным файлам.
- Он использует стандартную архитектуру клиент/сервер для обмена файлами между всеми машинами на базе * NIX.
- С помощью NFS не нужно, чтобы обе машины работали на той же ОС.
- С помощью NFS мы можем настроить решение централизованного хранения.
- Пользователи получают свои данные независимо от их физического расположения.
- Автоматическое обновление для новых файлов.
- Более новая версия NFS поддерживает монтирование acl, pseudo под root.
- Может быть защищен брандмауэрами и Kerberos.
Услуги NFS
Cервис System V-launched. Серверный пакет NFS включает в себя три средства, входящие в состав пакетов portmap и nfs-Utils.
- portmap: отображает вызовы, сделанные из других машин к правильной службе RPC (не требуется с NFSv4 ).
- nfs: преобразует удаленные запросы общего доступа к файлам в запросы на локальной файловой системе.
- rpc.mountd: эта служба отвечает за монтирование и размонтирования файловых систем.
Важные файлы конфигурации для NFS
- /etc/exports: его основной конфигурационный файл NFS, все экспортируемые файлы и каталоги, которые определены в этом файле и на конечном сервере NFS.
- /etc/fstab: Для того, чтобы смонтировать каталог NFS на вашей системе без перезагрузок, нам нужно сделать запись в /etc/fstab.
- /etc/sysconfig/nfs: Конфигурационный файл NFS для управления, на котором порт RPC и другие услуги прослушивания.
Настройка и монтирование NFS на сервере Linux
Для настройки монтирования NFS, мы будем нуждаться по крайней мере, в двух машинах Linux/Unix. Вот в этом учебнике, мы будем использовать два сервера.
- Сервер NFS: nfsserver.example.ru с IP – 192.168.0.55
- Клиент 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” для совместного использования файлов выглядит следующим образом.
- ro: С помощью этой опции мы можем предоставить доступ только для чтения к общим файлам, то есть клиент будет только в состоянии прочитать.
- rw: Эта опция позволяет клиент – серверу доступ для обоих для чтения и записи в пределах общего каталога.
- sync: Синхронизация подтверждает запросы к общему каталогу только после того, как изменения были совершены.
- no_subtree_check: Эта опция предотвращает проверку поддерева. Когда общий каталог является подкаталогом большей файловой системы, NFS выполняет сканирование каждой директории над ним, чтобы проверить свои разрешения и детали. Отключение проверки поддерева может повысить надежность NFS, но снижают безопасность.
- 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/nfsshare
total 4
-rw-r—r— 1 root root 61 Sep 21 21:44 nfstest.txt
root@nfsclient ~]# cat /mnt/nfsshare/nfstest.txt
This 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 .
- showmount -e : Показывает доступные расшаренные объекты на локальном компьютере
- showmount -e : Список доступных расшаренных объектов на удаленном сервере
- showmount -d : Список всех поддиректорий
- exportfs -v : Отображает список расшаренных файлов и опций на сервере
- exportfs -a : Экспорт всех доступных объектов, перечисленных в /etc/exports, или имя
- exportfs -u : Реэкспорт всех доступных объектов, перечисленные в /etc/exports, или имя
- exportfs -r : Обновить список сервера после изменения /etc/exports
Это все про монтирование NFS на данный момент, если интересно, можете прочитать гид о том как настроить сервер NFS на Ubuntu 16. Оставляйте свои комментарии и предложения ниже в поле для комментариев.
Источник: https://andreyex.ru/operacionnaya-sistema-linux/kak-nastroit-nfs-network-file-system-na-rhel-centos-fedora-i-debian-ubuntu
NFS | Русскоязычная документация по Ubuntu
NFS(Network File System) –это сетевая файловая система, позволяющая пользователям обращаться к файлам и каталогам, расположенным на удалённых компьютерах, как если бы эти файлы и каталоги были локальными.
Главным преимуществом такой системы является то, что отдельно взятые рабочие станции могут использовать меньше собственного дискового пространства, так как совместно используемые данные хранятся на отдельной машине и доступны для других машин в сети. NFS – это клиент-серверное приложение. Т.е.
в системе пользователя должен быть установлен NFS-клиент, а на компьютерах, которые предоставляют свое дисковое пространство – NFS-сервер.
Для установки и сервера, и клиента необходимы одни и те же пакеты nfs-kernel-server и nfs-common
sudo apt-get install nfs-kernel-server nfs-common
Все настройки сервера хранятся в файле /etc/exports . Открываем его на редактирование
sudo nano /etc/exports
и добавляем в конец файла строки вида (строк может быть произвольное количество):
/data 192.168.1.1/255.255.255.0(rw,insecure,nohide,all_squash,anonuid=1000,anongid=1000,no_subtree_check)
, где:
- /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– привязывает анонимного пользователя к группе «местного» пользователя.
Под «местным» пользователем понимается пользователь, который будет осуществлять запись в файлы (запускать приложения, скачивающие файлы и т.д.), поэтому значение 1000 может отличаться от вашего. Для определения uid пользователя воспользуйтесь командой id
Перезапускаем сервер:
sudo /etc/init.d/nfs-kernel-server restart
В последствии после внесения изменений в файл /etc/exports не обязательно перезапускать сервер, достаточно выполнить:
sudo exportfs -a
Для монтирования сетевой папки необходимо создать папку на локальном компьютере:
mkdir ~/Общедоступная
Для монтирования папки вручную необходимо выполнить в терминале команду:
sudo mount -t nfs -O uid=1000,iocharset=utf-8 192.168.1.2:/data ~/Общедоступные
Следует помнить, что, как в настройках сервера, так и в настройках клиента при монтировании, путь к общему каталогу указывается полный. Данный пример показывает, что каталог /data находится в корне файловой системы.
Для большего удобства можно добавить запись с сетевой папкой в fstab. Целесообразно создать точку монтирования сетевой папки в /media, потому что каталоги, созданные там, будут отображаться в Nautilus в левой колонке, монтировать их можно будет одним кликом.
sudo mkdir /media/Общедоступные
В файл /etc/fstab добавляем подобную запись:
192.168.1.1:/data /media/Общедоступные nfs user,rw,noauto 0 0
опция «noauto» запрещает автоматическое монтирование сетевого диска при старте системы.
При монтировании удаленных папок NFS посредством fstab, в ситуации, когда сеть с сервером будет не доступна, ноутбук невозможно выключить или отправить в спящий режим. Для использования удаленных папок NFS на ноутбуке лучше воспользоваться монтированием при помощи autofs
Данный способ монтирования позволяет автоматически монтировать папку после обращения к ней в наутилусе (к примеру, через закладки) или в терминале:
cd /nfs/server/
и автоматически отмонтировать при отсутствии активности.
Для реализации данного способа необходимо доустановить пакет autofs:
sudo apt-get install autofs
Для настройки autofs в файле /etc/auto.master необходимо добавить строку
/nfs /etc/auto.nfs —timeout=60
Здесь –timeout=60 указывает отмонтировать раздел при отсутствии активности на нём более чем 60 секунд.
Создаем в корне файловой системы папку /nfs :
sudo touch /etc/auto.nfs && sudo mkdir /nfs
В файле /etc/auto.nfs добавляем строку
server -rw,soft,intr,rsize=8192,wsize=8192 192.168.1.2:/path_to_share
где
- -rw,soft,intr,rsize=8192,wsize=8192 – параметры монтирования;
- server – папка, которая будет создаваться в каталоге /nfs при монтировании удаленных папок;
- 192.168.1.2:/path_to_share– IP-адрес и общая папка сервера.
Перезапускаем службу autofs :
sudo service autofs restart
Если сеть с сервером NFS недоступна, возможна большая задержка (по умолчанию 3 минуты) при открытии nautilus, в закладках которого находится примонтированная удаленная папка NFS. Для решения этой проблемы необходимо уменьшить время ожидания монтирования autofs, для этого в файле /etc/default/autofs необходимо раскомментировать или добавить следующие строки:
MOUNT_WAIT=10
#время ожидания ответа от mount
NEGATIVE_TIMEOUT=10
#время ожидания при неудачной попытке монтирования
После этого autofs будет пытаться примонтировать удаленную папку только 10 секунд.
После настройки автомонтирования сетевых папок NFS могут обнаружится некотрые проблемы с выключением или гибернацией системы.
Чаще всего это проявляется как прерывающаяся гибернация (компьютер начинает уходить в гибернацию, гаснет экран, после чего экран опять загорается и работа продолжается, так же в этих случаях возможны проблемы с выключением и перезагрузкой системы. При последующих попытках отправить компьютер в гибернацию на черном экране вверрху можно наблюдать строку типа:
Freezing of tasks failed after 20.01 seconds (1 tasks refusing to freeze, wq_busy=0)
Для диагностирования смотрим лог dmesg, возможный вывод:
dmesg | grep -A 2 refuse
[32467.560058] Freezing of tasks failed after 20.01 seconds (1 tasks refusing to freeze, wq_busy=0):
[32467.560115] nfs D 0000000000000000 0 2065 1 0x00800004
или
dmesg | grep -A 2 refuse
[32467.560058] Freezing of tasks failed after 20.00 seconds (1 tasks refusing to freeze):
[32467.560115] updatedb.mloc D ffff88008e907578 0 9268 9261 0x00800004
Пакет, являющийся причиной зависания указан в начале строки, следующей после сообщения об ошибке.
Причиной данной проблемы является скрипт прерывания работы NetworkManager, необходимо запретить его выполнение переименовав его:
sudo mv /usr/lib/pm-utils/sleep.d/55NetworkManager /usr/libg/pm-utils/sleep.d/old.55NetworkManager
updatedb является частью пакета mlocate— удобного пакета для быстрого поиска файлов по системе. К сожалению, версия 0.23.
1-1ubuntu21), находящаяся в репозиториях Ubuntu содержит баг, при котором возникает ситуация, когда компьютер не может выключиться или отправиться в гибернацию, когда сервер NFS выключен.
Для решения данной проблемы необходимо установить пакет версии 0.23.1-1 из репозитория debian-sid:
wget http://ftp.ru.debian.org/debian/pool/main/m/mlocate/mlocate_0.23.1-1_i386.deb
sudo dpkg -i mlocate*
Источник: https://help.ubuntu.ru/wiki/nfs
Поднимаем NFS сервер на Ubuntu
Рассказываем как быстро и просто поднять свой NFS сервер на Ubuntu Linux Server 14-04.1, а также разберёмся с принципами работы протокола NFS и рассмотрим теорию.
ТЕОРИЯ
Аббревиатура NFS расшифровывается как Need for Speed — Network File System. Это протокол для доступа к распределённым сетевым файловым системам, с помощью которого можно подмонтировать удалённые директории к своему серверу. Это позволяет использовать дисковое пространство другого сервера для хранения файлов и регулярно производить запись данных на него с нескольких серверов.
Протокол имеет клиент-серверную модель, то есть один сервер (ещё его называют “шара” от слова share), с установленным пакетом NFS, будет обеспечивать доступ к своим каталогам и файлам, а клиентские компьютеры будут подключаться к нему по сети. Закрепим прочитанное схемкой:
Обращения к серверу NFS осуществляются в виде пакетов протокола RPC (Remote Call Procedure), который позволяет выполнить различные функции или процедуры в другом сетевом пространстве, то есть на удалённом сервере.
Авторизация пользователей, которые подключаются к серверу осуществляется по IP-адресу, а также по специальным идентификаторам пользователя UID и группы GID. Это не лучший способ относительно безопасности хранимых файлов, в сравнении с классической моделью «логин/пароль».
Зато, благодаря такой архитектуре и тому, что NFS использовал протокол UDP без установления сессии, он практически невосприимчив к сбоям сети и самих клиентских компьютеров.
Так, при каком-либо сбое, передача файла просто приостановится, а когда связь будет налажена, то передача возобновиться без необходимости какой-либо перенастройки.
НАСТРОЙКА
Думаю, с теорией понятно, так что давайте переходить к практике. Как было сказано, все настройки будет проводить на Ubuntu 14.04.1
Прежде всего, на компьютер, который будет выступать в роли сервера NFS, нужно установить необходимые компоненты.
Итак, скачиваем пакет nfs-kernel-server, с помощью которого мы сможем раздать доступ (“расшарить”) директории. Для этого на будущем NFS сервере вводим команды:
sudo apt-get updatesudo apt-get install nfs-kernel-server
Теперь создаём собственно директорию к которой хотим раздать доступ. Стоит отметить, что можно также “расшарить” уже имеющиеся на сервере директории, но мы создадим новую:
sudo mkdir /var/nfs
Далее мы должны сделать так, чтобы владельцем директории /var/nfs и группе, к которой он принадлежит стали все пользователи в нашей системе. Для этого вводим на сервере команду:
sudo chown nobody:nogroup /var/nfsВводите эту команду только для тех директорий, которые создали сами, не надо вводить её для уже имеющихся директорий, например /home .
Следующим шагом необходимо изменить конфигурацию самого NFS, она лежит в файле /etc/exports, открываем его для редактирования любимым редактором:
sudo nano /etc/exports
Перед вами откроется конфигурационный файл с закомментированными строками, которые содержат примеры настройки для разных версий NFS.
Закомментированные – это те, в начале которых стоит символ #, и это значит, что параметры, указанные в них, не имеют силы.
Нам необходимо внести в этот файл следующие не закомментированные строки:
Источник: https://zen.yandex.ru/media/id/5b868e06a05f4100ad8bc76e/5bf6ab9e9cce7200aed033d3
Установка и настройка NFS сервера и клиента в Ubuntu
- дело было вечером — делать было нечего (точнее дело было ночью)
- в общем что то я начал подозревать что юзать самбу на линукс машинах есть не очень корректно по сему решил поднять на домашнем сервере вместо самбы (а точнее в дополнение к ней) NFS
- конфигурация такова
- сервер — ubuntu 9.04 desktop там торрнент клиент крутиться ну и немного софта для просмотра видео ну и много HDD
- рабочая станция тут уже как месяц тоже ubuntu 9.04 desktop естественно немного винчестера и опять торрнет только уже для часто меняющихся загрузок ну и торрент естественно скачивает на серверную машину
- сеть — 100 мегабит инет и 1G локально (сервер-раб.станции)
- немного погуглив нашел немного (гуглил русский сегмент инета), но того что нашел я посчитал будет предостаточно. Так что начинаем (статья писалась в процессе установки-настройки)
СЕРВЕР
Устанавливаем NFS-сервер:
sudo apt-get install nfs-kernel-server nfs-common portmap
Настраиваем, какие именно директории мы хотим открыть для совместного пользования и кому. Все это делается в файле /etc/exports:
sudo nano -w /etc/exports
В приведенном ниже примере я выделил директорию /data (директория с данными на сервере) в совместное пользование всем компьютерам с IP — 192.168.0.1 — 192.168.3.255 с правами чтения и записи:
/hard 192.168.0.1/22(rw,no_root_squash,async)
Или еще пример:
/home/samnick/ 192.168.2.96(ro,async)
домашняя директория пользователя samnick стала доступной в режиме только чтение для компьютера с IP 192.168.2.96. Все остальные компьютеры сети к этому разделу доступа не имеют.
Опции:
- ro — права только на чтение. Можно и не указывать, так как она установлена по умолчанию.
- rw — дает клиентам право на запись.
- no_root_squash — по умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать.
- noaccess — запрещает доступ к указанной директории. Может быть полезной, если перед этим вы задали доступ всем пользователям сети к определенной директории, и теперь хотите ограничить доступ в поддиректории лишь некоторым пользователям.
О других опция можно почитать тут:
http://www.toucheatout.net/informatics/linux/nfs-tuning-options
про /22 (маску подсети) читаем тут:
http://ru.wikipedia.org/wiki/CIDR сам оч чясто смотрю (запомнить никак не могу)
Теперь нужно перезапустить дабы все заработало nfs-kernel-server:
sudo /etc/init.d/nfs-kernel-server restart
в дальнейшем при изменении конфигурационного файла будет достаточно перечитать конфигурационный файл тут все просто
sudo exportfs -a
все радуемся сервер подняли и настроили теперь беремся за клиента
КЛИЕНТ
Установка и настройка NFS-клиента.
Установка:
sudo apt-get install portmap nfs-common
- Монтирование:
- создаем точку монтирования (папку к которой будет монтирована папка с сервера)
- я лично предпочитаю все монтировать в каталог /media/
cd /media
так как каталог системный то нам необходимы права root`a
sudo mkdir hard
- способов монтирования несколько одн это постоянно вручную (то есть после каждой перезагрузки) а второй это автоматически
- первый вариант я допишу чуть позднее
- вариант второй
Монтирование NFS ресурса автоматически
для этого отредактируем файл /etc/fstab (в нем описаны файловые системы, что куда и как монтировать)
sudo nano -w /etc/fstab
для прописывания нашего сетевого диска просто допишем в конец файла наши данные
192.168.2.98:/hard /media/hard nfs rw,hard,intr 0
- 192.168.2.98:/hard -адрес_вашего_сервера:папака_на_вашем_сервере
- /media/hard -/папка_куда_будем_монтировать
- nfs rw,hard,intr 0 -опции монтирования (в подробности вдаваться не будем)
подробнее про монтирование можно прочитать тут http://rus-linux.net/lib.php?name=MyLDP/file-sys/fstab.html
после того как записали свои данные сохраняем файл конфигурации монтируем нашу NFS
sudo mount /media/hard
все готово теперь мы можем лицезреть наш диск в проводнике как простой физический диск
более глубже почитать про NFS можно тут http://www.linuxshare.ru/docs/HOWTO/NFS-HOWTO.html
материалы:
Статью написал samnick a.k.a Roman Paschenko
Источник: https://ubuntueasy.com/node/379
Настройка NFS сервера на Ubuntu server 10.04
Подробности root Сервера Файловый сервер 18 октября 2010
Это руководство объясняет, как настроить NFS сервер и клиент NFS на Ubuntu 10,04.
Network File System (NFS) — это сетевая файловая система, позволяющая пользователям обращаться к файлам и каталогам, расположенным на удалённых компьютерах, как если бы эти файлы и каталоги были локальными.
Главным преимуществом такой системы является то, что отдельно взятые рабочие станции могут использовать меньше собственного дискового пространства, так как совместно используемые данные хранятся на отдельной машине и доступны для других машин в сети. NFS – это клиент-серверное приложение. Т.
е. в системе пользователя должен быть установлен NFS-клиент, а на компьютерах, которые предоставляют свое дисковое пространство – NFS-сервер. В примере будут использованы:
- NFS сервер: server.example.com , IP address: 192.168.0.100
- NFS клиент: client.example.com , IP address: 192.168.0.101
Установка NFS сервера Ubuntu server 10.04
Все последующие действия мы должны выполнять от администратора системы, для тех кто еще не знаком, можно прочитать в материале Ubuntu server настройка сети.
Установка необходимых пакетов NFS сервера (1 команда) |
|
Настройка NFS сервера Ubuntu server 10.04
В качестве примера я сделаю доступным каталоги /home и /var/nfs, так как последнего каталога у нас еще нет нам предстоит его создать.
Установка необходимых пакетов NFS сервера (1 команда) |
|
Отредактируем следующим образом, для тех кто не знаком с настройками /etc/exports читаем man 5 exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check)
/var/nfs 192.168.0.101(rw,sync,no_subtree_check)
После каждого изменения /etc/exports , мы должны выполнить перезапуск:
Перезапуск /etc/exports (1 команда) |
В целом этого достаточно, что бы открыть доступ к нужному нам каталогу.
Источник: https://www.mini-server.ru/server/file/20-nfs-server-ubuntu
Установка и настройка NFS сервера и NFS клиента в [K]Ubuntu
Network File System (NFS) — это сетевая файловая система, позволяющая пользователям обращаться к файлам и каталогам, расположенным на удалённых компьютерах, как если бы эти файлы и каталоги были локальными.
Главным преимуществом такой системы является то, что отдельно взятые рабочие станции могут использовать меньше собственного дискового пространства, так как совместно используемые данные хранятся на отдельной машине и доступны для других машин в сети. NFS — это клиент-серверное приложение. Т.е.
в системе пользователя должен быть установлен NFS-клиент, а на компьютерах, которые предоставляют свое дисковое пространство — NFS-сервер. Здесь я хочу показать, как просто установить и настроить эти программы в [K]Ubuntu Linux. (Вся информация рассчитана для новичка в Linux.
Если вы имели опыт установки NFS в Linux — ничего нового, вероятно, вы здесь не найдете. Целью статьи является, показать как легко это может быть реализовано.)
Установка и настройка NFS-сервера.Устанавливаем NFS-сервер:$sudo apt-get install nfs-kernel-server nfs-common portmap
Настраиваем, какие именно директории мы хотим открыть для совместного пользования и кому. Все это делается в файле /etc/exports:
$sudo vi /etc/exports
В приведенном ниже примере я выделил директорию /data (директория с данными на сервере) в совместное пользование всем компьютерам с IP — 192.168.1.1 — 192.168.1.255 с правами чтения и записи:
/data 192.168.1.1/24(rw,no_root_squash,async)Или еще пример:/home/serhiy/ 192.168.1.34(ro,async)домашняя директория пользователя serhiy стала доступной в режиме только чтение для компьютера с IP 192.168.1.34. Все остальные компьютеры сети к этому разделу доступа не имеют./files *(ro,sync) # Только чтение для всех access to anyone/files 192.168.0.2(rw,sync) # Чтение и запись для клиента с IP 192.168.0.2/files 192.168.1.1/24(rw,sync) # Чтение и запись для всех клиентов с 192.168.1.1 по 192.168.1.255
Чтобы изменения вступили в силу без перезапуска демона, выполните команду:
#exportfs -arv
Если вы хотите сделать ваш разделённый NFS каталог открытым и с правом записи, вы можете использовать опцию all_squash в комбинации с опциями anonuid и anongid.
Например, чтобы установить права для пользователя 'nobody' в группе 'nobody', вы можете сделать следующее:
; Доступ на чтение и запись для клиента на 192.168.0.100, с доступом rw для пользователя 99 с gid 99/files 192.168.0.100(rw,sync,all_squash,anonuid=99,anongid=99))
Это также означает, что если вы хотите разрешить доступ к указанной директории, nobody.nobody должен быть владельцем разделённой директории:
chown -R nobody.nobody /files
Чтобы разрешить доступ по сети к nfs серверу для IP 192.168.0.1, вам надо добавить следующие строчки в /etc/hosts.allow.
portmap: 192.168.0.2lockd: 192.168.0.2rquotad: 192.168.0.2mountd: 192.168.0.2statd: 192.168.0.2
Чтобы все машины могли иметь доступ, напишите в файл /etc/hosts.allow следующие строчки:
portmap: ALLlockd: ALLrquotad: ALLmountd: ALLstatd: ALL
Подробнее про настройку файла /etc/hosts.allow, смотрите, например, http://www.die.net/doc/linux/man/man5/hosts.allow.5.html
Демоны
Для запуска nfs сервера, вам требуется запустить несколько демонов:
#/etc/rc.d/portmap start#/etc/rc.d/nfslock start#/etc/rc.d/nfsd start
Вы можете добавить эти демоны в список в файл /etc/rc.conf, чтобы они запускались при загрузке системы.
Опции:ro — права только на чтение. Можно и не указывать, так как она установлена по умолчанию.rw — дает клиентам право на запись.no_root_squash — по умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать.
noaccess — запрещает доступ к указанной директории. Может быть полезной, если перед этим вы задали доступ всем пользователям сети к определенной директории, и теперь хотите ограничить доступ в поддиректории лишь некоторым пользователям.
all_squash : все пользователи экспортируемой системы используют nobody's UID/GID;anonuid, anongid: пользователь nobody использует UID/GID предоставляемый этими опциями.О других опция можно почитать здесь.Теперь нужно перезапустить nfs-kernel-server:$sudo /etc/init.
d/nfs-kernel-server restart
Если после этого вы захотите поменять что-нибудь в файле /etc/exports, то для того, чтобы изменения вступили в силу, достаточно запустить следующую команду:
$sudo exportfs -aВсе. NFS-сервер установлен и настроен. Можно переходить к настройке NFS клиента.
Установка и настройка NFS-клиента.
Установка:$sudo apt-get install portmap nfs-commonМонтирование:
Создаем точку монтирования. Допустим, это будет папка в вашей домашней директории с названием data:
$cd ~$mkdir data
Монтировать можно двумя способами — каждый раз вручную или прописав опции монтирования в файл /etc/fstab. Мне больше нравится второй способ:
$sudo vi /etc/fstabФайловые системы NFS могут быть добавлены в файл /etc/fstab так же, как и локальные, но существует некоторые отличия: тип файловой системы должен быть nfs и значения dump и fsck order (последние две записи в строчке) должны быть равны 0.и в конце дописываем следующую строку:192.168.1.1:/data ~/data nfs rw,hard,intr 0 0
Вместо 192.168.1.1:/data впишите IP или имя сервера и путь к директории совместного пользования.
Опции монтирования можно изменить.Записав и сохранив изменения, можно монтировать:$sudo mount ~/dataЕсли все прошло успешно, то набрав в терминале$cd ~/data$lsвы увидете содержимое папки /data, находящейся на NFS-сервере. Можете проверить скорость работы и запустить, например, фильм с этого раздела.
Монтирование удалённых директорий
Монтирование удалённых каталогов происходит так же, как и локальных (предположим, что точка монтирование /mnt/home существует):
#mount 192.168.0.1:/home /mnt/home
Отмонтировать можно так же, как и локальный каталог:
#umount /mnt/home
soft или hard монтирование
nfs клиент может обрабатывать сбои сервера в работе. Есть две опции монтирования: hard и soft.
soft:
Если запрос на получение файла не выполнен, NFS клиент сообщит об ошибке процессу, который пытается получить доступ к файлу. Некоторые программы умеют это обрабатывать, большая же часть — нет. Разработчики nfs не рекомендуют использовать эту опцию; это прямой путь к повреждённым данным и потере информации.
hard:
Программа, осуществляющая доступ к файлу повиснет при смерти сервера. Процесс не может быть прерван или убит (только «sure kill»), пока вы не укажете опцию intr. Когда NFS сервер вернётся к работе, программа продолжит работу с того места, где остановилась. Разработчики NFS рекомендуют использование опций hard,intr со всеми монтируемые NFS файловые системы.
Если после всего проделанного, у вас все же что-нибудь не получилось, не бросайте сразу эту затею, а напишите об этом в х. Если же все получилось и вам хочется чего-нибудь большего, например лучше разобраться в различных опциях и принципах работы, советую почитать русский перевод NFS HOWTO.
Источник: http://linuxsoid.blogspot.com/2009/05/nfs-nfs-kubuntu.html
Настройка NFS сервера и клиента в Ubuntu 12.04/12.10
Если у Вас дома(или на работе) не один компьютер, то естественным желанием будет объединить их в сеть для использования совместных ресурсов на компьютерах.
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
Сохраняем файл.
Подробнее про опции монтирования можно прочитать тут http://rus-linux.net/lib.php?name=MyLDP/file-sys/fstab.html
- Выполним монтирование дисков:
- sudo mount -a
- Теперь наши сетевые диски видны в проводнике как простые папки.
Источник: http://StartUbuntu.ru/?p=104216