2

Есть ли способ заставить Linux отказаться от попыток переподключения акций NFS? У меня есть они в fstab в настоящее время. Я хотел бы, чтобы они попытались смонтировать при загрузке и только после этого попытаться восстановить соединение вручную. Акции, на которые он жалуется ниже, находятся на машине, которая не включена все время.

$ tail /var/log/syslog
Mar 17 10:13:26 Inspiron kernel: [429184.924089] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:30 Inspiron kernel: [429189.132255] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:37 Inspiron kernel: [429196.156051] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:37 Inspiron kernel: [429196.156072] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:42 Inspiron kernel: [429200.364084] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:46 Inspiron kernel: [429204.572092] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:53 Inspiron kernel: [429211.596078] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:53 Inspiron kernel: [429211.596122] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:13:57 Inspiron kernel: [429215.804094] nfs: server 192.168.1.200 not responding, timed out
Mar 17 10:14:01 Inspiron kernel: [429220.012094] nfs: server 192.168.1.200 not responding, timed out



$ cat /etc/fstab 
192.168.1.200:/mnt/Raid/TV_SHOWS /home/Shares/TV_SHOWS nfs rsize=8192,wsize=8292,timeo=14,intr,rw,user
192.168.1.200:/mnt/Raid/MOVIES /home/Shares/Movies nfs rsize=8192,wsize=8292,timeo=14,intr,rw,user
192.168.1.200:/mnt/Raid/DocuTV /home/Shares/DocuTV nfs rsize=8192,wsize=8292,timeo=14,intr,rw,user

ОБНОВИТЬ:

Я изменил свой fstab с помощью дополнительных флагов, но по-прежнему возникает проблема. Когда общие ресурсы смонтированы и сервер nfs отключен, он пытается восстановить соединение, а не просто размонтировать их. Эта проблема возникает только в том случае, если сервер nfs выходит из строя во время монтирования общих ресурсов.

192.168.1.200:/mnt/Raid/TV_SHOWS /home/Shares/TV_SHOWS nfs rsize=8192,wsize=8292,timeo=14,intr,rw,user,retry=0,nofail
192.168.1.200:/mnt/Raid/MOVIES /home/Shares/Movies nfs rsize=8192,wsize=8292,timeo=14,intr,rw,user,retry=0,nofail
192.168.1.200:/mnt/Raid/DocuTV /home/Shares/DocuTV nfs rsize=8192,wsize=8292,timeo=14,intr,rw,user,retry=0,nofail

ОБНОВЛЕНИЕ 2: я пробовал bg, soft, retrans = 100, retry = 0, nofail

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

РЕШЕНИЕ: я следовал инструкциям антипода ниже с некоторыми изменениями

auto.master
/- /etc/auto.shares --timeout=60

Базовая точка монтирования - это / вместо / home / user / Shares. Это устранило некоторые проблемы, возникающие при одновременном использовании autofs+fstab. Акции размонтируются через 60 секунд.

auto.shares
/home/user/Shares/TV_SHOWS    -rsize=8192,wsize=8292,timeo=14,intr,rw,uid=1000,gid=1000    192.168.1.200:/mnt/Raid/TV_SHOWS
/home/user/Shares/Movies      -rsize=8192,wsize=8292,timeo=14,intr,rw,uid=1000,gid=1000    192.168.1.200:/mnt/Raid/MOVIES
/home/user/Shares/DocuTV      -rsize=8192,wsize=8292,timeo=14,intr,rw,uid=1000,gid=1000    192.168.1.200:/mnt/Raid/DocuTV

Обратите внимание на двоеточия после IP-адреса сервера NFS. UID/GID монтирует общие ресурсы как пользователь, а не как root.

1 ответ1

3

Редактировать: поскольку проблема возникает только когда сервер NFS выходит из строя ПОСЛЕ того, как общий ресурс уже успешно смонтирован, предыдущий ответ не помогает.

Мое единственное предложение сейчас - использовать autofs для монтирования общих ресурсов NFS по требованию, а не монтировать их при загрузке. Таким образом, система будет пытаться подключить общие ресурсы NFS только при попытке доступа к ним и автоматически отключит их после определенного периода бездействия.

Существует руководство по использованию autofs доступное здесь, но ниже я перечислю шаги, которые вы должны выполнить, чтобы запустить что-то.

  1. Убедитесь, что autofs установлен. Пакет обычно называется «autofs»

    В Ubuntu вы можете установить его, запустив apt-get install autofs от имени пользователя root.

  2. Добавьте следующую запись (как root) в /etc/auto.master

    /home/Shares /etc/auto.shares
    
  3. Создайте файл /etc/auto.shares (как root) со следующим содержимым:

    TV_SHOWS    -rsize=8192,wsize=8292,timeo=14,intr,rw    192.168.1.200:/mnt/Raid/TV_SHOWS
    Movies      -rsize=8192,wsize=8292,timeo=14,intr,rw    192.168.1.200:/mnt/Raid/MOVIES
    DocuTV      -rsize=8192,wsize=8292,timeo=14,intr,rw    192.168.1.200:/mnt/Raid/DocuTV
    
  4. Удалите статические точки монтирования для этих каталогов из /etc/fstab

  5. Перезагрузите сервис autofs. В Ubuntu для этого вы можете запустить service reload autofs root.

  6. Проверьте, чтобы убедиться, что это работает. Запустите ls /home/Shares/TV_SHOWS и посмотрите, есть ли в нем ваши файлы.


Примечание . Из-за дополнительной информации, добавленной к вопросу, следующий ответ больше не применяется. Я оставлю это здесь, однако, в случае, если это поможет кому-то в будущем.


Вы можете попробовать добавить опцию nofail в каталог /etc /fstab.

Из man-страницы по монтированию:

nofail

    Do not report errors for this device if it does not exist.

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

Есть еще один вариант, который может быть полезен: retry (nfs manpage)

retry=n

    The number of minutes that the mount(8) command retries an NFS mount
    operation in the foreground or background before giving up. If this
    option is not specified, the default value for foreground mounts is 2
    minutes, and the default value for background mounts is 10000 minutes
    (80 minutes shy of one week). If a value of zero is specified, the
    mount(8) command exits immediately after the first failure.

По умолчанию монтирование NFS является монтированием переднего плана и, следовательно, должно произойти сбой после 2 минут попыток. Вы всегда можете вручную установить это значение на определенное время, чтобы оно могло быстрее работать, если сервер NFS недоступен, что в сочетании с параметром nofail может заставить его работать так, как вы хотите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .