Если у сайта есть 2 балансировщика нагрузки по причине избыточности, на какой из них должен указывать DNS?
Если я просто укажу на обе записи в своей записи DNS, не будет ли проблем с 50% трафика?
3 ответа
Существуют простые способы предоставления отказоустойчивых услуг с использованием одного IP-адреса, который не требует больших затрат.
Например, вы можете просто настроить общедоступный IP-адрес для петлевого интерфейса на каждом из прокси-серверов и затем объявить его через протокол маршрутизации OSPF (или аналогичный) в ваши внутренние таблицы маршрутизации.
Если сервер полностью умирает, маршрут удаляется из ваших внутренних таблиц маршрутизации, и трафик автоматически перестает поступать на мертвый сервер в течение 30 секунд.
В большинстве сетей это решение ничего не стоит. Маршрутизация OSPF может быть выполнена с использованием Quagga, если ваши прокси работают под управлением Linux или другого варианта UNIX.
Ваша внутренняя сеть также должна быть в состоянии говорить по протоколу OSPF, но это происходит из коробки с большинством аппаратных средств класса Cisco или Juniper. Вы планируете запустить достаточно неплохое сетевое оборудование для поддержки этих тысяч сайтов, не так ли;-)?
FWIW, я использовал подобную технику в прошлом для обработки переключения крупномасштабного общего веб-хостинга из одного центра обработки данных в другой.
Вы можете указать оба в вашем DNS. Когда один из них выходит из строя, браузер пользователя отправляет запрос, замечает, что что-то не так, и запрашивает новую запись. Вторая запись должна быть действующей и работать до сих пор.
Есть много способов взглянуть на это. Когда вы начнете смотреть на эти типы вещей, вы, вероятно, увидите терминологию, такую как "Active-Active" или "Active-Passive".
То, что вы описываете, является установкой "Active-Active", где и основное, и "отказоустойчивое" оборудование служат потребностям клиента. Обычно Active-Passive означает, что есть некоторая ручная часть для переключения с "активного" сервера на резервный "пассивный" сервер.
Любая конфигурация является совершенно законной, и правильный ответ на ваш вопрос действительно сводится к анализу вашей индивидуальной ситуации. На что следует обратить внимание: 1. Обе части оборудования эквивалентны? (IE: будут ли ваши клиенты одинаковыми, независимо от того, какой путь они пройдут через вашу инфраструктуру).
Стоит ли постоянно запускать оба экземпляра?
Какое влияние оказывает время простоя при отказе? (IE: Как долго вы будете внизу? Сколько будет стоить такой сбой).
Являются ли элементы вашего процесса обслуживания (обновления, резервные копии) полезными? (IE: обновление программного обеспечения на серверах за балансировщиком нагрузки, обновление самого балансировщика нагрузки и т. Д.). Это сценарии, в которых вы вытаскиваете одного участника из пары, выполняете работу по обновлению и перенаправляете трафик на обновленного участника, пока вы обновляете второго участника.
В целом Active-Active более дорогой, но дает вам наименьший риск воздействия на ваших клиентов. Таким образом, "правильный" ответ больше связан с бизнес-аспектами, чем с техническими.
Теперь, если все вещи не равны, вы можете посмотреть на такие вещи, как:
Предсуществующая (не ваше приложение) нагрузка на каждый из балансировщиков.
Аппаратное обеспечение / емкость на каждом.
Возраст (близок ли он к концу жизни или скоро провалится?)
Местоположение (если вы говорите с несколькими центрами обработки данных... географическое местоположение может повлиять на производительность).
Я знаю, что не дал вам ответ "СДЕЛАТЬ это"... но, надеюсь, я дал некоторое представление о типах соображений, которые вы бы сделали, придя к своему ответу.