URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID14
Нить номер: 2276
[ Назад ]

Исходное сообщение
"Samba укладывает FreeBSD-сервер"

Отправлено Septima , 18-Фев-10 15:04 
Добрый день сообществу!

Случилась такая не очень приятная история: в одном из филиалов стоял старенький сервачок в качестве inet-gw (bind, squid, socks5, dhcpd, sendmail, openvpn)
uname -a
FreeBSD xxxxxxxx 6.3-PRERELEASE FreeBSD 6.3-PRERELEASE #1: Tue Oct 30 04:56:47 EET 2007    root@xxxxxxxx:/usr/obj/usr/src/sys/XXXXXXXX  i386

отрывок из dmesg:
CPU: Pentium II/Pentium II Xeon/Celeron (334.09-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x660  Stepping = 0
  Features=0x183f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR>
real memory  = 67108864 (64 MB)
avail memory = 56102912 (53 MB)

Понимаю, что никакая машинка, но ставилось это еще году в 2005...

Для обмена файлами позже в процессе работы на него была еще установлена в один прекрасный день samba-3.0.21b,1, из-за некоторых особенностей работы винды. Все это работало вполне терпимо, состав народа менялся от 3 до 10 +-3 человек, но сервер стал периодически падать. Чтобы не мучить дедушку и отправить его на заслуженный отдых, в период, когда народа стало больше 10 человек, была выделена новая машинка:

CPU: Intel(R) Celeron(R) CPU 1.70GHz (1699.95-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf13  Stepping = 3
  Features=0x3febfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM>
real memory  = 259981312 (247 MB)

uname -a
FreeBSD xxxxxxxx_new 7.2-STABLE FreeBSD 7.2-STABLE #8: Wed Sep 23 16:22:06 EEST 2009     root@xxxxxxxx_new:/usr/obj/usr/src/sys/XXXXXXXX  i386

На нее перетащили почти все сервисы, из-за замудреной конфигурации на старом ящике оталась только почта для дальнейшего переноса в спокойной вдумчивой обстановке. Самое удивительное, что "дедушка" стал реже перегружаться, а новый сервер стал падать с периодичностью, примерно, как раньше "дедушка". В последнее время ребуты участились. Эксперимент показал, что попытки залить на шару большой файл практически гарантированно приводит к ребуту или, иногда, вмертвую вешает сервер - не работает даже консоль. Проверялось на исталляторе OpenOffice.org 3.2 win - чуть больше 150 метров. В то же самое время, по ssh эти файлы залились без всяких тараканов. С шары сливаются тоже без проблем. Самбу пересобирал - сейчас стоит 3.0.37.

/usr/local/etc/smb.conf:
[global]
   workgroup = INTRANS
   netbios name = xxxxxxxx
   security = user
   hosts allow = 192.168.0. 127.
   load printers = no
  guest account = nobody
   log file = /var/log/samba/log.%m
   max log size = 500
   socket options = TCP_NODELAY SO_KEEPALIVE SO_BROADCAST SO_RCVBUF=4096 SO_SNDBUF=4096
   interfaces = rl0
   local master = yes
   os level = 60
   preferred master = yes
   dns proxy = no
   display charset = koi8-u
   unix charset = koi8-u
   dos charset = UTF-8
max open files = 25000
[common]
  comment = Обменник
  path = /var/samba/common
  read only = No
  create mask = 0770
  directory mask = 0770
  browseable = yes
  writable = yes
  guest ok = yes

Если ставить security = user - частота падений увеличивается.

В log.smbd периодически падает такое:
[2010/02/17 09:48:02, 0] lib/util_sock.c:set_socket_options(261)
  Failed to set socket option TCP_NODELAY (Error Connection reset by peer)
[2010/02/17 09:48:02, 0] lib/util_sock.c:get_peer_addr(1224)
  getpeername failed. Error was Socket is not connected
[2010/02/17 11:35:57, 0] smbd/server.c:open_sockets_smbd(531)
  open_sockets_smbd: accept: Software caused connection abort

в log.nmbd - в основном отчеты о том, что самба занимается выборной деятельностью, хотя случается и такое:
[2010/02/15 15:08:37, 0] libsmb/nmblib.c:send_udp(793)
  Packet send failed to 192.168.0.14(137) ERRNO=No buffer space available
[2010/02/15 15:08:37, 0] nmbd/nmbd_packets.c:reply_netbios_packet(992)
  reply_netbios_packet: send_packet to IP 192.168.0.14 port 137 failed
[2010/02/15 15:08:37, 0] libsmb/nmblib.c:send_udp(793)
  Packet send failed to 192.168.0.14(137) ERRNO=No buffer space available
[2010/02/15 15:08:37, 0] nmbd/nmbd_packets.c:reply_netbios_packet(992)
  reply_netbios_packet: send_packet to IP 192.168.0.14 port 137 failed
[2010/02/15 15:08:37, 0] libsmb/nmblib.c:send_udp(793)
  Packet send failed to 192.168.0.21(137) ERRNO=No buffer space available
[2010/02/15 15:08:37, 0] nmbd/nmbd_packets.c:reply_netbios_packet(992)
  reply_netbios_packet: send_packet to IP 192.168.0.21 port 137 failed
[2010/02/15 15:12:05, 0] nmbd/nmbd.c:main(723)

в /var/log/messages полно записей такого плана:
Feb 18 10:19:43 xxxxxxxx_new smbd[5669]:   getpeername failed. Error was Socket is not connected
Feb 18 10:19:43 xxxxxxxx_new smbd[5669]: [2010/02/18 10:19:43, 0] lib/access.c:check_access(327)
Feb 18 10:19:43 xxxxxxxx_new smbd[5669]: [2010/02/18 10:19:43, 0] lib/util_sock.c:get_peer_addr(1224)
Feb 18 10:19:43 xxxxxxxx_new smbd[5669]:   getpeername failed. Error was Socket is not connected
Feb 18 10:19:43 xxxxxxxx_new smbd[5669]:   Denied connection from  (0.0.0.0)
Feb 18 10:19:43 xxxxxxxx_new smbd[5669]: [2010/02/18 10:19:43, 0] lib/util_sock.c:get_peer_addr(1224)
Feb 18 10:19:43 xxxxxxxx_new smbd[5669]:   getpeername failed. Error was Socket is not connected
Feb 18 10:19:43 xxxxxxxx_new smbd[5669]:   Connection denied from 0.0.0.0
Feb 18 10:19:43 xxxxxxxx_new smbd[5669]: [2010/02/18 10:19:43, 0] lib/util_sock.c:write_data(562)
Feb 18 10:19:43 xxxxxxxx_new smbd[5669]:   write_data: write failure in writing to client 0.0.0.0. Error Broken pipe
Feb 18 10:19:43 xxxxxxxx_new smbd[5669]: [2010/02/18 10:19:43, 0] lib/util_sock.c:send_smb(761)
Feb 18 10:19:43 xxxxxxxx_new smbd[5669]:   Error writing 5 bytes to client. -1. (Broken pipe)

Машин с адресом 0.0.0.0 в сети нет, tcpdump трафика с такими адресами не показывает. Есть у мну подозрение, что завелся какой-то новый зверь из вирусни, но ни drweb, ни касперский ничего не находят... В другом филиале стоит похожая конфигурация с аптаймом до двух-трех месяцев, если свет не отрубают... Если у кого-нибудь есть мысли по данной ситуации - буду очень признателен за помощь.


Содержание

Сообщения в этом обсуждении
"Samba укладывает FreeBSD-сервер"
Отправлено Сергей , 18-Фев-10 16:25 
Я бы порекомендовал бы увелисить размер буфера
socket options = SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192
smb ports = 139
wins support = yes
name resolve order = wins dns bcast
А также как расрешается имя копьютера, 0.0.0.0 все-таки похоже на броадкаст

"Samba укладывает FreeBSD-сервер"
Отправлено Septima , 18-Фев-10 18:55 
> Я бы порекомендовал бы увелисить размер буфера
> socket options = SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192
> smb ports = 139
> wins support = yes
> name resolve order = wins dns bcast
> А также как расрешается имя копьютера, 0.0.0.0 все-таки похоже на броадкаст

бродкаст с таким адресом - на мой взгляд, больше похоже на вирус, т.к. винда обычно использует бродкасты в пределах сети, а тут уж прям замах на весь интернет...


"Samba укладывает FreeBSD-сервер"
Отправлено QuAzI , 19-Фев-10 08:38 
Вроде для броадкастов 255.255.255.255 "на весь тырнет" =)
0.0.0.0 скорее говорит о том, что он кого-то не нашёл и адрес не определил.


"Samba укладывает FreeBSD-сервер"
Отправлено QuAzI , 18-Фев-10 16:32 
max open files должны быть нормально настроены не только в самбе, но и глобально
%sysctl -a | grep "maxfiles"
kern.maxfiles: 12288
kern.maxfilesperproc: 11059

Убедитесь что вам нужно socket options (заремарьте и сравните падучесть, а заодно и скорость. ИМХО скорость по дефолту будет выше).
prerelease и какая-то бета самбы тоже не самая стабильная вещь, обновитесь чтоли?
Ну и судя по тому что у вас там электронка и что-то ещё болтаются, гляньше TOP, может у вас тупо оперативы нехватает?


"Samba укладывает FreeBSD-сервер"
Отправлено Septima , 18-Фев-10 19:07 
>max open files должны быть нормально настроены не только в самбе, но
>и глобально
>%sysctl -a | grep "maxfiles"
>kern.maxfiles: 12288
>kern.maxfilesperproc: 11059
>
>Убедитесь что вам нужно socket options (заремарьте и сравните падучесть, а заодно
>и скорость. ИМХО скорость по дефолту будет выше).

Привычка использовать socket options сохранилась еще с FreeBSD 4.3 - какая тогда версия самбы была я уже не помню. Не говоря уже о том, что на линуксе - еще раньше (ядра 1.0.х). Как-то из практики использования скорость работы с указанием этих параметров была выше, чем без них. С тех пор давно не проверял - просто перетаскивал из конфига в конфиг...

>prerelease и какая-то бета самбы тоже не самая стабильная вещь, обновитесь чтоли?

Самба примерно трехнедельной давности из портов. Что называется "фирма рекомендует" куда свежее-то? 3.2.х, 3.3.х, 3.4.х использовать пока не вижу особых причин: домен изображать мне не нужно, а чем они лучше текуще3.0.71 мне никто рассказть не смог.

>Ну и судя по тому что у вас там электронка и что-то
>ещё болтаются, гляньше TOP, может у вас тупо оперативы нехватает?

CPU:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Mem: 59M Active, 65M Inact, 38M Wired, 104K Cache, 34M Buf, 73M Free
Swap: 512M Total, 512M Free



"Samba укладывает FreeBSD-сервер"
Отправлено QuAzI , 19-Фев-10 08:52 
Видимо глюки для вас не являются причиной для обновления софта на исправленный.

"Samba укладывает FreeBSD-сервер"
Отправлено Warhead Wardick , 19-Фев-10 18:09 
>max open files должны быть нормально настроены не только в самбе, но и глобально

Золотые слова. Но не только этот параметр, все должно быть в гармонии.

>Убедитесь что вам нужно socket options (заремарьте и сравните падучесть, а заодно
>и скорость. ИМХО скорость по дефолту будет выше).

Вот и меня мучают смутные сомнения ... всё таки со времен 4-ки много чего изменилось :)

>SO_RCVBUF=4096 SO_SNDBUF=4096

Во первых - мало, во вторых - зачем? Памяти у тебя хватает - убери это, таким образом разрешив брать вплоть до лимита оси. Его кстати тоже проверь.


"Samba укладывает FreeBSD-сервер"
Отправлено sage444 , 19-Фев-10 09:56 
Когда у вас сервер ложиться на пинги он отвечает?
Если нет, то очень вероятно что узкое место у вас сетевые буфера - проверьте в системе и socket options.