При падении канала в ДЦ мы оставляем клиентов без нашего сервиса, сам сервер работает но доступа очевидно к нему нет, обычно это несколько минут, но это негативно сказывается на репутации.
Есть мысль разместить дублирующие сервера в другом ДЦ, и в случае падения канала либо сервера на одном, переключать трафик на другой.
Но как это сделать наиболее грамотно пока не ясно.
Вроде есть сторонние сервисы распределения нагрузки но где гарантия что направив поток через них они сами не рухнут при ддосе или просто большой нагрузке.
Быстрое переключения в случае падения канала одного из ДЦ не получится, только переключением ДНС, а это не моментом происходит.
Второй ДЦ вам не нужен. В датацентрах всегда много каналов от разных провайдеров, просите второй провод от другого провайдера и подключайте его в сервер тоже, это единственно правильное решение.
ДЦ Нетдирект и всё в нем хорошо кроме вот таких падений канала.
После Theplanet нетдирект как шарашкина контора конечно.
Будем просить второй провод конечно но уверенности в этом решении нет.
Понятно что они там и так пытаются это всё решать но результат пять, десять минут простоя.
Если честно руки не доходят проверить, но идея очень простая
DNS позволяет делать несколько записей A для имени, в частности Round robin может выдавать целый список IP адресов. Клиент, по идее должен брать первый и таймауту переключиться на следующий.
Любые манипуляции с ДНС это априори плохое решение ибо днс может проапдейтится у всех дня через три к примеру. Так как очень часто кэшируюший локальный днс сервер сам решает когда ему обновлять данные.
Это значить что он возьмет одну из А записей, запомнит, и будет использовать только её.
Я расчитываю что мне подскажут готовый сервис который берет следующую работу на себя, а именно нам выдается IP, мы его прописываем в DNS, а реальные сервера скрываются под другими IP на которые этот некий сервис будет переключать трафик по заданным нами условиям.
Как мне известно записей может быть две и более но они будут последовательно переключать клиента по этим IP следовательно часть будет попадать на рабочий сервер или канал, а часть нет.
Вот цитата из вики: Хотя Round robin DNS (RR DNS) легко реализовать, всё же этот алгоритм имеет несколько проблематичных недостатков, связанные с кэшированием записи в иерархии RR DNS самого себя, а также с кэшированием на стороне клиента, выданного адреса и его повторного использования, сочетание которых трудно управляемо. RR DNS не опирается на доступность услуг. К примеру, если сервис на одном из адресов недоступен, RR DNS будет продолжать раздавать этот адрес и клиенты будут по-прежнему пытаться добраться до неработоспособных услуг.
Блин, повторяю: Выдаваться может СРАЗУ несколько адресов. Не меняться по очереди, а СРАЗУ. Именно RR может выдавать по запросу n из m записей по кругу. В том числе и 2 из 2.
Да кэшируется, да не имеет в себе средств отслеживания доступности, но в данном случае это все без разницы.
Думаю надо искать вменяемый ДЦ, если с Theplanet мф горя не знали в этом отношении, но там пинги длинные очень, может действительно стоит поискать нормальный ДЦ у которого эта проблема уже решена внутри.
Все эти кластерные штучки базируются на виртульных IP адресах, которые можно перенести с машины на машину. Адреса же не перенести просто так в другой ДЦ. В случае сервера в вебе для такой операции нужно иметь свою AS и переанонсировать BGP route. Такое делают крупные провайдеры и предоставляют как услугу. Но это все несколько другой порядок стоимости.
Решение на базе best-hosting.ru —
~9000 — за heartbeat наш (который будет перебрасывать маршруты) + траф (если его много) + стоимость коло/аренды для двух серверов, если навскидку. Цену уточнять на admin@best-hosting.ru.