Ситуация в 3-х словах такая.Есть система, которая обрабатывает изображения. Система состоит из сервара-хранилища, на котором каталоги с данными расшарены по NFS, и есть машины, на которых работают клиенты (демоны), которые обрабатывают эти данные по запросу, т.е. изображение кладется на хранилище, далее обрабатывается на одной из машин-обработчиков.
Ранее, система состояла из сервера-хранилища, программного RAID5 и клиентов. Соединены были между собой сервер и килиенты при помощи 100 мбит сети и коммутатора. Все работало нормально до момента, когда узким местом стала сеть и обьемы хранилища. Железо было - интеловские серверныйе материнки и такие же сетевухи. Камни - ксеоны.
Было куплено железо (на выбор у меня не было возмоности повлиять, но железо мощное и современное) аппаратный RAID контроллер на хранилище адаптек SATA2, Intel(R) Core(TM)2 Duo CPU E7400 @ 2.80GHz, и материнская плата с сетевухами Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02). Сетевые гигибитные. Было куплены для клиентов на базе core i7 (на них ложится по процессору основная нагрузка на обработку), сетевухи на матерях там такие же.
На всех машинка opensuse 11.1 (сервис обработчик наш, ничего от машинок не требуется - никаких других сервисов кроме работы по NFS).
В итоге столкнулся с проблемами
1. На хранилиище регулярно
в начале------------[ cut here ]------------
WARNING: at net/sched/sch_generic.c:219 dev_watchdog+0x11c/0x1ad()
NETDEV WATCHDOG: eth1 (r8169): transmit timed out
Modules linked in: af_packet coretemp(N) binfmt_misc nfs nfsd lockd nfs_acl auth_rpcgss sunrpc exportfs cpufreq_conservative cpufreq_userspace cpufreq_powersave acpi_cpufreq fuse loop dm_mod thermal rtc_cmos rtc_core processor rtc_lib i2c_i801 button sr_mod r8169 mii i2c_core cdrom intel_agp pcspkr sg sd_mod crc_t10dif uhci_hcd ehci_hcd usbcore edd fan thermal_sys hwmon ext3 mbcache jbd ide_pci_generic ide_core ata_piix ata_generic pata_it8213 libata dock megaraid_sas scsi_mod
Supported: No
Pid: 0, comm: swapper Tainted: G 2.6.27.25-0.1-default #1Call Trace:
[<ffffffff8020da29>] show_trace_log_lvl+0x41/0x58
[<ffffffff8049a616>] dump_stack+0x69/0x6f
[<ffffffff8023d445>] warn_slowpath+0xa9/0xd1
[<ffffffff8043a64b>] dev_watchdog+0x11c/0x1ad
[<ffffffff80246099>] run_timer_softirq+0x18d/0x204
[<ffffffff8024264d>] __do_softirq+0x7d/0x107
[<ffffffff8020d2dc>] call_softirq+0x1c/0x28
[<ffffffff8020e583>] do_softirq+0x2c/0x68
[<ffffffff8024237a>] irq_exit+0x3f/0x85
[<ffffffff8021b66a>] smp_apic_timer_interrupt+0x95/0xae
[<ffffffff8020ccb6>] apic_timer_interrupt+0x66/0x70
[<ffffffffa0183fe7>] acpi_idle_enter_c1+0xe1/0x169 [processor]
[<ffffffff8040ac97>] cpuidle_idle_call+0x8b/0xc8
[<ffffffff8020b04a>] cpu_idle+0x88/0xd0---[ end trace 4e3b5f32b79e78ab ]---
Далее.
nfsd: last server has exited, flushing export cache
------------[ cut here ]------------
WARNING: at net/ipv4/af_inet.c:154 inet_sock_destruct+0x158/0x171()
Modules linked in: xt_tcpudp iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack ip_tables x_tables af_packet coretemp(N) binfmt_misc nfs nfsd lockd nfs_acl auth_rpcgss sunrpc exportfs cpufreq_conservative cpufreq_userspace cpufreq_powersave acpi_cpufreq fuse loop dm_mod thermal rtc_cmos rtc_core processor rtc_lib i2c_i801 button sr_mod r8169 mii i2c_core cdrom intel_agp pcspkr sg sd_mod crc_t10dif uhci_hcd ehci_hcd usbcore edd fan thermal_sys hwmon ext3 mbcache jbd ide_pci_generic ide_core ata_piix ata_generic pata_it8213 libata dock megaraid_sas scsi_mod
Supported: No
Pid: 2851, comm: nfsd Tainted: G W 2.6.27.25-0.1-default #1Call Trace:
[<ffffffff8020da29>] show_trace_log_lvl+0x41/0x58
[<ffffffff8049a616>] dump_stack+0x69/0x6f
[<ffffffff8023d4be>] warn_on_slowpath+0x51/0x77
[<ffffffff8046f373>] inet_sock_destruct+0x158/0x171
[<ffffffff8042105a>] sk_free+0x1d/0xd4
[<ffffffff8046eeb0>] inet_release+0x4e/0x54
[<ffffffff8041d8ee>] sock_release+0x19/0x72
[<ffffffff8041d973>] sock_close+0x2c/0x30
[<ffffffff802b24a0>] __fput+0xa1/0x165
[<ffffffffa01e2eac>] svc_sock_free+0x33/0x46 [sunrpc]
[<ffffffffa01ec993>] svc_xprt_free+0x31/0x3d [sunrpc]
[<ffffffff803618e1>] kref_put+0x41/0x4c
[<ffffffffa01ebe36>] svc_close_all+0x4a/0x62 [sunrpc]
[<ffffffffa01e2425>] svc_destroy+0x87/0x127 [sunrpc]
[<ffffffffa022e8ab>] nfsd+0x264/0x27e [nfsd]
[<ffffffff8024fa07>] kthread+0x47/0x73
[<ffffffff8020cf79>] child_rip+0xa/0x11---[ end trace 4e3b5f32b79e78ab ]---
NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
Сеть тупит по страшному, при этом нет прокачки через гигабитную сетку на скоростях более 150 мбит\сек (пока таких нагрузок нет, т.е. по сравнению со старой системой где всё в 100 мбит упелось, тут нагрузка пока выше немного). Прокачка в период обработки идет с фиксированной скоростью в течении длительного периода и зависит только от количества запросов, т.е. щас 150 мбит данных только передается.
Порывшись по инету сделал везде так ethtool -K ethХ tso off rx off tx off.Однако проблема осталась в периодическом отвале NFS шар и последующем и неприсоединении автоматом. При этом на хранилище la 30-40, тогда как на старом было 5-7.
Не знаю куда дальше и копать. Что делать - ума не приложу, железо мощнее, все настройки NFS притащил со старой системой. Но такое ущущение, что при работе сети какие-то сбои, а я их отследить не могу.
Помогите!!!!!!
Помогите!!!!!!
Помогите!!!!!!Да, ОС регулярно обновляю (раз в 2 недели). Думаю, вдруг в ядре или где глюк.
довлю еще вот
storage1:~ # ifconfig
eth0 Link encap:Ethernet HWaddr 00:1F:D0:2E:95:37
inet addr:192.168.4.41 Bcast:192.168.5.255 Mask:255.255.254.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6627647885 errors:260217 dropped:0 overruns:0 frame:260217
TX packets:13429252 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3466863885377 (3306259.0 Mb) TX bytes:2592313645 (2472.2 Mb)
Interrupt:250 Base address:0xe000eth1 Link encap:Ethernet HWaddr 00:1F:D0:2E:22:A7
inet addr:10.0.0.2 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5817676524 errors:5563378 dropped:0 overruns:0 frame:5563378
TX packets:11066443779 errors:0 dropped:966 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3163501661595 (3016950.2 Mb) TX bytes:5527645088387 (5271573.1 Mb)
Interrupt:249lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8779 errors:0 dropped:0 overruns:0 frame:0
TX packets:8779 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1527088 (1.4 Mb) TX bytes:1527088 (1.4 Mb)наблюдаются ошибки
очень похоже на кривые дрова для ваших сетевых.
>очень похоже на кривые дрова для ваших сетевых.Можно попробовать ядро отсюда:
http://download.opensuse.org/repositories/Kernel:/SL111_BRAN.../
ну, или отсюда:
http://download.opensuse.org/repositories/Kernel:/HEAD/openS.../ но -rc надо быть осторожным, можно на тестовую машину попробовать для начала
>>очень похоже на кривые дрова для ваших сетевых.
>
>Можно попробовать ядро отсюда:
>http://download.opensuse.org/repositories/Kernel:/SL111_BRAN.../
>ну, или отсюда:
>http://download.opensuse.org/repositories/Kernel:/HEAD/openS.../ но -rc надо быть осторожным, можно на тестовую машину попробовать для
>началаА реально самому собрать ядро чтоб заработало без глюков на съюзи?
Есть опыт неоднократной сборки под слакварь на домашнем ноуте и на домашнем сервере-хранилище-файлопомойке. Но там, тупо вставил все железо которое надо, отрубил по описаниям вещи, которые кажутся неподходящими и веперд - работает
>[оверквотинг удален]
>>Можно попробовать ядро отсюда:
>>http://download.opensuse.org/repositories/Kernel:/SL111_BRAN.../
>>ну, или отсюда:
>>http://download.opensuse.org/repositories/Kernel:/HEAD/openS.../ но -rc надо быть осторожным, можно на тестовую машину попробовать для
>>начала
>
>А реально самому собрать ядро чтоб заработало без глюков на съюзи?
>Есть опыт неоднократной сборки под слакварь на домашнем ноуте и на домашнем
>сервере-хранилище-файлопомойке. Но там, тупо вставил все железо которое надо, отрубил по
>описаниям вещи, которые кажутся неподходящими и веперд - работаета чего нереального-то? :)
но я сначала попробовал бы http://download.opensuse.org/repositories/Kernel:/HEAD/openS.../
>очень похоже на кривые дрова для ваших сетевых.Именно, попробовал дрова с сайта, при них вообще в кернел паник падает при первом же пинге :(
Тоже сталкивался с подобными проблемами, правда на RHEL-4. Из собственного опыта могу порекомендовать следующее:1. Какой используете свич ? Для подобных задач лучше не использовать дешевые типа Planet Communications и им подобных. Желательно использовать что-нибудь enterprise-уровня, например, 3Сом из серии 4200.
2. Если много битых пакетов, то это может означать проблемы в кабельной инфраструктуре - побитые или перекрученные кабели, плохая заделка разъемов RJ-45.
3. При большом количестве клиентов nfs может не справляться. Может быть имеет смысл посмотреть в сторону кластерной файловой системы Lustre ? (www.lustre.org) Даже на сетке гигабит езернет она дает гораздо лучшую производительность, чем nfs. Если есть вопросы - пишите мне в личку - s-andr-o <sobaka> rambler <tochka> ru