5Sep
Os desligamentos inesperados são prejudiciais ao Linux, como são para outros sistemas operacionais? Leia mais enquanto investigamos os efeitos dos desligamentos catastróficos do sistema em sistemas de arquivos Linux.
Pergunta de hoje e amp;A sessão de atendimento chega a cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento comunitário de sites Q & A.
A Question
SuperUser reader User208554 é curioso sobre as estruturas de arquivos do Linux e está preocupado com uma aplicação / instalação em que ele está trabalhando:
Estou desenvolvendo uma aplicação em uma placa embutida do Linux( executa o Debian), por exemplo, Framboesa Pi, Beagle Board / Bone, ou olimex. As placas funcionam em um ambiente que a eletricidade é cortada inesperadamente( é muito complicado colocar a PSU, etc.) e isso aconteceria todos os dias algumas vezes. Pergunto-me se os cortes de energia inesperados causariam problemas no sistema de operação do Linux? Se é algo que eu deveria me preocupar, o que você sugeriria para evitar os danos no sistema operacional contra os cortes de energia inesperados?
PS.O aplicativo precisa escrever alguns dados no meio de armazenamento( cartão SD), acho que não seria adequado montá-lo como somente leitura.
Então, qual o veredicto?
A resposta
O colaborador do SuperUser l0b0 oferece alguma visão sobre os sistemas de arquivos em diário / não-diário:
Isso dependeria do
- se você está usando um sistema de arquivos em diário e
- , como os aplicativos podem processar o processamento abortado.
Considere, por exemplo, um aplicativo que processa um arquivo e grava os resultados conforme eles são computados( uma linha de saída por linha de entrada) para outro arquivo. Se a energia for cortada durante o processamento e o mesmo aplicativo for executado após o reinício, ele não pode 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.
Poderia ser muito difícil dizer qualquer coisa definitiva sobre um sistema complexo hipotético, mas o software Linux mais estável parece ser capaz de lidar com falhas muito bem.
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 separadas de "sistema" e "dados" no cartão SD.Dessa forma, você pode montar a partição "sistema" somente leitura e usar um FS altamente resiliente na partição "dados".
Além disso, a maioria dessas placas possui requisitos de energia muito baixos, de modo que um backup de bateria é possível. O quadro "LiPo rider" para o Raspberry Pi pode ser usado como um UPS básico para fornecer um desligamento limpo na perda de energia.
Finalmente, Jenny D expande a sugestão do sistema de arquivos no diário:
cortes de energia inesperados podem causar corrupção de dados do sistema de arquivos - por exemplo, Se um processo começou a escrever para um arquivo, mas ainda não terminou de escrevê-lo, o arquivo pode acabar apenas meio escrito. Agora imagine se o corte de energia ocorre quando você está a meio caminho de uma atualização do kernel. ..
À medida que o l0b0 escreveu, o uso de um sistema de arquivos no diário ajudará, uma vez que ele poderá acompanhar o que realmente foi feito. Além da informação da wikipedia que l0b0 está vinculada, você pode estar interessado em Fazer sistemas de arquivos em jornais Garantia contra corrupção após uma falha de energia também.
Você como programador obviamente precisa considerar cuidadosamente como lidar com a escrita em arquivos para que ele se torne um processo atômico( ou seja, totalmente feito ou não feito, mas nunca feito a metade).É uma questão bastante complexa.
Tem alguma coisa a adicionar à explicação? Som na parte dos comentários. Deseja ler mais respostas de outros usuários Tech-savvy Stack Exchange? Confira o tópico de discussão completo aqui.