Несколько дата-центров и Трафика HTTP: Циклический алгоритм DNS является ЕДИНСТВЕННЫМ способом гарантировать мгновенную обработку отказа?

Мы используем openfiler и размещаем большие объемы данных (5 ТБ +) включая Xen DomU веб-сайтов с 1kk + хиты/ежедневная газета почти без любых проблем. При необходимости в iSCSI нет, вероятно, никаких стабильных свободных альтернатив.

78
задан 18 May 2014 в 17:56
11 ответов

Когда я использую термин "DNS Циклического алгоритма", я обычно имею в виду в в смысле "дешевого метода выравнивания нагрузки", поскольку OP описывает это.

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

Лучший метод выравнивания нагрузки (если деньги не являются проблемой) обычно считается:

  1. Глобальная сеть Anycast'ed 'интеллектуальных' серверов DNS,
  2. и ряд глобально распространенных центров обработки данных,
  3. где каждый узел DNS реализует Расщепленный горизонт DNS,
  4. и контроль доступности и потоков трафика доступен 'интеллектуальным' узлам DNS некоторым способом,
  5. так, чтобы пользовательский запрос DNS тек к ближайшему серверу DNS через Передачу любому из узлов IP,
  6. и этот сервер DNS раздает низкий TTL Запись / набор Записи для ближайшего / лучший центр обработки данных для этого конечного пользователя через 'интеллектуальный' расщепленный горизонт DNS.

Используя передачу любому из узлов для DNS прекрасен обычно, потому что ответы DNS являются не сохраняющими состояние и почти чрезвычайно короткими. Таким образом, если маршруты BGP изменятся, то это очень вряд ли прервет запрос DNS.

Передача любому из узлов меньше подходит для дольше и переговоры HTTP с сохранением информации, таким образом эта система использует расщепленный горизонт DNS. Сеанс HTTP между клиентом и сервером сведен к одному центру обработки данных; это обычно не может заменять к другому центру обработки данных, не повреждая сессию.

Поскольку я указал с "набором Записи", что я назову 'Циклическим алгоритмом DNS', может использоваться вместе с установкой выше. Это обычно используется для распространения нагрузки по трафику по нескольким высоконадежным подсистемам балансировки нагрузки в каждом центре обработки данных (так, чтобы можно было получить лучшее дублирование, используйте меньшие/более дешевые подсистемы балансировки нагрузки, не сокрушите буферы сети Unix единственного хост-сервера, и т.д.).

Так, действительно ли это верно, что, с несколькими дата-центрами и Трафиком HTTP, использованием DNS RR является ЕДИНСТВЕННЫМ способом гарантировать высокую доступность?

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

Править: Бумага Google, "Перемещающаяся Вне информации о Пути от точки к точке для Оптимизации Производительность CDN", кажется, мне является современной в глобальном распределении нагрузки для лучшего удобства для конечного пользователя.

Редактирование 2: Я прочитал статью "Why DNS Based.. GSLB.. Does not Work", с которой связался OP, и это - хороший обзор - я рекомендую смотреть на него. Считайте его из вершины.

В разделе "The solution to the browser caching issue" это защищает ответы DNS с несколькими Записи, указывающие на несколько центров обработки данных как единственное возможное решение для мгновенного сбоя.

В разделе "Watering it down" около нижней части это подробно останавливается на очевидном, та отправка нескольких, Записи некруты, если они указывают на центры обработки данных на нескольких континентах, потому что клиент соединится наугад и таким образом довольно часто получит 'медленный' DC на другом континенте. Таким образом, чтобы это работало действительно хорошо, несколько центров обработки данных на каждом континенте необходимы.

Это - другое решение, чем мои шаги 1 - 6. Я не могу предоставить идеальный ответ на этом, я думаю, специалист DNS от подобных Akamai или Google необходим, потому что большая часть этого сводится к практическому ноу-хау на ограничениях развернутых кэшей DNS и браузеров сегодня. AFAIK, мои шаги 1-6 - то, что Akamai делает с их DNS (кто-либо может подтвердить это?).

Мое чувство - прибывающий из того, что работало премьер-министром на порталах мобильного браузера (сотовые телефоны) - состоит в том, что разнообразие и уровень общей уязвимости браузеров там невероятны. Я лично не доверял бы решению HA, которое требует, чтобы терминал конечного пользователя 'сделал правильную вещь'; таким образом я полагаю, что глобальный мгновенный сбой, не повреждая сессию не выполним сегодня.

Я думаю, что мои шаги 1-6 выше являются лучшими, которые доступны с товарной технологией. Это решение не имеет мгновенного сбоя.

Я хотел бы в одного из тех специалистов DNS от Akamai, Google и т.д. прийти и доказать меня неправильно.:-)

34
ответ дан 28 November 2019 в 19:27
  • 1
    Я добавил больше объяснений в вопросе. Если я понимаю Ваш " лучшее выравнивание нагрузки technique" (укажите 6), это рекламирует просто записи ' best' дата-центр. Поскольку я пытался объяснить в вопросе этот doesn' t разрешают мгновенную обработку отказа на клиенте. –  Valentino Miazzo 30 September 2009 в 17:28
  • 2
    @vmiazzo: Да, Вы поняли меня правильно. I' m добавление 2-го редактирования к моему сообщению для разъяснения - но в основном я думаю, что момент заменяет это, Вы ищете, непрактичен / невозможный. –  Jesper M 30 September 2009 в 18:30

Ваш вопрос: "Действительно ли DNS является Циклическим алгоритмом ЕДИНСТВЕННЫЙ способ гарантировать мгновенную обработку отказа?"

Ответ: "Циклический алгоритм DNS никогда не является правильным способом гарантировать мгновенную обработку отказа".

(по крайней мере, не самостоятельно)

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

В самой простой конфигурации это только обеспечивает обработку отказа. Это может также использоваться для обеспечения Передачи любому из узлов с протестом, что основанные на TCP протоколы перестанут работать во время переключения, если будет нестабильность в маршрутизации.

18
ответ дан 28 November 2019 в 19:27
  • 1
    Добавленный некоторая информация об обработке отказа Передачи любому из узлов по вопросу. В основном также Передача любому из узлов TCP не является идеальным решением. –  Valentino Miazzo 1 October 2009 в 13:17
  • 2
    Передача любому из узлов TCP ре @vmiazzo - действительно, следовательно примечание в моем ответе о маршрутизации нестабильности и как это влияет на TCP. –  Alnitak 1 October 2009 в 15:16

Так, действительно ли это верно, что, с несколькими дата-центрами и Трафиком HTTP, использованием DNS RR является ЕДИНСТВЕННЫМ способом гарантировать высокую доступность?

Очевидно это - ложное требование - необходимо только посмотреть на Google, Akamai, Yahoo, чтобы видеть, что они не используют циклический алгоритм [*] ответы как их единственное решение (некоторые могут использовать его частично, наряду с другими подходами.)

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

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

Возможно, Вам нужны все запросы на единственную сессию для движения в те же серверы, но Вы хотите, чтобы запросы были распространены через различные, региональные кластеры сервера? Циклический алгоритм не является соответствующим для этого: необходимо сделать что-то, что гарантирует любым клиентским доступам, которым предоставляют, тот же кластер физического сервера каждый раз (кроме тех случаев, когда 'исключения' происходят, такие как отказ сервера). Или они получают последовательный IP-адрес от запроса DNS или направляются к тому же кластеру физического сервера. Решения для этого включают различный коммерческий и некоммерческий DNS "подсистемы балансировки нагрузки", или (если Вы имеете больше контроля над своей сетью), рекламные объявления сети BGP. Вы могли просто принять меры, чтобы серверы имен Вашего собственного домена дали совершенно различные ответы (но, поскольку запросы DNS могут быть отправлены повсеместно, Вы не достигнете никакой привязки местоположения с тем подходом.)

[* я собираюсь использовать "циклический алгоритм", потому что 'RR' в терминологии DNS означает "ресурсную запись".]

