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

Как разъяснил Alan Cox, спецификация NFS требует от сервера сохранять данные на диск до того, как будет отправлено подтверждение. Поскольку ядра BSD могут выполнять запись только блоками по размеру страницы (4К), в результате на основе BSD в NFS серверу приходится выполнять 4 записи по 4K каждая.

Установка значений NFS происходит таким же образом, как и для стандартных файловых систем. Вы используете команду mount со следующим синтаксисом:

# mount -t nfs nfs_volume local_dir options

Значение для NFS задаётся как удалённый хост: удалённая директория. Поскольку эта комбинация уникальна для файловых систем NFS, можно не указывать опцию -t nfs.

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

В качестве примера запись в /etc/fstab может выглядеть следующим образом:

# volume mount_point type options
news:/usr/spool/news /usr/spool/news nfs timeo=14,intr

Это значение можно затем примонтировать с помощью команды:

# mount news:/usr/spool/news

Для монтирования без записи в fstab NFS требует более детального вызова. Например, если вы хотите монтировать домашние каталоги с машины под названием "moonshot", которая использует размер блока по умолчанию 4k для операций чтения и записи, можно уменьшить размер блока до 2k с помощью следующей команды:

# mount moonshot:/home /home -o rsize=2048,wsize=2048

Список всех доступных опций полностью описан в руководстве по NFS (5), которое включено в инструментарий для работы с NFS от Rick Sladkey и доступно в пакете Util-linux от Rik Faith. Ниже приведён список наиболее часто используемых опций:

Эта опция полезна для прерывания текущего действия, если сервер не отвечает.

По умолчанию, после ожидания клиентом определенного времени без получения ответа от сервера, он начинает новую попытку. Такие тома, которые постоянно пытаются повторить операцию, называются жестко примонтированными (hard-mounted). В противоположность им, мягко примонтированные (soft-mounted) тома возвращают ошибку ввода/вывода после истечения глобального времени ожидания.

Настройка и оптимизация параметров монтирования NFS

Выбор между hard- и soft-mount для вашего NFS-значения не только вопрос вкуса. Это также зависит от того, какого рода информацию вы ожидаете получать от этого монтирования. Например, при монтировании ваших X-программ через NFS, вы, вероятно, не захотите, чтобы ваш X-сеанс "зависал" только потому, что кто-то перегрузил сеть, запустив несколько копий программы xv или, допустим, отключив кабель Ethernet. При использовании hard-mounting вы гарантируете, что ваш компьютер будет ждать восстановления связи с вашим NFS-сервером. В то же время, не критически важные данные, такие как разделы новостей через NFS или FTP-архив, могут быть soft-mounted, чтобы не "подвешивать" вашу сессию, если удаленный сервер временно становится "недостижимым" или выключается.

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

Обычно демон mountd следит за тем, какие каталоги были примонтированы и с каких хостов. Эту информацию можно просмотреть с помощью программы showmount, включенной в пакет NFS сервера. Однако, Linux mountd этого не делает.

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

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

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