Назад | Перейти на главную страницу

Устранить единую точку отказа для веб-серверов?

Я знаю в DNS, что каждый из DNS-серверов будет пытаться узнать, ответят ли они

Я знаю по электронной почте, что в случае сбоя он перейдет к следующему в списке или задержит почту в течение определенного периода времени

Насколько мне известно, на веб-серверах браузер получит один из IP-адресов веб-сервера и попробует его, а в случае неудачи он откажется. Это верно? Если это так, то единственный способ направить трафик с неисправного IP-адреса - это использовать DNS-серверы, и даже они не будут обновляться немедленно.

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

Что вы делаете, так это настраиваете DNS для рекламы нескольких IP-адресов для записи A для вашего доменного имени, указывая на копии вашего сайта, которые находятся в разных центрах обработки данных (желательно в разных городах), и браузер выберет один (обычно случайным образом, но следите за Windows Vista, которая реализует глупые биты RFC3484 и, следовательно, не случайна), и сохранит остальные. В зависимости от браузера он обычно будет использовать один из других адресов, если тот, который он использует, станет недоступен. Ваши DNS-серверы должны постоянно отслеживать все сайты и прекращать рекламу тех, которые не работают. Им также нужны очень короткие TTL. Для этого есть аппаратные решения - например, Устройства BigIP от F5.

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

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

См. Здесь для получения дополнительной информации о глобальной балансировке нагрузки на сервер (хотя она немного устарела и устарела): http://www.tenereillo.com/GSLBPageOfShame.htm

Отработка отказа будет не такой быстрой, как отработка отказа BGP, но вы не сможете полностью вывести свой сайт из строя из-за одной неверной конфигурации BGP. Вы можете испортить конфигурацию одного DNS-сервера или центра обработки данных, но это не остановит вас полностью (если вы не отправите обновления DNS автоматически на все свои DNS-серверы).

Напротив, это именно для чего нужны балансировщики нагрузки. В работе используем аппаратный балансировщик нагрузки (из сетей F5). У нас есть один IP-адрес, и балансировщик нагрузки перенаправляет соединения на любой из нескольких веб-серверов, находящихся за ним.

StackOverflow Networks (ваш скромный хост) использует программный балансировщик нагрузки и они писали об этом в блоге.

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

Однако состояние сеанса приложения - это то, что должно обрабатываться веб-приложением. После того, как человек подключается к службе, остается ли он подключенным к одному и тому же фактическому серверу (т.е. состояние сеанса зависит от сервера), или они подключаются к любому количеству серверов (т.е. состояние сеанса доступно для всех серверов через базу данных или что-то еще ). Если состояние не сохраняется между узлами, тогда, когда сервер возвращается, пользователи, подключенные к этому серверу, должны будут восстановить состояние.

На крупных веб-сайтах вы можете возвращать несколько IP-адресов для каждого имени хоста, и в конечном итоге они будут указывать на балансировщики нагрузки, выполняющие перенаправление MAC-адресов на кластер веб-серверов. Обычно сами подсистемы балансировки нагрузки также имеют понятие передачи / переключения при отказе.

Что-то называется Network Load Balancing и VIP = Virtual IP. Вы создаете один VIP для 3-х веб-серверов, и трафик идет на рабочий. Это, конечно, зависит от многих факторов, но в Windows и IIS довольно легко включить NLB на нескольких серверах IIS, поэтому, если один из них выходит из строя, другие обслуживают контент.

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

Вы бы хотели многодомный этот IP-адрес (на самом деле вам нужно объявить всю подсеть не меньше / 24 с BGP

BGP по сути рекламирует как добраться до вашей сети.