Администрируя серверы на базе ОС Linux в среде, где в качестве основной клиентской ОС используется Windows, время от времени приходится сталкиваться с необходимостью что-либо скопировать с клиентской Windows на Linux-систему или наоборот, с Linux-системы на Windows. Чаще всего для этого используются возможности протоколов SSH/SCP с помощью таких инструментов, как например, утилита pscp.exe . Но когда приходится сталкиваться с файловыми Linux-серверами, позволяющими использовать возможности протокола NFS , мы можем задаться вопросами типа "может ли клиентская ОС Windows выступать в качестве NFS-клиента?", "есть ли в клиентской ОС Windows какая-то встроенная реализация клиента NFS?". Именно такие вопросы у меня возникли в период времени, который совпал с периодом, когда мы перебирались с Windows 8.1 на первый релиз Windows 10. Информация, которую в тот момент удалось найти по этому вопросу, заключалась в том, что функциональность NFS-клиента имеют только "старшие" редакции клиентских ОС Windows, такие как Windows 7 Ultimate /Enterprise , Windows 8 /8.1 Enterprise и Windows 10 Enterprise . Однако в нашем случае использовалась ОС Windows 10 редакции Professional , поэтому пришлось отбросить эти мысли.

Недавно, читая обсуждения на форумах TechNet, я столкнулся с информацией о том, что с какого-то момента времени в ОС Windows 10 редакции Professional появилась возможность использовать функционал NFS-клиента. По информации из некоторых источников такая возможность появилась в Windows 10 версии 1607 (10.0.14393 / Anniversary Update).

Решив проверить эту информацию на имеющейся у меня под руками Windows 10 1803 (10.0.17134 / April 2018 Update) редакции Professional , я обнаружил, что теперь у нас действительно имеется возможность использования этого функционала.

Чтобы включить NFS-клиента, можем воспользоваться оснасткой управления программами и компонентами appwiz.cpl . Здесь в перечне "компонентов Windows" можно найти доступные к включению "Службы для NFS ".

После завершения установки компонент в Панели управления в разделе "Администрирование " появится оснастка "Службы для NFS " (nfsmgmt.msc ), в которой мы сможем управлять некоторым параметрами работы NFS-клиента.

Предполагаем, что на стороне NFS сервера уже настроены разрешения для доступа с клиентской системы, например, явно разрешён доступ по IP адресу клиента. Простейший пример установки и настройки NFS-сервера на стороне CentOS Linux можно найти в статье Вики "Установка и настройка сервера и клиента NFS в CentOS Linux 7.2" .

После настройки прав доступа на стороне NFS-сервера переходим на Windows 10 и выполняем подключение сетевого каталога с помощью утилиты "mount ". Простейший пример анонимного подключения к сетевому каталогу выглядит так:

mount -o anon \\KOM-FS01\mnt\vdo-vd1\ovirt-iso-domain I:
  • "-o anon" - подключаться с правами анонимного пользователя;
  • "KOM-FS01" - имя NFS-сервера;
  • "mnt\vdo-vd1\ovirt-iso-domain" - локальный путь к каталогу на NFS-сервере;
  • "I" - буква диска Windows

Другие доступные параметры и ключи утилиты, можно посмотреть командой "mount /? ". Например, при подключении мы явно можем указать имя пользователь и пароль на NFS-сервере.

При открытии свойств каталогов и файлов в подключённом NFS-каталоге мы увидим специальную вкладку "Атрибуты NFS " с соответствующими атрибутами, в том числе и информацию о текущих разрешениях на каталог/файл, которыми, в случае достаточных прав, мы можем управлять.

При повторном выполнении команды mount без указания параметров, мы получим сведения о текущий подключениях NFS-клиента и свойствах этих подключений:

Здесь мы сможем увидеть то, с какими UID и GUID , выполнено подключение. Для анонимных подключений это по умолчанию -2 /-2 . Если по какой-то причине у нас возникнет необходимость изменить эти идентификаторы для всех анонимных клиентских подключений, то мы можем добавить пару отсутствующих по умолчанию параметров реестра типа DWORD (32-бита):

  • AnonymousUid
  • AnonymousGid

в ключ реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default

В значениях созданных параметров можно записать нужные UID и GUID, которые будут использоваться при всех анонимных подключениях. На скриншоте ниже используется пример со значениями 1000 :1000 (десятичное).

Если мы хотим, чтобы все анонимные подключения использовали root -овые идентификаторы, то в соответствующих параметрах реестра нужно указать AnonymousUid = 0 и AnonymousGid = 0 . Указание root-овых идентификаторов может быть полезно в случае, если, например, нам требуется не только чтение, но запись в подключенном NFS-каталоге, а удалённый NFS-сервер разрешает запись только root-пользователю и/или членам группы root.

Для вступления изменений в силу потребуется выполнить остановку и повторный запуск службы клиента NFS из ранее упомянутой оснастки "Службы для NFS" (nfsmgmt.msc).

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

Мои попытки перезапускать системную службу "Клиент для NFS " (NfsClnt ) через стандартные механизмы, такие как оснастку управления службами services.msc или утилиту "net ", показали, что это по какой-то причине приводит к невозможности запуска службы после её остановки. Поэтому для перезапуска NFS-клиента лучше использовать именно "родную" оснастку. Хотя, опять же, замечено, что многократные остановки/запуски службы в оснастке "Службы для NFS" также могут привести к неадекватной работе NFS-клиента. В результате чего, например, утилита "mount " может перестать подключать NFS-каталоги, выдавая ошибку сети:

В таких случаях помогает только перезагрузка клиентского компьютера, после которой всё снова начинает работать.

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

Как видим, теперь в качестве идентификаторов безопасности выступают именно те, что были ранее нами указаны в реестре.

Отключение подключенных по протоколу NFS сетевых ресурсов выполняется также просто, как и подключение, только с помощью другой утилиты – "umount "

В общем это хорошо, что теперь у пользователей ОС Windows 10 редакции Professional есть штатная возможность работать с сетевыми файловыми ресурсами по протоколу NFS. Будем использовать это в работе.

N FS (Network File System ) в основном разработана для совместного использования файлов и папок между /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 . Мы можем установить его с помощью “ ” (Red Hat Linux) и установочный пакет “apt-get ” (Debian и Ubuntu ).

# yum install nfs-utils nfs-utils-lib # yum install portmap (not required with NFSv4) # apt-get install nfs-utils nfs-utils-lib

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

# /etc/init.d/portmap start # /etc/init.d/nfs start # chkconfig --level 35 portmap on # chkconfig --level 35 nfs on

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

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

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

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

# mkdir /nfsshare

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

# 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.

# showmount -e 192.168.0.55 Export list for 192.168.0.55: /nfsshare 192.168.0.60

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

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

# mount -t nfs 192.168.0.55:/nfsshare /mnt/nfsshare

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

# 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 “.

# vi /etc/fstab

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

192.168.0.55:/nfsshare /mnt nfs defauls 0 0

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

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

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

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

# cat > /nfsshare/nfstest.txt This is a test file to test the working of NFS server setup.

На стороне клиента 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

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

# 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 на данный момент, если интересно, можете прочитать гид о том . Оставляйте свои

лТПНЕ РПДДЕТЦЛЙ НОПЗЙИ РТПЮЙИ ФЙРПЧ ЖБКМПЧЩИ УЙУФЕН, ЧП FreeBSD ЧУФТПЕОБ РПДДЕТЦЛБ УЕФЕЧПК ЖБКМПЧПК УЙУФЕНЩ (Network File System), ЙЪЧЕУФОПК ЛБЛ NFS . NFS РПЪЧПМСЕФ УЙУФЕНЕ ЙУРПМШЪПЧБФШ ЛБФБМПЗЙ Й ЖБКМЩ УПЧНЕУФОП У ДТХЗЙНЙ НБЫЙОБНЙ, РПУТЕДУФЧПН УЕФЙ. рПУТЕДУФЧПН NFS РПМШЪПЧБФЕМЙ Й РТПЗТБННЩ НПЗХФ РПМХЮБФШ ДПУФХР Л ЖБКМБН ОБ ХДБМЈООЩИ УЙУФЕНБИ ФПЮОП ФБЛ ЦЕ, ЛБЛ ЕУМЙ ВЩ ЬФП ВЩМЙ ЖБКМЩ ОБ УПВУФЧЕООЩИ ДЙУЛБИ.

чПФ ОЕЛПФПТЩЕ ЙЪ ОБЙВПМЕЕ ЪБНЕФОЩИ РТЕЙНХЭЕУФЧ, ЛПФПТЩЕ ДБЈФ ЙУРПМШЪПЧБОЙЕ NFS:

    пФДЕМШОП ЧЪСФЩЕ ТБВПЮЙЕ УФБОГЙЙ ЙУРПМШЪХАФ НЕОШЫЕ УПВУФЧЕООПЗП ДЙУЛПЧПЗП РТПУФТБОУФЧБ, ФБЛ ЛБЛ УПЧНЕУФОП ЙУРПМШЪХЕНЩЕ ДБООЩЕ НПЗХФ ИТБОЙФШУС ОБ ПДОПК ПФДЕМШОПК НБЫЙОЕ Й ВЩФШ ДПУФХРОЩНЙ ДМС ДТХЗЙИ НБЫЙО Ч УЕФЙ.

    рПМШЪПЧБФЕМСН ОЕ ОХЦОП ЙНЕФШ ДПНБЫОЙЕ ЛБФБМПЗЙ, ПФДЕМШОЩЕ ДМС ЛБЦДПК НБЫЙОЩ Ч ЧБЫЕК УЕФЙ. дПНБЫОЙЕ ЛБФБМПЗЙ НПЗХФ ТБУРПМБЗБФШУС ОБ УЕТЧЕТЕ NFS Й ЙИ НПЦОП УДЕМБФШ ДПУФХРОЩНЙ ПФПЧУАДХ Ч УЕФЙ.

    хУФТПКУФЧБ ИТБОЕОЙС ЙОЖПТНБГЙЙ, ФБЛЙЕ, ЛБЛ ДЙУЛЕФЩ, РТЙЧПДЩ CD-ROM Й ХУФТПКУФЧБ Zip (R), НПЗХФ ЙУРПМШЪПЧБФШУС ДТХЗЙНЙ НБЫЙОБНЙ Ч УЕФЙ. ьФП НПЦЕФ РТЙЧЕУФЙ Л ХНЕОШЫЕОЙА РЕТЕОПУЙНЩИ ХУФТПКУФЧ ИТБОЕОЙС ЙОЖПТНБГЙЙ Ч УЕФЙ.

чПФ ОЕУЛПМШЛП РТЙНЕТОЩИ УФТПЛ ЙЪ ЖБКМБ /etc/exports:

ч УМЕДХАЭЙИ РТЙНЕТБИ ДБЈФУС ПВЭБС ЙДЕС ФПЗП, ЛБЛ ЬЛУРПТФЙТПЧБФШ ЖБКМПЧЩЕ УЙУФЕНЩ, ИПФС ЛПОЛТЕФОЩЕ РБТБНЕФТЩ НПЗХФ ПФМЙЮБФШУС Ч ЪБЧЙУЙНПУФЙ ПФ ЧБЫЙИ ХУМПЧЙК Й ЛПОЖЙЗХТБГЙЙ УЕФЙ. л РТЙНЕТХ, ЮФПВЩ ЬЛУРПТФЙТПЧБФШ ЛБФБМПЗ /cdrom ДМС ФТЈИ НБЫЙО, ОБИПДСЭЙИУС Ч ФПН ЦЕ УБНПН ДПНЕОЕ, ЮФП Й УЕТЧЕТ (РПЬФПНХ ПФУХФУФЧХЕФ ДПНЕООПЕ ЙНС ДМС ЛБЦДПК НБЫЙОЩ) ЙМЙ ДМС ЛПФПТЩИ ЙНЕАФУС ЪБРЙУЙ Ч ЖБКМЕ /etc/hosts . жМБЗ -ro ХЛБЪЩЧБЕФ ОБ ЙУРПМШЪПЧБОЙЕ ЬЛУРПТФЙТХЕНПК ЖБКМПЧПК УЙУФЕНЩ Ч ТЕЦЙНЕ ФПМШЛП ЮФЕОЙС. у ЬФЙН ЖМБЗПН ХДБМЈООБС УЙУФЕНБ ОЕ УНПЦЕФ ОЙЛПЙН ПВТБЪПН ЙЪНЕОЙФШ ЬЛУРПТФЙТХЕНХА ЖБКМПЧХА УЙУФЕНХ.

