Сервер:Контроль работоспособности

Материал из ЛОКАРУС
Перейти к: навигация, поиск

Содержание

Контроль работоспособности

Сервер может самостоятельно контролировать собственную работоспособность, а также работоспособность сторонних серверов в многосерверной конфигурации. Для этого предусмотрены специальные системы и сервисы.

Самоконтроль

Сервер в процессе работы может постоянно контролировать работоспособность всех своих жизненно важных служб, определяя т.н. коэффициент “здоровья”, и при снижении значения которого ниже граничных значений предпринимать те или иные действия. Для проверки собственной работоспособности используется внешний сервис, которому сервер периодически отправляет запрос на тестирование "снаружи". Сервис осуществляет пинг всех портов из внешней сети и тест базы данных, после чего возвращает результат.

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

  1. При старте сервера устанавливается уровень здоровья WATCHDOG_HEALTH_MAX, что соответствует полностью работоспособному серверу. “Здоровье” может снижаться до уровней:
    • WATCHDOG_HEALTH_WARNING - просто предупреждение
    • WATCHDOG_HEALTH_ALERT - тревога, состояние близкое к критическому, администратору отправляется тревожное сообщение через e-mail
    • WATCHDOG_HEALTH_FATAL - критическое состояние.
  2. По достижении WATCHDOG_HEALTH_FATAL сервер перезапускает все свои службы, закрывает и открывает снова все свои соединения и связи с базой данных. При этом продолжает контролировать свое состояние, учитывая время необходимое на перезапуск служб. Если до достижения уровня WATCHDOG_HEALTH_DEATH ни один пинг не проходит, здоровье сбрасывается в WATCHDOG_HEALTH_RIP.
  3. WATCHDOG_HEALTH_RIP сигнализирует серверу о необходимости принятия радикальных мер. Сервер предпринимает попытку перезагрузить компьютер, на котором установлен.

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

При каждом изменении уровня здоровья администратору отправляется e-mail, если настроен адрес и SMTP параметры.

Граничные параметры уровней “здоровья” и периодичность пинга настраиваются в конфигурационных файлах.

Взаимоконтроль

В системе с двумя или более серверами возможен взаимоконтроль. Серверы, работающие в связке, постоянно контролируют состояние друг друга, определяя т.н. коэффициент “здоровья” партнера, и при снижении значения этого коэффициента ниже граничных значений предпринимают те или иные действия

  1. При старте для удаленного сервера устанавливается уровень здоровья WATCHDOG_HEALTH_MAX, что соответствует полностью работоспособному серверу. “Здоровье” может снижаться до уровней:
    • WATCHDOG_HEALTH_WARNING - просто предупреждение
    • WATCHDOG_HEALTH_ALERT - тревога, состояние близкое к критическому, в обоих случаях продолжаются попытки отправки данных, просто администратору отправляется тревожное сообщение через e-mail
    • WATCHDOG_HEALTH_FATAL - критическое состояние. попытки работы с сервером прекращаются, продолжается только пинг.
  2. WATCHDOG_HEALTH_FATAL активируется прямой пинг сервисного порта.
  3. Если прямой пинг проходит - серверу посылается сигнал на перезагрузку. Далее продолжается пинг в течение определенного времени, для того чтобы дождаться предполагаемой перезагрузки. Если до достижения уровня WATCHDOG_HEALTH_DEATH ни один пинг не проходит, здоровье сбрасывается в WATCHDOG_HEALTH_RIP.
  4. Если прямой пинг не проходит - здоровье сбрасывается в WATCHDOG_HEALTH_RIP минуя попытки перезагрузить сервер - партнер.

WATCHDOG_HEALTH_RIP сигнализирует текущему серверу о необходимости изменения маршрутизации локальной подсети “на себя”. В текущей версии это изменение реализовано переключением маршрутизации входящих потоков данных по всем портам на внешнем, по отношению к обоим серверам, маршрутизаторе. Это переключение резервный сервер осуществляет самостоятельно, без привлечения дополнительного ПО и сторонних сервисов.

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

При каждом изменении уровня здоровья администратору отправляется e-mail, если настроен адрес и SMTP параметры.

Граничные параметры уровней “здоровья” и периодичность пинга настраиваются в конфигурационных файлах.

Резервирование

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

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

Приняв блок данных ведущий сервер сохраняет его в оперативной базе данных и направляет на резервный сервер. Резервный сервер получив блок данных сохраняет его в своей оперативной базе данных. Таким образом осуществляется зеркалирование данных в реальном времени на алгоритмическом уровне.

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

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты