Как настроить ARR в активном/пассивном (иначе обработка отказа) режим?

Проблема

Я пытаюсь настроить несколько веб-ферм (для различных сайтов) после архитектуры NLB+ARR. Скажем, у меня есть 6 VMs:

  1. Кластер ARR+NLB 2 VMs. Это получает трафик и вперед это для удовлетворения серверов. URL переписывает правила с условиями заголовка Хоста HTTP, привыкли к запросам маршрута для исправления серверов содержания.
  2. Сайт 1 сервер содержания: 2 VMs. Хостинг http://www.mysite1.com/
  3. Сайт 2 сервера содержания: 2 VMs. Хостинг http://www.mysite2.com/

Все хорошо работает, я протестировал это, у меня есть высокая доступность на обоих уровнях.

Теперь, по причине Сайт 2 должен работать в активном/пассивном режиме, так, чтобы только 1 VM получил трафик, в то время как другой - для обработки отказа. В некотором смысле, я хочу что-то подобное единственному режиму хоста NLB, но для ARR.

Как это может быть достигнуто?

Обходные решения

Я попробовал несколько косвенных подходов для достижения желаемого поведения.

  1. Алгоритм балансировки нагрузки. Испытанная установка вокруг и веса малиновки к 1/0. Проблема состоит в том, что Вы не можете установить 0. Это должен быть по крайней мере 1. Можно установить 4 миллиарда + что-то / 1, но я не уверен, гарантирует ли это, что никакой случайный запрос никогда не переходит к второму узлу.
  2. Имя хоста к Привязке Сервера. В расширенных настройках Привязки Имени хоста я могу настроить только 1 сервер, который будет выделен для Расположения 2. Это работает, но проблема состоит в том, что таблицы маршрутизации не синхронизируются между 2 ARR VMs. Так, время от времени трафик ARR1 affinitizes к одному узлу, в то время как ARR2 к другому, который не активен/пассивен.
  3. Привязка Имени хоста + NLB Единственный Хост. Как модификация предыдущего подхода, я могу также переключить NLB на единственный режим хоста для решения вопроса синхронизации таблицы маршрутизации. Проблема в этом случае состоит в том, что я выключаю выравнивание нагрузки ARR для Сайта 1 также.
  4. Привязка Имени хоста + NLB Единственный Хост + 2 IP-адреса. Если я добавляю второй IP-адрес к предыдущему решению, создаю 2 кластера NLB, работающие в различных режимах, все должно работать просто великолепно. Проблема состоит в том, что я не хочу платить за второй общедоступный IP.

Ни одно из решений не прекрасно.

Изображение идеального решения

Я действительно хотел бы знать, что способ поместить ARR в единственный режим хоста как он может быть сделан для NLB. И имейте его, синхронизируют маршрутизацию между узлами.

Кто-либо знает, как сделать это? Или знает альтернативные подходы?

3
задан 17 May 2015 в 13:58
1 ответ

Я нашел один способ, который кажется работающим, хотя и не полностью. Это описано здесь . Идея состоит в том, чтобы использовать алгоритм балансировки нагрузки «Server Variable Hash» и «HTTP_HOST» в качестве переменной. Таким образом, все экземпляры ARR сопоставляют данный хост с одним и тем же сервером контента. Я проверил, что они возвращаются к другому доступному серверу, если сопоставленный сервер не работает.

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

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

1
ответ дан 3 December 2019 в 07:26

Теги

Похожие вопросы