У меня есть сетевое устройство, которое можно (вручную) настроить для отправки сообщений на один IP-адрес. В одной и той же сети у меня есть несколько машин (рабочие столы ubuntu linux, настроенные со статическими IP-адресами 192.168.10.101 - 192.168.10.1XX), которые потенциально могут обрабатывать эти сообщения.

Существует ли механизм , с помощью которого можно настроить устройство для передачи своих сообщений в какой - то IP , как 192.168.10.254 , а затем есть какие - либо из этих других машин получать сообщения? Это делается для целей "высокой доступности", а не для балансировки нагрузки, поэтому я надеялся, что ответ не будет «добавить машину на 192.168.10.254 и запустить на ней HAProxy».

Я полагаю, я не могу позволить каждому из этих блоков добавлять псевдоним IP на 192.168.10.254 одновременно ... Я предполагаю, что это может вызвать странное поведение сети / сделать маршрутизатор сумасшедшим?

Могу ли я написать приложение, которое запускается на каждой машине и пингует 192.168.10.254, чтобы узнать, прослушивает ли какая-либо другая машина? А если нет, то он попытается настроить этот IP-псевдоним? Я представляю себе типичные проблемы распределенных систем / состояния гонки. Есть ли что-нибудь, что уже существует для этой цели и достойно решило эту проблему?

1 ответ1

2

Вы можете реализовать собственное решение для бедняков, но вам нужно (базовое) управление кластерами. Проверьте corosync и сердцебиение.

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

По сути, это то, что делают эти (и некоторые другие) системы кластерных контроллеров, поэтому я бы использовал их вместо этого.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .