Pagina inicial » como » Como os desligamentos inesperados podem prejudicar um computador Linux?

    Como os desligamentos inesperados podem prejudicar um computador Linux?

    Os desligamentos inesperados são prejudiciais ao Linux e a outros sistemas operacionais? Continue lendo enquanto investigamos os efeitos de desligamentos catastróficos do sistema nos sistemas de arquivos do Linux.

    A sessão de perguntas e respostas de hoje nos é oferecida por cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade..

    A questão

    Leitor de SuperUsuário User208554 está curioso sobre as estruturas de arquivos do Linux e preocupado com um aplicativo / instalação em que está trabalhando:

    Estou desenvolvendo uma aplicação em uma placa Linux embutida (roda Debian), por exemplo. Raspberry Pi, Beagle Board / Bone, ou olimex. As placas funcionam em um ambiente em que a eletricidade é cortada inesperadamente (é muito complicado colocar a PSU, etc.) e isso aconteceria todos os dias algumas vezes. Gostaria de saber se os cortes de energia inesperados causariam problemas no sistema operacional Linux? Se é algo que eu deveria me preocupar, o que você sugeriria para evitar os danos no sistema operacional contra os cortes inesperados de energia??

    PS. O aplicativo precisa gravar alguns dados para o meio de armazenamento (cartão SD), eu acho que não seria adequado para montá-lo como somente leitura.

    Então, qual é o veredicto?

    A resposta

    O colaborador do SuperUser, o l0b0, oferece algumas dicas sobre os sistemas de arquivos de journaling / non-journaling:

    Isso dependeria de

    1. se você está usando um sistema de arquivos de diário e
    2. quão bem os aplicativos são capazes de lidar com processamento interrompido.

    Considere, por exemplo, um aplicativo que processa um arquivo e grava os resultados à medida que são computados (uma linha de saída por linha de entrada) em outro arquivo. Se a energia for cortada durante o processamento e o mesmo aplicativo for executado após a reinicialização, ele não poderá simplesmente reiniciar o processamento a partir do início do arquivo de entrada - isso significaria que o arquivo de saída conteria informações duplicadas.

    Pode ser muito difícil dizer algo definitivo sobre um sistema complexo hipotético, mas a maioria dos softwares Linux estáveis ​​parece ser capaz de lidar bem com falhas..

    Stu sugere separar o sistema operacional e os dados, além de adicionar um backup de bateria:

    Para ajudar a minimizar a possibilidade de corrupção do sistema operacional, provavelmente é melhor ter partições de “sistema” e “dados” separadas no cartão SD. Dessa forma, você pode montar a partição “system” somente leitura e usar um FS altamente resiliente na partição “data”.

    Além disso, a maioria dessas placas tem requisitos de energia muito baixos, portanto, é possível um backup de bateria. A placa “LiPo rider” para o Raspberry Pi pode ser usada como um no-break básico para fornecer um desligamento limpo da perda de energia.

    Finalmente, Jenny D expande a sugestão do sistema de arquivos de registro no diário:

    Cortes de energia inesperados podem causar danos nos dados do sistema de arquivos - por exemplo, Se um processo tiver começado a gravar em um arquivo, mas ainda não tiver terminado de escrevê-lo, o arquivo poderá terminar apenas pela metade. Agora imagine se o corte de energia acontece quando você está no meio de uma atualização do kernel ...

    Como l0b0 escreveu, usar um sistema de arquivos de registro no diário ajudará, já que ele será capaz de acompanhar o que realmente foi feito. Além da informação da Wikipedia que l0b0 vinculado, você pode estar interessado em Faça Journaling Filesystems Garantia contra a corrupção após uma falha de energia, bem.

    Você, obviamente, como programador, precisa considerar cuidadosamente como lidar com a escrita em arquivos para que ela se torne um processo atômico (isto é, seja totalmente feito ou não feito, mas nunca feito pela metade). É uma questão bastante complexa.


    Tem algo a acrescentar à explicação? Soe fora nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.