Сетевые GURU - восстановление после отказа IP в сочетании с балансировкой нагрузки..... Есть ли такое программное обеспечение? Является ли это возможным?
Я несколько дней играл с решениями высокой доступности, и до сих пор нахожу UCARP очень полезным для защиты от сбоев IP.
Это очень просто и делает свою работу.
Я думал о том, чтобы сделать еще один шаг вперед:
Если маршрутизатор, который соединяет два узла, использующих один и тот же IP-адрес, будет отправлять ВСЕ пакеты на оба узла (всегда), тогда я мог бы добиться гораздо большей балансировки нагрузки.
Это как решение "мастер-мастер" вместо "мастер-резервное копирование".
Исходные IP-адреса делятся.
Группа резервирования, скажем, два таких узла, совместно используют один ("виртуальный") IP, как сказано.
Пока они оба работают, они просто делят IP-адрес источника (его простое число) клиента и знают, как реагировать.
Например, Node1 принимает IP-адреса, которые делятся на 2.
Node2 берет на себя все остальное.
Клиент инициирует соединение TCP/IP (через общий IP).
Маршрутизатор, соединяющий оба узла, отправляет этот запрос обоим.
Если IP-адрес клиента отлично делится на 2, то Node1 отвечает.
На этом этапе Node2 игнорирует, потому что он знает о Node1.
Если один узел выходит из строя, например, Node1, другой (Node2) обнаруживает его - обычно, как в любом случае делает UCARP!
В этот момент Node2 начнет обслуживать остальных клиентов.
Когда Node1 возвращается, Node2 прекращает отвечать на запросы SYN (первые шаги инициализации соединения TCP/IP), поступающие с IP-адреса, делимого на 2, позволяя Node1 продолжать обслуживание.
Возможная проблема может возникнуть в направлении маршрутизатора: он должен отправлять каждый входящий пакет на X узлов в группе избыточности. Высокая (эр) внутренняя сетевая нагрузка.
Другая возможная проблема заключается в том, что каждый узел практически получает много пакетов, даже тех, которые ему "не нужны".
С сегодняшними маршрутизаторами / сетевыми картами я вижу это как очень маленькую цену по сравнению с преимуществом очень высокой доступности.
Не говоря уже о том, что в таком случае я бы использовал 100% своего ресурса (в хорошем смысле) вместо одного или нескольких "резервных" серверов, которые не делают ничего, кроме "ожидания".
Мой точный вопрос:
1) Есть ли уже такое решение? (с открытым исходным кодом, бесплатное программное обеспечение, на основе Linux).
2) Может ли роутер поддерживать такую вещь? Какие стандарты должны поддерживать? Что бы я спросил у провайдера DS/VPS относительно этой возможности?
Во всяком случае, это некоторые из моих размышлений по этому вопросу. Я был бы рад получить краткий ответ, подкрепленный ссылками и несколькими словами. Более того, очевидно, приветствуется:)
1 ответ
Я не думаю, что это возможно / возможно. Это определенно не существует, потому что это очень ограниченное использование по сравнению со стардардскими подходами.
Основной проблемой, которую я вижу, является отслеживание каждого входящего и исходящего IP-пакета и синхронизация состояния стека IP на обоих компьютерах таким образом, чтобы это было полностью прозрачно для приложения. Как вы "симулируете" приложение на узле 1, выполняя работу, но не отвечая или не получая магическое получение информации об узле 2? Он не может просто продолжить tcp-связь приложения nocde 1 без... специального программирования.