/cdrom -ro host1 host2 host3

ч УМЕДХАЭЕК УФТПЛЕ ЬЛУРПТФЙТХЕФУС ЖБКМПЧБС УЙУФЕНБ /home , ЛПФПТБС УФБОПЧЙФУС ДПУФХРОПК ФТЕН ИПУФБН, ХЛБЪБООЩН РП ЙИ IP-БДТЕУБН. ьФП РПМЕЪОП, ЕУМЙ Х ЧБУ ЕУФШ УПВУФЧЕООБС УЕФШ ВЕЪ ОБУФТПЕООПЗП УЕТЧЕТБ DNS . лБЛ ЧБТЙБОФ, ЖБКМ /etc/hosts НПЦЕФ УПДЕТЦБФШ ЧОХФТЕООЙЕ ЙНЕОБ ИПУФПЧ; РПЦБМХКУФБ, ПВТБФЙФЕУШ Л УРТБЧПЮОХА УЙУФЕНХ РП ДМС РПМХЮЕОЙС ДПРПМОЙФЕМШОПК ЙОЖПТНБГЙЙ. жМБЗ -alldirs РПЪЧПМСЕФ ТБУУНБФТЙЧБФШ РПДЛБФБМПЗЙ Ч ЛБЮЕУФЧЕ ФПЮЕЛ НПОФЙТПЧБОЙС. дТХЗЙНЙ УМПЧБНЙ, ЬФП ОЕ НПОФЙТПЧБОЙЕ РПДЛБФБМПЗПЧ, ОП ТБЪТЕЫЕОЙЕ ЛМЙЕОФБН НПОФЙТПЧБФШ ФПМШЛП ЛБФБМПЗЙ, ЛПФПТЩЕ ЙН ФТЕВХАФУС ЙМЙ ОХЦОЩ.

/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4

ч УФТПЛЕ, РТЙЧЕДЈООПК ОЙЦЕ, ЖБКМПЧБС УЙУФЕНБ /a ЬЛУРПТФЙТХЕФУС ФБЛЙН ПВТБЪПН, ЮФП ПОБ ДПУФХРОБ ДЧХН ЛМЙЕОФБН ЙЪ ДТХЗЙИ ДПНЕОПЧ. рБТБНЕФТ -maproot=root РПЪЧПМСЕФ РПМШЪПЧБФЕМА root ХДБМЈООПК УЙУФЕНЩ ПУХЭЕУФЧМСФШ ЪБРЙУШ ОБ ЬЛУРПТФЙТХЕНХА ЖБКМПЧХА УЙУФЕНХ ЛБЛ РПМШЪПЧБФЕМШ root . еУМЙ РБТБНЕФТ -maproot=root ОЕ ЪБДБО, ФП ДБЦЕ ЕУМЙ РПМШЪПЧБФЕМШ ЙНЕЕФ РТБЧБ ДПУФХРБ root ОБ ХДБМЈООПК УЙУФЕНЕ, ПО ОЕ УНПЦЕФ НПДЙЖЙГЙТПЧБФШ ЖБКМЩ ОБ ЬЛУРПТФЙТПЧБООПК ЖБКМПЧПК УЙУФЕНЕ.

/a -maproot=root host.example.com box.example.org

дМС ФПЗП, ЮФПВЩ ЛМЙЕОФ УНПЗ ПВТБФЙФШУС Л ЬЛУРПТФЙТПЧБООПК ЖБКМПЧПК УЙУФЕНЕ, ПО ДПМЦЕО ЙНЕФШ РТБЧБ УДЕМБФШ ЬФП. рТПЧЕТШФЕ, ЮФП ЛМЙЕОФ ХЛБЪБО Ч ЧБЫЕН ЖБКМЕ /etc/exports .

ч ЖБКМЕ /etc/exports ЛБЦДБС УФТПЛБ УПДЕТЦЙФ ЙОЖПТНБГЙА ПВ ЬЛУРПТФЙТПЧБОЙЙ ДМС ПФДЕМШОПК ЖБКМПЧПК УЙУФЕНЩ ДМС ПФДЕМШОП ЧЪСФПЗП ИПУФБ. хДБМЈООЩК ИПУФ НПЦЕФ ВЩФШ ЪБДБО ФПМШЛП ПДЙО ТБЪ ДМС ЛБЦДПК ЖБКМПЧПК УЙУФЕНЩ, Й НПЦЕФ ЙНЕФШ ФПМШЛП ПДОХ ЪБРЙУШ, ЙУРПМШЪХЕНХА РП ХНПМЮБОЙА, ДМС ЛБЦДПК МПЛБМШОПК ЖБКМПЧПК УЙУФЕНЩ. л РТЙНЕТХ, РТЕДРПМПЦЙН, ЮФП /usr СЧМСЕФУС ПФДЕМШОПК ЖБКМПЧПК УЙУФЕНПК. уМЕДХАЭЙК /etc/exports ВХДЕФ ОЕЛПТТЕЛФЕО:

# Invalid when /usr is one file system /usr/src client /usr/ports client

пДОБ ЖБКМПЧБС УЙУФЕНБ, /usr , ЙНЕЕФ ДЧЕ УФТПЛЙ, ЪБДБАЭЙЕ ЬЛУРПТФЙТПЧБОЙЕ ДМС ПДОПЗП Й ФПЗП ЦЕ ИПУФБ, client . рТБЧЙМШОЩК ЖПТНБФ Ч ЬФПН УМХЮБЕ ФБЛПЧ:

/usr/src /usr/ports client

уЧПКУФЧБ ПФДЕМШОПК ЖБКМПЧПК УЙУФЕНЩ, ЬЛУРПТФЙТХЕНПК ОЕЛПФПТПНХ ИПУФХ, ДПМЦОЩ ЪБДБЧБФШУС Ч ПДОПК УФТПЛЕ. уФТПЛЙ ВЕЪ ХЛБЪБОЙС ЛМЙЕОФБ ЧПУРТЙОЙНБАФУС ЛБЛ ПФДЕМШОЩК ИПУФ. ьФП ПЗТБОЙЮЙЧБЕФ ФП, ЛБЛ ЧЩ НПЦЕФЕ ЬЛУРПТФЙТПЧБФШ ЖБКМПЧЩЕ УЙУФЕНЩ, ОП ДМС ВПМШЫЙОУФЧБ ЬФП ОЕ РТПВМЕНБ.

оЙЦЕ РТЙЧЕДЈО РТЙНЕТ РТБЧЙМШОПЗП УРЙУЛБ ЬЛУРПТФЙТПЧБОЙС, ЗДЕ /usr Й /exports СЧМСАФУС МПЛБМШОЩНЙ ЖБКМПЧЩНЙ УЙУФЕНБНЙ:

# ьЛУРПТФЙТХЕН src Й ports ДМС client01 Й client02, ОП # ФПМШЛП client01 ЙНЕЕФ РТБЧБ РПМШЪПЧБФЕМС root ОБ ОЙИ /usr/src /usr/ports -maproot=root client01 /usr/src /usr/ports client02 # лМЙЕОФУЛЙЕ НБЫЙОЩ ЙНЕАФ РПМШЪПЧБФЕМС root Й НПЗХФ НПОФЙТПЧБФШ ЧУЈ Ч # ЛБФБМПЗЕ /exports. лФП ХЗПДОП НПЦЕФ НПОФЙТПЧБФШ /exports/obj Ч ТЕЦЙНЕ ЮФЕОЙС /exports -alldirs -maproot=root client01 client02 /exports/obj -ro

дБЕНПО mountd ДПМЦЕО ВЩФШ РТПЙОЖПТНЙТПЧБО ПВ ЙЪНЕОЕОЙЙ ЖБКМБ /etc/exports , ЮФПВЩ ЙЪНЕОЕОЙС ЧУФХРЙМЙ Ч УЙМХ. ьФП НПЦЕФ ВЩФШ ДПУФЙЗОХФП РПУЩМЛПК УЙЗОБМБ HUP РТПГЕУУХ mountd:

# kill -HUP `cat /var/run/mountd.pid`

ЙМЙ ЧЩЪПЧПН УЛТЙРФБ mountd РПДУЙУФЕНЩ У УППФЧЕФУФЧХАЭЙН РБТБНЕФТПН:

# /etc/rc.d/mountd onereload

ъБ РПДТПВОПК ЙОЖПТНБГЙЕК П ТБВПФЕ УЛТЙРФПЧ rc.d ПВТБЭБКФЕУШ Л тБЪДЕМљ12.7, > .

лБЛ ЧБТЙБОФ, РТЙ РЕТЕЪБЗТХЪЛЕ FreeBSD ЧУЈ ОБУФТПЙФУС РТБЧЙМШОП. иПФС ЧЩРПМОСФШ РЕТЕЪБЗТХЪЛХ ЧПЧУЕ ОЕ ПВСЪБФЕМШОП. чЩРПМОЕОЙЕ УМЕДХАЭЙИ ЛПНБОД РПМШЪПЧБФЕМЕН root ЪБРХУФЙФ ЧУЈ, ЮФП ОХЦОП.

оБ УЕТЧЕТЕ NFS:

# rpcbind # nfsd -u -t -n 4 # mountd -r

оБ ЛМЙЕОФЕ NFS:

# nfsiod -n 4

фЕРЕТШ ЧУЈ ДПМЦОП ВЩФШ ЗПФПЧП Л ТЕБМШОПНХ НПОФЙТПЧБОЙА ХДБМЈООПК ЖБКМПЧПК УЙУФЕНЩ. ч РТЙЧПДЙНЩИ РТЙНЕТБИ УЕТЧЕТ ВХДЕФ ОПУЙФШ ЙНС server , Б ЛМЙЕОФ ВХДЕФ ОПУЙФШ ЙНС client . еУМЙ ЧЩ ФПМШЛП ИПФЙФЕ ЧТЕНЕООП УНПОФЙТПЧБФШ ХДБМЈООХА ЖБКМПЧХА УЙУФЕНХ, ЙМЙ ЧУЕЗП МЙЫШ РТПФЕУФЙТПЧБФШ ЧБЫЙ ОБУФТПКЛЙ, ФП РТПУФП ЪБРХУФЙФЕ ЛПНБОДЩ, РПДПВОЩЕ РТЙЧПДЙНЩН ЪДЕУШ, ТБВПФБС ЛБЛ РПМШЪПЧБФЕМШ root ОБ ЛМЙЕОФУЛПК НБЫЙОЕ:

# mount server:/home /mnt

рП ЬФПК ЛПНБОДЕ ЖБКМПЧБС УЙУФЕНБ /home ОБ УЕТЧЕТЕ ВХДЕФ УНПОФЙТПЧБОБ Ч ЛБФБМПЗ /mnt ОБ ЛМЙЕОФЕ. еУМЙ ЧУЈ ОБУФТПЕОП РТБЧЙМШОП, ЧЩ УНПЦЕФЕ ЧПКФЙ Ч ЛБФБМПЗ /mnt ОБ ЛМЙЕОФЕ Й ХЧЙДЕФШ ЖБКМЩ, ОБИПДСЭЙЕУС ОБ УЕТЧЕТЕ.

еУМЙ ЧЩ ИПФЙФЕ БЧФПНБФЙЮЕУЛЙ НПОФЙТПЧБФШ ХДБМЈООХА ЖБКМПЧХА УЙУФЕНХ РТЙ ЛБЦДПК ЪБЗТХЪЛЕ ЛПНРШАФЕТБ, ДПВБЧШФЕ ЖБКМПЧХА УЙУФЕНХ Ч /etc/fstab . чПФ РТЙНЕТ:

Server:/home /mnt nfs rw 0 0

оБ УФТБОЙГБИ УРТБЧПЮОПК УЙУФЕНЩ РП РЕТЕЮЙУМЕОЩ ЧУЕ ДПУФХРОЩЕ РБТБНЕФТЩ.

25.3.4. рТБЛФЙЮЕУЛПЕ ЙУРПМШЪПЧБОЙЕ

х NFS ЕУФШ НОПЗП ЧБТЙБОФПЧ РТБЛФЙЮЕУЛПЗП РТЙНЕОЕОЙС. оЙЦЕ РТЙЧПДЙФУС ОЕУЛПМШЛП ОБЙВПМЕЕ ЫЙТПЛП ТБУРТПУФТБОЈООЩИ УРПУПВПЧ ЕЈ ЙУРПМШЪПЧБОЙС:

    оБУФТПКЛБ ОЕУЛПМШЛП НБЫЙО ДМС УПЧНЕУФОПЗП ЙУРПМШЪПЧБОЙС CDROM ЙМЙ ДТХЗЙИ ОПУЙФЕМЕК. ьФП ВПМЕЕ ДЕЫЈЧЩК Й ЪБЮБУФХА ВПМЕЕ ХДПВОЩК УРПУПВ ХУФБОПЧЛЙ РТПЗТБННОПЗП ПВЕУРЕЮЕОЙС ОБ ОЕУЛПМШЛП НБЫЙО.

    ч ВПМШЫЙИ УЕФСИ НПЦЕФ ПЛБЪБФШУС ВПМЕЕ ХДПВОЩН ОБУФТПЙФШ ГЕОФТБМШОЩК УЕТЧЕТ NFS , ОБ ЛПФПТПН ТБЪНЕЭБАФУС ЧУЕ ДПНБЫОЙЕ ЛБФБМПЗЙ РПМШЪПЧБФЕМЕК. ьФЙ ДПНБЫОЙЕ ЛБФБМПЗЙ НПЗХФ ЪБФЕН ЬЛУРПТФЙТПЧБФШУС Ч УЕФШ ФБЛ, ЮФП РПМШЪПЧБФЕМЙ ЧУЕЗДБ ВХДХФ ЙНЕФШ ПДЙО Й ФПФ ЦЕ ДПНБЫОЙК ЛБФБМПЗ ЧОЕ ЪБЧЙУЙНПУФЙ ПФ ФПЗП, ОБ ЛБЛПК ТБВПЮЕК УФБОГЙЙ ПОЙ ТБВПФБАФ.

    оЕУЛПМШЛП НБЫЙО НПЗХФ ЙНЕФШ ПВЭЙК ЛБФБМПЗ /usr/ports/distfiles . фБЛЙН ПВТБЪПН, ЛПЗДБ ЧБН ОХЦОП ВХДЕФ ХУФБОПЧЙФШ РПТФ ОБ ОЕУЛПМШЛП НБЫЙО, ЧЩ УНПЦЕФЕ ВЩУФТП РПМХЮЙФШ ДПУФХР Л ЙУИПДОЩН ФЕЛУФБН ВЕЪ ЙИ ЪБЗТХЪЛЙ ОБ ЛБЦДПК НБЫЙОЕ.

25.3.5. бЧФПНБФЙЮЕУЛПЕ НПОФЙТПЧБОЙЕ У amd

фЕЛУФ РТЕДПУФБЧЙМ Wylie Stilwell .

фЕЛУФ РЕТЕРЙУБМ Chern Lee .

(ДБЕНПО БЧФПНБФЙЮЕУЛПЗП НПОФЙТПЧБОЙС) БЧФПНБФЙЮЕУЛЙ НПОФЙТХЕФ ХДБМЈООХА ЖБКМПЧХА УЙУФЕНХ, ЛБЛ ФПМШЛП РТПЙУИПДЙФ ПВТБЭЕОЙЕ Л ЖБКМХ ЙМЙ ЛБФБМПЗХ Ч ЬФПК ЖБКМПЧПК УЙУФЕНЕ. лТПНЕ ФПЗП, ЖБКМПЧЩЕ УЙУФЕНЩ, ЛПФПТЩЕ ВЩМЙ ОЕБЛФЙЧОЩ ОЕЛПФПТПЕ ЧТЕНС, ВХДХФ БЧФПНБФЙЮЕУЛЙ ТБЪНПОФЙТПЧБОЩ ДБЕНПОПН amd . йУРПМШЪПЧБОЙЕ amd СЧМСЕФУС РТПУФПК БМШФЕТОБФЙЧПК УФБФЙЮЕУЛПНХ НПОФЙТПЧБОЙА, ФБЛ ЛБЛ Ч РПУМЕДОЕН УМХЮБЕ ПВЩЮОП ЧУЈ ДПМЦОП ВЩФШ ПРЙУБОП Ч ЖБКМЕ /etc/fstab .

amd ТБВПФБЕФ, УБН ЧЩУФХРБС ЛБЛ УЕТЧЕТ NFS ДМС ЛБФБМПЗПЧ /host Й /net . лПЗДБ РТПЙУИПДЙФ ПВТБЭЕОЙЕ Л ЖБКМХ Ч ПДОПН ЙЪ ЬФЙИ ЛБФБМПЗПЧ, amd ЙЭЕФ УППФЧЕФУФЧХАЭЙК ХДБМЕООЩК ТЕУХТУ ДМС НПОФЙТПЧБОЙС Й БЧФПНБФЙЮЕУЛЙ ЕЗП НПОФЙТХЕФ. /net ЙУРПМШЪХЕФУС ДМС НПОФЙТПЧБОЙС ЬЛУРПТФЙТХЕНПК ЖБКМПЧПК УЙУФЕНЩ РП БДТЕУХ IP, ЛПЗДБ ЛБЛ ЛБФБМПЗ /host ЙУРПМШЪХЕФУС ДМС НПОФЙТПЧБОЙС ТЕУХТУБ РП ХДБМЕООПНХ ЙНЕОЙ ИПУФБ.

пВТБЭЕОЙЕ Л ЖБКМХ Ч ЛБФБМПЗЕ /host/foobar/usr ХЛБЦЕФ amd ОБ ЧЩРПМОЕОЙЕ РПРЩФЛЙ НПОФЙТПЧБОЙС ТЕУХТУБ /usr , ЛПФПТЩК ОБИПДЙФУС ОБ ИПУФЕ foobar .

рТЙНЕТ 25.2. нПОФЙТПЧБОЙЕ ТЕУХТУБ РТЙ РПНПЭЙ amd

чЩ НПЦЕФЕ РПУНПФТЕФШ ДПУФХРОЩЕ ДМС НПОФЙТПЧБОЙС ТЕУХТУЩ ПФДБМЈООПЗП ИПУФБ ЛПНБОДПК showmount . л РТЙНЕТХ, ЮФПВЩ РПУНПФТЕФШ ТЕУХТУЩ ИПУФБ У ЙНЕОЕН foobar , ЧЩ НПЦЕФЕ ЙУРПМШЪПЧБФШ:

% showmount -e foobar Exports list on foobar: /usr 10.10.10.0 /a 10.10.10.0 % cd /host/foobar/usr

лБЛ ЧЙДОП ЙЪ РТЙНЕТБ, showmount РПЛБЪЩЧБЕФ /usr ЛБЛ ЬЛУРПТФЙТХЕНЩК ТЕУХТУ. рТЙ РЕТЕИПДЕ Ч ЛБФБМПЗ /host/foobar/usr ДБЕНПО amd РЩФБЕФУС ТБЪТЕЫЙФШ ЙНС ИПУФБ foobar Й БЧФПНБФЙЮЕУЛЙ УНПОФЙТПЧБФШ ФТЕВХЕНЩК ТЕУХТУ.

amd НПЦЕФ ВЩФШ ЪБРХЭЕО ЙЪ УЛТЙРФПЧ ОБЮБМШОПК ЪБЗТХЪЛЙ, ЕУМЙ РПНЕУФЙФШ ФБЛХА УФТПЛХ Ч ЖБКМ /etc/rc.conf:

Amd_enable="YES"

лТПНЕ ФПЗП, ДБЕНПОХ amd НПЗХФ ВЩФШ РЕТЕДБОЩ ОБУФТПЕЮОЩЕ ЖМБЗЙ ЮЕТЕЪ РБТБНЕФТ amd_flags . рП ХНПМЮБОЙА amd_flags ОБУФТПЕО УМЕДХАЭЙН ПВТБЪПН:

Amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"

жБКМ /etc/amd.map ЪБДБЕФ ПРГЙЙ, ЙУРПМШЪХЕНЩЕ РП ХНПМЮБОЙА РТЙ НПОФЙТПЧБОЙЙ ЬЛУРПТФЙТХЕНЩИ ТЕУХТУПЧ. ч ЖБКМЕ /etc/amd.conf ЪБДБОЩ ОБУФТПКЛЙ ОЕЛПФПТЩИ ВПМЕЕ УМПЦОЩИ ЧПЪНПЦОПУФЕК amd .

пВТБФЙФЕУШ Л УРТБЧПЮОЩН УФТБОЙГБН РП Й ДМС РПМХЮЕОЙС ВПМЕЕ РПМОПК ЙОЖПТНБГЙЙ.

25.3.6. рТПВМЕНЩ ЧЪБЙНПДЕКУФЧЙС У ДТХЗЙНЙ УЙУФЕНБНЙ

фЕЛУФ РТЕДПУФБЧЙМ John Lind .

оЕЛПФПТЩЕ УЕФЕЧЩЕ БДБРФЕТЩ ДМС УЙУФЕН PC У ЫЙОПК ISA ЙНЕАФ ПЗТБОЙЮЕОЙС, ЛПФПТЩЕ НПЗХФ РТЙЧЕУФЙ Л УЕТШЕЪОЩН РТПВМЕНБН Ч УЕФЙ, Ч ЮБУФОПУФЙ, У NFS. ьФЙ РТПВМЕНЩ ОЕ УРЕГЙЖЙЮОЩ ДМС FreeBSD, ПДОБЛП ЬФХ УЙУФЕНХ ПОЙ ЪБФТБЗЙЧБАФ.

рТПВМЕНБ, ЛПФПТБС ЧПЪОЙЛБЕФ РТБЛФЙЮЕУЛЙ ЧУЕЗДБ РТЙ ТБВПФЕ РП УЕФЙ УЙУФЕН PC (FreeBSD) У ЧЩУПЛПРТПЙЪЧПДЙФЕМШОЩНЙ ТБВПЮЙНЙ УФБОГЙСНЙ, ЧЩРХЭЕООЩНЙ ФБЛЙНЙ РТПЙЪЧПДЙФЕМСНЙ, ЛБЛ Silicon Graphics, Inc. Й Sun Microsystems, Inc. нПОФЙТПЧБОЙЕ РП РТПФПЛПМХ NFS ВХДЕФ ТБВПФБФШ ОПТНБМШОП, Й ОЕЛПФПТЩЕ ПРЕТБГЙЙ ФБЛЦЕ ВХДХФ ЧЩРПМОСФШУС ХУРЕЫОП, ОП ОЕПЦЙДБООП УЕТЧЕТ ПЛБЦЕФУС ОЕДПУФХРОЩН ДМС ЛМЙЕОФ, ИПФС ЪБРТПУЩ Л Й ПФ ДТХЗЙИ УЙУФЕН ВХДХФ РТПДПМЦБФШУС ПВТБВБФЩЧБФШУС. фБЛПЕ ЧУФТЕЮБЕФУС У ЛМЙЕОФУЛЙНЙ УЙУФЕНБНЙ, ОЕ ЪБЧЙУЙНП ПФ ФПЗП, СЧМСЕФУС МЙ ЛМЙЕОФ НБЫЙОПК У FreeBSD ЙМЙ ТБВПЮЕК УФБОГЙЕК. чП НОПЗЙИ УЙУФЕНБИ РТЙ ЧПЪОЙЛОПЧЕОЙЙ ЬФПК РТПВМЕНЩ ОЕФ УРПУПВБ ЛПТТЕЛФОП ЪБЧЕТЫЙФШ ТБВПФХ ЛМЙЕОФБ. еДЙОУФЧЕООЩН ЧЩИПДПН ЪБЮБУФХА СЧМСЕФУС ИПМПДОБС РЕТЕЪБЗТХЪЛБ ЛМЙЕОФБ, РПФПНХ ЮФП УЙФХБГЙС У NFS ОЕ НПЦЕФ ВЩФШ ТБЪТЕЫЕОБ.

иПФС РТБЧЙМШОЩН >> ТЕЫЕОЙЕН СЧМСЕФУС ХУФБОПЧЛБ ВПМЕЕ РТПЙЪЧПДЙФЕМШОПЗП Й УЛПТПУФОПЗП УЕФЕЧПЗП БДБРФЕТБ ОБ УЙУФЕНХ FreeBSD, ЙНЕЕФУС РТПУФПЕ ТЕЫЕОЙЕ, РТЙЧПДСЭЕЕ Л ХДПЧМЕФЧПТЙФЕМШОЩН ТЕЪХМШФБФБН. еУМЙ УЙУФЕНБ FreeBSD СЧМСЕФУС УЕТЧЕТПН , ХЛБЦЙФЕ РБТБНЕФТ -w=1024 ОБ ЛМЙЕОФЕ РТЙ НПОФЙТПЧБОЙЙ. еУМЙ УЙУФЕНБ FreeBSD СЧМСЕФУС ЛМЙЕОФПН , ФП УНПОФЙТХКФЕ ЖБКМПЧХА УЙУФЕНХ NFS У РБТБНЕФТПН -r=1024 . ьФЙ РБТБНЕФТЩ НПЗХФ ВЩФШ ЪБДБОЩ Ч ЮЕФЧЕТФПН РПМЕ ЪБРЙУЙ Ч ЖБКМЕ fstab ЛМЙЕОФБ РТЙ БЧФПНБФЙЮЕУЛПН НПОФЙТПЧБОЙЙ, ЙМЙ РТЙ РПНПЭЙ РБТБНЕФТБ -o Ч ЛПНБОДЕ РТЙ НПОФЙТПЧБОЙЙ ЧТХЮОХА.

оХЦОП ПФНЕФЙФШ, ЮФП ЙНЕЕФУС ФБЛЦЕ ДТХЗБС РТПВМЕНБ, ПЫЙВПЮОП РТЙОЙНБЕНБС ЪБ РТЙЧЕДЕООХА ЧЩЫЕ, ЛПЗДБ УЕТЧЕТЩ Й ЛМЙЕОФЩ NFS ОБИПДСФУС Ч ТБЪОЩИ УЕФСИ. еУМЙ ЬФП ФПФ УБНЩК УМХЮБК, РТПЧЕТШФЕ , ЮФП ЧБЫЙ НБТЫТХФЙЪБФПТЩ РТПРХУЛБАФ ОХЦОХА ЙОЖПТНБГЙА UDP , Ч РТПФЙЧОПН УМХЮБЕ ЧЩ ОЙЮЕЗП ОЕ РПМХЮЙФЕ, ЮФП ВЩ ЧЩ ОЙ РТЕДРТЙОЙНБМЙ.

ч УМЕДХАЭЙИ РТЙНЕТБИ fastws СЧМСЕФУС ЙНЕОЕН ИПУФБ (ЙОФЕТЖЕКУБ) ЧЩУПЛПРТПЙЪЧПДЙФЕМШОПК ТБВПЮЕК УФБОГЙЙ, Б freebox СЧМСЕФУС ЙНЕОЕН ИПУФБ (ЙОФЕТЖЕКУБ) УЙУФЕНЩ FreeBSD УП УМБВЩН УЕФЕЧЩН БДБРФЕТПН. лТПНЕ ФПЗП, /sharedfs ВХДЕФ СЧМСФШУС ЬЛУРПТФЙТХЕНПК ЮЕТЕЪ NFS ЖБКМПЧПК УЙУФЕНПК (ПВТБФЙФЕУШ Л УФТБОЙГБН УРТБЧПЮОПК УЙУФЕНЩ РП ЛПНБОДЕ ), Б /project ВХДЕФ ФПЮЛПК НПОФЙТПЧБОЙС ЬЛУРПТФЙТХЕНПК ЖБКМПЧПК УЙУФЕНЩ ОБ ЛМЙЕОФЕ. ч МАВПН УМХЮБЕ, ПФНЕФШФЕ, ЮФП ДМС ЧБЫЕЗП РТЙМПЦЕОЙС НПЗХФ РПОБДПВЙФШУС ДПРПМОЙФЕМШОЩЕ РБТБНЕФТЩ, ФБЛЙЕ, ЛБЛ hard , soft ЙМЙ bg .

рТЙНЕТ УЙУФЕНЩ FreeBSD (freebox) ЛБЛ ЛМЙЕОФБ Ч ЖБКМЕ /etc/fstab ОБ НБЫЙОЕ freebox:

Fastws:/sharedfs /project nfs rw,-r=1024 0 0

лПНБОДБ, ЧЩДБЧБЕНБС ЧТХЮОХА ОБ НБЫЙОЕ freebox:

# mount -t nfs -o -r=1024 fastws:/sharedfs /project

рТЙНЕТ УЙУФЕНЩ FreeBSD Ч ЛБЮЕУФЧЕ УЕТЧЕТБ Ч ЖБКМЕ /etc/fstab ОБ НБЫЙОЕ fastws:

Freebox:/sharedfs /project nfs rw,-w=1024 0 0

