controla a ordem de inicialização de vários servidores

6

Estou procurando recomendações sobre como controlar a ordem de inicialização de um rack de máquina, caso todos precisem ser inicializados novamente. Mais detalhadamente:

Group1:
  DHCP/DNS/LDAP Server
Group2:
  NFS servers
Group3:
  Web Servers
  Compute Nodes

No momento, estou configurando o apcupsd para lidar com o desligamento de emergência, particularmente para os servidores de dados, mas não tenho certeza se devo programar alguma inicialização complicada usando o WOL ou se há um sistema de eventos de rede antecipado para o Linux pausar iniciar o processo até que os eventos corretos sejam recebidos.

Se for importante, todos os servidores são da Dell e eles têm o iDRAC, mas eu não consegui fazê-lo funcionar (não tentei tanto), se isso oferecer alguma alternativa.

    
por Cyclone 21.07.2012 / 06:33

4 respostas

1

Você tem várias opções. Pode ser uma boa ideia combinar duas ou mais dessas abordagens.

  • Se cada grupo estiver em UPSs dedicados, você poderá controlar a sequência de inicialização do UPS em algum grau. UPSs de alta potência geralmente podem ser configuradas para atrasar a inicialização. Alterne os atrasos de inicialização para atender às suas necessidades. Você deve estar iniciando de qualquer maneira para impedir que o start = up load ative fusíveis ou disjuntores em seu feed de energia.

  • Como outros notaram, há PDUs com recursos de atraso. Estes seriam configurados como para UPSs. Eles também podem ser controlados pela rede para que o próximo grupo possa ser ligado quando os serviços necessários estiverem disponíveis.

  • O WoL é uma abordagem que você poderia usar como outras pessoas notaram.

  • Se você estiver usando um processo init de encadeamento único, poderá adicionar um script de inicialização que aguarda a disponibilidade do serviço necessário antes de continuar. Como alternativa, você pode adicionar as verificações aos scripts de inicialização apropriados. Adicionar as verificações de guarda para os serviços necessários pode ser uma boa ideia de qualquer maneira.

  • Você pode analisar seus endereços IP da Internet. mas não habilitá-los até que todos os serviços necessários estejam em vigor. Isso exigiria um script de guarda que verifica se os serviços necessários estão disponíveis.

  • As montagens do NFS podem ser configuradas para serem bloqueadas até que as montagens estejam disponíveis. Isso deve atrasar o processamento do init até que os servidores NFS estejam atendendo às montagens necessárias.

por 22.07.2012 / 03:50
3

Eu questionaria o cenário específico que você está planejando ...

Você está tentando planejar a energização após uma queda de energia? Recuperação de algum tipo de desastre? Ou a sua preocupação é mais relacionada ao poder-pico? Para o último, às vezes usei atrasos de inicialização aleatórios configurados no BIOS dos servidores ou usei uma PDU comutada para lidar com a sequência de inicialização para evitar sobrecargas.

No lado do sequenciamento, eu criava as dependências no nível do aplicativo. De uma inicialização a frio, seus servidores de aplicativos devem ser capazes de tolerar a falha, atraso ou falta de presença de servidores de suporte (DHCP / DNS / LDAP). Você tem servidores de backup executando esses serviços? Alguma coisa fora do local?

Se não, você pode definir verificações de inicialização de aplicativos ou daemon - por exemplo, não inicie o daemon NFS se os servidores DNS não puderem ser alcançados. Eu fiz um pouquinho dessa verificação de dependência usando Monit ou um script de wrapper ... mas realmente não pensei nisso tipo de pedido na maioria dos ambientes.

    
por 21.07.2012 / 07:40
2

O que você está tentando realizar? É minimizar (atenuar) os picos de demanda criados por um bando de servidores que iniciam simultaneamente ou algo que pode empurrar a adaptação de emergência do poweroff? Se for o primeiro, procure sequenciadores de energia - existem unidades no rack projetadas para ativar grupos de tomadas com atrasos programáveis - digamos, alguns minutos entre cada um de seus grupos para permitir que cada um seja liquidado antes de inicializar. Isso costumava ser bastante comum com alguns fornecedores no lado maior dos médios.

    
por 21.07.2012 / 07:16
0

Na minha opinião, você respondeu sua própria pergunta. O WoL é uma ótima maneira de garantir que os servidores sejam inicializados em uma sequência definida. Nada complicado sobre isso. Basta que cada servidor envie o sinal WoL para o próximo na sequência. Apenas certifique-se de documentar essa sequência para quando algo quebrar ou precisar ser modificado. O ideal é que o script WoL primeiro verifique se os serviços relevantes estão sendo executados antes de enviar um sinal. Você também pode ter um tempo limite nas verificações que podem enviar um alerta se algo estiver errado, o que pode economizar um pouco de backtracking se um servidor não iniciar.

    
por 21.07.2012 / 23:26