Наша установка:
Сервер: 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 и, в конечном итоге, Kerberos. Windows Server 2008 приближается к десятилетней давности и находится в промежутке между тем, когда NTLM был окончательно удален и все еще был разрешен по причинам устаревания.
К несчастью для всех, причины наследия включает действительно старые версии CentOS. Мол, версия 5 старая.
Как только вы снова сделаете это быстро, повторите этот tcpdump и сравните с первым. Вы увидите различия!