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.