Проблема балансировки сетевой нагрузки
Резюме
У меня есть две машины в кластере NLB. Если я выключаю одну машину (чтобы имитировать сбой), то вторая не принимает нагрузку. Я ищу помощь в диагностике причины этого.
подробности
Я создал тестовую / промежуточную систему, состоящую из двух хостов с балансировкой сетевой нагрузки. Хосты - это виртуальные машины, работающие под VMware Server. Каждый хост работает под управлением Windows 2003 Server Enterprise с установленным пакетом обновления 2 (SP2), и у каждого есть две сетевые карты. Они недавно построены и имеют минимальные изменения конфигурации, кроме установки IIS6.
IP-адреса следующие:
- Хост 1: выделенный: 192.168.0.140, кластер: 192.168.0.141.
Хост 2: выделенный: 192.168.0.142 кластер: 192.168.0.143
IP-адрес кластера: 192.168.0.144
Маска подсети: 255.255.255.0
На каждом хосте я установил порядок привязки соединения, чтобы выделенное соединение было первым.
Кластер настроен на использование одноадресной рассылки, потому что мне нужна связь между хостами с использованием выделенных сетевых карт, и у меня нет подходящего маршрутизатора для многоадресной рассылки. Хост 1 является приоритетом 1, хост 2 является приоритетом 2. Веса установлены на "Равно".
Существует одно правило порта:
- Все кластерные IP-адреса
- Диапазон портов от 80 до 80
- Все протоколы
- Фильтрация нескольких хостов без привязки
Проблем с созданием кластера не было, и он сходится нормально. Я могу пропинговать адрес кластера, и http-запросы на этот адрес возвращают ожидаемый результат. Я делаю это с отдельной машины, всегда используя IP-адрес.
Проблема: Когда я выключаю хост 1 (для имитации сбоя хоста), я ожидаю, что хост 2 будет отвечать на запросы ping и http на адрес кластера, но этого не происходит. Похоже, хост 2 ничего не делает.
Вопрос: Кто-нибудь может подсказать, как я могу решить эту проблему? Что мне не хватает?
Я проверил следующее:
- IP-адреса и маски подсети устанавливаются, как указано выше. В выделенных соединениях указаны адреса шлюза и DNS, в кластерных соединениях нет.
- MAC-адреса для сетевого адаптера кластера одинаковы на обеих машинах.
- Соединение кластера связано с соответствующим локальным IP-адресом и IP-адресом кластера.
(Я разработчик, а не ИТ-специалист, поэтому извиняюсь, если моя терминология неверна или неточна)
2 ответа
Причиной проблемы оказалось то, что я создавал кластер NLB с использованием одноадресного режима, в котором есть проблемы совместимости с виртуализированной сетью VMware. Когда я заново создал кластер с использованием многоадресной рассылки, он работал правильно.
Документация Microsoft предполагает, что использование одноадресной рассылки является самым простым вариантом, поскольку не требует изменений конфигурации маршрутизатора. Это не верно для VMware, который потребует некоторых изменений конфигурации сети. Режим многоадресной передачи, кажется, просто работает.
Полезные ссылки:
Microsoft NLB не работает должным образом в режиме одноадресной рассылки - описывает, почему одноадресная рассылка нелегко работает под VMware, и что делать, если вы действительно хотите ее использовать. Связанная страница относится к серверу ESX, но она также применима к серверу VMware.
Пример конфигурации - настройка многоадресного режима балансировки сетевой нагрузки (NLB) - как настроить кластер в многоадресном режиме.
Внедрение балансировки сетевой нагрузки Microsoft в виртуализированной среде (pdf)
Оптимальная конфигурация балансировки сетевой нагрузки (NLB) - немного полезного фона
Когда вы работаете с сервером 1, видите ли вы какой-либо связанный с кластером трафик на сетевой карте сервера 2?
Я подозреваю, что если отказоустойчивость не работает, то у вас может быть проблема с трафиком кластеризации.