Hi, all!Помогите неопытному.
Есть сервер с FreeBSD 5.2.1-RELEASE. Прошу не пинать за старость ОС, ставил ее не я, я только поддерживаю, а опыта переставить пока недостаточно.
Сервер работает как маршрутизатор с NAT и ipfw. На нем подняты named, apache, sendmail (с некоторыми milter'ами), samba (он является домен-контроллером для небольшой сети), openvpn. Инет приходит с DSL-модема, работаещего в режиме bridge, авторизацию PPPoE делает фря. Установлено 2 физических диска на разных IDE-интерфейсах. Один раздел зазеркален с помощью vinum. Остальные копируются скриптом с одного (основного) винта на второй раз в месяц.
С некоторых пор сервер начал внезапно виснуть где-то раз в двое суток. На консоли сообщение:kernel trap 12 with interrupts disabled
Fatal trap 12: page fault while in kernel mode
fault code = supervisor read, page not present
panic: page fault
(некоторые строчки с кодами здесь опущены).Помогает только перезагрузка кнопкой.
Обратил внимание, что в логе каждый раз при загрузке ОС, сразу после монтирования появляется следующая ошибка: kernel: session in wrong stateDec 21 10:38:34 aqua kernel: GEOM: create disk ad0 dp=0xc2509d60
Dec 21 10:38:34 aqua kernel: ad0: 238475MB <WDC WD2500AAJB-00J3A0> [484521/16/63] at ata0-master UDMA100
Dec 21 10:38:34 aqua kernel: GEOM: create disk ad2 dp=0xc2509a60
Dec 21 10:38:34 aqua kernel: ad2: 114473MB <WDC WD1200JB-00FUA0> [232581/16/63] at ata1-master UDMA100
Dec 21 10:38:34 aqua kernel: Mounting root from ufs:/dev/ad0s1a
Dec 21 10:38:34 aqua kernel: session in wrong state
Dec 21 10:38:34 aqua last message repeated 2 times
Причем вне зависимости от того, нормально ли подключились разделы или запустился background check.Подскажите, где искать причину и связаны ли между собой две вышеописанные ситуации.
Вообще, непонятно, чье это сообщение: kernel: session in wrong state
Здесь на форуме нашел только, что его часто связывают с PPPoE, но полагаю, это не мой случай.
Есть подозрение на железо, т.к. на данной матери за последние полгода вылетело 2 винта и оба - на первом IDE-канале. Данные (вместе с загрузчиком) копировались на новые винты побайтно с помощью dd.
Спасибо.
>[оверквотинг удален]
>
>Подскажите, где искать причину и связаны ли между собой две вышеописанные ситуации.
>
>Вообще, непонятно, чье это сообщение: kernel: session in wrong state
>Здесь на форуме нашел только, что его часто связывают с PPPoE, но
>полагаю, это не мой случай.
>Есть подозрение на железо, т.к. на данной матери за последние полгода вылетело
>2 винта и оба - на первом IDE-канале. Данные (вместе с
>загрузчиком) копировались на новые винты побайтно с помощью dd.
>Спасибо.Тип подключения PPPoE?
Проблема вполне связано с ppp.
>Тип подключения PPPoE?
>Проблема вполне связано с ppp.Прошу прощения, не совсем понимаю, что значит "тип подключения РРРоЕ"? А какие они бывают?
Вот фрагмент rc.conf:natd_enable="YES"
natd_interface="tun0"
natd_flags="-s -u -dynamic -f /etc/natd.conf"# Internal network
ifconfig_rl1="inet 10.0.1.50 netmask 255.255.255.0"# Farlep
ifconfig_ed0="up"
ifconfig_ed0_alias0="inet 192.168.209.148 netmask 255.255.255.0"ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="farlep"
ppp_nat="NO"
Вот /etc/ppp/ppp.conf:default:
set log Phase tun command
enable dnsfarlep:
set device PPPoE:ed0
set authname <здесь наш РРР-логин>
set authkey <здесь наш РРР-пароль>
set mru 1492
set mtu 1492
set timeout 0
set reconnect 3 0
set ifaddr 0 0
add default HISADDR
enable lqr echo
set lqrperiod 60
set echoperiod 60Дело в том, что здесь уже как минимум год ничего не менялось, и все стабильно работало, никаких проблем с РРРоЕ не было, и уж тем более таких серьезных, чтобы вызывали kernel panic.
>>Тип подключения PPPoE?
>>Проблема вполне связано с ppp.
>
>Прошу прощения, не совсем понимаю, что значит "тип подключения РРРоЕ"? А какие
>они бывают?Как подключен в сети.
извини я просто не читаль твой пост полностью, прямо ответиль =)>[оверквотинг удален]
> set reconnect 3 0
> set ifaddr 0 0
> add default HISADDR
> enable lqr echo
> set lqrperiod 60
> set echoperiod 60
>
>Дело в том, что здесь уже как минимум год ничего не менялось,
>и все стабильно работало, никаких проблем с РРРоЕ не было, и
>уж тем более таких серьезных, чтобы вызывали kernel panic.Попробуйте комментировать:
#ppp_enable="YES"
#ppp_mode="ddial"
#ppp_profile="farlep"
#ppp_nat="NO"после ребута сделайте это мануально:
$ /etc/rc.d/ppp start
$ ppp -ddial farlepи смотрите будет ли висит.
И еше смотрите: http://www.freebsd.org/doc/en/books/developers-handbook/kern...
>[оверквотинг удален]
>#ppp_mode="ddial"
>#ppp_profile="farlep"
>#ppp_nat="NO"
>
>после ребута сделайте это мануально:
>
>$ /etc/rc.d/ppp start
>$ ppp -ddial farlep
>
>и смотрите будет ли висит.Честно говоря, не совсем понимаю, что это изменит? Да и ведь уже год как все работало стабильно, и в конфигурации РРР _вообще_ ничего не менялось.
Последние мои действия были следующими. Пару недель назад гавкнулся винт на 1-м IDE-интерфейсе. Я переставил живой винт со 2-го на 1-й, а на 2-й поставил полностью зануленный винт поменьше, из резервных. Потом в однопользовательском режиме перелил на него все байт в байт с первого командой dd. Потом забил нулями (опять же, с помощью dd) раздел ad2s1f, который участвует в vinum-зеркале. Потом реактуализировал зеркало, оно стало в состоянии up, т.е. все синхронизировалось успешно.
А через сутки начались вот эти глюки.
>[оверквотинг удален]
>год как все работало стабильно, и в конфигурации РРР _вообще_ ничего
>не менялось.
>Последние мои действия были следующими. Пару недель назад гавкнулся винт на 1-м
>IDE-интерфейсе. Я переставил живой винт со 2-го на 1-й, а на
>2-й поставил полностью зануленный винт поменьше, из резервных. Потом в однопользовательском
>режиме перелил на него все байт в байт с первого командой
>dd. Потом забил нулями (опять же, с помощью dd) раздел ad2s1f,
>который участвует в vinum-зеркале. Потом реактуализировал зеркало, оно стало в состоянии
>up, т.е. все синхронизировалось успешно.
>А через сутки начались вот эти глюки.Ну воть наконец то вы взяли вину в себе =) Ведь вы что-то сделали и после этого все это было. Вы же сказали что ничего не меняли =)
Ладно... Щутки в сторону..
Укажите нам ls -lR /dev/vinum
>Ну воть наконец то вы взяли вину в себе =) Ведь вы
>что-то сделали и после этого все это было. Вы же сказали
>что ничего не меняли =)
>
>Ладно... Щутки в сторону..
>
>Укажите нам ls -lR /dev/vinum-Дык я, это...
-А, работа такая.
(С) из мультфильма
:)))))На самом деле, я говорил, что абсолютно ничего не менял в конфигурации PPPoE, и это так и есть.
Шутки в сторону. Вот листинг:
aqua# ls -lR /dev/vinum
total 1
crw------- 1 root wheel 91, 0x3fff00fe Dec 21 12:38 control
crw------- 1 root wheel 91, 0x3fff00ff Dec 21 12:38 controld
dr-xr-xr-x 2 root wheel 512 Dec 21 12:38 plex
crw-r----- 1 root operator 91, 0 Dec 21 12:38 raid0
dr-xr-xr-x 2 root wheel 512 Dec 21 12:38 sd/dev/vinum/plex:
total 0
crw-r----- 1 root operator 91, 0x40000000 Dec 21 10:38 raid0.p0
crw-r----- 1 root operator 91, 0x40000001 Dec 21 10:38 raid0.p1/dev/vinum/sd:
total 0
crw-r----- 1 root operator 91, 0x80000000 Dec 21 10:38 raid0.p0.s0
crw-r----- 1 root operator 91, 0x80000001 Dec 21 10:38 raid0.p1.s0
>[оверквотинг удален]
>10:38 raid0.p0
>crw-r----- 1 root operator 91, 0x40000001 Dec 21
>10:38 raid0.p1
>
>/dev/vinum/sd:
>total 0
>crw-r----- 1 root operator 91, 0x80000000 Dec 21
>10:38 raid0.p0.s0
>crw-r----- 1 root operator 91, 0x80000001 Dec 21
>10:38 raid0.p1.s0Хм... Тут вроде все нормально.
Попробуй загрузить ядру в режиме -debug.
>Хм... Тут вроде все нормально.
>Попробуй загрузить ядру в режиме -debug.Можно поподробнее? Я не совсем понимаю это и никогда этого не делал. Мой предшественник, который собирал эту фрю, по-моему перекомпилировал ядро, т.е. оно сейчас не GENERIC, если я правильно понимаю. Как это проверить? Я в этом пока плаваю. Или ядер может быть несколько, и их можно загружать по выбору?
Спасибо и прошу прощения за дилетантские вопросы.
>>Хм... Тут вроде все нормально.
>>Попробуй загрузить ядру в режиме -debug.
>
>Можно поподробнее? Я не совсем понимаю это и никогда этого не делал.
>Мой предшественник, который собирал эту фрю, по-моему перекомпилировал ядро, т.е. оно
>сейчас не GENERIC, если я правильно понимаю. Как это проверить? Я
>в этом пока плаваю. Или ядер может быть несколько, и их
>можно загружать по выбору?
>Спасибо и прошу прощения за дилетантские вопросы.uname -i
Про дебаг кернела - http://www.freebsd.org/doc/en/books/developers-handbook/kern...
>[оверквотинг удален]
>>Можно поподробнее? Я не совсем понимаю это и никогда этого не делал.
>>Мой предшественник, который собирал эту фрю, по-моему перекомпилировал ядро, т.е. оно
>>сейчас не GENERIC, если я правильно понимаю. Как это проверить? Я
>>в этом пока плаваю. Или ядер может быть несколько, и их
>>можно загружать по выбору?
>>Спасибо и прошу прощения за дилетантские вопросы.
>
>uname -i
>
>Про дебаг кернела - http://www.freebsd.org/doc/en/books/developers-handbook/kern...Еще ссылка:
http://www.lemis.com/grog/Papers/Debug-tutorial/tutorial.pdf
Появились некоторые подробности проблемы. Сегодня пришел рано и успел засечь panic message на консоли, пока сервер без меня не перегрузили. Привожу полный листинг:kernel trap 12 with interrupts disabled
Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address = 0x24
fault code = supervisor read, page not present
instruction pointer = 0x8:0xc065ae9e
stack pointer = 0x10:0xcce03c2c
frame pointer = 0x10:0xcce03c50
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def 32 1, gran 1
processor eflags = resume, IOPL=0
current process = 36 (swi8: tty:sio clock)
trap number = 12
panic: page fault
cpuid = 0;Я так понимаю, ключом к разгадке может быть (swi8: tty:sio clock). Только причем здесь Serial I/O port?