Сетевая файловая система (NFS) во FreeBSD

Сетевая файловая система NFS (Network Filesystem) обеспечивает совместное ис-пользование файлов в ОС UNIX. В операционных системах Windows и Mac OS есть свои механизмы совместного использования файлов, позволяющие подключенным к сети компьютерам обращаться к файлам на удаленных машинах в локальной сети так, как если бы они находились на их собственном диске. Система NFS обеспечивает те же преимущества и, кроме того, ряд возможностей, отсутствующих в других протоколах совместного использования файлов.

В этой главе описано конфигурирование компьютера под управлением ОС FreeBSD для работы в качестве клиента и/или сервера NFS, т.е. для совместного использования файлов с другими компьютерами, работающими под управлением ОС UNIX, как в локальной сети, так и в Internet.

Основы NFS

ОС Windows использует для совместного доступа к файлам протокол NetBIOS, a Mac OS - протокол AppleTalk. Оба эти протокола - двухточечные; каждая система сообщает остальным о своем присутствии в сети широковещательной рассылкой, и все машины могут динамически монтировать предоставленные в совместный доступ каталоги друг друга. Система NFS немного отличается тем, что использует протокол типа клиент-сервер, явно выделяя серверы, предоставляющие в совместный доступ ресурсы, которые могут быть смонтированы определенными удаленными клиентами NFS. Эта модель создавалась для централизации на предприятии или в университетской сети, а не для двухточечных передач, которые в основном используются в других протоколах. Однако при соответствующем конфигурировании сетевая файловая система NFS позволяет получить не только все, что обеспечивают другие протоколы, но и намного больше, за исключением выявления серверов.

Под ОС Windows и Mac OS встроенные протоколы совместного использования файлов на компьютере рассылают информацию о предоставленных для общего доступа соб-ственных ресурсах (или "общих ресурсах" - - "shares") и делают запросы по поводу других имеющихся в сети общих ресурсов. Эти "выявляющие" запросы, посылаемые каждой машиной в сети и вызывающие быстрые ответы всех остальных машин, обуславливают весьма "разговорчивую" сетевую среду. Система NFS не имеет соответствующего меха-низма выявления. Как будет показано, каждый клиент NFS должен знать, где искать каждый из серверов, и монтировать ресурсы явно. Однако это означает, что объем пе-редаваемой по сети информации уменьшается за счет отсутствия соответствующих запросов выявления ресурсов и ответов на них.

Структура NFS, однако, имеет преимущества. Сервер явно управляет тем, какие клиенты могут к нему подключаться в зависимости от имени хоста или IP-адреса или с помощью централизованной службы регистрации, например NIS или Kerberos. Еще одно полезное свойство системы NFS состоит в том, что, поскольку она не зависит от ши-роковещательной рассылки в локальной сети, использующейся для выявления серверов, ее можно использовать по сети Internet точно так же, как и в локальной сети. Клиент в Бостоне может при необходимости смонтировать ресурс сервера в Сан-Франциско. Протоколы же NetBIOS и AppleTalk могут работать только в "доменах" или "зонах" в локальной сети.

Что касается ОС FreeBSD, NFS для нее - такая же файловая система, как и любая другая. Общий ресурс NFS можно смонтировать по сети так же, как и дискету или новый раздел жесткого диска. Эта операция рассматривалась в главе 9. Общие ресурсы могут даже монтироваться автоматически при обращении к ним, если клиентская машина настроена соответствующим образом. Процедура монтирования общего ресурса NFS будет описана в этой главе позже.

Клиент-серверная структура NFS спроектирована так, чтобы можно было централи-зовать ресурсы в сети. Например, на предприятии можно создавать начальные каталоги для всех сотрудников на центральном сервере UNIX, и любая другая система в сети, поддерживающая работу с NFS, сможет смонтировать эти начальные каталоги и работать с ними удаленно, - не придется создавать копию каждого начального каталога на всех машинах. На рис. 31.1 показано применение такого сетевого решения. То же самое можно сделать для каталогов проектов (в среде разработки программного обеспечения) или совместно используемых приложений, которые устанавливаются централизованно (например, в кластере рабочих станций университета). Монтируемые ресурсы NFS можно использовать совместно со службой имен NIS (централизованное управление регис-трацией) для аутентификации пользователей во всей сети. В этом случае принадлежность и права доступа ко всем файлам смонтированного общего ресурса будут такими же, как и на самом сервере NFS. Можно даже устанавливать ОС FreeBSD по протоколу NFS, если смонтировать установочный CD-ROM на сервере NFS и указать его программе Sysinstall

Интересно, что служба NFS в основном базируется на протоколе UDP, а не на TCP. Как обсуждалось в главе 22, протокол UDP не имеет ничего, подобного средствам обеспечения надежности передачи или поддержки подключения протокола TCP, и, по сути, ненадежен. Хотя и кажется странным, что ориентированный на работу с файлами сетевой протокол использует в качестве транспортного механизма протокол UDP, выбрасывая дейтаграммы с сервера на клиент без всяких гарантий их целостности, фактически протокол NFS - один из лучших примеров правильного использования транспортного протокола UDP. Постоянные подключения, как в случае TCP, на самом деле не нужны, особенно в локальной сети. Клиенты NFS появляются и исчезают по мере запуска и останова машин в сети, и подключения TCP будут только мешать потокам данных файлов и каталогов, пересылаемых между конечными точками. Смонтированный по NFS ресурс может оставаться невостребованным целыми днями, а затем неожиданно его могут снова начать использовать. Протокол UDP обеспечивает немедленную доступность общих ресурсов без издержек, связанных с организацией подключения или ожиданием, а если хост отключается от сети, на сервере это не сказывается.

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

ПРИМЕЧАНИЕ

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

Протокол NFS не содержит встроенных механизмов защиты или шифрования данных, поэтому использовать его для подключения через Internet можно только при работе с файлами, содержимое которых не является секретным. Важные или секретные данные никогда нельзя передавать по протоколу NFS через глобальную сеть. Это можно делать только в локальной сети, защищенной брандмауэром или через шифруемый тоннель виртуальной приватной сети (VPN).

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

Конфигурирование сервера NFS

Настройка компьютера с ОС FreeBSD для работы в качестве сервера NFS требует добавления всего одной строки в файл /etc/rc.conf:

nfs_server_enable="YES"

Убедитесь также, что параметр portmap_enable имеет значение "YES" (как и было по умолчанию, если вы не изменили его). Демон portmap необходим для функционирования системы NFS, поскольку NFS-серверу требуется механизм сообщения клиентам о том, к какому порту подключаться. Службы UDP работают с единственным "подключением" к порту, поэтому, хотя начальные соединения с сервером NFS выполняются через порт 2049, они сопоставляются службами RPC (удаленные вызовы процедур) с новыми, неис-пользуемыми портами сервера. Поддержку служб RPC и предоставляет демон portmap. Учтите, что службы portmap весьма небезопасны и подвержены частным взломам, поэтому не стоит предоставлять доступ к серверу NFS из Internet, не защитив его брандмауэром. Подробнее о брандмауэрах см. в главе 29.

После установки опции nfs_server_enable и перезагрузки, ОС FreeBSD запускает два вида процессов-демонов (точнее, - три, с учетом portmap) после прочтения содержимого файла /etc/exports, задающего ресурсы, предоставляемые в общий доступ через NFS. Давайте рассмотрим каждый из этих демонов и разберемся в их назначении и конфигу-рировании.

Демон NFS (nfsd)

Демон сервера NFS, эквивалентный по назначению демонам sshd или httpd, называется nfsd. Несколько процессов nfsd запускаются при инициализации сети (по умолчанию - четыре); эти процессы должны обслуживать подключения клиентов NFS, каждый процесс - для одного клиента. В стандартной конфигурации к серверу NFS одновременно может подключаться не более четырех клиентов. Это количество можно изменить с помощью параметров nfs_server_flags в файле /etc/rc.d:

