CIFS: VFS: Server not responding, session lost — Решение сбоя SMB в Linux
Архитектура ошибки и симптомы сбоя
Сообщение «CIFS: VFS: Server not responding, session lost» (или «CIFS: VFS: \\server\share has not responded in 180 seconds. Reconnecting...») генерируется драйвером ядра CIFS / SMB2 / SMB3 client (cifs.ko). Ошибка означает, что SMB-сервер (Windows Server, Samba, Synology NAS) перестал отвечать на фоновые запросы подтверждения активности (SMB Echo Request) либо разорвал TCP-сессию по порту 445. Драйвер ядра Linux объявляет сессию потерянной и входит в бесконечный цикл реконнекта, блокируя файловые операции.
Диагностическая таблица параметров сбоя
| Параметр | Значение | Инженерный смысл сбоя |
|---|---|---|
| Echo Interval | Default: 60 sec | Интервал отправки контрольных SMB-пакетов Keep-Alive. |
| SMB Dialect | SMB 2.1 / 3.0 / 3.1.1 | Версия протокола согласования шифрования и блокировок. |
| Session Lost | TCP 445 Drop / Reset | Аварийный сброс дескрипторов сессии и блокировка файловых дескрипторов. |
Пошаговое дерево решений и сценарии траблшутинга
Сценарий 1: Проверка статуса SMB-сессий через procfs
# Просмотр активных сессий и открытых файлов CIFS:
cat /proc/fs/cifs/DebugData
# Просмотр статистики ошибок CIFS:
cat /proc/fs/cifs/StatsСценарий 2: Оптимизация параметров монтирования SMB в /etc/fstab
Укажите современный диалект vers=3.1.1, настройте интервал эхо-запросов и мягкую обработку отключений:
# Пример надежной строки в /etc/fstab:
//smb-server/share /mnt/smb cifs credentials=/etc/cifs.creds,vers=3.1.1,echo_interval=30,actimeo=1,nobrl,soft,nofail,_netdev 0 0Сценарий 3: Отключение клиентского кэширования блокировок (oplocks / lease)
Если Windows-сервер сбрасывает сессии при одновременной записи нескольких клиентов:
# Монтирование с отключением блокировок и кэширования byte-range lock:
sudo mount -t cifs //smb-server/share /mnt/smb -o credentials=/etc/cifs.creds,vers=3.1.1,nobrl,cache=noneСценарий 4: Экстренное размонтирование зависшей SMB шары
# Ленивое размонтирование точки CIFS:
sudo umount -l /mnt/smbITSTM выполнит аудит SMB-инфраструктуры, настройку DFS-неймспейсов, Kerberos-аутентификации и кластеризацию Samba CTDB.
Частые вопросы (FAQ)
Что дает опция nobrl при монтировании CIFS?
Опция nobrl (No Byte-Range Locks) запрещает отправку запросов на блокировку диапазонов байтов на Windows-сервер. Это решает проблемы зависаний приложений (например, баз данных SQLite, 1С, систем бэкапа), которые не умеют корректно обрабатывать сетевые локи Windows.
Почему не следует использовать устаревший протокол vers=1.0 (SMBv1)?
Протокол SMBv1 уязвим (уязвимости WannaCry / EternalBlue), не поддерживает шифрование, работает медленно и отключен по умолчанию во всех современных версиях Windows Server и Linux.
Что делает параметр echo_interval=30?
Он указывает драйверу отправлять SMB Echo пакеты каждые 30 секунд. Если промежуточный межсетевой экран сбрасывает неактивные TCP-соединения через 60 секунд, эта опция предотвращает разрыв сессии.
Как безопасно хранить пароль для монтирования cifs в Linux?
Создайте файл /etc/cifs.creds с правами 600 (chmod 600) и содержимым: username=user, password=pass, domain=DOMAIN. Ссылайтесь на него через опцию credentials=/etc/cifs.creds.