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

1

Eu fiz vários testes com a desconexão da mídia USB enquanto eles estão 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 o EXT4 com a opção data=journal . 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 o 'rsync' com a opção --link-dest para backups na mídia 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, pois rsync considerará esses arquivos atualizados, quando na verdade eles estão desatualizados ou cheios de bytes nulos, etc.

Pergunta: 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.

    
por Lasse Kliemann 08.09.2015 / 11:03

1 resposta

0

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 estão no total em 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, o NILFS2 e o 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. Portanto, um programa de backup deve primeiro copiar para um local temporário, chamar sync e renomear o arquivo ou diretório para seu nome final (sob o qual uma cópia completa será esperada no futuro).

    
por 21.09.2015 / 19:48