nfs_server_flags="-u -t -n 4"

Опции -п можно установить любое значение; установите его равным предполагаемому максимальному количеству одновременно подключающихся к серверу клиентов NFS. Опции -t и -u заставляют процессы nfsd обслуживать клиентов, подключающихся как по протоколу TCP, так и по UDP. Имеются и другие опции настройки. Например, указав -h 64.41.131.102 среди других опций, можно привязать серверы NFS к интерфейсу с адресом 64.41.131.102. (Вместо IP-адреса можно использовать имя хоста.) Это может потребоваться при наличии нескольких сетевых интерфейсов на сервере. Механизм реализации протокола UDP устроен так, что если не указать явно демону nfsd, запросы к какому IP-адресу он должен обслуживать, то его ответы не обязательно будут поступать с того адреса, с которым связывался клиент. Можно указать любое необходимое количество адресов с помощью нескольких опций -h. Например, пусть имеется сервер, работающий в качестве шлюза с двумя сетевыми картами - одна для "внутренней", а вторая - для "внешней" сети. С "внешней" картой связаны два IP-адреса, и необходимо обслуживать общие ресурсы NFS только для внутренних клиентов. Для этого можно настроить сервер NFS следующим образом:

nfs_server_flags="-u -t -n 4 -h 64.41.131.102 -h 64.41.131.116"

Затем можно заблокировать доступ к службе NFS по внешнему интерфейсу с помощью следующего правила системы IPFW:

ipfw add deny udp from any to 64.41.131.10 nfsd

Подробнее о конфигурировании брандмауэра на базе системы IPFW см. в главе 29.

Демон монтирования NFS (mountd)

Если nfsd - программа, обеспечивающая подключение для каждого отдельного мон-тирования ресурса NFS, то вторая программа службы отвечает за прослушивание сети в ожидании новых запросов клиентов NFS (поступающих по протоколу TCP к порту 2049). Это программа mountd, демон монтирования. Она запускается автоматически вместе с процессами nfsd в ходе процедуры начальной настройки сети при загрузке, если параметр nfs_server_enable имеет значение "YES".

Демон mountd принимает запросы на подключение к NFS и передает их процессам nfsd. Он также следит за общими ресурсами NFS, указанными в файле /etc/exports; как будет вскоре продемонстрировано, для перезапуска служб NFS после изменения файла /etc/exports необходимо послать сигнал HUP демону mountd.

Полезных опций запуска демона mountd немного. Стандартные установки в файле /etc/defaults/rc.conf, которые можно переопределить в файле /etc/rc.conf, имеют следу-ющий вид:

mountd_flags="-r"

Опция -r позволяет демону mountd обслуживать обычные файлы, а не только каталоги, для совместимости с некоторыми бездисковыми рабочими станциями, заг-ружающимися с помощью службы NFS. Опция -1 позволяет регистрировать все запросы монтирования NFS, а опция -n обеспечивает возможность монтирования общих ресурсов NFS на удаленные системы вроде ПК с ОС Windows, не поддерживающие модель владения и прав доступа ОС UNIX.

Задание общих ресурсов в файле /etc/exports

В файле /etc/exports перечислены каталоги, которые должны быть предоставлены для общего доступа через NFS, а также пользователи и системы, имеющие право доступа к ним. Если файл /etc/exports не существует или недоступен для чтения при запуске сети, процессы nfsd и mountd не запускаются.

Полный формат файла /etc/exports описывается на странице справочного руководства man exports. Строка экспорта состоит из одного или нескольких имен каталогов, которые экспортируются (предоставляются для общего доступа), опций экспорта и необязательного списка хостов (задаваемых IP-адресом, именем сети, сетевой группой или по имени), которым разрешается использовать соответствующие каталоги. Например, следующая строка предоставляет в общий доступ каталог /home и все его подкаталоги для любого подключившегося хоста:

/home -alldirs

Учтите, что опция -alldirs может указываться, только если общий ресурс является точкой монтирования физической файловой системы (например, /usr или /home). В противном случае при ее указании доступ к ресурсу не будет предоставляться.

