Мы используем openfiler и размещаем большие объемы данных (5 ТБ +) включая Xen DomU веб-сайтов с 1kk + хиты/ежедневная газета почти без любых проблем. При необходимости в iSCSI нет, вероятно, никаких стабильных свободных альтернатив.
Когда я использую термин "DNS Циклического алгоритма", я обычно имею в виду в в смысле "дешевого метода выравнивания нагрузки", поскольку OP описывает это.
Но это не единственный способ, которым 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 и т.д. прийти и доказать меня неправильно.:-)
Ваш вопрос: "Действительно ли DNS является Циклическим алгоритмом ЕДИНСТВЕННЫЙ способ гарантировать мгновенную обработку отказа?"
Ответ: "Циклический алгоритм DNS никогда не является правильным способом гарантировать мгновенную обработку отказа".
(по крайней мере, не самостоятельно)
Правильный способ достигнуть мгновенной обработки отказа состоит в том, чтобы использовать BGP4, направляющий таким образом, что оба сайта используют те же IP-адреса. Используя это базовая маршрутизация Интернета технологий используются для маршрутизации запросов к правильному дата-центру, вместо того, чтобы использовать базовое обращение Интернета к технологии.
В самой простой конфигурации это только обеспечивает обработку отказа. Это может также использоваться для обеспечения Передачи любому из узлов с протестом, что основанные на TCP протоколы перестанут работать во время переключения, если будет нестабильность в маршрутизации.
Так, действительно ли это верно, что, с несколькими дата-центрами и Трафиком HTTP, использованием DNS RR является ЕДИНСТВЕННЫМ способом гарантировать высокую доступность?
Очевидно это - ложное требование - необходимо только посмотреть на Google, Akamai, Yahoo, чтобы видеть, что они не используют циклический алгоритм [*] ответы как их единственное решение (некоторые могут использовать его частично, наряду с другими подходами.)
Существует много возможных вариантов, но это действительно зависит от того, что другие ограничения Вы имеете с Вашим сервисом/приложением, относительно которого Вы выбираете.
Возможно использовать циклические методы на простом, соразмещенном подходе сервера и не иметь для волнения об отказе сервера, если Вы также устраиваете 'обработку отказа' IP-адреса. (Но большинство выбирает методы выравнивания нагрузки, единственный IP-адрес и обработку отказа между подсистемами балансировки нагрузки.)
Возможно, Вам нужны все запросы на единственную сессию для движения в те же серверы, но Вы хотите, чтобы запросы были распространены через различные, региональные кластеры сервера? Циклический алгоритм не является соответствующим для этого: необходимо сделать что-то, что гарантирует любым клиентским доступам, которым предоставляют, тот же кластер физического сервера каждый раз (кроме тех случаев, когда 'исключения' происходят, такие как отказ сервера). Или они получают последовательный IP-адрес от запроса DNS или направляются к тому же кластеру физического сервера. Решения для этого включают различный коммерческий и некоммерческий DNS "подсистемы балансировки нагрузки", или (если Вы имеете больше контроля над своей сетью), рекламные объявления сети BGP. Вы могли просто принять меры, чтобы серверы имен Вашего собственного домена дали совершенно различные ответы (но, поскольку запросы DNS могут быть отправлены повсеместно, Вы не достигнете никакой привязки местоположения с тем подходом.)
[* я собираюсь использовать "циклический алгоритм", потому что 'RR' в терминологии DNS означает "ресурсную запись".]
2 - Можно сделать это с использованием Передачи любому из узлов Quagga
(Даже если существует некоторая информация, которая Передача любому из узлов плоха с TCP существует несколько крупных компаний с помощью него как CacheFly),
Другим очень простым выбором является использование минимум (как низко зависит Вашими потребностями), TTL в DNS A или CNAME записывает и обновляет эту запись для выбора, какой IP будет использоваться.
У нас есть 2 ISP и несколько услуг общего пользования, и мы используем успешно этот метод для высокой доступности с 3 лет.
Один гаечный ключ в работах - то, что много ISPs плохо настроили сопоставители, которые кэш записывает для интервала набора, и полностью проигнорируйте настройки TTL. Это не должно быть так и нет никакого оправдания за него, но печально на основе моего опыта с миграцией многочисленных веб-сайтов и сервисов, это действительно происходит.
Очень хорошее наблюдение vmiazzo +1 для Вас!! Я застреваю точно, где Вы.. экранированный с тем, как эти CDN делают свое волшебство.
Следующее является моим предположением о том, как CDN выполняют свою сеть:
Или
В данный момент следующее решение работает на меня: - возврат 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
Обратный прокси все еще поражен, но бот, столь же тяжелый как основной.
Почему RFC 2782 (применяют то же как MX/приоритет для сервисов как http, IMAP...) не реализован ни в каком виде браузера? Вещи были бы легче... Существует ошибка о, открыта в течение десяти лет в Mozilla!!! потому что это будет конец индустрии коммерческой подсистемы балансировки нагрузки??? Я очень разочарован об этом.
Передача любому из узлов TCP на самом деле очень стабильна и используется, по крайней мере, CacheFly (с 2002), Prolexic и BitGravity. Хорошая презентация на Передаче любому из узлов TCP была сделана в NANOG 37: http://198.108.95.21/meetings/nanog37/presentations/matt.levine.pdf
Несколько записи являются единственным способом устранить возможную единую точку отказа. Любое другое решение вынуждает все входящие запросы пройти единое устройство где-нибудь между сервером и клиентом.
Таким образом для абсолютного дублирования, это необходимо. Именно поэтому Google делает это, или кто-либо еще, кто хочет быть уверенным в доступности непрерывной службы.
Довольно очевидно, почему дело обстоит так... несколько записи являются единственным способом переместить точку, в которой запросы направляются к клиентскому браузеру. Любой другой метод будет полагаться на единственную точку между клиентским браузером и сервером, в котором отказ может произойти, победив Ваш сервис. При помощи записи, единственная единая точка отказа от клиента к серверу становится клиентом самому.
Если у Вас нет нескольких установкой записей, Вы спрашиваете в течение времени простоя...
На этот метод, очевидно, нельзя полагаться для выравнивания нагрузки все же.
Интересно, сколько людей, ответивших на эти вопросы, на самом деле используют большую глобальную сеть серверов? Google использует круглосуточную систему, и моя компания использует ее уже много лет. Он может работать довольно хорошо, с некоторыми ограничениями. Да, он должен быть дополнен другими мерами.
Реальный ключ заключается в том, чтобы быть готовым принять икоту или две, если сервер выходит из строя. Когда я выдергиваю вилку на сервере, если браузер пытается получить доступ к этому серверу, то происходит задержка примерно на минуту, пока браузер узнает, что IP-адрес не работает. Но затем он очень быстро переходит на другой сервер.
Он отлично работает, и люди, которые утверждают, что он вызывает много проблем, не знают, о чем они говорят. Он просто требует правильного дизайна.
Обход отказа - отстой. Лучший HA использует все ресурсы все время.
Я работаю с HA с 1986 года. Я прошел интенсивное обучение по созданию систем обхода отказов, и я вовсе не являюсь поклонником обхода отказов.
Кроме того, RR работает над распределением нагрузки, даже если она пассивная, а не активная. Логи наших серверов четко показывают соответствующий процент трафика на каждом сервере - в пределах разумного
.