A máquina não desliga: um pedido não é um interruptor
Desligar pede; parar corta a energia. Tudo o que confunde numa máquina que se recusa a desligar vem dessa única distinção, e do fato de que um pedido precisa de alguém lá dentro ouvindo.
AtlasPVE ·
Este verbete responde a
- proxmox vm não desliga
- proxmox stop ou shutdown
- proxmox desligamento limpo
- proxmox nobreak desligar vms
- proxmox vm won't shut down
Você aperta desligar. A tarefa começa, a rodinha gira, e três minutos depois a máquina continua rodando. No fim você aperta parar e ela morre na hora, o que levanta uma pergunta óbvia: por que a primeira não funcionou se a segunda claramente consegue?
Não são duas intensidades da mesma ação. São duas coisas completamente diferentes.
A distinção da qual tudo depende
Desligar é um pedido. A camada de virtualização pede ao convidado que se desligue sozinho, do mesmo jeito que apertar o botão de energia de uma máquina física pede ao sistema operacional que feche direito. O que fazer com esse pedido, quem decide é o convidado.
Parar é um corte de energia. Tira a alimentação da máquina virtual imediatamente, sem conversa nenhuma. A documentação avisa em linguagem clara: parar pode causar perda de dados, então use com cautela.
Assim que você separa as duas ideias, uma máquina que não desliga deixa de ser misteriosa. Ela não está se recusando. Ninguém lá dentro ouviu o pedido.
Quem deveria estar ouvindo
Há dois ouvintes possíveis, e uma máquina saudável tem pelo menos um.
O tratador do botão de energia do sistema operacional. Num convidado Linux normalmente existe. Numa imagem mínima, num aparelho parecido com contêiner, ou num sistema que entrou numa fase inicial de boot ou num console de recuperação, pode faltar.
O agente convidado. Quando está ativado e realmente rodando, dá à camada de virtualização um canal direto para dentro, e o pedido vai por ali.
Se o agente está desligado e o tratador do botão falta ou não responde, o pedido sai e não chega a lugar nenhum. Não se diz "não" para a camada de virtualização. Não se diz nada, o que de fora parece exatamente a mesma coisa e é por isso que a tarefa parece travar em vez de falhar.
Se suas máquinas rotineiramente demoram demais para desligar, checar se o agente realmente funciona é um primeiro passo melhor do que encurtar tempos limite.
Depois o tempo limite, depois a força
A espera tem fim. Por convidado, o tempo limite de desligamento padrão é de 180 segundos; quando expira, a máquina é parada à força.
Uma parada em bloco de um nó inteiro tem seu próprio orçamento: tenta um desligamento limpo, espera até três minutos por padrão, e então para com força o que ainda estiver rodando.
Então a descrição honesta de um desligamento sem supervisão é: pedir com educação, esperar um prazo fixo, e então tirar da tomada. Se seu banco de dados precisa de quatro minutos para gravar tudo, os padrões já decidiram que ele terá três.
Aumente o número, mas não pule a pergunta
É tentador tratar o tempo limite como o botão a ajustar. Para uma máquina que realmente precisa de mais tempo, aumentar é o certo.
Mas uma máquina que nunca desliga por mais que você espere não tem problema de tempo limite, e dar dez minutos a ela só significa esperar dez minutos antes da mesma parada forçada. Descubra primeiro se alguém está ouvindo.
Quando uma tarefa de desligamento já travou
Se uma tarefa de desligamento fica pendurada e a máquina precisa cair agora, existe um jeito explícito de pará-la anulando a tarefa de desligamento em curso em vez de entrar na fila atrás dela. Ele existe justamente porque o caso da tarefa travada é comum o bastante para exigir uma resposta.
Use sabendo o que é: continua sendo um corte de energia, com o mesmo aviso colado.
O caso que pega as pessoas: a queda de energia
É aqui que este texto inteiro deixa de ser teórico.
Um script de queda de energia que desliga os convidados antes de as baterias acabarem herda todas as propriedades acima. Ele envia pedidos. Convidados que não ouvem os ignoram. O tempo limite corre. Depois tudo que ainda estiver rodando é parado à força, talvez com a bateria já baixa e talvez tudo de uma vez.
Duas coisas valem ser conferidas antes de confiar num arranjo desses, e as duas são baratas:
Os convidados respondem mesmo a um pedido de desligamento? Teste um, com cronômetro, numa tarde comum.
O orçamento total cabe na bateria? Os convidados desligam em sequência, e os tempos limite somam. Uma fileira de máquinas que levam dois minutos cada não é um desligamento de dois minutos.
Um plano de queda de energia nunca ensaiado é um plano que será ensaiado uma vez só: no escuro, com o tempo apertando.
O que o Atlas faz
O Atlas não inventa um terceiro tipo de desligamento. Pedir e cortar energia são as duas coisas que existem, e fingir o contrário seria uma mentira com consequências.
O que ele faz é se recusar a borrar a diferença. Uma ação destrutiva diz que é destrutiva antes de você confirmar, então "parar" nunca aparece disfarçado de um "desligar" um pouco mais firme. Essa distinção é o assunto inteiro deste texto, e um painel que apresenta as duas como botões vizinhos de peso igual já a perdeu.
O resumo diário carrega a outra metade: um reinício não planejado é relatado como fato. Uma máquina parada à força depois de falhar num desligamento limpo parece, na manhã seguinte, exatamente uma máquina que travou. As duas merecem ser notadas.
Fontes
A documentação oficial do Proxmox. Em inglês, e é ela que dá a palavra final neste assunto.