Общий ресурс, доступ к которому только для чтения могут получить три указанных хоста, задается следующим образом:

/usr2 -ro -alldirs stripes.somewhere.com spots.somewhere.com 64.41.131.165 СОВЕТ

Можно создавать сетевые группы хостов, указывая их в файле /etc/netgroup. Группа задается следующим образом:

имя_группы (хост, пользователь, домен) (хост, пользователь, домен) . . .

Например, для создания группы desktops, содержащей три определенных хоста (с именами sol, luna и terra), необходимо добавить следующую строку: desktops (sol,,) (luna,,) (terra,,)

Сетевая группа на базе имен пользователей будет иметь такой вид:

developers (,frank,) (,bob,) (,alice,)

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

Принадлежность файлов общего ресурса NFS устанавливается на основе числовых идентификаторов владельцев файлов и каталогов. Если имена и идентификаторы пользователей на сервере и на клиентских машинах совпадают (например, если учетные записи машин синхронизированы с помощью служб NIS или Kerberos), права доступа также будут совпадать. Однако если идентификатор пользователя 1045 на сервере соответствовал регистрационному имени bill, а на клиенте идентификатор пользователя 1045 соответствует регистрационному имени john, владельцем файлов

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

Опции -maproot=<имя пользователя> или -maproot=<идентификатор пользовате-ля> позволяют сопоставить права владения так, что пользователь с соответствующим именем или идентификатором на клиентской машине получит полные права доступа пользователя root на общем ресурсе. Например, следующая запись предоставляет всю файловую систему сервера NFS любому хосту в сети 64.41.131 так, что пользователь frank на клиентах будет иметь полный доступ на чтение и запись ко всем файлам:

/ -maproot=frank -network 64.41.131 -mask 255.255.255.0

После внесения изменений в файл /etc/exports необходимо перезапустить процесс mountd. Для этого следует указать идентификатор соответствующего процесса, содержа-щийся в файле /var/run/mountd.pid:

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

ПРИМЕЧАНИЕ

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

/home/frank 64.41.131.102 /home/joe 64.41.131.102

А вот так правильно:

/home/frank /home/joe 64.41.131.102

Для получения списка всех имеющихся общих ресурсов и прав доступа к ним можно использовать программу showmount. Вот как можно проверить, правильно ли файл /etc/ exports настроен:

# showmount -e

Exports list on localhost:

/usr Everyone

/home/frank 64.41.131.102

/home/joe 64.41.131.102

/ 64.41.131.0

Запуск служб NFS без перезагрузки

Наиболее простой способ запуска служб NFS - перезагрузка системы. Однако если необходимо запустить эти службы, а перезагрузка нежелательна, выполните следующие команды от имени пользователя root (команду portmap можно не вводить, если соответ-ствующий демон уже работает):

# portmap

# nfsd -u -t -n 4

# mountd -r

Затем используйте команду showmount -e, чтобы проверить, правильно ли экспорти-рованы общие ресурсы NFS.

Конфигурирование клиента NFS

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

Для настройки клиентской машины NFS включите следующую строку в файл /etc/ rc.conf:

nfs_client_enable="YES"

Эта установка включает демон ввода/вывода NFS, nfsiod, помогающий ускорить вы-полнение клиентских запросов NFS и настраивающий несколько параметров ядра, чтобы уменьшить время доступа. Все это делается автоматически сценарием /etc/rc.network во время загрузки, наряду с установками сервера NFS (рассмотренными выше).

Демон ввода/вывода NFS (nfsiod)

Демон nfsiod не обязателен для функционирования клиента NFS, но помогает ускорить работу. Он позволяет выполнять операции чтения и записи NFS асинхронно, так что "опережающее чтение" и "запись с задержкой " выполняются в фоновом режиме и не приходится ждать завершения каждого последовательного шага процесса. Как и в случае с демоном nfsd, должно работать столько процессов nfsiod, сколько общих ресурсов NFS смонтировано на клиентской машине. Количество процессов nfsiod (по умолчанию - 4), можно задать с помощью параметра nfs_client_flags в файле /etc/rc.conf:

nf s_client_flags="-n 4"

Больше никаких опций у демона nfsiod нет. Для запуска его без перезагрузки машины выполните команду:

# nfsiod -n 4

Монтирование удаленных файловых систем

Монтирование общего ресурса NFS выполняется с помощью команды mount_nfs, являющейся сокращенным вариантом стандартной команды mount -t nfs (как было опи-сано в главе 9). Как правило, этой команде передается два аргумента: имя хоста и имя общего ресурса в виде скомбинированной строки, и локальная точка монтирования:

# mount nfs spots:/home /home2

При успешном монтировании на экран ничего не выдается. Успешность монтирования можно проверить с помощью команды df:

on

# df

Filesystem IK-blocks Used Avail Capacity Mounted

/dev/adOsla 992239 54353 858507 6% /

/dev/adOslf 26704179 4872963 19694882 20% /home

/dev/adOsle 9924475 1642343 7488174 18% /usr

proofs 4 4 0 100% /proc

spots:/home 9924475 1642343 7488174 18% /home2

Если перейти в каталог /homeZ, там будут все подкаталоги каталога /home на сервере NFS, причем принадлежность каждого файла устанавливается на основесоответствия идентификаторов владельца, как было описано ранее. Файловая система останется смонтированной, пока не будет явно демонтирована с помощью команды umount:

# umount /home2

ПРЕДУПРЕЖДЕНИЕ НЕ забудьте выйти из всех смонтированных по NFS каталогов, прежде чем пытаться демонтировать их с помощью umount! При попытке демонтировать используемую файловую систему вы получите сообщение об ошибке "device busy".

Общие ресурсы NFS можно монтировать множеством различных способов; соответ-ствующие опции описаны на странице справочного руководства man mount_nfs. Чаще всего используются опция -Т, требующая использования транспортного протокола TCP вместо UDP (полезно при монтировании по глобальным сетям), и опции -s и -х <се-кунд>, благодаря которым точка монтирования устаревает и исчезает в случае сбоя или по истечении указанного периода времени (так называемое "мягкое" монтирование).

# mount_nfs -s -х 60 spots:/home /home2

СОВЕТ

Еще одна полезная опция - - i, обеспечивающая поддержку прерывания работы. Обычно если смонтирован общий ресурс NFS и соответствующий сервер не отвечает или недоступен, любые обращения к файловым системам (команды работы с общими файлами, например Is) могут зависать так, что даже нажатие комбинации клавиш Ctrl+C их не остановит. Опция -i позволяет смонтировать ресурс так, что нажатие Ctrl+C (сигнал прекращения работы) приводит к сбою команды, возвращая управление пользователю.

Как и для других типов файловых систем, можно добавить описание монтируемых ресурсов NFS в файл /etc/fstab для настройки заданных точек монтирования, что упрощает процесс монтирования. Поместите любые опции, передаваемые команде mount_nfs, в столбец Options, разделив их запятыми:

# Device Mountpoint FStype Options Dump Pass#

spots:/home /home2 nfs rw,-T,-i,noauto О О

При наличии такой записи можно монтировать файловую систему NFS с помощью простой команды mount:

# mount /home2

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

Все файловые системы, описанные в файле /etc/fstab, автоматически монтируются при загрузке, как было описано в главе 9, если только для них не указана опция noauto. Можно задать автоматическое монтирование общих ресурсов NFS при загрузке, добавив их описания в файл /etc/fstab, как было показано в предыдущем разделе. Однако надо учесть ряд обстоятельств.

Наиболее существенно то, что система NFS имеет исключительно продолжительный стандартный период ожидания, а фаза монтирования файловых систем при запуске - синхронный процесс, блокирующий дальнейшее продолжение работы. Если сервер или серверы NFS не удается найти (например, если соответствующий компьютер выключен или подключение клиентской машины к сети неправильно сконфигурировано), процесс загрузки может остановиться на недопустимо продолжительное время, прежде чем попытки монтирования будут прекращены как неудавшиеся и процедура загрузки будет продолжена.

