Крепления CIFS висят при чтении

13

У меня проблема с кучей монтировок CIFS, которые выглядят так:

//192.168.10.2/remote-share /home/windows-shared/remote-share cifs defaults,user=xxx,password=xxx,uid=603,gid=603       0 0

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

Поэтому, когда я пытаюсь сделать это, lsя получаю это:

ls: cannot access /home/windows-shared/remote-share: Host is down

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

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

Обновить:

Добавление этих параметров в команду монтирования также не помогло:

soft,timeo=300,retrans=3
Александру Плугару
источник
Вы пытались использовать timeo=nи retrans=mсократить интервал ожидания?
MadHatter
@MadHatter Пробую сейчас. Я посмотрю, если это работает. Благодарю.
Александру Плугару
@MadHatter добавление этих параметров ничего не меняет
Alexandru Plugaru
Что вы подразумеваете под « ничего не меняет »; Вы могли бы быть немного более количественным, и возможно также описательным?
MadHatter
@MadHatter by ничего не меняет, я имею в виду, что предложенные вами изменения не улучшили ситуацию. Я уточняю, добавление этих параметров не улучшило и не ухудшило проблему. Любой вызов файла по-прежнему зависает.
Александру Плугару

Ответы:

1

Я очень рекомендую AutoFS.

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

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

Вот несколько очень простых инструкций:

  • Установить из apt-get: sudo apt-get install autofs -y
  • Удалить все внутри /etc/auto.masterи заменить на:/- /etc/auto.cifs --timeout=20 --ghost
  • Добавьте одну строку, подобную этой, в auto.cifs для каждого монтирования:/mnt/LOCAL/MOUNT/PATH -fstype=cifs,rw,noperm,credentials=/etc/auto.credentials ://SERVER/MOUNT
  • В /etc/auto.credentialsдобавьте следующее содержание: username=USERNAME password=PASSWORD
  • И, наконец, sudo service autofs restart.

Вот и все.

Бен Янке
источник
1
Как это должно исправить зависание текущего соединения?
Свен
Это не так. Вы настраиваете параметры монтирования один раз, чтобы использовать autofs, и в большинстве случаев вы перестаете получать зависшие соединения. Это должно решить проблему, а не симптом.
Бен Янке
0

В большинстве случаев, вы можете по крайней мере , удалить подвесное монтирование, делая ленивое размонтирование: umount -l //server/share. Может быть, вы можете поместить это в подвесной крюк (насколько я понимаю, ваши машины останавливаются ночью и работают несколько дней?)

azrdev
источник