лПНБОДБ, ЧЩДБЧБЕНБС ЧТХЮОХА ОБ НБЫЙОЕ fastws:

# mount -t nfs -o -w=1024 freebox:/sharedfs /project

рТБЛФЙЮЕУЛЙ ЧУЕ 16-ТБЪТСДОЩЕ УЕФЕЧЩЕ БДБРФЕТЩ РПЪЧПМСФ ТБВПФБФШ ВЕЪ ХЛБЪБООЩИ ЧЩЫЕ ПЗТБОЙЮЕОЙК ОБ ТБЪНЕТ ВМПЛПЧ РТЙ ЮФЕОЙЙ Й ЪБРЙУЙ.

дМС ФЕИ, ЛФП ЙОФЕТЕУХЕФУС, ОЙЦЕ ПРЙУЩЧБЕФУС, ЮФП ЦЕ РТПЙУИПДЙФ Ч РТЙ РПСЧМЕОЙЙ ЬФПК ПЫЙВЛЙ, Й ПВЯСУОСЕФУС, РПЮЕНХ ЕЕ ОЕЧПЪНПЦОП ХУФТБОЙФШ. лБЛ РТБЧЙМП, NFS ТБВПФБЕФ У ВМПЛБНЙ >> ТБЪНЕТПН 8љЛЙМПВБКФ (ИПФС ПФДЕМШОЩЕ ЖТБЗНЕОФЩ НПЗХФ ЙНЕФШ НЕОШЫЙЕ ТБЪНЕТЩ). фБЛ, РБЛЕФ Ethernet ЙНЕЕФ НБЛУЙНБМШОЩК ТБЪНЕТ ПЛПМП 1500љВБКФ, ФП ВМПЛ >> NFS ТБЪВЙЧБЕФУС ОБ ОЕУЛПМШЛП РБЛЕФПЧ Ethernet, ИПФС ОБ ВПМЕЕ ЧЩУПЛПН ХТПЧОЕ ЬФП ЧУЕ ФПФ ЦЕ ЕДЙОЩК ВМПЛ, ЛПФПТЩК ДПМЦЕО ВЩФШ РТЙОСФ, УПВТБО Й РПДФЧЕТЦДЕО ЛБЛ ПДЙО ВМПЛ. чЩУПЛПРТПЙЪЧПДЙФЕМШОЩЕ ТБВПЮЙЕ УФБОГЙЙ НПЗХФ РПУЩМБФШ РБЛЕФЩ, ЛПФПТЩЕ УППФЧЕФУФЧХАФ ПДОПНХ ВМПЛХ NFS, УТБЪХ ДТХЗ ЪБ ДТХЗПН, ОБУЛПМШЛП ЬФП РПЪЧПМСЕФ ДЕМБФШ УФБОДБТФ. оБ УМБВЩИ, ОЙЪЛПРТПЙЪЧПДЙФЕМШОЩИ БДБРФЕТБИ РБЛЕФЩ, РТЙЫЕДЫЙЕ РПЪЦЕ, ОБЛМБДЩЧБАФУС РПЧЕТИ ТБОЕЕ РТЙЫЕДЫЙИ РБЛЕФПЧ ФПЗП ЦЕ УБНПЗП ВМПЛБ ДП ФПЗП, ЛБЛ ПОЙ НПЗХФ ВЩФШ РЕТЕДБОЩ ИПУФХ Й ВМПЛ ЛБЛ ЕДЙОПЕ ГЕМПЕ ОЕ НПЦЕФ ВЩФШ УПВТБО ЙМЙ РПДФЧЕТЦДЕО. ч ТЕЪХМШФБФЕ ТБВПЮБС УФБОГЙС ЧИПДЙФ Ч УЙФХБГЙА ФБКН-БХФБ Й РЩФБЕФУС РПЧФПТЙФШ РЕТЕДБЮХ, ОП ХЦЕ У РПМОЩН ВМПЛПН Ч 8љлв, Й РТПГЕУУ ВХДЕФ РПЧФПТСФШУС УОПЧБ, ДП ВЕУЛПОЕЮОПУФЙ.

ъБДБЧ ТБЪНЕТ ВМПЛБ НЕОШЫЕ ТБЪНЕТБ РБЛЕФБ Ethernet, НЩ ДПУФЙЗБЕН ФПЗП, ЮФП МАВПК РПМОПУФША РПМХЮЕООЩК РБЛЕФ Ethernet НПЦЕФ ВЩФШ РПДФЧЕТЦДЕО ЙОДЙЧЙДХБМШОП, Й ЙЪВЕЦЙН ФХРЙЛПЧХА УЙФХБГЙА.

оБМПЦЕОЙЕ РБЛЕФПЧ НПЦЕФ ЧУЕ ЕЭЕ РТПСЧМСФШУС, ЛПЗДБ ЧЩУПЛПРТПЙЪЧПДЙФЕМШОЩЕ ТБВПЮЙЕ УФБОГЙЙ УВТБУЩЧБАФ ДБООЩЕ ОБ PC-УЙУФЕНХ, ПДОБЛП РПЧФПТЕОЙЕ ЬФПК УЙФХБГЙЙ ОЕ ПВСЪБФЕМШОП У ВПМЕЕ УЛПТПУФОЩНЙ БДБРФЕТБНЙ У ВМПЛБНЙ >> NFS. лПЗДБ РТПЙУИПДЙФ ОБМПЦЕОЙЕ, ЪБФТПОХФЩЕ ВМПЛЙ ВХДХФ РЕТЕДБОЩ УОПЧБ, Й УЛПТЕЕ ЧУЕЗП, ПОЙ ВХДХФ РПМХЮЕОЩ, УПВТБОЩ Й РПДФЧЕТЦДЕОЩ.

Сетевая файловая система 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:

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

sudo systemctl enable nfs

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

sudo apt install nfs-common

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

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

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

Адрес папки - это та папка, которую нужно сделать доступной по сети. Клиент - 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/

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

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

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 ненамного сложнее подключения. Если у вас остались вопросы, пишите в комментариях!

Похожие записи: