Como configurar o no-break para reiniciar os servidores na seqüência correta?

12

Aqui temos alguns servidores e quase cada um deles possui um no-break dedicado. Existem dependências entre eles, portanto, eles devem ser ativados na sequência correta. Por fim, estamos enfrentando sérios problemas com a fonte de alimentação; portanto, os servidores são desligados e reiniciados em ordem aleatória quando a energia é restaurada. Não é um problema se os servidores foram desligados durante um blecaute, é importante que funcionem corretamente sem nenhuma intervenção humana depois que a energia for restaurada.

Nossos no-breaks são bastante baratos e o único parâmetro de configuração útil para o meu objetivo é power the load xx seconds after power is restored. Em teoria, colocando os atrasos corretos em cada no-break, posso corrigir a ordem de reinicialização do servidor, mas não confio que o no-break se comportará conforme o esperado.

É o caminho certo a seguir?
O UPS de alto nível oferece outras opções para corrigir a sequência de reinicialização?
Uma observação final: meus Ups estão na faixa de 1000 a 2200 VA

Filippo
fonte
1
Essa é uma das coisas boas oferecidas por systemd- a capacidade de definir dependências apropriadas no processo de inicialização. Aguarde até que o serviço X esteja disponível antes de tentar iniciar o serviço Y.
MSalters
1
@MSalters AFAIK systemd gerenciamento de dependência só funciona quando as unidades são tratadas pelo mesmo systemdexemplo e não para serviços em execução em servidores completamente diferentes ...
HBruijn
1
@HBruijn: Mais ou menos montagens de rede, por exemplo, funcionam em servidores. Ou seja, se o servidor1 monta um sistema de arquivos hospedado pelo servidor2, os serviços do serve1 que dependem da montagem serão pausados ​​até o servidor2 iniciar esses serviços. E IIRC você também pode ter servidores esperar por DHCP (não me pergunte por que um servidor usa DHCP, mas foi mencionado em uma resposta)
MSalters

Respostas:

25

A resposta padrão para isso é "nem um pouco". Corrija o software para manipular as reinicializações em ordem aleatória. Se você realmente precisar de alguns servidores para iniciar primeiro (exemplo: Active Directory), coloque-os nos USVs que possivelmente sobreviverão por muito mais tempo. Um servidor baseado em átomo de baixa potência é bom o suficiente como controlador do Active Directory e sobreviverá um dia em um pequeno USV.

O UPS de alto nível oferece outras opções para corrigir a sequência de reinicialização?

Não. Eu diria que geralmente é assumido que os programadores são competentes o suficiente para solucionar o problema adequadamente.

O que você PODE fazer é:

  • Os servidores iniciam "aleatoriamente". Exceto pelo DHCP / Active Directory, não há nada realmente exigindo um pedido que não possa ser corrigido.
  • Tenha um servidor de controle após algum tempo (5 minutos) inicie os serviços nas várias máquinas na ordem correta.

Eu diria que esse tipo de configuração é muito mais comum. Eu chamaria qualquer software que o servidor REQUERIR iniciar em uma ordem específica (fora da infraestrutura pura) como quebrado e impróprio para os negócios.

Apenas como nota: nossa própria configuração é um USV de 20kva de baixo custo (baixo custo porque foi usado um) para os servidores, com um USV de 2000VA escravo para uma máquina que serve como "raiz" da rede (e máquina de backup). Escravo significa que o USV está atrás do grande - portanto, ele só muda para a bateria quando o grande (que dura entre meia hora e 8 horas, dependendo de quanto da nossa grade de computação está on-line) entra em desligamento do terminal.

TomTom
fonte
2
Eu acho que isso às vezes é mais fácil dizer do que fazer (o AD, como você diz, é um exemplo óbvio), mas eu concordo. A solução correta é trabalhar na eliminação de dependências para coisas como ordem inicial de servidores ou serviços. Se nada mais, deve ser possível em um aplicativo Web, por exemplo, escrever um código que diga "Se não consigo conectar-me ao meu back-end, 'durma' e tente novamente mais tarde, em vez de travar horrivelmente".
precisa
O problema com o AD nem é o AD - é principalmente o IPv4 DHCP, que não está preparado para os computadores estarem online antes do servidor dhcp. O Ipv6 lida com isso;)
TomTom
Isso é verdade. O IPv4 é uma dor ... e ainda recebo pessoas aqui me perguntando por que precisamos nos preocupar com "esse novo lixo IPv6 emaranhado".
Rob Moir
1
"Geralmente é assumido que os programadores são competentes o suficiente para solucionar o problema" - você não deve fazer muita programação! Não, com toda a seriedade, há uma enorme quantidade de razões pelas quais um sistema pode precisar ser apresentado em uma ordem específica. Sim, o software deve "falhar normalmente" e tentar novamente as conexões quebradas, mas nem sempre é possível. Pelo que me lembro, algumas das boas PDUs têm a capacidade de iniciar / parar portas individuais, então talvez algo possa ser feito lá.
precisa saber é o seguinte
1
Eu tive que procurar por "USV" e encontrei "veículo de superfície não tripulado". Sei que isso está errado, mas quero que esteja certo.
Braiam 8/16
14

As unidades de distribuição de energia gerenciada (em vez do no-break) geralmente suportam atrasos personalizados na ativação de tomadas individuais após a retomada da energia.

Normalmente, isso evita que os disjuntores disparem quando um gabinete cheio de sistemas liga ao mesmo tempo imediatamente após a restauração da energia, mas isso também pode ser usado para preservar a ordem de inicialização das dependências do sistema.

HBruijn
fonte
Sim, correto. Essa é uma funcionalidade avançada e não se supõe que o USV esteja realmente conectado aos servidores - mas está alimentando racks que usam PDUs para lidar com os detalhes.
TomTom
6

Eu tive esse problema exato. A única diferença é que investimos em unidades robustas da APC montadas em rack (por exemplo, APC SmartUPS 3000 ). Com o software de desligamento de rede APC PowerChute (software de desligamento de rede PowerChute) , posso desligar e abrir servidores em uma ordem específica. Outro recurso útil do software foi configurar os servidores para serem desligados no último minuto, ou seja, calcular a quantidade de energia que as unidades da APC haviam deixado e desligar os servidores com tempo suficiente para desligá-los adequadamente, em vez de apenas desligar.

O software não é fácil de usar, mas não é nada difícil se você demorar algum tempo para descobrir. Se você estiver interessado em investir mais em sua infraestrutura, esse é definitivamente o caminho a percorrer.

Winski Tech
fonte
1
Também temos Apc Smart Ups, alguns deles são relativamente antigos e talvez tenham baterias fracas. É difícil fazer alguns testes neles porque eles estão em produção. Além disso, nos falta uma carga esquisita, quero dizer uma carga que pode suportar uma energia repentina sem problemas. Dito isto, toda vez que simulei um apagão, o no-break se comportou de maneira diferente do esperado, isso pode ser devido a uma configuração incorreta, mas meu sentimento é de que esses no-breaks não são muito confiáveis.
Filippo
@Filippo certamente YMMV, mas eu tenho uma mistura de SmartUPS 3000 e 3000XLMs em vários sites usando o software PowerChute por três anos e depois de descobrir o software, certamente há uma curva de aprendizado e alguns testes são necessários, tem sido bastante sólido.
Winski Tech
2

Parece que as unidades de no-break são de baixo custo e não podem ser configuradas para um tempo de espera específico de saída após a restauração da energia (algumas unidades de ponta são). Para obter a mesma funcionalidade, você precisa escolher um host específico para sempre ligar imediatamente (talvez o sistema que seja inicializado a qualquer momento) e deixar todos os outros servidores em um estado desligado (configurado na bios para retornar à energia quando o CA é aplicado e para homenagear o pacote mágico Wake On Lan para ligar quando solicitado). Em seguida, no host principal que inicializa, execute um script / utilitário para cronometrar a transmissão do pacote mágico WOL para cada host.

Jeff Meden
fonte