Serviços de IRC com suporte a failover?

2

Eu corro um único servidor (chame-o de 'servidor A') IRC 'rede' e, graças à generosidade de alguns amigos, recebi um segundo servidor ('servidor B ') que eu posso executar um IRCd em ordem para fornecer redundância no caso de falhas do servidor A. Isso é bom, eu posso configurar um DNS round-robin com os servidores ligados. O problema que tenho é o que fazer com os serviços? Alguém sabe de uma maneira de fazer com que os serviços "executem failover" em caso de falha do servidor? Por exemplo, o Servidor A começa a executar os serviços, mas falha de repente. O Servidor B detecta isso e inicia sua própria cópia dos serviços (de preferência com a mesma configuração e dados que os serviços no Servidor B)

Uma solução que vem à mente é escrever um bot que cada servidor executa, que fica em um canal periodicamente verificando se o bot do outro servidor está no canal. Se for, tudo está bem. Se não, então o failover. Eu preferiria não ter que codificar isso mesmo

No momento, estamos usando os serviços Unreal IRCd e Anope no Linux

    
por insertjokehere 14.02.2011 / 03:34

3 respostas

1

Resposta curta: Você não pode com Anope (ou qualquer outro sistema de serviços que conheça)

Long Answer: Sua idéia é boa, e você pode não ter que codificar do zero - provavelmente você pode pegar o código de modelo existente para bots de IRC simples (por exemplo, em Python); eles também não precisariam pesquisar regularmente os outros bots, mas apenas processar as mensagens join / part / quit. Você teria, é claro, que lidar com várias condições de corrida de alguma forma (por exemplo, netsplits, problemas de acesso ao banco de dados, etc)

    
por 15.02.2011 / 00:25
2

A coisa mais próxima de um failover que você pode obter sem codificar serviços personalizados (não é uma tarefa trivial). é instalar serviços em algumas outras contas que você já executou um IRCd na sua rede e criar um script rsync para distribuir o banco de dados de serviços para outras máquinas. Dessa forma, se os serviços da caixa estiverem desativados, você poderá iniciar serviços de outra máquina e ainda ter bancos de dados relativamente atuais.

O Crontab não é difícil de aprender, nem o rsync e é muito mais rápido do que codificar uma solução personalizada.

Melhor de tudo, este método funciona com todos os pacotes de serviços existentes que usam um banco de dados simples.

    
por 05.08.2013 / 16:16
0

Com base no que o @IRCGuru afirmou. Também é possível configurar uma queda de DNS para cada servidor a ser acessado viva region.irc.yourirc.net. Ambos os métodos funcionam bem no ambiente que você está descrevendo e se está executando coisas dentro de um ambiente de máquina virtual.

Usando a versão vm você pode simplesmente girar uma segunda instância do seu servidor e redirecionar a porta de entrada de um para o outro ou até mesmo balancear a carga entre os dois, conectando-se uns aos outros internamente para evitar netsplits nos seus canais .

    
por 24.02.2014 / 01:07