Автор Тема: Проблема при переходе с SMB1 на SMB2.1+  (Прочитано 3002 раз)

Оффлайн Yar4e

  • Давно тут
  • **
  • Сообщений: 27
    • Email
Добрый день, сообщество! Готовлю SAMBA-сервер на P9, взамен устаревшему на P7 (использовался SMB1). В ходе тестирования выяснилось, что при использовании версии протокола 2.1+ (SMB1 как-бы давно всё) возникает существенная проблема с параллельным доступом к файлам, а именно: пользователь1 открывает файл в LibreOffice (или другом локальном офисном пакете), к которому у него есть доступ на запись, и работает в нём; пользователь2 хочет открыть данный файл на чтение, но заместо ""классического" сообщения о том, что этот файл открыт тем-то, открыть-ли его для записи?", получаем запрос на выбор кодировки от LO с последующим открытием пустого файла. В консоли если пользователь2 сделает cat имяфайла, то увидит сообщение "Отказано в доступе". Причём, если смонтировать шару со старого сервера с P7 с указанием опции vers=2.1, то там происходит точно такое-же поведение, а с vers=1.0 всё как и прежде ОК, то есть пользователь2 видит сообщение о том, что файл открыт другим пользователем и ему предлагается открыть файл для чтения. Предполагаю, что дело в нехватке одной-двух опций в smb.conf, которые это исправят, но вот каких именно? Сервер на обновлённом P9 с почти дефолтным smb.conf, кроме добавления опций:
mangled names = no
vfs objects = catia fruit
fruit:encoding = native
Права на сервере разруливаются ACL и там тоже всё норм.
Клиенты на P8,P9 и немного Win7. Собственно если-бы не Win7, то проблема вроде решается если добавить kernel oplocks = yes в smb.conf. При этом P8 и P9 отрабатывают ожидаемо (используя по умолчанию SMB3.1.1), а Win7 как и раньше открывает пустой файл, что нельзя назвать удовлетворительным результатом.

Наверняка кто-то сталкивался при переходе со старой SAMBA с такой ситуацией. Прошу помощи. Нужно чтобы все клиенты при использовании SMB2.1+ корректно понимал что файл уже заблокирован на запись другим пользователем и корректно предлагали открыть файл на чтение как это и должно быть. Желательно конечно при этом чтобы клиенты с P8 и P9 использовали SMB3.1.1, но если в итоге всё заработает только на 2.1, то тоже сойдёт.

Оффлайн Yar4e

  • Давно тут
  • **
  • Сообщений: 27
    • Email
Re: Проблема при переходе с SMB1 на SMB2.1+
« Ответ #1 : 13.07.2021 15:18:43 »
Тем, кто столкнётся с подобным в будущем, сообщаю: добиться правильной работы блокировок на всех клиентах пока не удалось. Остановился на варианте с "locking = no" в smb.conf. При этом клиенты с Win7 подключаются (по smb2.1) и совершают блокировку открытых на запись файлов корректно, так что остальные клиенты на всех ОС могут открыть на чтение, но не могут писать в этот файл. Клиенты на P8/P9 (smb3.1.1) не создают блокировок и сохранность файлов обеспечивается только лок-файлами офисных пакетов, что в принципе нам подходит, так как совместного редактирования файлов других форматов у нас не происходит. Хотелось-бы конечно чтобы и клиенты на Linux умели нормально работать с блокировками в SAMBA, но пока не нашёл как этого добиться.