Назад | Перейти на главную страницу

mount.cifs слишком долго монтирует общую папку Windows

Наша установка:
Сервер: Windows Server 2008
Клиент: ШМЗ 6.6 (FreePBX, CentOS)
версия mount.cifs: 4.8.1
Версия smbclient: Версия 3.6.23-14.el6_6

Используя эту команду для подключения:

mount.cifs //192.168.0.10/Share /mnt/share -o "username=windowsuser,sec=ntlm,servern=SERVERNAME,password=windowsuserpassword"

Монтирование пустой папки занимает 1 минуту 3 секунды.

Вопрос: как ускорить процесс монтирования?

ОБНОВЛЕНИЕ 1: Возможно, вы заметили, что я не проводил никакой диагностики до написания этого сообщения. В основном потому, что я не знаю, с чего начать. Подскажите пожалуйста, как анализировать процесс подключения.

ОБНОВЛЕНИЕ 2: Ну, я запечатлел процесс монтирования, я вижу там 2 основных лага: ~ 10 и ~ 30 секунд. Хотя не могу понять причину. Не могли бы вы что-нибудь предложить? http://tinypic.com/r/2cxz21z/9

Это та проблема, в которой отслеживание пакетов может быть весьма полезным.

tcpdump -s 0 -i eth0 -w mount-trace.pcap

Затем выполните свое крепление. После завершения отмените tcpdump. Затем возьмите файл mount-trace.pcap где-нибудь, чтобы загрузить его в wirehark.

Это займет некоторое время, но монтаж томов окон, который занимает много времени, обычно происходит из-за того, что обе стороны разговора не могут согласиться с протоколом для продолжения разговора. Если вы посмотрите на страницу руководства для mount.cifs и посмотрите варианты sec= параметр, который вы используете, вы можете увидеть, сколько их существует.

В wirehark вы ищете длинные промежутки между частями разговора. Подобные вещи могут быть индикатором того, что время ожидания истекло, прежде чем перейти к методу восстановления после сбоя. CIFS очень хорошо поддерживается Wireshark, и вы можете многое узнать о том, как работает проверка подлинности Windows, просто наблюдая за различными этапами, через которые она проходит.

Если это слишком страшно, я предлагаю удалить sec=ntlm параметр из вашей команды монтирования и полагаться на значение по умолчанию или установить для него значение ntlmssp. Это связано с тем, что NTLM является старым диалектом протокола аутентификации Microsoft, позже замененным на NTLMv2 и, в конечном итоге, . Windows Server 2008 приближается к десятилетней давности и находится в промежутке между тем, когда NTLM был окончательно удален и все еще был разрешен по причинам устаревания.

К несчастью для всех, причины наследия включает действительно старые версии CentOS. Мол, версия 5 старая.

Как только вы снова сделаете это быстро, повторите этот tcpdump и сравните с первым. Вы увидите различия!