NFS (Русский) - ArchWiki

# NFS (Русский)

From ArchWiki

Related articles

- NFS/Troubleshooting

Эта статья или раздел нуждается в переводе

Примечания: Перевод устарел. (обсуждение: Talk:NFS (Русский)#)

Эта страница нуждается в сопроводителе

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

Взято с Wikipedia:

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

Примечание:

- NFS не зашифрован. При работе с конфиденциальными данными чтобы шифровать протокол NFS нужно использовать туннель, например Kerberos или tinc.
- В отличие от Samba, NFS по умолчанию не имеет аутентификации пользователя, доступ к клиенту ограничен по их IP-адресам / hostname.

## Установка

Для установки сервера и клиента достаточно установить пакет nfs-utils.

Настоятельно рекомендуется на всех узлах (клиентских и серверных) использовать системы синхронизации времени time sync daemon. Без точной синхронизации системного времени, в процессе функционирования NFS возможно возникновение дополнительных нежелательных задержек.

Примечание: Пакет nfs-utils для архитектуры ARM, начиная с версии 1.3.2-4 (а возможно и с более ранних версий) имеет некоторые отличия в функционировании от версий для архитектур x86_64 или i686. Более детальную информацию о монтировании клиентских узлов можно найти на странице обсуждения dicsussion

## Конфигурация

### Сервер

Серверу NFS нужен список экспорта (общие каталоги), которые определены в `/etc/exports`. Шары NFS, определенные в `/etc/exports`, относятся к так называемому корню NFS. Хорошей практикой безопасности является определение корня NFS в дискретном дереве каталогов в корневой файловой системе сервера, который будет ограничивать пользователей этой точкой монтирования. Bind mounts are used to link the share mount point to the actual directory elsewhere on the filesystem.

Рассмотрим следующий пример, в котором:

1. Корень NFS `/srv/nfs`.
2. Экспорт `/srv/nfs/music` через привязку к фактической цели `/mnt/music`.

    # mkdir -p /srv/nfs/music /mnt/music
    # mount --bind /mnt/music /srv/nfs/music

Чтобы монтирование выполнялось автоматически, добавьте строчки в `fstab`:

    /etc/fstab

    /mnt/music /srv/nfs/music  none   bind   0   0

Примечание: The permissions on the server filesystem is what NFS will honor so ensure that connecting users have the desired access.
Примечание: ZFS filesystems require special handling of bindmounts, see ZFS#Bind mount.

Добавьте каталоги для совместного использования и ограничьте их диапазоном адресов CIDR или имя хоста клиентских машин, которым будет разрешено устанавливать их в `/etc/exports`:

    /etc/exports

    /srv/nfs       192.168.1.0/24(rw,fsid=root,crossmnt)
    /srv/nfs/music 192.168.1.0/24(rw) # чтение и запись для всех с диапазоном IP 192.168.1.*

    /etc/exports

    /srv/nfs *(ro,sync) # Только чтение для всех access to anyone
    /srv/nfs/music 192.168.0.2(rw,sync) # Чтение и запись для клиента с IP 192.168.0.2
    /srv/nfs/music 192.168.1.1/24(rw,sync) # Чтение и запись для всех клиентов с 192.168.1.1 по 192.168.1.255

Если вы хотите сделать ваш разделённый NFS каталог открытым и с правом записи, вы можете использовать опцию all_squash в комбинации с опциями anonuid и anongid.

Например, чтобы установить права для пользователя 'nobody' в группе 'nobody', вы можете сделать следующее:

    ; Доступ на чтение и запись для клиента на 192.168.0.100, с доступом rw для пользователя 99 с gid 99
    /files 192.168.0.100(rw,sync,all_squash,anonuid=99,anongid=99))

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

    # chown -R nobody.nobody /files

Следует отметить, что изменение `/etc/exports` во время работы сервера потребует повторного экспорта, чтобы изменения вступили в силу выполните:

    # exportfs -rav

Для получения дополнительной информации обо всех доступных опциях см. exports(5).

Совет: ip2cidr - это инструмент для преобразования диапазонов IP-адресов в корректно структурированную спецификацию CDIR.
Примечание: Если целевой экспорт является файловой системой tmpfs, требуется опция `fsid=1`.

#### Запуск сервера

Start и enable `nfs-server.service`.

#### Разное

##### Дополнительная конфигурация

