The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Samba, вопросы интеграции Unix и Windows (Контроллер домена (PDC) и samba)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Проблема в работе Samba 4 (переодически виснет), invisibility (ok), 07-Май-18, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


2. "Проблема в работе Samba 4 (переодически виснет)"  +/
Сообщение от PereresusNeVlezaetBuggy (ok), 07-Май-18, 20:30 
> Прошу помочь решить проблему, указать куда ковырять и т.д.

Похоже на проблемы с DNS или WINS. Вообще, если WINS вам не нужен (а зачем он нужен в домене?), то лучше бы его отключить, конечно.

Проверьте, что в /etc/resolv.conf нет лажи и что все указанные там сервера отвечают одинаково и быстро.

Лимиты увеличивать здесь точно не поможет.

UPD: Заработался. WINS вам нужен, конечно, это я уже с NetBIOS путаю. Прошу прощения.

Ответить | Правка | Наверх | Cообщить модератору

3. "Проблема в работе Samba 4 (переодически виснет)"  +/
Сообщение от invisibility (ok), 08-Май-18, 10:15 
>> Прошу помочь решить проблему, указать куда ковырять и т.д.
> Похоже на проблемы с DNS или WINS. Вообще, если WINS вам не
> нужен (а зачем он нужен в домене?), то лучше бы его
> отключить, конечно.
> Проверьте, что в /etc/resolv.conf нет лажи и что все указанные там сервера
> отвечают одинаково и быстро.
> Лимиты увеличивать здесь точно не поможет.
> UPD: Заработался. WINS вам нужен, конечно, это я уже с NetBIOS путаю.
> Прошу прощения.

содерижимое resolv.conf
; generated by /usr/sbin/dhclient-script
nameserver 127.0.0.1

т.е. данный сервак и является DNS сервером. По мне так тут проблема с winbind. он не отвечает в такие моменты. насчет лимитов у меня так же есть сомнения. Причина: в моменты когда есть проблема процессов winbindd все 3 (как и в моменты нормальной работы сервера), а вот процессов smbd аномально много

>>/usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground

у меня 2 варианта: либо это кто-то пытается "подключиться" к серваку и DDoS-ит (что у меня вызывает сомнения), из-за чего winbindd не успевает обрабатывать запросы, либо winbindd перестает обрабатывать запросы, из-за чего и плодится аномально много одновременных попыток подключения.

в любом случае (мне кажется где тута собака и порылась)

по поводу DNS - какие мне проверки выполнить что бы определить, что он нормально определяется?
по поводу winbind'а - используется в строенный в самбу, логи его практически всегда пустые.

Ответить | Правка | Наверх | Cообщить модератору

5. "Проблема в работе Samba 4 (переодически виснет)"  +/
Сообщение от invisibility (ok), 11-Май-18, 14:01 
>> Прошу помочь решить проблему, указать куда ковырять и т.д.
> Похоже на проблемы с DNS или WINS. Вообще, если WINS вам не
> нужен (а зачем он нужен в домене?), то лучше бы его
> отключить, конечно.
>
>>|[sam-dom]# wbinfo --all-domains
>>|failed to call wbcListTrusts: WBC_ERR_WINBIND_NOT_AVAILABLE

вот такой вывод в моменты наблюдения проблемы.
из этого могу предположить, что все таки винбинд глючит. тем более, что перезапуск DNS'a проблему не решает

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

6. "Проблема в работе Samba 4 (переодически виснет)"  +/
Сообщение от PereresusNeVlezaetBuggy (ok), 15-Май-18, 06:30 
>>> Прошу помочь решить проблему, указать куда ковырять и т.д.
>> Похоже на проблемы с DNS или WINS. Вообще, если WINS вам не
>> нужен (а зачем он нужен в домене?), то лучше бы его
>> отключить, конечно.
>>
>>>|[sam-dom]# wbinfo --all-domains
>>>|failed to call wbcListTrusts: WBC_ERR_WINBIND_NOT_AVAILABLE
> вот такой вывод в моменты наблюдения проблемы.
> из этого могу предположить, что все таки винбинд глючит. тем более, что
> перезапуск DNS'a проблему не решает

Посмотрел исходники Samba — судя по всему, эта проблема возникает при любой ошибке доступа к UNIX-сокету, по которому должен быть доступен winbind. То есть: если сокет не доступен на чтение-запись, или если при чтении-записи происходит ошибка (кроме EAGAIN).

А дальше у меня глаза на лоб вылезли:


                ret = poll(&pfd, 1, 5000);
                // <...>
                if ((ret == 1) && (pfd.revents & (POLLIN|POLLHUP|POLLERR))) {
                        /* Do the Read */
                        int result = read(fd, (char *)buffer + nread,
                              count - nread);
                        if ((result == -1) || (result == 0)) {
                                /* Read failed.  I think the only useful thing we
                                   can do here is just return -1 and fail since the
                                   transaction has failed half way through. */
                                winbind_close_sock(ctx);
                                return -1;
                        }
                        nread += result;
                }

То есть даже если read() (или write(), там похожая ситуация) вернёт -1 + errno=EAGAIN, мы считаем, что жизнь кончена. Да, они используют неблокирующийся ввод-вывод, но работают полностью синхронно — видимо, чтобы выставлять таймауты. Первая мысль была: «как этот код может вообще работать?!». Но, видимо, при небольшом объёме передаваемых или отправляемых данных у них всё помещается в буфер сокета и всё хорошо. Если они всегда передают мало-мало данных, а транзакции в целом включают одну запись и одно чтение, то это даже может работать. Хотя всё равно может какой-нибудь не очевидный лимит вылезти.

К сожалению, wbinfo не сообщает нижележащую ошибку, по которой можно было бы понять, что именно обламывается: lstat/socket/connect/read/write. Думаю, вы можете в проблемный момент попробовать с помощью nc/netcat/socat подключиться к сокету winbind (скорее всего, он где-то в /run живёт). Ну или запустить wbinfo под strace.

Есть вариант, что winbind не успевает принимать подключения (переполнен backlog, его размер равен 5), почему — сложно сказать, но есть предположение, что они таки превращают где-то неблокирующийся ввод-вывод в обычный синхронный. Можно попробовать поизучать вывод от tevent, конечно... Но лучше было бы, думаю, запустить winbind под strace -f.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру