Pull to refresh

Отказоустойчивость на базе DNS

DNS *
Внутри одно дата-центра организовать отказоустойчивость легко — есть масса инструментов и техник.
А как быть если надо организовать отказоустойчивость на базе нескольких дата-центров?

Ниже я приведу, на мой взгляд элегантное и очень дешевое решение, не лишенное конечно же недостатков.

Смысл заключается в том чтоб в каждом дата-центре был свой NS сервер который отдает IP своего дата-центра.

Теперь в картинках, imho так нагляднее и понятнее...

И так, что происходит при попытке браузером открыть web страничку (упрощенный вариант):



Если же DNS не отвечает, то dns клиент обращается к следующему ns серверу:



Настройки зон для каждого дата-центра.



Тут видно что в некоторых дата-центрах фронтов может быть больше чем 1.

В общем я рассказал про идею. А из нее можно накрутить много чего интересного.

Достоинства:
  • Если падает дата-центр в течении минуты все клиенты уйдут на работающие площадки.
  • Если надо провести профилактические работы — выключаем named, ждем минуту, можно работать.

Недостатки:
  • Очень маленькая часть клиентов все равно будет ломиться в «выключенный» дата-центр.
  • Надо поддерживать отдельный файл зон для каждого дата-центра, но эта задача легко решается с помощью например puppet.
  • Не совсем равномерно распределяется нагрузка, но терпимо


P.S. Обязательно в файле зон выставить:
$TTL 60; 1 minutes
Tags:
Hubs:
Total votes 24: ↑15 and ↓9 +6
Views 35K
Comments Comments 77