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

Отказоустойчивость DNS в нескольких центрах обработки данных?

У меня есть сайт, который начинает получать большой трафик, и буквально на днях у нас произошел сбой сети в центре обработки данных, где размещен наш балансировщик нагрузки (haproxy). Это беспокоило меня, поскольку, несмотря на все мои усилия по созданию полной резервной системы, я все еще не мог сделать наш DNS избыточным, что, на мой взгляд, было непростым решением.

Единственное, что мне удалось найти, - это подписаться на аварийное переключение DNS из таких мест, как dnsme и т. Д., Но они слишком дороги для начинающих стартапов. Даже их корпоративный план дает вам всего 50 миллионов запросов в месяц, и мы используем их за неделю.

Итак, мой вопрос: есть ли какой-нибудь самодостаточный DNS, который мы можем сделать, который обеспечивает аварийное переключение, как это делает dnsme?

DNS предназначен для резервирования. Настройте два сервера привязки в разных центрах обработки данных. Сделайте одного рабом другого. Убедитесь, что оба указаны у регистратора вашего домена. Готово.

Вот случайно выбранное руководство по настройке подчиненного сервера: http://docstore.mik.ua/orelly/networking_2ndEd/dns/ch04_08.htm

Хорошо, вы ищете аварийное переключение, переключая свою запись A на другой IP-адрес. Это довольно просто сделать, если вы используете BIND для своих серверов имен. Вы можете написать сценарий, который будет вызывать nsupdate для добавления / удаления / изменения ваших записей DNS. Какие бы системы кластеризации или мониторинга вы не использовали, можно проверить, недоступен ли ваш балансировщик нагрузки, и изменить запись DNS, чтобы она указывала на ту, которая все еще работает, или при использовании циклического перебора DNS для удаления отказавших узлов и добавления их обратно при их восстановлении.

Я делаю нечто подобное и запускаю несколько экземпляров haproxy (отказоустойчивый кластер даже в каждом центре обработки данных) в нескольких центрах обработки данных по всему миру. Мне также требовалось разделение трафика на основе GeoIP для этих разных центров обработки данных, поэтому я выбрал решение Dyn.com «Advanced Traffic Management», которое позволяет обслуживать разные регионы мира до их самого быстрого местоположения в глобальном масштабе, но также обеспечивает мониторинг и сбой, как вы ищете. Dyn (и я уверен, что другие) предлагают решения для мониторинга / аварийного переключения в виде отдельных предложений, например, http://dyn.com/dns/dynect-managed-dns/active-failover/

Если вы пытаетесь сделать это дешево, и когда вы говорите, что haproxy «не работает», это означает, что вы не отвечаете из-за сбоя в центре обработки данных, вы можете попробовать обслуживать несколько записей A с вашего DNS-сервера для каждого запроса. По сути, это приведет к циклическому перебору запросов к вашим различным серверам и позволит клиентам попробовать другие, если первый не удастся.

Тем не менее, я рекомендую использовать размещенное решение, так как оно отлично сработало для меня. Я думаю, что DnsMadeEasy также предлагает аналогичный продукт для географического распространения, который также включает мониторинг (за более дешевый, спасибо Dyn's).

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

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