Эту проблему можно решить, поместив опцию noauto в файл /etc/fstab, как было показано в примере выше. Однако это означает, что придется монтировать каждый общий ресурс NFS вручную после полной загрузки системы. Есть более удобный способ спра-виться с этой проблемой - задать опцию -b.

# Device Mountpoint FStype Options Dump Pass#

spots:/home /home2 nfs rw,-b О О

Задание опции -b приводит к тому, что команда mount пытается связаться с сер-вером и, если это сделать не удается, запускает порожденный процесс, выполняющий повторные попытки подключиться, пока продолжается процесс загрузки. Точно также при попытке монтирования общего ресурса из командной строки с опцией -b, запускается порожденный фоновый процесс, а вы сразу же получаете приглашение командного интерпретатора. Вот какой результат получается при попытке смон-

тировать общий ресурс, указанный в предыдущем примере строки из файла /etc/ fstab, после выполнения попыток монтирования в течение 60 секунд:

# mount /home2

NFS Portmap: RFC: Port mapper failure - RPC: Unable to send

mount__nf s: Cannot immediately mount spots: /home, backgrounding Это

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

NFS Portmap: RPC: Сбой программы сопоставления портов - RPC; не могу послать

mount_nfs: не могу немедленно смонтировать spots:/home, перехожу в фоновый режим

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

Демон автоматического монтирования (amd)

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

ОС FreeBSD обеспечивает простой способ настройки демона amd. Добавьте следующую строку в файл /etc/rc.conf:

amd_enable="YES"

При загрузке системы с таким параметром демон amd запускается с опциями, задаваемыми параметром amd_flags, стандартное значение которого обеспечивает автоматическое монтирование по имени всего содержимого каталогов /host или /net,

которые автоматически создаются демоном amd. В таком режиме демон запуска-ется и вручную, с помощью следующей команды:

# amd -a /.amd_mnt -1 syslog /host /etc/amd.map /net /etc/amd.map

При работающем демоне amd перейдите с помощью команды cd в каталог /host и просмотрите его содержимое. Каталог пуст.

# cd /host

# 1s

#

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

# Is stripes

home

Итак, кажется, в каталоге /host действительно есть каталог stripes, а в нем - подкаталог home, содержащий то же, что и общий ресурс stripes:/home. Вы только что автоматически смонтировали этот общий ресурс в каталог /host, просто просмотрев его по имени. Функционально /host/stripes/home не отличается от точки монтирования /home2, созданной вручную в одном из предыдущих примеров. Команда df позволяет в этом убедиться:

# df

Filesystem 1K-blocks Used Avail Capacity Mounted on

stripes:/home 9924475 1642345 7488172 1 8 %

/.amd_mnt/stripes/host/home

ПРИМЕЧАНИЕ

Обратите внимание, что общие ресурсы NFS, смонтированные таким образом, фактически монтируются в подкаталог .amd_mnt корневого каталога. Этот каталог реально не ис-пользуется - это лишь сокращение, применяемое демоном amd для отслеживания ресурсов.

Чтобы задать постоянное местонахождение автоматически монтируемого ресурса NFS, создайте символическую связь с соответствующим подкаталогом /host или /net:

# In -s /host/stripes/home /home2

С этого момента при переходе в каталог /home2 общий ресурс stripes:/home будет автоматически монтироваться, и вы получите доступ к соответствующим файлам. Неис-пользуемый общий ресурс автоматически демонтируется.

СОВЕТ

Можно создавать намного более сложные карты монтирования для демона amd, обес-печивающие непосредственное монтирование файловых систем в определенные каталоги, задавая записи в файле /etc/amd.conf. Этот файл не существует после стандартной установки ОС FreeBSD; подробнее о его формате и предоставляемых возможностях см. на странице справочного руководства man amd.conf.

Обновлено: 12.03.2015