Como ativar um servidor depois que o UPS o desliga quando a energia da rede elétrica é restaurada?

16

Eu tenho vários servidores Linux conectados aos no-breaks da APC. Eles são conectados ao no-break via USB e configurados para desligar se o no-break enviar um sinal de que a energia da rede elétrica foi perdida e não retornou após um período de tempo. Isso funciona bem. Além disso, eles são configurados através de jumpers para ligar automaticamente se a energia for perdida e depois retornar. Isso também funciona bem.

O cenário que está causando problemas é quando a energia da rede elétrica é perdida e o servidor é desligado, mas a energia da rede elétrica é restaurada antes que o no-break acabe. Nesse caso, gostaríamos que o servidor reiniciasse, mas como a energia nunca é realmente perdida após o no-break, o servidor nunca vê um evento de retorno de energia e, portanto, não liga.

Espero que exista um dispositivo que possa ser conectado à rede elétrica antes do no-break e detectar o estado de retorno de energia e enviar sinais de ativação talvez via Wake-on-Lan para servidores pré-configurados para ativá-los quando a energia elétrica retornar alguém pode me apontar.

Sugestões alternativas também são apreciadas, a única coisa que não posso fazer é substituir o hardware do servidor e prefiro manter os mesmos no-breaks, se possível.

bk.
fonte

Respostas:

13

O cenário típico implementado ao usar o no-break é:

  1. Em caso de perda de energia, o no-break notifica o componente de software no (s) sistema (s) conectado (s) a ele.
  2. Se a energia for perdida por mais de n segundos, o driver do no-break notifica o no-break e interrompe o sistema sem desligá-lo (isso é importante).
  3. O no-break aguarda m segundos para que os sistemas parem e corta a energia.
  4. Quando a energia é restaurada e a bateria do no-break é carregada acima do mínimo (para que possa suportar a energia e o desligamento limpo caso a energia seja perdida logo após a inicialização da máquina), o UPS restaura a energia dos sistemas.
  5. Os sistemas notam (no nível BIOS / UEFI) que eles foram ligados antes de perderem energia e, portanto, inicializam.

Na maioria dos BIOSs de servidor, você pode configurar o sistema para restaurar o estado de energia antes da perda de energia. Isso significa que, se o servidor for desligado e a energia for perdida, ele permanecerá desligado após você conectá-lo. Por outro lado, se ele foi ligado, quando a energia foi perdida, será ligado quando a alimentação CA for restaurado.

A porca mencionada pelo BillThor deve permitir que você realize esse cenário.

Paweł Brodacki
fonte
11
Obrigado! Tenho tudo acima funcionando, exceto a etapa (3), meu no-break não corta energia até que a bateria fique muito baixa. Alguns dos meus servidores podem levar alguns minutos para serem interrompidos ou encerrados completamente e o tempo muda entre os desligamentos. Tendo o no-break puxando a energia após um tempo pré-configurado, estarei arriscando puxar a energia muito cedo, ou aguardando muito tempo e o risco de voltar a ligar antes que o no-break puxe a energia e nunca recebo meu sinal de inicialização. Talvez o que eu precise seja de um no-break que suporte um canal de retorno do sistema, para que ele consiga energia assim que o servidor for interrompido.
bk.
2
Olhando para o NUT Docs, acho que o problema que enfrento é esse, então tentarei a solução que eles recomendam lá. Obrigado networkupstools.org/docs/FAQ.html#_i_8217_m_facing_a_power_race
bk.
9

Este problema foi resolvido usando uma pequena caixa linux (Asus wl deluxe ou smth) que foi conectada ao no-break principal e acordou o mais rápido possível, quando a energia foi restaurada. O script de inicialização inclui um atraso de 5 minutos para evitar variações no status de energia (ativo / inativo), todos os servidores com WOL-ed (todos os w2k3, um linux) e me envia um sms com o status.

migabi
fonte
4

Depois de ler muitas sugestões, acho que uma boa solução é usar qualquer computador antigo (se você não se importa com o consumo de energia) ou algum tipo de raspberry pi conectado diretamente à energia.

Portanto, quando a energia aumenta, um script verifica se os servidores estão ligados e, se não, envia um OWL pela rede.

Trabalho Diógenes Ribeiro Borges
fonte
3

Eu uso o NUT (Network UPS Tool) para casos como este. Você precisará de um servidor baseado em Unix / Linux para monitorar o no-break. Uma vez iniciados os desligamentos, garantirá que o no-break esteja ligado e desligado. Isso trará os servidores de volta se eles reiniciarem quando a energia for restaurada.

Há um cliente para servidores Windows para que eles possam ser desligados corretamente.

BillThor
fonte
1

Se o seu BIOS tiver a possibilidade de definir um tempo de inicialização, você poderá defini-lo para 50 minutos após o desligamento, se o desligamento for acionado pelo sinal de desligamento do no-break.

Portanto, no seu cenário, o servidor voltaria a funcionar após 50m + inicialização + tempo de desligamento mais recente.

Nils
fonte
-2

Eu gosto de todas as idéias mencionadas anteriormente. Gostaria de sugerir a execução do servidor "NUT" ou "WoL" em um laptop, com a tampa fechada. Dessa forma, ele pode funcionar por 4-6 horas apenas com a bateria. Alguns laptops podem ter 2 baterias instaladas de uma só vez, mesmo com períodos de execução longos.

jftuga
fonte
você deve ler o comentário de Paweł Brodacki; o ponto de NUT ou apcupsd é que o servidor Linux pode ser desativado sem desligar . Isso significa que "último estado" liga o servidor novamente e, nesse momento, liga todos os servidores Windows. O backup de bateria a longo prazo é completamente o oposto aqui.
Michael Lowman
E a solução WoL mencionada por migabi?
jftuga
Eles são a mesma ideia. "liga todos os servidores windows" é realizado com o WoL; você não a sua "caixa WoL" permanecer por causa da maneira que você deve ligá-la para baixo (ou seja, de tal forma que o último estado ainda funciona)
Michael Lowman