Montagens permanentes: a única linha que pode impedir uma máquina de iniciar

A montagem feita na mão some depois de um reinício, e torná-la permanente passa por um arquivo que decide se a máquina inicia. Uma linha quebrada ali não para um serviço, para a máquina.

AtlasPVE ·

Este verbete responde a

  • proxmox fstab montagem permanente
  • proxmox disco some depois de reiniciar
  • proxmox não inicia fstab
  • o que é nofail
  • proxmox montagem nfs permanente

Você monta um disco ou um armazenamento de rede na mão e funciona. Reinicia a máquina e sumiu.

A solução é óbvia: acrescentar uma linha à lista do que é montado na inicialização. E é exatamente aí que começa o perigo.

Este arquivo não é como os outros

A maioria dos arquivos de configuração do servidor, quando quebrados, impedem um serviço de funcionar. Quando este arquivo quebra, a máquina pode não iniciar.

O resultado não é "o serviço caiu" e sim "o sistema caiu num shell de recuperação". E nesse ponto você não conecta remotamente; precisa de teclado e monitor ou de um console físico.

A assimetria que ninguém percebe

Uma configuração de rede quebrada é chata: você perde o acesso remoto. Mas a máquina inicia mesmo assim.

Uma linha de montagem quebrada pode impedir a máquina de sequer iniciar.

E mesmo assim as pessoas são bem mais cuidadosas ao editar o arquivo de rede. A ordem do perigo é o inverso da intuição, e é a intuição que está errada.

Três regras

Valide a estrutura antes de escrever. Uma linha precisa de pelo menos três campos: origem, destino e tipo de sistema de arquivos. Uma linha com campos faltando dá dor de cabeça a toda ferramenta que lê o arquivo.

Escreva de forma atômica. Uma escrita pela metade é pior neste arquivo do que nenhuma escrita: sobra um arquivo truncado e a máquina tenta iniciar com ele.

Não deixe um disco ausente manter a máquina refém. Para armazenamentos de rede e discos removíveis, use a opção que deixa a inicialização continuar quando a montagem falha. Um disco de backup não estar plugado não é motivo para o servidor não iniciar.

A armadilha da verificação: um controle que quebra não é um controle aprovado

A lição mais geral deste artigo está aqui, e ela não vale só para este arquivo.

Existe uma ferramenta padrão para validar este arquivo. Medida numa máquina real, saiu isto: a ferramenta quebra quando vê uma linha com menos de três colunas. Ou seja, ela explode exatamente quando vê a forma malformada que deveria pegar.

Uma ferramenta de verificação quebrar não significa que a verificação passou. A resposta certa não é "sem problema" e sim "não foi possível verificar".

Um processo que não faz essa distinção aprova o arquivo mais perigoso no seu momento mais fraco.

A segunda armadilha: nem toda reclamação é erro

A mesma ferramenta de validação pode dizer duas coisas diferentes, e confundir as duas cria um problema novo.

Um erro de formato significa que o arquivo não pode ser lido. Isso é de fato perigoso e a escrita deve ser desfeita.

Uma reclamação semântica é outra coisa: coisas como "destino inalcançável na inicialização" ou "tipo de sistema de arquivos desconhecido". Elas não corrompem o arquivo e podem ser legítimas. Acrescentar uma linha para um dispositivo ainda não conectado é comum e correto; a opção que deixa a inicialização continuar existe justamente para isso.

Um controle que joga as duas no mesmo saco rejeita uma linha novinha e perfeitamente válida. Em outras palavras, um portão rigoroso demais torna o trabalho impossível e empurra as pessoas a desligar o portão.

O que o Atlas faz

No Atlas, toda escrita neste arquivo passa por uma única porta. Cada linha é checada estruturalmente antes da escrita, a escrita é atômica e, depois de escrever, o arquivo é relido e verificado; se o resultado esperado não aparecer, o estado anterior é restaurado.

As duas armadilhas acima são tratadas de propósito. A ferramenta externa de validação conta só como sinal secundário: se ela quebra, o resultado não é "limpo" e sim "não foi possível verificar". E erros de formato e reclamações semânticas são tratados em separado; só um erro de formato causa reversão, enquanto as reclamações semânticas não são engolidas, são informadas a quem chamou.

A necessidade dessa distinção também apareceu na medição: na primeira versão as duas causavam reversão e, nesse estado, até uma linha novinha e totalmente válida era rejeitada.

Uma nota honesta sobre a história: o produto escrevia neste arquivo a partir de oito lugares diferentes, e em nenhum deles se checava se o que foi escrito era válido; em dois, o arquivo inteiro era sobrescrito de forma não atômica. No mesmo produto, o arquivo de rede, que não pode impedir a máquina de iniciar, era escrito de forma atômica. Ou seja, o arquivo mais perigoso era o menos protegido. Foi medido e trazido para trás de uma única porta.

Fontes

A documentação oficial do Proxmox. Em inglês, e é ela que dá a palavra final neste assunto.

Verbetes relacionados

Como isso aparece dentro do Atlas?

Ir para a página do produto