Blog

  • Использование NFS

    Файловая система NFS (Network File System) позволяет предоставлять файловые ресурсы одних компьютеров в сети для других. Файловая система NFS позволяет монтировать сетевые дисковые ресурсы с помощью обычной команды \”mount\”, поэтому с точки зрения пользователя сетевые ресурсы NFS не отличаются от локальных дисковых ресурсов. Для настройки нам понадобится как серверная, так и клиентская часть файловой системы NFS.

    Серверная часть

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

    user$ su
    root# aptitude update
    root# aptitude safe-upgrade
    root# aptitude install nfs-kernel-server

    Все зависимости подтянутся автоматически. После установки основного пакета, необходимо определить какие именно файловые ресурсы будут предоставлены пользователям. Настройки доступа определяются в файле \”/etc/exports\”.

    root# mcedit /etc/exports

    Каждый разделяемый ресурс пишется с новой строки, ниже пример разделяемого ресурса

    ...
    /home/user  192.168.1.0/24(ro, async, no_subtree_check)
    ...

    Некоторое пояснения формата строки:

    • /home/user – предоставляемый ресурс другим пользователям в сети, директория не обязательно должна находиться в каталоге /home предложено как пример;
    • 192.168.1.0/24 – адрес сети с префиксом или 192.168.1.0/255.255.255.0 так же может быть указан конкретный IP адрес (например 10.0.0.145) или имя узла с применением шаблонов (например *.comp?.mynet.lan – разрешено использование ресурса всех узлов из поддоменовcomp1, comp2, compd и т.д. домена mynet.lan);
    • ro – указывает, что ресурс предоставляется только для чтения. Если необходимо предоставить режим чтение/запись необходимо указать – rw;
    • async – разрешает отвечать клиенту до того, как будут завершены предыдущие операции записи (в оригинальном протоколе NFS это запрещено), что повышает быстродействие;
    • no_subtree_check – не осуществлять проверку вложенных каталогов;
    • no_root_squash – по умолчанию пользователь root на клиентской машине не будет иметь доступа к разделяемой директории сервера. Этой опцией мы снимаем это ограничение. В целях безопасности этого лучше не делать.

    Когда будут завершены определения всех ресурсов – сохраняем файл \”/etc/exports\” и перезапускаем службу NFS.

    root# /etc/init.d/<span id=\"fullpost\">nfs-kernel-server</span> restart

    Серверная часть службы NFS готова к работе. Посмотреть какие ресурсы предоставлены можно командой:

    root# showmount -e

    Если вы только добавляли ресурсы в файл \”/etc/exports\”, то их можно активировать без перезапуска службы NFS. Команда полезна при длительных операциях чтения/запись.

    root# exportfs -a

    На этом настройку серверной части файловой системы NFS можно завершить и приступить к настройке клиентской части.

    Клиентская часть

    Устанавливаем клиента файловой системы NFS

    user$ su
    root# aptitude install portmap nfs-common

    Клиентская часть установлена, можно приступить к монтированию. Монтирование можно осуществлять двумя способами: автоматическое монтирование при загрузке системы или вручную по требованию. Рассмотрим оба варианта начиная с ручного, т.к. оба они могут быть востребованы.

    Для ручного монтирования необходимо определить точку монтирования, либо использовать уже имеющуюся, для наглядности создадим в домашнем каталоге папку \”testmount\”

    user$ mkdir ~testmount

    Теперь можно приступать к непосредственному монтированию файловой системы NFS.

    user$ su
    root# mount 10.0.0.10:/home/user /home/user/testmount

    Файловая система смонтирована, стоит прокомментировать последнюю команду:

    • mount – команда монтирования;
    • 10.0.0.10:/home/user – здесь 10.0.0.10 адрес удаленного узла (может быть имя см. выше),:/home/user – ресурс, который предоставляет сервер (вы должны его знать);
    • /home/user/testmount – точка монтирования, созданная нами;

    Для автоматического монтирования файловых систем NFS можно их прописать в файл \”/etc/fstab\”, тогда во время загрузки системы они будут смонтированы автоматически.

    root# mcedit /etc/fstab

    Добавляем запись с нашими настройками

    ..
    10.0.0.10:/home/user /home/user/testmount nfs intr,soft
    ..

    Напоминаю! Что после всех добавленных строк в файл \”/etc/fstab\” последняя строка должна быть пустой, иначе можно схватить очень неприятный глюк в виде не загружаемой системы (когда его поправят не ясно). Рассмотрим опции монтирования.

    • 10.0.0.10:/home/user – монтируемый ресурс, детально см. выше;
    • /home/user/testmount – точка монтирования;
    • nfs – тип монтируемой файловой системы, в нашем случае NFS;
    • intr – позволяет прерывать процесс, работающий с файловой системой;
    • soft – спасает от безнадежного зависания, если удаленный ресурс не доступен;

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

    root# mount - a