Я пытаюсь настроить несколько веб-ферм (для разных сайтов), следуя Архитектура NLB + ARR. Допустим, у меня 6 виртуальных машин:
Все работает нормально, я проверил, что у меня высокая доступность на обоих уровнях.
Теперь по какой-то причине Сайт 2 должен работать в активном / пассивном режиме, так что только 1 виртуальная машина получает трафик, а другая предназначена для аварийного переключения. В некотором смысле мне нужно что-то похожее на режим одиночного хоста NLB, но для ARR.
Как этого добиться?
Я пробовал несколько косвенных подходов для достижения желаемого поведения.
Ни одно из решений не является идеальным.
Я действительно хотел бы знать, как перевести ARR в режим одного хоста, как это можно сделать для NLB. И пусть он синхронизирует маршрутизацию между узлами.
Кто-нибудь знает, как это сделать? Или знает альтернативные подходы?
Я нашел один способ, который кажется работающим, хотя и не полностью. Это описано Вот. Идея состоит в том, чтобы использовать алгоритм балансировки нагрузки «Server Variable Hash» и «HTTP_HOST» в качестве переменной. Таким образом, все экземпляры ARR сопоставляют данный хост с одним и тем же сервером контента. Я проверил, что они делают откат на другой доступный сервер, если сопоставленный сервер не работает.
Однако проблема с решением заключается в том, что вы не можете контролировать, на какой контент-сервер отображается хост, это определяется хеш-функцией. Тем не менее, в некотором смысле это правильно - если вы боитесь, что какой-либо узел станет активным, то как вы можете ожидать надежного переключения при отказе? Вы должны быть уверены во всех своих контент-серверах одновременно.
Другая проблема заключается в том, что вы не можете использовать несколько имен хостов для каждого сайта, потому что вы, скорее всего, получите их сопоставление с разными серверами.