The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Проблема в работе Samba 4 (переодически виснет), !*! invisibility, 07-Май-18, 12:23  [смотреть все]
Доброго дня, форумчане.
Прошу помощи с Samba 4.5.0. Установил самбу по инструции в Centos7

в результате получил контроллер домена, который работает. После ввода компьютеров в домен, обнаружилась проблема, а именно: через разные неравные промежутки времени "виснет" доступ к общим ресурсам на сервере. Нашел в Сети, что нужно увеличить количество открываемых файлов иначе самба виснет
     fs.file-max = 500000

увеличил, проблема осталась.
Так же задал время жизни соединения:

     net.ipv4.tcp_keepalive_time = 300
     net.ipv4.tcp_keepalive_intvl = 30
     net.ipv4.tcp_keepalive_probes = 6


Указанные манипуляции делал в sysctl.conf

По рекомендации начал проверять службы DNS и Winbind и тут вылезла удивительная вещь: оказывается во время "зависания" самбы не работает именно winbind или, вернее сказать, не отвечает на запросы (wbinfo -p не может определить домен)

в логах самбы ничего вразумительного нет (поднимал лог левел до 9-ки ничего толком по данной ситуации не увидел), лог winbind'а практически пустой.

ниже smb.conf

# Global parameters
[global]
netbios name = DC-PFARM
realm = PFARM.LAN
workgroup = PFARM
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc
server role = active directory domain controller
bind interfaces only = yes
interfaces = 192.168.7.251/24
security = user

#отключение технологии sasl wrapping (защита соединения с ldap)
client ldap sasl wrapping = plain
#отключения верификации клиентов
client signing = off
#отключения защиты DCE/RPC
require strong key = false
winbind sealed pipes = false

idmap config * : backend = tdb
idmap config * : range = 3000-7999
winbind nss info = template
winbind use default domain = true
log level = 3
log file = /var/log/samba/%S.log
max log size = 512000
password server = DC-PFARM
logon drive = h:
logon path = \\dc-pfarm\home\%U

#отключаем службу принтеров
load printers = no
printing = bsd
printcap name = /dev/null

#For ACL attribute
vfs objects = acl_xattr
map acl inherit = Yes
store dos attributes = Yes

#для обращений по обозреванию сети
local master = yes
preferred master = yes
os level = 255
domain master = yes
wins support = yes


[netlogon]
path = /var/samba/netlogon
read only = No
write ok = Yes
browseable = no
guest ok = no
public = yes

Прошу помочь решить проблему, указать куда ковырять и т.д.

  • Проблема в работе Samba 4 (переодически виснет), !*! babaj75, 14:59 , 07-Май-18 (1)
    /etc/security/limits.conf

    попробуй добавить (изменить)

    *                soft    nproc          unlimited
    *                hard    nproc          unlimited

    • Проблема в работе Samba 4 (переодически виснет), !*! invisibility, 10:20 , 08-Май-18 (4)
      > /etc/security/limits.conf
      > попробуй добавить (изменить)
      > *            
      >     soft    nproc  
      >        unlimited
      > *            
      >     hard    nproc  
      >        unlimited

      прошу рассказать причину в необходимости этих настроек. данные настройки должны выполнятся на высоконагруженных серверах (так в доке написано), у меня же всего 26 станций + сервер БД (по моему это не большая нагрузка на сервер AD).

      я попробую после праздников так покрутить (дабы не положить систему совсем). о результатах сообщу

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

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

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

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

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

    • Проблема в работе Samba 4 (переодически виснет), !*! invisibility, 10:15 , 08-Май-18 (3)
      >> Прошу помочь решить проблему, указать куда ковырять и т.д.
      > Похоже на проблемы с 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'а - используется в строенный в самбу, логи его практически всегда пустые.

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

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

      • Проблема в работе Samba 4 (переодически виснет), !*! PereresusNeVlezaetBuggy, 06:30 , 15-Май-18 (6)
        >>> Прошу помочь решить проблему, указать куда ковырять и т.д.
        >> Похоже на проблемы с 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.

  • Проблема в работе Samba 4 (переодически виснет), !*! invisibility, 15:18 , 30-Май-18 (7)
    тему надо наверное закрывать, т.к. "она умерла", к сожалению
    спасибо откликнувшимся

    • Проблема в работе Samba 4 (переодически виснет), !*! rvs2016, 20:42 , 06-Фев-20 (9)
      > тему надо наверное закрывать, т.к. "она умерла", к сожалению
      > спасибо откликнувшимся

      Не. Закрывать тему не надо. Она пока ещё "живее всех живых".
      Я её как раз и нашёл поиском проблемы какого-то непонятного подвисания самбы.

      На двух машинах у меня крутятся самбы четвёртные - они работают нормально.
      А на одной машине - самба 3х. На днях начал пропадать доступ к ейным сетевым ресурсов с других станций. Перезапускаю её на машине - service samba restart, а она никак не завершает свою работу во время выполнения этой команды рестарта, пока ручками не завалишь указанный в рестарте процесс, причём не 15-м сигналом (kill -15), а только девятым (kill -9).

      Почему так происходит, что за зависоны такие странные - это я так и не понял.

      Ну временно для этой жизни системы наваял скриптик, который спасает эту ситуацию и доступ к ресурсам этой самбы восстанавливается из сети. А в будущих жизнях в более новых версиях самбы, надеюсь, этой проблемы больше не будет.

  • Проблема в работе Samba 4 (переодически виснет), !*! invisibility, 13:11 , 23-Июл-18 (8)
    Если еще кому-нибудь интересно - закончилось установкой более свежей версии сабмы. сейчас стоит 4.7.8.
    На протяжении почти 3-х недель боков не наблюдал...





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

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