Вопрос или проблема
Я монтирую сетевой диск с помощью
sudo mount -t cifs //serverPath/folderName /myMountPoint -o credentials=localPath/myCredentials,uid=1000,gid=1000,file_mode=0777,dir_mode=0777,_netdev,vers=3.0,noserverino
Это работает нормально, я могу видеть и изменять все свои файлы. Через некоторое время, обычно через час или около того, я получаю такую ошибку:
kernel: CIFS: VFS: \\DFS01.serverPath __cifs_put_smb_ses: Session Logoff failure rc=-11
Обратите внимание, что “DFS01” нет в моих командах монтирования. Его также нет в /etc/fstab.
Затем через некоторое время я начинаю получать повторяющиеся сообщения такого типа каждые 1-10 секунд.
CIFS: VFS: reconnect tcon failed rc = -40
На этом этапе система начинает сильно зависать. Средняя нагрузка в top увеличивается до 2 с чем-то. И я больше не могу получить доступ к своим файлам.
Если я пытаюсь выполнить “sudo umount -f”, он говорит “цель занята”. Если я использую “-l”, он отмонтирует, но я все еще получаю сообщение об ошибке tcon failed.
После перезагрузки всё работает нормально, на некоторое время.
Я пробовал запускать скрипт “keep_alive”, который просто касается файла в сетевом пути каждые несколько минут. Это, кажется, не помогает.
Дополнение (дополнительные детали):
- использую Ubuntu 24.04.1 LTS
- не уверен, какой сервер – его предоставляет моя организация
- проблем не было до обновления с Ubuntu 22 на 24.
- keep alive делает следующее: touch –no-create /myMountPoint/toto
Ответ или решение
Ваша проблема с монтированием CIFS-соединения, которое перестает работать через 30-60 минут, представляет собой сложный технологический вопрос, требующий многостороннего анализа и подхода. Давайте разберем теоретические аспекты, проанализируем примеры и выработаем практические решения.
Теория
Основной причиной проблемы может быть потеря связи между клиентом, работающим на вашей версии Ubuntu, и сервером CIFS, который предоставляет общие ресурсы. CIFS (Common Internet File System) — это протокол, который использует SMB (Server Message Block) для обмена файлами и другими ресурсами в сети. Однако, с выходом новых версий ОС или протоколов, могут возникать проблемы совместимости.
Судя по предоставленной информации, вы используете протокол версии SMB 3.0. Этот протокол поддерживает функции, такие как шифрование данных на уровне файла, но он также может требовать обновленного ПО как на стороне клиента, так и сервера.
Ошибка __cifs_put_smb_ses: Session Logoff failure rc=-11
может указывать на проблему с поддержанием сеанса связи или разрывом этой связи. Ошибка reconnect tcon failed rc = -40
указывает на проблемы с повторным подключением к контроллеру связи (tcon).
Пример
Проблемы часто возникают из-за несовпадения или несовместимости настроек между клиентом и сервером. Например, если сервер работает под управлением устаревшей ОС или версии SMB, это может привести к подобным проблемам, особенно если обновилась ОС-клиент (в вашем случае это переход с Ubuntu 22.04 на 24.04.1).
Практические рекомендации
-
Проверка серверных настроек: Хотя вы не знаете точно, что за сервер используется, вы можете запросить техподдержку вашей организации, чтобы уточнить детали версии и настроек сервера. Это может быть полезно для выявления несовместимостей.
-
Журналирование и диагностика: Проверьте системные логи более детально. В
/var/log/syslog
или черезdmesg
можно найти дополнительную информацию об ошибках, которые могут предоставить глубжее понимание. -
Настройки монтирования: Попробуйте изменить некоторые параметры монтирования. Например, попробуйте использовать разные версии SMB:
vers=2.1
илиvers=3.1.1
. Это способ найти наиболее стабильную настройку. -
Поддержка сеанса: Рассмотрите возможность изменения параметров таймаута соединения или keep-alive в конфигурации CIFS. Существуют параметры
echo_interval
иactimeo
, которые управляют частотой пингования сервера и временем жизни кэша доступа к файлам соответственно. -
Обновление системы: Проверьте наличие обновлений для вашей версии Ubuntu. Возможно, новые исправления устранят проблемы с CIFS.
-
Альтернативные методы устранения busy status: Использование
lsof | grep /myMountPoint
поможет идентифицировать процессы, удерживающие файловую систему. Возможно, вам потребуется принудительно завершить эти процессы перед размонтированием. -
Диагностика сети: Убедитесь, что само сетевое подключение надежно, с минимальными потерями пакетов и низкой задержкой. Проблемы в сети могут также быть причиной потерянных сессий.
-
Поиск временного решения: Если проблема явно связана с Ubuntu 24.04.1, временно можно рассмотреть даунгрейд до 22.04, где это точно работало, или использовать виртуализированную среду для создания среды с предыдущей версией.
Заключение
Проблемы с CIFS, особенно после недавнего обновления ОС, не являются редкостью и могут быть связаны с множеством факторов — от личных настроек клиента и сервера, до сетевых параметров и обновлений системы. Однако, с учетом проведенного анализа и использования вышеописанных рекомендаций, вы сможете успешно переопределить настройки и устранить проблемы с нестабильной работой монтирования CIFS.