Porque é que o sinal de encerramento de uma UPS chega ao anfitrião, mas não às respetivas máquinas virtuais?

Eva Wong é a Redatora Técnica e e entusiasta residente na ZimaSpace. Uma geek de longa data com paixão por homelabs e software de código aberto, ela é especialista em traduzir conceitos técnicos complexos em guias acessíveis e práticos . Eva acredita que o auto-hospedagem deve ser divertida, não intimidante. Através dos seus tutoriais, ela capacita a comunidade adesmistificar configurações de hardware , desde a construção do seu primeiro NAS até dominar os contêineres Docker., from building their first NAS to mastering Docker containers.

Um sinal de desligamento da UPS pode chegar ao anfitrião de virtualização sem chegar às respetivas VMs, porque a deteção de energia e a orquestração do desligamento dos convidados são etapas separadas.

Primeiro, confirme que o anfitrião recebe o evento da UPS e, em seguida, teste se todas as VMs importantes respondem a um desligamento normal pelo hipervisor. Verifique a ação de bateria fraca, o comportamento do agente convidado ou do ACPI, a ordem de paragem e a margem de autonomia. O estado final seguro é ter os convidados desligados primeiro e o anfitrião por último, com bateria suficiente para suportar os atrasos.

Confirme qual componente recebe o evento da UPS

Acione um evento de teste suportado ou consulte os registos de uma transição recente para bateria e registe se o NUT, o apcupsd, a monitorização SNMP ou outro daemon no anfitrião o deteta.

Um fluxo de desligamento da UPS no Proxmox separa a deteção da UPS num anfitrião Proxmox das ações posteriores necessárias para parar as cargas de trabalho e desligar a máquina.

Se o anfitrião nunca receber o evento, concentre-se na comunicação com a UPS. Se o receber, não assuma que o desligamento dos convidados é automático; verifique a etapa seguinte da orquestração.

Teste o desligamento dos convidados sem a UPS

A partir do hipervisor, solicite um desligamento normal e gracioso de cada VM crítica e meça o tempo necessário. Verifique o estado do agente convidado, o comportamento do ACPI e as aplicações que atrasam o desligamento.

Uma implementação de NUT com Proxmox demonstra por que razão o NUT pode ser a origem do evento, enquanto o Proxmox continua a precisar de um caminho de resposta definido para as cargas de trabalho virtualizadas que aloja.

Corrija os convidados que ignoram um desligamento normal pelo hipervisor antes de testar emergências de bateria. A automatização da UPS não consegue fazer com que um convidado que não responde se desligue subitamente de forma limpa.

Faça com que a ação da UPS invoque a camada de virtualização

Inspecione o script ou serviço que trata da bateria fraca. Um desligamento direto do anfitrião pode ignorar a ordem normal de paragem das VMs se não invocar o processo de desligamento dos convidados do hipervisor.

Outra orquestração do NUT orientada para Proxmox demonstra a necessidade de associar o estado do NUT a ações deliberadas do sistema, em vez de tratar o próprio daemon da UPS como um gestor de convidados.

Utilize a orquestração de desligamento suportada pela plataforma ou um hook restrito que solicite primeiro a paragem dos convidados. Evite comandos personalizados de encerramento forçado que ignorem o desligamento das aplicações dentro da VM.

Reserve tempo para convidados lentos e para o anfitrião

Meça o tempo total de paragem dos convidados, o tempo de desligamento do anfitrião, a autonomia da UPS sob carga e o limiar de bateria fraca. Deixe margem para que um convidado demore mais do que o habitual.

Existe um serviço de desligamento da UPS para Proxmox desenvolvido para este fim, porque um desligamento ordenado do Proxmox requer políticas e temporização, e não apenas a confirmação de que um sinal SNMP ou USB chegou ao anfitrião.

Defina tempos limite limitados para os convidados e uma ordem de escalada, para que uma VM não crítica bloqueada não esgote a bateria. Os convidados críticos de armazenamento ou de bases de dados podem justificar um desligamento mais antecipado.

Execute um teste de energia controlado de ponta a ponta

Durante uma janela de manutenção, simule ou acione a condição suportada da UPS, observe a ordem de desligamento dos convidados, confirme que o anfitrião se desliga por último e, em seguida, restabeleça a alimentação da rede e verifique se os arranques são limpos.

As orientações para laboratórios domésticos sobre resiliência de laboratórios domésticos a falhas de energia reforçam que a resiliência depende de testar toda a sequência de falha, em vez de recolher apenas telemetria da UPS. O guia relacionado da ZimaSpace sobre a preparação das cópias de segurança das VMs acrescenta a vertente da recuperação e das cópias de segurança.

O fluxo de trabalho só está concluído quando todas as VMs necessárias se desligam corretamente antes do anfitrião, a bateria mantém uma margem de segurança e a mesma sequência volta a funcionar após alterações de configuração.

Perguntas frequentes

As VMs precisam do seu próprio cliente NUT quando o anfitrião já tem um?

Nem sempre. O anfitrião pode orquestrar o desligamento dos convidados através do hipervisor, mas essa etapa de paragem dos convidados tem de ser configurada, testada e autorizada a dispor de tempo suficiente antes do desligamento do anfitrião.

O que acontece se uma VM se recusar a desligar?

Utilize um tempo limite limitado e uma política de escalada. Um convidado bloqueado não deve consumir toda a bateria da UPS até que o anfitrião perca abruptamente a alimentação.

Como devo testar o desligamento da UPS em segurança?

Utilize uma janela de manutenção, cópias de segurança íntegras, um evento controlado de bateria fraca ou simulado, quando suportado, e verifique a ordem de paragem dos convidados, o desligamento do anfitrião e a recuperação limpa depois de o fornecimento elétrico ser restabelecido.

Suporte e Dicas

Mais para Ler

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.