Cross-colo fail-over design, уровень отказа DNS-сервера?

Мне интересны перекрестные стратегии сбоя для веб-приложений, так что если основной сайт не удастся, пользователи без проблем попадут на сайт с ошибкой в ​​другой коло.

С точки зрения приложений, в основном, используется настройка базы данных master-slave между колоссами и услугами, предназначенными для восстановления, и возможность получать средний поток. Я пытаюсь выяснить стратегию перемещения трафика с основного сайта на сайт с откатом. DNS failover, даже при низких TTL, похоже, имеет справедливый бит латентности.

Какие стратегии вы бы рекомендовали для быстрого перемещения трафика между колоссами, если серверы в главном процессоре недоступны?

Если у вас есть другой интересный опыт/слова мудрости о переходе на перекрестный колокол, я тоже хотел бы услышать их.

Ответ 1

Механизмы, основанные на DNS, являются трудными, даже если вы ставите низкие TTL в свои файлы зон.

Причиной этого является то, что многие приложения (например, MSIE) поддерживают свои собственные кеши, которые игнорируют TTL. Другое программное обеспечение выполнит одиночный gethostbyname() или эквивалентный вызов и сохранит результат до перезапуска программы.

Хуже того, многие рекурсивные DNS-серверы интернет-провайдеров, как известно, игнорируют TTL ниже своего собственного минимума и налагают свои собственные более высокие TTL.

В конечном счете, если сайт будет запущен из обоих центров обработки данных без, изменив свой IP-адрес, вам нужно будет рассмотреть механизмы "Multihoming" через глобальные объявления маршрута BGP4.

При многопоточности вам нужно получить как минимум 24 бита блокирования "независимого от провайдера" (так называемого "PI" ) IP-адреса, а затем его можно объявить только в глобальной таблице маршрутизации с сайта резервного копирования, если основной сайт не работает.

Ответ 2

Что касается DNS, мне нравится ссылаться, "Почему балансировка нагрузки на основе глобального сервера DNS не работает" . Для всего остального - использовать BGP.

Проектирование сетей для балансировки нагрузки с помощью BGP все еще нелегкая задача, и я, безусловно, не эксперт по этому вопросу. Это также сложнее, чем Wikipedia может вам сказать, но есть несколько интересных статей в Интернете, в которых подробно описывается, как это можно сделать:

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

Помимо очевидных концепций, которые вы можете использовать для достижения программных и аппаратных средств, вы также можете проверить свой провайдер/провайдер/colo, если они могут настроить вас.

Кроме того, не обижайтесь на свой выбор colo (Who the provider?), но большинство мест должно быть настроено для решения проблем с простоями и т.д., они не должны требовать от вас действий. Конечно, наводнения или инопланетяне всегда могут ударить, но в этом случае я думаю, что есть более важные проблемы.: -)