<< Предыдущий раздел | /\ Содержание | >> Следующий раздел

Что такое NFS

Система NFS (Network File System) служит для доступа к информации, содержащейся на дисках других компьютеров. По назначению она аналогична системам SMB (Windows) и NCP (Novell).

У NFS есть существенное отличие от этих систем: при монтировании не требуется указывать пароль, а авторизация осуществляется по IP-адресу и идентификаторам пользователя и группы (UID/GID). Достоинством такого подхода является то, что монтирование по NFS может быть осуществлено без участия пользователя -- например, при загрузке системы. Недостатком является невысокий уровень security -- отсюда шутливая расшифровка аббревиатуры NFS как "No File Security".

В отличие от SMB и NCP, NFS использует протокол связи без состояния. Это дает очень высокую устойчивость к сбоям как сети, так и другого компьютера. В практике автора была ситуация, когда программа, запущенная на одном компьютере и использующая по NFS файлы с другого, при потере связи с последним просто приостановилась, а после восстановления связи через два дня спокойно возобновила работу как ни в чем не бывало.

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

Монтирование по NFS

При монтировании файловой системы по NFS в качестве типа системы надо указать "nfs", а вместо устройства -- имя компьютера и монтируемую директорию, разделенные двоеточием. Например, чтобы смонтировать директорию /dist с компьютера Rdist, можно воспользоваться командой

mount -t nfs rdist:/dist /mnt/rdist

Имя компьютера можно указывать любым образом -- короткое (rdist), полное (rdist.inp.nsk.su), или IP-адрес (193.124.167.12).

При монтировании по NFS есть большое количество опций, описанных в man-странице по nfs. Обычно же достаточно указать из соображений security "-o nosuid,nodev".

Экспорт систем по NFS

Для того, чтобы дать другим компьютерам доступ по NFS к дискам своей машины, надо отредактировать файл /etc/exports. Формат этого файла в разных клонах Unix разный (а в SystemV и сам файл называется по другому), поэтому рассмотрим только Linux.

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

/home Tom(ro) Jerry(rw)

Здесь компьютеру Tom разрешается доступ к /home только на чтение, а компьютеру Jerry -- на чтение/запись.

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

Из опций также в большинстве случаев достаточно знать "ro" и "rw".

Из соображений security лучше всегда придерживаться очень простого правила: давать доступ к как можно меньшему количеству директорий, как можно меньшему количеству компьютеров, и с как можно меньшими правами.

Чтобы после внесения изменений в /etc/exports они сразу начали действовать, надо выполнить команду exportfs.

Автомонтировщик amd

При монтировании систем с нескольких компьютеров становится довольно неприятно постоянно отслеживать все изменения и вносить их в /etc/fstab.

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

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

В Linux автомонтировщик называется amd, и содержится он в пакете am-utils (вплоть до RedHat 4.2 включительно этот пакет назывался amd). Хотя amd умеет также автоматически монтировать съемные носители (CD-ROM, дискеты, Zip), в основном он используется именно для NFS.

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

Одна из самых ценных возможностей, предоставляемых автомонтированием -- то, что при установке новых пакетов не требуется предварительно скачивать .rpm-файлы по FTP. Можно устанавливать прямо по NFS с сервера, беря файлы в /net/. Например, для RedHat 5.2 в ИЯФ можно использовать путь

/net/rdist/dist/redhat-5.2/i386/RedHat/RPMS/
это та же самая директория, которая видна как

ftp://rdist.inp.nsk.su/pub/Linux/redhat-5.2/i386/RedHat/RPMS/
(более конкретно -- /net/rdist/dist/ -- это то же самое, что ftp://rdist.inp.nsk.su/pub/Linux/).

Где еще брать информацию о работе с NFS

Следует посмотреть man-страницы nfs(5), exports(5), amd(5).

Кроме того, много полезной информации содержится в главах 4 и 9 книги "UNIX: руководство системного администратора".


<< Предыдущий раздел | /\ Содержание | >> Следующий раздел