6
ответ дан 28 November 2019 в 19:27
  • 1
    Я добавил больше объяснений в ответе. Ваше предложение для использования DNS " загрузка balancers" по моему скромному мнению, doesn' t разрешают мгновенную обработку отказа. О BGP Вы отсылаете к Передаче любому из узлов решение TCP? –  Valentino Miazzo 30 September 2009 в 17:21
  • 2
    I' m не предлагающий какое-то конкретное решение по другому - I' m говорящий, что необходимо выбрать правильное решение для проблемы (который you' ve, не на самом деле указанный в Вашем вопросе) и Ваших ограничениях (так же). Циклический алгоритм DNS больше не обеспечивает мгновенную обработку отказа, чем DNS LB, потому что браузеры, как гарантируют, не сделают " право thing" (главным образом, потому что " право thing" строго не определен или предписан. Я don' t полагают, что существует достаточно " умный HTML browsers" даже сейчас - я соглашаюсь с Jesper это they' ре также варьировалось по их поведениям положиться на них вообще.) –  jrg 1 October 2009 в 01:57
  • 3
    Я понимаю Ваш скептицизм. Так или иначе, поскольку можно читать здесь crypto.stanford.edu/dns/dns-rebinding.pdf , большинство текущих браузеров HTML уже " smart". –  Valentino Miazzo 1 October 2009 в 12:47

2 - Можно сделать это с использованием Передачи любому из узлов Quagga

(Даже если существует некоторая информация, которая Передача любому из узлов плоха с TCP существует несколько крупных компаний с помощью него как CacheFly),

2
ответ дан 28 November 2019 в 19:27
  • 1
    Абсолютно, но Вы can' t делают это с арендованными серверами, Вам нужна Ваша собственная сеть. –  Julien Tartarin 30 September 2009 в 12:33
  • 2
    Добавленный некоторая информация об обработке отказа Передачи любому из узлов по вопросу. В основном также Передача любому из узлов TCP не является идеальным решением. –  Valentino Miazzo 1 October 2009 в 13:16

Другим очень простым выбором является использование минимум (как низко зависит Вашими потребностями), TTL в DNS A или CNAME записывает и обновляет эту запись для выбора, какой IP будет использоваться.

У нас есть 2 ISP и несколько услуг общего пользования, и мы используем успешно этот метод для высокой доступности с 3 лет.

1
ответ дан 28 November 2019 в 19:27
  • 1
    Я добавил больше объяснений в вопросе. Много браузеров HTML игнорируют DNS TTL (прикрепление DNS), видят бумагу, связанную в вопросе. Измените конфигурацию DNS, когда дата-центр спустится по doesn' t разрешают мгновенную обработку отказа на клиенте. –  Valentino Miazzo 30 September 2009 в 17:24

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

1
ответ дан 28 November 2019 в 19:27
  • 1
    Существует оправдание за него. Низкие TTLs оказывают большое влияние производительности на занятые серверы DNS и использование их постоянно, а не просто временно, когда изменение должно, злоупотребление системой и их ресурсами. Большая часть ISPs только осуществит минимальный TTL, после того как он устанавливался низко дольше, чем в течение периода разумного срока. –  JamesRyan 4 December 2009 в 13:00

Очень хорошее наблюдение vmiazzo +1 для Вас!! Я застреваю точно, где Вы.. экранированный с тем, как эти CDN делают свое волшебство.

Следующее является моим предположением о том, как CDN выполняют свою сеть:

  • Используйте Передачу любому из узлов DNS (упомянутый Jesper Mortensen) для получения самого близкого дата-центра
  • Они выполняют локальную сеть, которые охватывают через другой дата-центр, которые позволяют им делать что-то как CARP на их хостах через другой дата-центр

Или

В данный момент следующее решение работает на меня: - возврат DNS несколько IP, например:

www -> CNAME www1 , www1 A -> 123.123.123.1
www -> CNAME www2 , www2 A -> 123.123.123.1 
www -> CNAME www3 , www3 A -> 123.123.123.1 
                    www3 A -> 8.4.56.7 <--- reverse proxy
  • Последняя точка входа к обратному прокси в облаке амазонки, которые разумно передают доступному серверу (или обеспечивают под страницей обслуживания),

Обратный прокси все еще поражен, но бот, столь же тяжелый как основной.

5
ответ дан 28 November 2019 в 19:27

Почему RFC 2782 (применяют то же как MX/приоритет для сервисов как http, IMAP...) не реализован ни в каком виде браузера? Вещи были бы легче... Существует ошибка о, открыта в течение десяти лет в Mozilla!!! потому что это будет конец индустрии коммерческой подсистемы балансировки нагрузки??? Я очень разочарован об этом.

3
ответ дан 28 November 2019 в 19:27

Передача любому из узлов TCP на самом деле очень стабильна и используется, по крайней мере, CacheFly (с 2002), Prolexic и BitGravity. Хорошая презентация на Передаче любому из узлов TCP была сделана в NANOG 37: http://198.108.95.21/meetings/nanog37/presentations/matt.levine.pdf

1
ответ дан 28 November 2019 в 19:27

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

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

Довольно очевидно, почему дело обстоит так... несколько записи являются единственным способом переместить точку, в которой запросы направляются к клиентскому браузеру. Любой другой метод будет полагаться на единственную точку между клиентским браузером и сервером, в котором отказ может произойти, победив Ваш сервис. При помощи записи, единственная единая точка отказа от клиента к серверу становится клиентом самому.

Если у Вас нет нескольких установкой записей, Вы спрашиваете в течение времени простоя...

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

-1
ответ дан 28 November 2019 в 19:27
  • 1
    что? несколько recoerds не устраняют единую точку отказа! это просит проблемы. Вы используете виртуальный ' floating' IP в одном центре обработки данных или направляющих приемах, если Вы хотите к быстро обработке отказа между несколькими центрами обработки данных. –  pQd 3 June 2010 в 09:04

Интересно, сколько людей, ответивших на эти вопросы, на самом деле используют большую глобальную сеть серверов? Google использует круглосуточную систему, и моя компания использует ее уже много лет. Он может работать довольно хорошо, с некоторыми ограничениями. Да, он должен быть дополнен другими мерами.

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

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

Обход отказа - отстой. Лучший HA использует все ресурсы все время.

Я работаю с HA с 1986 года. Я прошел интенсивное обучение по созданию систем обхода отказов, и я вовсе не являюсь поклонником обхода отказов.

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

.
2
ответ дан 28 November 2019 в 19:27

Теги

Похожие вопросы