Atualização do núcleo: por que a atualização mais perigosa é a mais silenciosa
O núcleo instala, nada acontece, tudo parece normal. O perigo chega na próxima inicialização, e essa inicialização pode estar a semanas de distância. Entre causa e efeito entram semanas.
AtlasPVE ·
Este verbete responde a
- proxmox atualização do kernel
- proxmox novo kernel não inicia
- proxmox fixar o kernel
- proxmox não voltou depois do reinício
- proxmox iniciar com o kernel antigo
Uma atualização do núcleo instala, a instalação termina sem problema e nada parece ter mudado. O sistema continua rodando com o núcleo antigo, porque um núcleo novo só entra em ação num reinício.
E é exatamente aí que o perigo se esconde.
Entre causa e efeito entram semanas
A maior parte das falhas de pacote aparece enquanto você está olhando. Um serviço cai, dá erro, você percebe no mesmo dia.
O núcleo não é assim. O problema aparece na próxima inicialização, e essa inicialização pode não ser uma noite de manutenção planejada. Falta energia, a máquina reinicia sozinha, e não volta.
Naquele momento ninguém liga isso com "a atualização que fiz mês passado". O que você tem é uma falha inexplicável que não parece em nada um problema de atualização.
O princípio geral: o que é novo não deve ser o padrão até se provar
Esta é a lição transferível deste artigo, e ela não vale só para núcleos.
Um núcleo novo pode ser instalado, mas o padrão persistente deve continuar sendo o núcleo antigo. O novo deve ser testado só como "experimente isto uma vez na próxima inicialização".
Montado assim, a forma da falha muda: se a máquina travar, na inicialização seguinte ela volta sozinha para o antigo. Porque uma escolha de uso único vale, por definição, uma vez.
O que você ganha é isto: o nome do fracasso passa a ser "não aconteceu nada", não "a máquina se foi".
A segunda camada: o que foi instalado não deve virar padrão em silêncio
No momento em que um núcleo é instalado, a maioria dos sistemas diz "de agora em diante inicio com o mais novo". Se você não quer isso, antes de atualizar é preciso fixar o núcleo em execução.
Fixar não bloqueia o núcleo novo, só impede que ele vire padrão sozinho. Quando quiser testar, você escolhe.
A terceira camada: quem vai perceber o travamento
Para um mecanismo de recuo funcionar, alguma coisa precisa dizer "esta máquina não subiu". Se existe um vigia em nível de hardware, é ele quem faz isso e reinicia a máquina.
Se não existe, o recuo exige um reinício manual. Isso não torna o mecanismo inútil, mas precisa ser sabido: a frase "volta atrás automaticamente" é só meia verdade sem vigia.
A regra que vale mesmo sem produto
Depois de uma atualização de núcleo, reinicie de propósito e logo. Enquanto você está olhando.
Um reinício que você planejou é um teste. Um reinício imposto três semanas depois por uma queda de energia é um incidente. A única diferença entre os dois é se você estava por perto na hora.
O que o Atlas faz
Quando o Atlas faz uma atualização, ele fixa por padrão o núcleo em execução, para que o núcleo recém-instalado não vire sozinho o padrão de inicialização. Esse comportamento não é obrigatório: ele é oferecido como uma opção que dá para desligar na interface. O produto não decide aqui, ele torna o lado seguro o padrão.
O mecanismo de transição verificada também é construído sobre o princípio acima: o padrão persistente é sempre o núcleo antigo, o novo só é testado com uma inicialização de uma vez só, e se travar o sistema recua sozinho. O tipo de gerenciador de inicialização é detectado em tempo de execução, porque varia de máquina para máquina.
E dois limites honestos:
Esse mecanismo roda por padrão em modo de só observar. Ou seja, ele diz o que faria mas não toca na configuração de inicialização. Intervir de verdade é uma escolha à parte.
Se não há vigia de hardware, o mecanismo não ignora isso em silêncio: ele se desativa com elegância e diz que pode ser preciso um reinício manual. Fingir uma garantia que não existe é pior do que não dar garantia nenhuma.
Fontes
A documentação oficial do Proxmox. Em inglês, e é ela que dá a palavra final neste assunto.