Questão Mídia USB que pode ser desconectada com segurança enquanto está sendo gravada


Fiz vários testes com a desconexão da mídia USB enquanto eles estavam sendo gravados. O sistema host é o Linux Mint 17.1 em um laptop com USB 2.0. Para os discos rígidos USB, parece que depois de chamar 'sync', os dados são gravados com segurança e não serão corrompidos de nenhuma maneira, pelo menos ao usar EXT4 com o data=journal opção. Isso é bom para mim, meus scripts escrevem para um diretório temporário primeiro, depois chamam de 'sync', então renomeiam o diretório para o nome final (que deve ser uma operação atômica).

No entanto, meus testes com um pendrive foram menos convincentes. Usando exatamente os mesmos scripts e opções de montagem, encontrei corrupções o tempo todo. Mais especificamente: eu uso 'rsync' com o --link-dest opção para backups para o meio USB. O que eu descrevo como "corrupção" inclui arquivos em um backup onde os dados diferem do arquivo no sistema host, mas a hora da modificação não. Isso é uma coisa desagradável desde rsync irá considerar esses arquivos atualizados, quando na verdade eles estão desatualizados ou cheios de bytes nulos, etc.

Questão: Por que isso acontece com unidades flash USB e não com discos rígidos? Ou eu tive sorte com os discos rígidos até agora? Faz sentido comprar uma unidade flash de outro fabricante? O que eu usei para testar aqui incidentalmente parou de funcionar para o bem ontem depois que eu o desliguei. Então, talvez fosse apenas um produto de baixa qualidade.


1


origem


Talvez você possa repetir o teste com um USB que não pare de funcionar, talvez não seja um produto de baixa qualidade, mas apenas um defeituoso ... Para concluir seu teste, suponho que você deva testar com os mesmos arquivos (enormes) e mesmo sistema operacional. BTW pode ser prejudicial para hot desligue a HDDque deve exigir que as cabeças estacionem para evitar danos. - Hastur
Obrigado, eu pedi um novo flash drive hoje. Sobre o estacionamento da cabeça: Eu encontrei informações contraditórias sobre isso. Alguns dizem que todas as unidades, ou as mais modernas, conseguem estacionar suas cabeças quando a energia é cortada. Talvez alguém possa comentar sobre isso? - Lasse Kliemann
Você é bem-vindo (esperamos que) O que está escrito aqui hoje pode ser lido novamente depois de alguns anos e de pessoas com diferentes níveis de conhecimento; então é melhor ter cuidado. BTW Eu nunca vi sugerido em qualquer lugar para cortar o poder para um dispositivo com partes móveis, enquanto isso está escrevendo. Enquanto isso, em uma caneta USB pode causar alguns danos relativos (corrupção do sistema de arquivo patchable com operação normal), com certeza pode causar perda de dados ou até pior a sua corrupção, em vez disso, em um dispositivo com partes móveis pode gerar um falha de hardware irreversível. - Hastur
Mais sobre estacionamento de cabeças (poucos): reserve alguns momentos para ler na internet, talvez começa aqui. Velho HDD deveriam ser usados ​​apenas na área de trabalho e movidos muito raramente. Se eu me lembro corretamente, havia um comando específico para fisicamente park a cabeça. Note não o head__s__. Hoje em dia o estacionamento é feito movendo a cabeça zona de aterrissagem  onde nenhum dado é armazenado. - Hastur


Respostas:


Após o teste com o novo flash drive, parece que todo o problema veio do flash drive anterior sendo quebrado ou de baixa qualidade. Com o novo flash drive e também com os HDDs, não consegui produzir nenhum dano desconectando a unidade enquanto ela está sendo gravada. Eu até relaxei as opções de montagem omitindo data=journal. Minhas opções de montagem agora estão no total rw,noatime,errors=remount-ro e estou usando o EXT4.

Sobre outros sistemas de arquivos, com base em minha experiência com o Linux Mint 17.1: O XFS se comporta mal quando desconectado a quente, geralmente deixando uma montagem não removível que requer uma reinicialização. O JFS está ok a esse respeito, mas incrivelmente lento, quase inutilizável para certas operações. BTRFS parece bom, mas o Mint vem com uma versão desatualizada e ainda instável, então eu decidi contra isso. Da mesma forma, NILFS2 e F2FS não são bem suportados no Mint neste momento.

Uma palavra de advertência: embora eu não possa criar nenhum dano por meio de desconexão a quente, ainda é responsabilidade do usuário liberar buffers antes de colocar um arquivo em seu local final. Assim, um programa de backup deve primeiro copiar para um local temporário e, em seguida, chamar synce, em seguida, renomeie o arquivo ou diretório para seu nome final (sob o qual uma cópia completa será esperada no futuro).


0