Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Авторизация

Статьи об операционной системе Linux

Сайдбар

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

09 янв. 2014

Сетевая файловая система (NFS) позволяет предоставлять компьютерам, находящимся в сети, доступ к локальным каталогам других компьютеров, также расположенных в сети. В Linux/UNIX NFS обычно применяется для управления файлами и каталогами, к которым открыт общий доступ (в Windows они называются совместно используемыми — shared).

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

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

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

nfsd (для NFS 3) и nfsd4 (для NFS 4) — это демоны NFS, которые реализуются
с помощью потоков ядра;
portmap — отвечает за установление соединения между NFS-клиентом и сервером, а также за динамическое присваивание клиентам номеров портов UDP (только в NFS 3);

rpc-mountd — обрабатывает mount-запросы клиентов (только в NFS 3).

Как правило, вам не придется беспокоиться о работе этих программ — когда NFS установлена и активизирована, все необходимые программы автоматически запускаются в ходе выполнения процесса Init-V.

NFS установка и конфигурация



Прежде чем вы сможете настроить NFS-сервер, убедитесь, что в системе установлены необходимые пакеты. По умолчанию их обычно не хватает. Названия пакетов различаются в зависимости от дистрибутива: Debian, SUSE, Ubuntu — nfs-kernel-server; Fedora, Red Hat — nfs-utils, rpcbind.

Конфигурация осуществляется в трех файлах — /etc/exports, /etc/hosts.allow и/etc/hosts.deny.

Файл /etc/exports



Файл /etc/exports — это основной конфигурационный файл NFS. Он определяет, какой компьютер к каким файлам будет иметь доступ и каким именно будет этот доступ. Компьютеры можно указывать либо по IP-адресам, либо по сетевым именам. IP-адреса можно маскировать (например, с помощью 192.168.0.0/255.255.255.0 или 192.168.0.0/24). В названиях компьютеров могут содержаться джокерные символы * (например, *.sol), а в IP-адресах — нет.

В следующем примере показано, как предоставить доступ к каталогу /usr/local всем клиентам, имеющим в сети IP-адреса из пространства 192.168.0.*, но без права изменения файлов этого каталога. Компьютер uranus.sol, кроме того, имеет право читать каталог /usr/share и вносить в него изменения. Запись /usr/local в exports разделена на две части, так как не помещается на одной строке:

<code># /etc/exports на компьютере mars.sol

# ro = read only, rw = read write

/usr/local 192.168.0.0/24(ro,async,no_subtree_check) \

*.sol(ro,async,no_subtree_check) /usr/share uranus.sol(rw,async,no_subtree_check)</code>

Синтаксис /etc/exports понятен из предыдущих строк. За названием каталога и хост-именем или IP-адресом в скобках следуют различные параметры NFS.

ro (read-only) или rw (read-write) — указывают, что доступ предоставляется
только для чтения или для чтения и внесения изменений. О sync или async — определяют момент времени, в который NFS-сервер подтверждает изменения, внесенные в файл. По умолчанию действует sync. При такой настройке информация сохраняется лишь тогда, когда файл действительно сохранен. Параметр async гораздо эффективнее, но вместе с тем и ненадежнее. При доступе для внесения изменений скорость работы sync и async отличается радикально (до 10 раз), поэтому на практике async применяется довольно часто. О Благодаря insecure NFS-сервер реагирует и на те клиентские запросы, которые приходят с IP более 1024. Этот параметр требуется в тех случаях, когда в сети имеются компьютеры, работающие с Apple: по умолчанию Mac OS X использует для обмена информацией с NFS-сервером порты с номером выше 1024. О no_subtree_check или subtree_check — указывают, должен ли NFS-сервер тестировать поддерево. Коротко расскажу об этом процессе: если по NFS экспортируется каталог файловой системы (но не вся файловая система), то NFS-сервер тестирует поддерево, определяя, таким образом, находится ли в экспортируемом каталоге конкретный файл. Затем NFS-сервер передает клиенту информацию о фактическом местоположении файла. Если позже файл на сервере будет переименован, то на клиентском компьютере возникнут проблемы. По этой причине по умолчанию в современных версиях NFS-сервера тестирование поддерева отключено. И все же параметр no_subtree_check нужно указать, чтобы не получать при запуске системы соответствующих предупреждений от сервера. Если хотите, можете активизировать тестирование поддерева. В man exports это рекомендуется делать в первую очередь с каталогами, файлы в которых переименовываются редко и экспортируются в режиме «только для чтения».

Пользователь root, конечно, может использовать NFS, как и любой другой пользователь, но в экспортированных каталогах из соображений, связанных с безопасностью, он имеет только права пользователя nobody (UID=65534 и GID=65534). Если вы хотите дать root его обычные права, укажите в /etc/ exports параметр no_root_squash.
Если NFS-сервер уже работает, то изменения, вносимые в /etc/exports, вступают в силу только после выполнения команды exportfs:
root# exportfs -a

Файлы /etc/hosts.allow, /etc/hosts.deny


В файлах hosts.allow и hosts.deny указывается, какие компьютеры имеют право обращаться к NFS-серверу. Информация, содержащаяся в /etc/exports, важна только для тех пользователей, которые в принципе могут связаться с NFS-сервером. В этом отношении файлы hosts.allow и hosts.deny занимают первое место в иерархии средств защиты доступа. Для NFS-сервера релевантны записи portmap и mountd.

Настройки, характерные для отдельных дистрибутивов


Кроме стандартных конфигурационных файлов вы можете указать и такие настройки, которые являются специфичными для отдельных дистрибутивов:
<code>Debian, <a class="myClass" href="http://www.modx.cc/linux/zapusk-sistemyi-ubuntu/">Ubuntu</a> — /etc/defaults/nfs-common, /etc/defaults/nfs-kernel-server;

<a class="myClass" href="http://www.modx.cc/linux/zapusk-sistemyi-v-fedora/">Fedora</a>, SUSE, Red Hat — /etc/sysconfig/nfs.
</code>

Запуск



В Debian и Ubuntu сервер NFS по умолчанию запускается сразу же после установки. В Fedora, Red Hat и SUSE вам придется помочь компьютеру, как и при запуске других служб Init-V, выполнив следующие команды:

<code>root# chkconfig --level 35 nfs on (<a class="myClass" href="http://www.modx.cc/linux/zapusk-sistemyi-v-fedora/">Fedora</a>, Red Hat)

root# /etc/init.d/nfs start

root# insserv nfsserver (SUSE)

root# /etc/init.d/nfsserver start
</code>

Клиенты NFS



После запуска сервера можете перейти на другой компьютер и с помощью команды mount проверить, все ли работает. В Debian и Ubuntu сначала потребуется установить пакет nfs-common.

<code>user@uranus$ mkdir /test

user@uranus$ mount -t nfs mars:/usr/share /test

user@uranus$ ... user@uranus$ umount /test
</code>

Если возникнут проблемы, убедитесь, что NFS не блокируется брандмауэром. NFS 3 использует протоколы TCP и UDP на портах 111 (portmap) и 2049 (nsfd), а также на тех портах, которые в данный момент свободны (rpc.*d).

Определение статуса NFS


Чтобы узнать, работают ли демоны, необходимые для эксплуатации компьютера в качестве NFS-сервера, выполните команду rpcinfo.

Чтобы узнать, какие клиенты в настоящее время обращаются к NFS-серверу, выполните команду showmounts. В следующем примере показано, что к серверу mars в данный момент обращается только один клиент с IP-адресом 192.168.0.15:

root# showmount -a

All mount points on mars: 192.168.0.0/24:/usr/share 192.168.0.15:192.168.0.0/24

Результаты showmount -a основаны на файле /var/lib/nfs/rmtab, которым занимается rpc.mountd. К сожалению, этот файл часто бывает неполон либо содержит старые, уже не актуальные записи (также см. man rpc.mountd). По этим причинам результаты выполнения showmount не универсальны. Кроме того, учитывайте, что showmount в принципе учитывает только каталоги NFS 3!

UID и GID


Для управления правами доступа к файлам и каталогам в NFS 3 применяются UID и GID. Такая система проста, но работает лишь при условии, что на сервере и на всех клиентах соблюдается однозначное соответствие между пользователями, группами и их ID-номерами.

При управлении пользователями вручную достичь однозначного соответствия между UID и GID обычно бывает очень сложно и для этого требуется особая тщательность: создавая на любом компьютере новую пользовательскую учетную запись, нужно вручную задавать UID и GID. Кроме того, вам понадобится центральный справочный список всех уже розданных номеров UID и GID. Если при управлении пользователями вы допустите ошибки или любую небрежность, то сразу же столкнетесь с неприятными последствиями: например, если пользователи peter@merkur и birgit@neptun, работающие на разных компьютерах, имеют одинаковый UID 1234, то оба будут иметь одинаковые права при доступе к каталогу NFS. А такого лучше не допускать.

Раньше подобная проблема решалась путем синхронизации файлов /etc/passwd, /etc/group и /etc/shadow на всех компьютерах локальной сети с помощью NIS (сетевой информационной службы). Настроить NIS достаточно просто, но она считается устаревшей и ненадежной. Гораздо лучше применять централизованное управление пользовательскими данными (логин, пароль, групповая отнесенность, UID и GID и т. д.) с помощью службы LDAP. LDAP означает «облегченный протокол доступа к каталогу» — это протокол для управления иерархическими данными. В качестве LDAP-сервера в Linux обычно применяется программа openLDAP. К сожалению, конфигурировать и эксплуатировать сервер LDAP достаточно сложно.

Проблемы с кодировкой



Протокол NFS 3 не отвечает за соблюдение кодировки в названиях файлов и интерпретирует эти названия просто как последовательности байт. Если на NFS-сервере и на клиентских компьютерах используются различные кодировки, то все символы, не относящиеся к ASCII, могут отображаться неправильно.
Читайте так же:
Сетевая файловая система (NFS 4)






Подпишитесь на рассылку! Никакого спама, только обновления!!!

Комментарии (0)


    Услуги по MODX Revolution

    Посмотреть все услуги

    Техническая оптимизация сайта

    Подробнее & Заказать

    Создание сайта на MODX Revolution

    Подробнее & Заказать

    Перенос сайта на MODX Revolution

    Подробнее & Заказать

    Продвижение сайта на MODX

    Подробнее & Заказать