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

Сетевые GURU - переключение IP при отказе в сочетании с балансировкой нагрузки… Есть ли такое программное обеспечение? Является ли это возможным?

Я играл с решениями высокой доступности в течение нескольких дней и пока что нахожу UCARP очень полезно для переключения при отказе IP.
Это очень просто и делает свою работу.

Я подумывал сделать еще один шаг:
Если роутер который соединяет два узла с одним и тем же IP отправит ВСЕ пакеты на оба узла (всегда), тогда я мог бы добиться гораздо большей балансировки нагрузки.
Это похоже на решение «мастер-мастер» вместо «мастер-резервное копирование».

Исходные IP-адреса можно разделить.
В группа резервирования, скажем, два таких узла, как сказано, совместно используют один («виртуальный») IP.
Пока они оба работают, они просто делят исходный IP-адрес (его простой номер) клиента и знают, как реагировать.

Например, Node1 принимает IP-адреса, которые делятся на 2.
Остальное берет на себя Node2.
Клиент инициирует соединение TCP / IP (через общий IP-адрес).
Маршрутизатор, который соединяет оба узла, отправляет этот запрос обоим.
Если IP-адрес клиента полностью делится на 2, тогда ответит Node1.
На этом этапе Node2 игнорирует, потому что он знает о Node1.

Если один узел выходит из строя, например Узел1, другой (Узел2) обнаруживает его - обычно, как это делает UCARP!
В этот момент Node2 начнет обслуживать остальных клиентов.

Когда Node1 вернется, Node2 перестанет отвечать на SYN-запросы (первые шаги инициации TCP / IP-соединения), исходящие от IP, делящегося на 2, позволяя Node1 продолжать обслуживание.

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

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

С сегодняшними маршрутизаторами / сетевыми картами я считаю это очень небольшой ценой по сравнению с преимуществом очень высокая доступность.
Не говоря уже о том, что в таком случае я бы использовать 100% моего ресурса (в хорошем смысле) вместо того, чтобы иметь один или несколько "резервных" серверов, которые не делают ничего, кроме "ожидания".

Мой точный вопрос:
1) Уже есть такое решение? (с открытым исходным кодом, бесплатное ПО, на основе Linux).
2) Может ли роутер такое поддерживать? Какие стандарты он должен поддерживать? Что я могу спросить у поставщика DS / VPS относительно этой возможности?

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

Я не думаю, что это возможно / осуществимо. Его определенно не существует, потому что он имеет очень ограниченное использование по сравнению со старыми подходами.

Основная проблема, которую я вижу, - это отслеживание каждого входящего и исходящего IP-пакета и синхронизация состояния IP-стека на обоих компьютерах таким образом, чтобы это было полностью прозрачно для приложения. Как вы «имитируете» приложение на узле 1, выполняющее работу, но не отвечающее, или волшебным образом улавливающее статус узла 2? Он не может просто продолжить tcp-соединение приложения nocde 1 без ... специального программирования.