mount.cifs: Как избежать долгих тайм-аутов после переключающегося дюйм/с (соединенный проводом <=> Wi-Fi)

При расстыковке моего ноутбука от базового блока с его проводным соединением Ethernet я позволяю администратору сети автоматически включить радио Wi-Fi. После ввода базового блока я позволяю ему выключить Wi-Fi, потому что проводное соединение предпочтительно.

Проблема: Все доступы к файлам или папкам на cifs совместно используют, я смонтировался, прежде чем зависнут в течение 120 секунд. Это приводит к зависанию приложений, если они получают доступ к тем долям (как сессии оболочки в тех каталогах, filemanagers с открытой вкладкой там, и т.д.). Их процессы застревают в ужасном непрерываемом состоянии.

Журнал ядра говорит: ядро: CIFS VFS: Сервер не ответил за 120 секунд. Повторное подключение...

Вопрос: Как я могу уменьшить тот тайм-аут так, чтобы я не тратил 2 + минуты на кофе каждый раз, когда я переключаюсь на базовый блок, потому что все мои приложения зависают?

Подробнее:

  • Оба интерфейса имеют другого дюйм/с на той же подсети и могут, очевидно, оба достигнуть файлового сервера
  • образец/etc/fstab строка:

    //сервер/установка/mnt/net/install cifs uid=bob, учетные данные =/etc/cifs-credentials, _netdev, пользователь, мягкий 0 0

  • демонстрационный вывод от монтирования | grep cifs:

    //сервер/установка на/mnt/net/install вводит cifs (rw, nosuid, nodev, noexec, в реальном времени, vers=1.0, cache=strict, username=bob, domain=bobsdom, uid=1000, forceuid, gid=0, noforcegid, addr = [serverIP], Unix, posixpaths, serverino, acl, rsize=1048576, wsize=65536, actimeo=1, _netdev, пользователь)

Что я попробовал:

  • "Мягкие" и "трудные" опции монтирования. Они не изменяют то поведение, даже при том, что текст страницы справочника на "мягком" предлагает это
  • Удостоверенный нет никакой потери пакетов ни в одном интерфейсе, и задержка и пропускная способность превосходны (GBit Ethernet и Wi-Fi на 802.11 акра с сильным сигналом). Это убеждает меня, это - действительно cifs тайм-аут из-за изменения IP.
  • Сервер (самба 3.6) не имеет никаких сетевых проблем и никакой потери пакетов также.
  • Погугленный для кнопки в cifs для сокращения тайм-аута до чего-то разумного как 15 секунд. Только найденный для Windows. Это назвало HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\SessTimeout и точно, что я хочу. Интересно MS уменьшил этот тайм-аут в Win 8.1 к 20 секундам также...
  • Используя метрики маршрута вместо того, чтобы повернуть Wi-Fi включения - выключения, чтобы иметь оба маршрута и позволить ядру просто предпочесть маршрут Ethernet. Этот подход испорчен, хотя, потому что затем ядро отправляют ответы на пакеты, прибывающие через беспроводную связь в проводном интерфейсе. Мог быть решен с некоторым "IP правилом" волшебство, но я действительно предпочту просто переключать радио Wi-Fi.
3
задан 13 April 2017 в 15:25

1 ответ

Одно рабочее решение состоит в том, чтобы установить оба интерфейса на тот же статический IP-адрес. Тот путь cifs не делает тайм-аута, потому что это не должно восстанавливать соединение от различного IP на той же подсети.

Это также означает, что соединения SSH поддерживаются во время wired< => Wi-Fi переключается, не нуждаясь необычные инструменты как Mosh.

Это имеет недостатки, также:

  • Требует статических IP-адресов вместо конфликта DHCP
  • IP если мои оба интерфейса где одновременно. Мой сценарий диспетчера администратора сети предотвращает это, все же.
2
ответ дан 1 December 2019 в 17:03

Другие вопросы по тегам:

Похожие вопросы: