Обнаружение мертвых приложений, когда сервер работает в NLB - PullRequest
0 голосов
/ 14 ноября 2008

Windows NLB отлично работает и удаляет компьютер из кластера, когда он не работает

Но что происходит, если приложение умирает, но сервер все еще работает нормально? Как вы решили эту проблему?

Спасибо

Ответы [ 4 ]

1 голос
/ 14 ноября 2008

Не используя NLB.

Аппаратные балансировщики нагрузки часто имеют настраиваемые функции «зонда» для определения того, отвечает ли сервер на запросы. Это может быть получено путем доступа к реальному порту / URL-адресу приложения или к определенному URL-адресу «проверки работоспособности», который возвращается только в том случае, если приложение исправно.

Другие параметры для просмотра очереди / времени, затраченные на ответ на запросы

Cisco выразился так:

Cisco CSM постоянно контролирует доступность серверов и приложений используя различные зонды, внутри полосы мониторинг здоровья, код возврата проверка и динамическая обратная связь Протокол (DFP). Когда реальный сервер или происходит сбой шлюза, Cisco CSM перенаправляет трафик на другой место нахождения. Серверы добавлены и удаляется без нарушения сервис - системы легко масштабируются или вниз.

(отсюда: http://www.cisco.com/en/US/products/hw/modules/ps2706/products_data_sheet09186a00800887f3.html#wp1002630)

0 голосов
/ 03 мая 2012

Мы начинаем с ситуации, когда все узлы являются частью кластера, но не активны. Мы запускаем специальный сервисный монитор, который делает запрос на сервис локально через внешний интерфейс. Если ответ был успешным, мы запускаем узел (позволяем ему начать обработку трафика NLB). Если ответ не удался, мы не позволяем узлу получать трафик.

Все промежуточные этапы, описанные Дарроном, не имеют значения. Работало это или нет - единственное, что нас волнует. Если машина недоступна, остальная часть кластера NLB будет рассматривать ее как неисправную.

0 голосов
/ 06 декабря 2008

Есть несколько уровней проверки работоспособности для сетевого приложения.

  1. сервер работает?
    • запущено ли приложение (служба)?
    • Служба принимает сетевые подключения?
    • Служба отвечает соответствующим образом на запрос "все в порядке?"
    • Служба выполняет реальную работу? (это также проверит серверные системы за службой, которую вы исследуете)

Мой опыт работы с NLB может быть неполным, но я опишу то, что знаю. NLB может делать 1 и 2. С помощью пользовательского кодирования вы можете добавлять другие уровни с различной сложностью. С некоторыми сетевыми архитектурами это может быть очень сложно.

Большинство аппаратных балансировщиков нагрузки от таких поставщиков, как Cisco или F5, можно легко настроить для выполнения 3 или 4. Для тестирования уровня 5 все еще требуется пользовательское кодирование.

0 голосов
/ 06 декабря 2008

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

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

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

...