Linux watchdog что это

Linux watchdog что это

Guido нравится Linux за возможность изучать работу компьютеров. Linux из-за своей открытости позволяет проводить такие исследования.

Перевод на Русский:
Gleba

Содержание:

  • Что же это за устройство мониторинга (watchdog)?
  • Использование мониторинга
  • Аппаратная часть
  • Принцип работы
  • Программное обеспечение
  • Тестирование
  • Подключение устройства
  • Заключение
  • Ссылки
  • Страница отзывов

Устройство мониторинга сервера «watchdog»

В этой статье( ЖК-панель управления для Вашего сервера на Linux ) описано как самому создать программируемый ЖК дисплей, с огромным количеством функций. Многие из этих функций вам никогда и не понадобятся. А в этой статье мы рассмотрим возможность создания другого, более простого и дешевого устройства, в котором будут задействованы всего лишь 2 составляющие, использованные при создании программируемого ЖК дисплея:

  • Кнопка выключения сервера
  • Устройство мониторинга состояния сервера

Комплектующие можно найти на любом радиорынке и обойдутся они максимум в 5 Евро.
_________________ _________________ _________________

Что же это за устройство мониторинга (watchdog)?

Устройство мониторинга, ( оригинальное и более распространенное название watchdog — по-русски «сторожевой пес»), это такая штука, которая постоянно контролирует состояние системы и проверяет ее работоспособность. Нечто подобное установлено на зонде Mars Pathfinder (ведь никто не собирался отправлять на марс вместе с роботом человека, чтобы периодически перезагружать систему когда она зависнет) и на некоторых особо дорогостоящих серверах.

Принцип абсолютно простой — периодически система должна откликаться на посылаемые запросы, тем самым, подтверждая свою работоспособность. В случае если система перестает откликаться, она в принудительном порядке перезагружается.

Заметьте, что обычный сервер с установленным Linux должен работать без перезагрузок месяцами, а толково настроенный и пару лет. Если же машина систематически подвисает и ее приходится перезагружать, то мониторинг тут уже ни к чему, а надо просто проверить железо на наличие дефектов — битая память ( memtest86.com) , перегрев CPU, чересчур длинные шлейфы IDE и т.д.

Но тогда встает следующий вопрос: зачем тогда слежение за компьютером, если Linux до такой степени надежный и стабильный? Ответ так же прост — чтобы сделать его еще более надежным и стабильным. Всегда остается человеческий фактор, с которым всегда приходится считаться. Ведь если сервер в течении года работает без сбоев обслуживающий персонал и не знает о его существовании. И в случае поломки первый вопрос будет: «Где он находится?». А как насчет того что сервер полетел под новый год, когда все уже разбежались отмечать? В подобных случаях дополнительный мониторинг придется как нельзя кстати!

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

Использование мониторинга

Средство мониторинга системы, которое мы будем собирать, предназначено для проверки жизнеспособности пользовательских приложений. Ведь для обеспечения надежного функционирования системы надо быть уверенным в стабильности таких приложений как веб-сервер или база данных, кроме того контролировать расход дискового пространства, возможно даже температуру CPU.Для подобных вещей предназначен crontab. И подобные вопросы уже были описаны в статье ЖК-панель управления для Вашего сервера на Linux . Поэтому мы на этом не задержимся.

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

#!/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin
export PATH
#
# Мониторинг дискового пространства
# —————-
# проверяет диск на 80% заполненность.
# (crontab автоматически отправляет e-mail если скрипт
# выполнен)
df | egrep ‘ (8.%|9.%|100%) ‘
#
# Мониторинг свопа
# Обычно сервер не имеет свопа. Иначе
# своп должен быть строго фиксированным
# —————-
# Сообщает о заполнении свопа больше чем на 6 Mb
swpfree=`free | awk ‘/Swap:/< print $3 >‘`
if expr $swpfree \> 6000 > /dev/null ; then
echo «$0 warning! использование свопа составляет $swpfree»
echo » «
free
echo » «
ps auxw
fi
#
# Мониторинг сети
# ——————-
# Ваш IP или имя компьютера:
hostn=»linuxbox.your.supercomputer»
#
if ping -w 5 -qn -c 1 $hostn > /dev/null ; then
# ok host is up
echo «0» > /etc/pingfail
else
# подсчет не отвеченных запросов ping
if [ -r /etc/pingfail ]; then
pingfail=`cat /etc/pingfail`
else
# в случае отсутствия файла pingfail
# окончание программы
exit 0
fi
pingfail=`expr «$pingfail» «+» 1`
echo «$pingfail ping failures»
echo «$pingfail» > /etc/pingfail
if [ $pingfail -gt 10 ]; then
echo «не отвечено на более чем 10 запросов. Перезагрузка. «
/sbin/shutdown -t2 -r now
fi
fi
# — конец скрипта —

Можно использовать этот скрипт вместе с crontab так что он будет запускаться каждые 15 минут:

Аппаратная часть

Стандартных реле не бывает. У каждого производителя свои модели. Для нас существенно сопротивление катушки реле. Ниже представлены две схемы, одна с реле на 5V, 500 Oм, а вторая на 5V, 120 Oм. При покупке поинтересуйтесь сопротивлением катушки реле или просто измерьте его омметром. Кликните на картинку чтобы увеличить.

Схема для реле на 120 Oм :

Схема для реле на 500 Oм:

Кнопка выключения замыкает при нажатии RTS и CD. На схеме она выглядит несколько странно, но в Eagle других символов нет.

Я не привожу список необходимого оборудования. Все что будет необходимо купить есть на схеме, только не забудьте разъем DB9 для последовательного порта. Диоды подойдут любые, например 1N4148. Лично я считаю что лучше установить реле на 500 Oм, тогда вам не понадобятся R4 и конденсатор на 2000мкФ (или 2200мкФ). А для С1 можно использовать конденсатор меньшего номинала (1000мкФ).

Внимание: Для схемы с реле на 120 Oм вам понадобится красный светодиод, а для цепи с реле на 500 Oм — зеленый. Это не шутка, падение напряжения на зеленом светодиоде выше, чем на красном.
Плата, схема в формате Eagle CAD и постскрипт файлы для травления платы включены в программный пакет, ссылка на который находится в конце статьи. Программу Eagle CAD для Linux можно забрать с cadsoftusa.com.

Принцип работы

Схема построена на таймера NE555. Микросхема представляет из себя два компаратора, RS-триггер и делитель из 3 резисторов 5 кOм, задающий пороги срабатывания компараторов. Всякий раз, когда на ножке 6 (threshold) напряжение поднимается выше 2/3, выход RS-триггера переключается в состояние «1».

Теперь рассмотрим нашу схему. Выход RTS последовательного порта используется как источник питания нашей схемы. Уровни напряжений в канале RS232 составляют +/-10V, и поэтому нам понадобится диод перед конденсатором С1. Конденсатор C1 заряжается очень быстро и выступает в качестве аккумулятора энергии для последующего кратковременного включения реле. Конденсатор C2 медленно заряжается через резистор ( 4.7 MОм ). Транзистор Т1, управляемый по линии DTR последовательного порта, разряжает конденсатор C2.В случае пропадания сигнала, из-за того что компьютер подвис, конденсатор медленно ( примерно в течении 40 сек. ) начнет заряжаться до 2/3 питающего напряжения, после чего RS-триггер перейдет в состояние «1».

Цепь С1, R2, светодиод и реле должна быть рассчитана таким образом, чтобы реле включалось кратковременно и только за счет энергии запасенной на конденсаторе С1. Нам необходимо чтобы «кнопка сброса» была «нажата» пару секунд.

Светодиод должен гореть до полной перезагрузки компьютера.

На схеме также изображена кнопка выключения компьютера подключенная к линии CD последовательного порта. Если удерживать ее около 15 секунд, будет выполнена команда «shutdown -h now», которая и выключит сервер. Она не имеет ничего общего с мониторингом и предназначена исключительно для обслуживания компьютера.

Программное обеспечение

Драйвер представляет собой небольшую программу на С, которую можно запускать из /etc/init.d/. Она включит сигнал на линии RTS RS232, после чего начнет периодически ( каждые 12 сек. ) посылать импульсы по линии DTR (таймаут составляет 40 секунд). При нормальном выключении компьютера программа отключит RTS и передаст последний импульс на DTR. В результате конденсатор цепи питания С1 к моменту истечения таймаута полностью разрядится, исключая возможность принудительной перезагрузки. Для установки программы, распакуйте файл linuxwd-0.3.tar.gz и наберите

После этого скопируйте исполняемый файл linuxwd в /usr/sbin/linuxwd. Подправьте созданный linuxwd_rc скрипт (для redhat/mandrake, или linuxwd_rc_anydist для любого другого), укажите порт, к которому подключено наше устройство (ttyS1=COM2 или ttyS0=COM1). Скопируйте скрипт в
/etc/rc3.d/S21linuxwd
и
/etc/rc5.d/S21linuxwd

Тестирование

linuxwd -t /dev/ttyS0

для запуска linuxwd в режиме теста (если оборудование подключено к COM2, укажите /dev/ttyS1).

Подключение устройства

Нумерация 9-ти контактного разъема ( вилка ) на корпусе компьютера.

9-конт. 25-конт. Название Направление Описание
1 8 CD вход Детектор принимаемого сигнала
2 3 RXD вход Принимаемые данные
3 2 TXD выход Передаваемые данные
4 20 DTR выход Приемник готов
5 7 GND Сигнальное заземление
6 6 DSR вход Передатчик готов
7 4 RTS выход Запрос передачи
8 5 CTS вход Готов к передаче
9 22 RI ввод Индикатор вызова

Разъем RS232 устройства подключается непосредственно к последовательному порту компьютера. Для подключения кнопки сброса к реле, найдите провода от кнопки сброса компьютера и подключите реле параллельно.

Заключение


Ссылки


  • Программное обеспечение linuxwd : software download page
  • Описание NE555 NE555.pdf 140K

Страница отзывов

У каждой заметки есть страница отзывов. На этой странице вы можете оставить свой комментарий или просмотреть комментарии других читателей :

talkback page

Webpages maintained by the LinuxFocus Editor team
© Guido Socher, FDL
LinuxFocus.org
Translation information:

en —> — : Guido Socher ( homepage )
en —> ru: Gleba

2002-12-03, generated by lfparser version 2.31

Источник

А Вы знали, что iTCO watchdog — это программный вотчдог в SMM-режиме процессора?

SMM — это такой -2 режим колец защиты процессора в который не может вмешаться даже ОС. Используется для эмуляции оборудования (особенно для старых ОС), исполнения кода в доверенной среде (например, проверка ЭЦП прошивки и заливка во flash bios’а), входа/выхода из S*-режимов и управлением питанием без ОС.

Собственно, оказалось, что iTCO watchdog (имеется на многих серверах) — это не аппаратный вотчдог (как в iLO, например, в других системах с BMC), а программный. Причём я лично видел только его присутствие в системе не смотря на наличие DMC с IPMI.

Что это за бред такой? Нафиг нужен программный вотчдог (причём позиционируемый как аппаратный)? Разве так сложно в контроллер питания встроить таймер с i2c-шиной? Просто в некоторых случаях бывают ситуация, когда оборудование глючит (иногда из-за кривых дров) и вешает проц. Либо проц не вешается, но нужно полностью сбросить оборудование (кстати, почему не делают вотчдогами полный цикл выключения/включения со снятием напряжения, а прочто ребут?).

процессор входит в SMM по прерыванию SMI, которое отдельное и немаскируемое так что разницы особой нету

процессор входит в SMM по прерыванию SMI, которое отдельное и немаскируемое так что разницы особой нету

Только вот оборудование повиснуть может, не?

Только вот оборудование повиснуть может, не?

И часто у тебя тактовый генератор подвисает?

Пофиг, что софтварный. У меня этот iTCO (на ширпотребном железе) никогда не работал. Как его готовить?

это какое такое оборудование? таймер там аппаратный полюбому есть, ибо низя обычный таймер на SMI направить. а сама реализация — ну как смогли так и сделали, что ты пристал

И часто у тебя тактовый генератор подвисает?

См. шапку: проблема может быть во внешнем оборудовании, которое в общем для работы необходимо. Для про контроллеры разные на PCIe.

Я про контроллеры разные.

У меня этот iTCO (на ширпотребном железе) никогда не работал. Как его готовить?

Подгружаешь модуль ведра, у тебя появляется /dev/watchdog0 . При загрузке модуля (или после при помощи утилиты управления) можно указать таймаут (обычно 30 секунд по-дефолту). Далее первая же запись (чего угодно) в /dev/watchdog0 его запускает. Далее нужно успеть до таймаута сделать запись ещё раз. Всё. В качестве ПО можно использовать многочисленные скрипты или watchdogd.

это что ж за контроллер такой может быть, чтоб систему утащить за собой. кстати если такой есть в природе или чипсет кривой, то стопорнёт её в любом случае, хоть ты аппаратную собаку на будьльнике с кукушкой запили. а SMM это просто способ реализации(т.е. как влезть в программу и изобразить ей прерывание) не переделывая процессор.

ты из толксового клоуна решил переквалифицироваться во второго анойнимуса?

Я же выше писал, что нормальный вотчдог: это снимаем с мамки напругу, через 10 секунд подаём. Видел такое в промышленных компах отдельным модулем с USB.

ты из толксового клоуна решил переквалифицироваться во второго анойнимуса?

А он отличается умом и сообразительностью?

Чо-та не работает. Ну, я не сам им рулю, а через systemd. Один хрен висяк на шатдауне происходит регулярно (по причине разных там недоотмонтировавшихся дисков или упавшего чего-нибудь).

И что? Единственный способ предотвратить прерывание это выключить его. Но если SMM нельзя выключить, то хоть проц в цикле будет крутиться, хоть выключенным в halt, прерывание его всё равно сдёрнет и переключит на обработчик.

Перед шатдауном наверное его лучше отключить.

Источник

Читайте также:  Аналоги mamp для linux
Оцените статью