Расширенные параметры конфигурации могут быть установлены в `/etc/nfs.conf`. Пользователям, настраивающим простую конфигурацию, может не понадобиться редактировать этот файл.

##### Ограничение NFS для интерфейсов/IP

По умолчанию запуск `nfs-server.service` будет прослушивать подключения на всех сетевых интерфейсах, независимо от `/etc/exports`. Это можно изменить, указав, какие IP-адреса и / или имена хостов должны прослушиваться.

    /etc/nfs.conf

    [nfsd]
    host=192.168.1.123
    # Кроме того, вы можете использовать имя хоста.
    # host=myhostname

Изменения будут применены при повторном запуске службы.

    # systemctl restart nfs-server.service

##### Убедиться что NFSv4 idmapping полностью включена

Несмотря на то, что idmapd может работать, он может быть не полностью включен. Убедитесь, что `/sys/module/nfsd/parameters/nfs4_disable_idmapping` возвращает `N` когда не запушен:

Установите в качестве module option, чтобы сделать изменение постоянными, пример:

    /etc/modprobe.d/nfsd.conf

    options nfsd nfs4_disable_idmapping=0

##### Статические порты для NFSv3

This article or section is out of date.

Reason: Настройка должна быть выполнена в /etc/nfs.conf для nfs-utils 2.1.1.[1] (Discuss in Talk:NFS (Русский)#)

Пользователям, нуждающимся в поддержке клиентов NFSv3, может потребоваться использование статических портов. По умолчанию для операций NFSv3 `rpc.statd` и `lockd` используются случайные эфемерные порты; чтобы разрешить операции NFSv3 через статические порты брандмауэра. Измените `/etc/sysconfig/nfs`, чтобы установить `STATDARGS`:

    /etc/sysconfig/nfs

    STATDARGS="-p 32765 -o 32766 -T 32803"

Для нормальной работы `rpc.mountd` должен обращаться к `/etc/services` и привязываться к одному и тому же статическому порту 20048; однако, если для определения `/etc/sysconfig/nfs` должно быть определено значение `RPCMOUNTDARGS`:

    /etc/sysconfig/nfs

    RPCMOUNTDARGS="-p 20048"

После внесения этих изменений необходимо перезапустить несколько служб; первый записывает параметры конфигурации в `/run/sysconfig/nfs-utils` (см. `/usr/lib/systemd/scripts/nfs-utils_env.sh`), второй перезапускает `rpc.statd` с новыми портами, последний перезагружает `lockd` (модуль ядра) с новыми портами.Перезапустите эти службы: `nfs-config`, `rpcbind`, `rpc-statd` и `nfs-server`.

После перезапуска на сервере для проверки статических портов используйте `rpcinfo -p`. Использование `rpcinfo -p <server IP>` от клиента должно выявлять те же самые статические порты.

##### Совместимость NFSv2

This article or section is out of date.

Reason: Конфигурация должна быть выполнена в /etc/nfs.conf, для nfs-utils 2.1.1. [2] (Discuss in Talk:NFS (Русский)#)

Для пользователей которые используют клиенты NFSv2 (например, U-Boot), нужно установить `RPCNFSDARGS="-V 2"` в `/etc/sysconfig/nfs`.

##### Конфигурация брандмауэра

Чтобы разрешить доступ через брандмауэр, необходимо использовать tcp и udp-порты 111, 2049 и 20048 при использовании конфигурации по умолчанию; используйте `rpcinfo -p`, чтобы проверить точные порты, используемые на сервере. Чтобы настроить это для iptables, выполните следующие команды:

    # iptables -A INPUT -p tcp -m tcp --dport 111 -j ACCEPT
    # iptables -A INPUT -p tcp -m tcp --dport 2049 -j ACCEPT
    # iptables -A INPUT -p tcp -m tcp --dport 20048 -j ACCEPT
    # iptables -A INPUT -p udp -m udp --dport 111 -j ACCEPT
    # iptables -A INPUT -p udp -m udp --dport 2049 -j ACCEPT
    # iptables -A INPUT -p udp -m udp --dport 20048 -j ACCEPT

Чтобы загрузить эту конфигурацию при каждом запуске системы, отредактируйте `/etc/iptables/iptables.rules`:

    /etc/iptables/iptables.rules

    -A INPUT -p tcp -m tcp --dport 111 -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 2049 -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 20048 -j ACCEPT
    -A INPUT -p udp -m udp --dport 111 -j ACCEPT
    -A INPUT -p udp -m udp --dport 2049 -j ACCEPT
    -A INPUT -p udp -m udp --dport 20048 -j ACCEPT

Предыдущие команды можно сохранить, выполнив следующие действия:

    # iptables-save > /etc/iptables/iptables.rules

Note: Эта команда будет «отменять» текущую действующую конфигурацию запуска iptables на текущую выбранную

Если вы используете NFSv3 и перечисленные выше статические порты для `rpc.statd` и `lockd`, их также необходимо добавить в конфигурацию:

    /etc/iptables/iptables.rules

    -A INPUT -p tcp -m tcp --dport 32765 -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 32803 -j ACCEPT
    -A INPUT -p udp -m udp --dport 32765 -j ACCEPT
    -A INPUT -p udp -m udp --dport 32803 -j ACCEPT

При использовании только для V4 необходимо открыть только порт tcp 2049. Поэтому нужна только одна строка.

    /etc/iptables/iptables.rules

    -A INPUT -p tcp -m tcp --dport 2049 -j ACCEPT

Чтобы применить изменения, Restart `iptables.service`.

### Клиент

Пользователи, намеревающиеся использовать NFS4 с Kerberos, также должны start и enable `nfs-client.target`, который запускает `rpc-gssd.service`. Однако из-за ошибки FS#50663 в glibc `rpc-gssd.service` в настоящее время не запускается. Добавление флага "-f" (foreground) в службе является обходным путем:

    # systemctl edit rpc-gssd.service

    [Unit]
    Requires=network-online.target
    After=network-online.target

    [Service]
    Type=simple
    ExecStart=
    ExecStart=/usr/sbin/rpc.gssd -f

#### Ручная установка

Для NFSv3 используйте эту команду для отображения экспортированных файловых систем сервера:

    # mount server:/ /mountpoint/on/client

Затем отключите сервер NFS для экспорта сервера:

    # mount -t nfs -o vers=4 servername:/music /mountpoint/on/client

Если монтирование не выполняется, попробуйте включить root экспорта сервера (требуется для Debian/RHEL/SLES, для некоторых дистрибутивов требуется `-t nfs4` вместо `-t nfs`):

    # mount -t nfs -o vers=4 servername:/srv/nfs/music /mountpoint/on/client

Примечание: Имя сервера должно быть допустимым именем хоста (а не только IP-адресом). В противном случае установка удаленного ресурса будет зависать.

#### Монтирование с использованием /etc/fstab

Использование fstab полезно для сервера, который всегда включен и общие ресурсы NFS доступны всякий раз, когда клиент загружается. Измените файл `/etc/fstab` и добавьте соответствующую строку, отражающую настройку. Опять же, root экспорта NFS сервера опущен.

    /etc/fstab

    servername:/music   /mountpoint/on/client   nfs   rsize=8192,wsize=8192,timeo=14,_netdev	0 0

Примечание: Консультируйтесь nfs(5) и mount(8) для получения дополнительных параметров монтирования.

Некоторые дополнительные варианты монтирования, которые необходимо учитывать, включают:

rsize и wsize
  значение `rsize` - это количество байтов, используемых при чтении с сервера. Значение `wsize` - это количество байтов, используемых при записи на сервер. Значение по умолчанию для обоих равно 1024, но использование более высоких значений, таких как 8192, может повысить пропускную способность. Это не универсально. Рекомендуется выполнить проверку после внесения этого изменения, см. #Performance tuning[broken link: invalid section].
timeo
  значение `timeo` - это время, в десятые доли секунды, для ожидания перед повторной отправкой передачи после таймаута RPC. После первого таймаута значение тайм-аута удваивается для каждой повторной попытки в течение максимум 60 секунд или до тех пор, пока не произойдет большой тайм-аут. Если вы подключаетесь к медленному серверу или по сети с занятостью, более высокая производительность может быть достигнута за счет увеличения этого значения таймаута.
_netdev
  Опция `_netdev` сообщает системе ждать, пока сеть не поднимется, прежде чем пытаться установить общий ресурс. systemd предполагает это для NFS, но в любом случае это хорошая практика использовать его для всех типов сетевых файловых систем

Примечание: Установка шестого поля (`fs_passno`) на ненулевое значение может привести к неожиданному поведению, например. зависанию, когда systemd automount ждет подключения, которое никогда не произойдет.

#### Монтирование с использованием /etc/fstab и systemd

Другим методом является использование службы systemd `automount`. Это лучший вариант, чем `_netdev`, поскольку он быстро подключает сетевое устройство, когда соединение сломано и восстановлено. Кроме того, он решает проблему с помощью autofs, см. Пример ниже:

    /etc/fstab

    servername:/home   /mountpoint/on/client  nfs  noauto,x-systemd.automount,x-systemd.device-timeout=10,timeo=14,x-systemd.idle-timeout=1min 0 0

Возможно, придется перезагрузить клиент, чтобы система systemd знала об изменениях в fstab. Кроме того, попробуйте reloading systemd и перезапустите `mountpoint-on-client.automount`, чтобы перезагрузить конфигурацию `/etc/fstab`.

Tip:

- Параметр `noauto` не будет монтировать общий ресурс NFS до его обращения: используйте `auto`, чтобы он был доступен немедленно.
  Если у вас возникли проблемы с сбоем подключения из-за недоступности сети, enable `NetworkManager-wait-online.service`. Это гарантирует, что `network.target` будет иметь все доступные ссылки до того, как они будут активны.
- Параметр mount `users` позволит пользователям монтировать, но имейте в виду, что он подразумевает дополнительные опции, например, `noexec`.
- Параметр `x-systemd.idle-timeout=1min` автоматически отключит общий ресурс NFS через 1 минуту неиспользования. Хорошо для ноутбуков, которые могут внезапно отключиться от сети.
- Если выключение/перезагрузка выполняется слишком долго из-за NFS, enable `NetworkManager-wait-online.service`, чтобы гарантировать, что NetworkManager не будет удален до того, как тома NFS будут размонтированы. Вы также можете попытаться добавить параметр `x-systemd.requires=network.target`, если выключение занимает слишком много времени.

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

#### Монтирование с использованием autofs

Использование autofs полезно, когда несколько компьютеров хотят подключиться через NFS; они могут быть как клиентами, так и серверами. Причина, по которой этот метод предпочтительнее предыдущего, заключается в том, что если сервер выключен, клиент не будет выдавать ошибки о том, что не может найти NFS-акции. Подробнее см. autofs#NFS network mounts.

## Подсказки и трюки

### Настройка производительности

Чтобы получить максимальную отдачу от NFS, необходимо настроить параметры монтирования `rsize` и `wsize` в соответствии с требованиями сетевой конфигурации.

В последних ядрах Linux (> 2.6.18) размер операций ввода-вывода, разрешенных сервером NFS (размер максимального размера по умолчанию), варьируется в зависимости от размера ОЗУ с максимальным размером 1M (1048576 байтов), максимальным размером блока сервер будет использоваться, даже если клиентам nfs требуется больше `rsize` и `wsize`. См. Https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/5.8_Technical_Notes/Known_Issues-kernel.html. Можно изменить размер максимального размера по умолчанию, разрешенный сервером, путем записи в `/proc/fs/nfsd/max_block_size` перед запуском nfsd. Например, следующая команда восстанавливает предыдущий iosize по умолчанию 32k:

    # echo 32767 > /proc/fs/nfsd/max_block_size

Чтобы сделать изменение постоянным, создайте файл systemd-tmpfile:

    /etc/tmpfiles.d/nfsd-block-size.conf

    w /proc/fs/nfsd/max_block_size - - - - 32768

### Автоматизация общих ресурсов с помощью systemd-networkd

Пользователи, использующие systemd-networkd, могут заметить, что nfs mounts fstab не монтируются при загрузке; появляются следующая ошибка:

    mount[311]: mount.nfs4: Network is unreachable

Простое решение; force systemd ожидать, сеть будет полностью настроена с помощью enabling `systemd-networkd-wait-online.service`. Теоретически это замедляет процесс загрузки, поскольку меньшее количество служб выполняется параллельно.

### Автоматическое управление монтированием

Этот трюк полезен для ноутбуков, которым требуются nfs-акции в беспроводной локальной сети. Если хост nfs становится недоступным, общий ресурс nfs будет размонтирован, чтобы надежно предотвратить зависание системы при использовании опции жесткого монтирования. См. Https://bbs.archlinux.org/viewtopic.php?pid=1260240#p1260240.

Убедитесь, что точки монтирования NFS правильно указаны в `/etc/fstab`:

    lithium:/mnt/data           /mnt/data	        nfs noauto,noatime,rsize=32768,wsize=32768 0 0
    lithium:/var/cache/pacman   /var/cache/pacman	nfs noauto,noatime,rsize=32768,wsize=32768 0 0

Примечание: Для этого необходимо использовать имена хостов в `/etc/fstab`, а не IP-адреса.

Параметр mount `noauto` указывает systemd монтировать не автоматически общие ресурсы при загрузке. systemd в противном случае попытается установить общие ресурсы nfs, которые могут или не могут существовать в сети, что приведет к тому, что процесс загрузки закроется с пустым экраном.

Чтобы подключить общие ресурсы NFS с пользователями, не являющимися root, необходимо добавить параметр `user`.

Создайте сценарий `auto_share`, который будет использоваться cron или systemd/Timers для использования ICMP-пинга, чтобы проверить, доступен ли хост NFS:

    /usr/local/bin/auto_share

    #!/bin/bash

    function net_umount {
      umount -l -f $1 &>/dev/null
    }

    function net_mount {
      mountpoint -q $1 || mount $1
    }

    NET_MOUNTS=$(sed -e '/^.*#/d' -e '/^.*:/!d' -e 's/\t/ /g' /etc/fstab | tr -s " ")$'\n'b

    printf %s "$NET_MOUNTS" | while IFS= read -r line
    do
      SERVER=$(echo $line | cut -f1 -d":")
      MOUNT_POINT=$(echo $line | cut -f2 -d" ")

      # Check if server already tested
      if [[ "${server_ok[@]}" =~ "${SERVER}" ]]; then
        # The server is up, make sure the share are mounted
        net_mount $MOUNT_POINT
      elif [[ "${server_notok[@]}" =~ "${SERVER}" ]]; then
        # The server could not be reached, unmount the share
        net_umount $MOUNT_POINT
      else
        # Check if the server is reachable
        ping -c 1 "${SERVER}" &>/dev/null

        if [ $? -ne 0 ]; then
          server_notok[${#Unix[@]}]=$SERVER
          # The server could not be reached, unmount the share
          net_umount $MOUNT_POINT
        else
          server_ok[${#Unix[@]}]=$SERVER
          # The server is up, make sure the share are mounted
          net_mount $MOUNT_POINT
        fi
      fi
    done

Примечание: Если вы хотите протестировать, используя TCP-запрос вместо ICMP-пинга (по умолчанию это tcp-порт 2049 в NFS4), то замените строку:

     # Check if the server is reachable
     ping -c 1 "${SERVER}" &>/dev/null

with:

     # Check if the server is reachable
     timeout 1 bash -c ": < /dev/tcp/${SERVER}/2049"

в сценарии `auto_share` выше.

    # chmod +x /usr/local/bin/auto_share

Создайте запись cron или таймер systemd/Timers, чтобы проверять каждую минуту, что сервер доступен.

#### Cron

    # crontab -e

    * * * * * /usr/local/bin/auto_share

#### systemd/Timers

    # /etc/systemd/system/auto_share.timer

    [Unit]
    Description=Check the network mounts

    [Timer]
    OnCalendar=*-*-* *:*:00

    [Install]
    WantedBy=timer.target

    # /etc/systemd/system/auto_share.service

    [Unit]
    Description=Check the network mounts

    [Service]
    Type=simple
    ExecStart=/usr/local/bin/auto_share

    # systemctl enable auto_share.timer

#### Монтирование при запуске через systemd

Системный файл systemd также можно использовать для монтирования общих ресурсов NFS при запуске. Файл устройства не требуется, если NetworkManager установлен и настроен в клиентской системе. См. #NetworkManager dispatcher[broken link: invalid section].

    /etc/systemd/system/auto_share.service

    [Unit]
    Description=NFS automount
    After=syslog.target network.target

    [Service]
    Type=oneshot
    RemainAfterExit=yes
    ExecStart=/usr/local/bin/auto_share

    [Install]
    WantedBy=multi-user.target

Теперь enable `auto_share.service`.

#### Диспетчер NetworkManager

В дополнение к описанному выше методу NetworkManager также можно настроить на запуск сценария при изменении статуса сети: Enable и start `NetworkManager-dispatcher.service`.

Самый простой способ для монтирования общих ресурсов при изменении статуса сети - просто привязать скрипт `auto_share`:

    # ln -s /usr/local/bin/auto_share /etc/NetworkManager/dispatcher.d/30-nfs.sh

Однако в этом конкретном случае размонтирование произойдет только после того, как сетевое соединение уже отключено, что является нечистым и может привести к таким эффектам, как замораживание апплетов KDE Plasma.

Следующий сценарий безопасно отключает общие ресурсы NFS до отключения соответствующего сетевого подключения, прослушивая события `pre-down` и `vpn-pre-down`:

Примечание: Этот сценарий игнорирует mounts с параметром noauto.

    /etc/NetworkManager/dispatcher.d/30-nfs.sh

    #!/bin/bash

    # Find the connection UUID with "nmcli con show" in terminal.
    # All NetworkManager connection types are supported: wireless, VPN, wired...
    WANTED_CON_UUID="CHANGE-ME-NOW-9c7eff15-010a-4b1c-a786-9b4efa218ba9"

    if [[ "$CONNECTION_UUID" == "$WANTED_CON_UUID" ]]; then

        # Script parameter $1: NetworkManager connection name, not used
        # Script parameter $2: dispatched event

        case "$2" in
            "up")
                mount -a -t nfs4,nfs
                ;;
            "pre-down");&
            "vpn-pre-down")
                umount -l -a -t nfs4,nfs >/dev/null
                ;;
        esac
    fi

Сделайте скрипт исполняемым с помощью chmod и создайте символическую ссылку внутри `/etc/NetworkManager/dispatcher.d/pre-down`, чтобы поймать события `pre-down`:

    # ln -s /etc/NetworkManager/dispatcher.d/30-nfs.sh /etc/NetworkManager/dispatcher.d/pre-down.d/30-nfs.sh

Вышеупомянутый скрипт может быть изменен для монтирования разных разделов (даже отличных от NFS) для разных подключений.

См. Также: NetworkManager#Use dispatcher to handle mounting of CIFS shares.

#### Монтирование NFS и networkmanager

Автоматическое монтирование nfs при появлении сети и автоматическое её отмонтирование при её отсутствии. Для этого создадим файл /etc/NetworkManager/dispatcher.d/01ifupdown, в него запишем:

    #!/bin/bash
          if [ `nm-tool|grep State|cut -f2 -d' '` == "connected" ]; then
                  mount -t nfs %server%:%server_dir% %local_dir%
          else
                  umount %local_dir%
          fi

Где %server% - ip адрес сервера nfs, %server_dir% - директория на сервере, которую требуется подмонтировать и %local_dir% - директория куда оно будет монтироваться.

## Устранение неполадок

Существует специальная статья NFS Troubleshooting.

- См. Также Avahi, реализация Zeroconf, которая позволяет автоматически открывать общие ресурсы NFS.
- HOWTO: Diskless network boot NFS root
- NFS Performance Management
- Microsoft Services for Unix NFS Client info
- NFS on Snow Leopard (Dead Link => Archive.org Mirror)

### Из старого wiki (нужно проверить)

/etc/hosts.allow

Чтобы разрешить доступ по сети к nfs серверу для IP 192.168.0.101, вам надо добавить следующие строчки в /etc/hosts.allow:

    nfsd: 192.168.0.101/255.255.255.255
    rpcbind: 192.168.0.101/255.255.255.255
    mountd: 192.168.0.101/255.255.255.255

Что разрешить доступ всем из подсети 192.168.0.*, необходмио добавить:

    nfsd: 192.168.0.0/255.255.255.0
    rpcbind: 192.168.0.0/255.255.255.0
    mountd: 192.168.0.0/255.255.255.0

Чтобы все машины могли иметь доступ, напишите в файл /etc/hosts.allow следующие строчки:

    nfsd: ALL
    rpcbind: ALL
    mountd:ALL

Подробнее про настройку файла /etc/hosts.allow, смотрите, например, http://www.die.net/doc/linux/man/man5/hosts.allow.5.html

### soft или hard монтирование

Настройка клиента

nfs клиент может обрабатывать сбои сервера в работе. Есть две опции монтирования: hard и soft.

soft:

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

hard:

Программа, осуществляющая доступ к файлу повиснет при смерти сервера. Процесс не может быть прерван или убит (только "sure kill"), пока вы не укажете опцию intr. Когда NFS сервер вернётся к работе, программа продолжит работу с того места, где остановилась. Разработчики NFS рекомендуют использование опций hard,intr со всеми монтируемые NFS файловые системы.

Смотрите man mount для подробной информации об опциях монтирования.

Categories:

- File systems (Русский)
- Network sharing (Русский)
- Русский

Hidden categories:

- Pages or sections flagged with Template:Out of date
- Pages with broken section links