Disco rígido externo formatado no ZFS, outro disco rígido externo como backup (offline). Como protejo meus dados contra a corrupção silenciosa?

3

Eu sou um fotógrafo amador usando um modelo básico MacBook Air (SSD de 128 GB) com uma inicialização dupla macOS / Ubuntu 16.04. Como o SSD é muito pequeno para armazenar minha biblioteca de fotos, eu costumava armazená-lo em um disco rígido externo de 2,5 GB de 500 GB que eu usava como unidade de backup. Obviamente, eu não tinha mais um backup das minhas fotos. Eu comprei um HDD interno de 2 TB que eu uso com um dock de 3,5 polegadas. Este último tornou-se o meu disco rígido externo 'principal', com o 2,5 "sendo uma unidade de backup mais uma vez.

Eu gravei o disco de 2 TB para o ZFS ontem, porque quero proteger minhas fotos contra a corrupção de dados silenciosa (bit rot). O disco rígido de 3,5 polegadas foi previamente formatado no HFS + e usei o Darktable no macOS para gerenciar / editar / qualquer coisa :) minhas fotos Agora eu vou usar o Darktable no Ubuntu 16.04 (incluindo o novo suporte oficial do ZFS) com minha biblioteca de fotos Eu li que o ZFS detecta automaticamente e tenta recuperar dados corrompidos calculando as somas de verificação dos dados.Então, percebi que o bit de auto-recuperação só é possível com um pool espelhado.Mas o ZFS também pode me notificar de uma foto em particular corrompido e eu poderia substituí-lo manualmente com uma cópia da unidade de backup 2,5 "antes que o backup seja poluído com a versão corrompida.

Infelizmente, li que o ZFS não parece notificar o usuário quando detecta arquivos corrompidos durante uma comparação / comparação de soma de verificação automática. Então minha ideia não é possível. Claro que eu poderia apenas espelhar a piscina com a unidade de 2,5 ", mas eu não quero tê-lo ligado o tempo todo porque:

  1. meu MacBook Air tem apenas 2 portas que seriam usadas, o que significa que eu não seria capaz de usar meu teclado externo (meu hub USB mais barato morreu há algum tempo e eu realmente não me sinto substituindo-o;))

  2. Eu não quero desgastar a unidade de backup desnecessariamente

Então, qual seria a melhor solução para proteger meus dados contra a podridão de bits com o equipamento que eu já possuo? Certamente a minha situação não é aquela única;)

    
por Superpelican 03.07.2016 / 13:42

2 respostas

1

Eu tenho um fluxo de trabalho semelhante. Você deve periodicamente limpar o disco externo:

zpool scrub poolname

Isso levará várias horas, dependendo do tamanho da sua piscina. Você pode verificar o status:

zpool status poolname

No seu caso em que o pool não tem redundância, o processo de depuração não poderá corrigir nenhum erro de bit, mas irá informar quais arquivos são afetados e você pode copiá-los manualmente de sua volume para o volume afetado.

Alternativamente e às custas da capacidade de disco , você pode fornecer sua redundância de pool de disco único no nível do sistema de arquivos ZFS usando a propriedade copies para informar ao ZFS para criar várias cópias:

zfs set copies=2 poolname/filesystem

Configurar esta propriedade só afetará novos dados escritos, então você deve configurá-la durante ou imediatamente depois de criar seu pool e sistema (s) de arquivos.

    
por 04.07.2016 / 03:55
1

I could then manually replace it with a copy from the 2,5" backup drive before the backup is polluted with the corrupted version. Unfortunately I have read that ZFS doesn't appear to notify the user when it detects corrupted files during an automatic checksum calculation/comparison. So my idea isn't possible.

Na verdade, o ZFS (de certa forma) notifica o usuário sobre quaisquer erros encontrados em operações comuns. Ele faz isso, se os dados não puderem ser lidos ou não forem validados em relação à soma de verificação armazenada em outro lugar, causando um erro de E / S. Como isso se propaga para o software do usuário depende inteiramente de como esse software responde a um erro de E / S; no pior dos casos, pode simplesmente falhar; em um caso melhor, isso de alguma forma informaria que o arquivo não é legível.

what would be the best solution for protecting my data against bit rot with the gear I already own?

Se você quiser pelo menos uma proteção real parcial contra a podridão de bits com uma única unidade, defina copies=2 em seu pool. Observe que isso reduz a capacidade de armazenamento de forma eficaz e deve ser feito antes de armazenar os dados no pool. (Você também pode fazer com que essa configuração tenha efeito, reescrevendo os arquivos, copiando-os para um diretório separado e copiando-os de volta antes de excluir a segunda cópia.) É ainda melhor definir propriedades como checksum , copies , compression e assim por diante durante a criação do pool, se possível.

Com apenas uma única cópia e nenhum armazenamento redundante, o ZFS pode detectar, mas não reparar, a maioria dos erros no nível de armazenamento. (Os metadados são sempre armazenados com uma cópia adicional, portanto, se você tiver um único vdev pool sem redundância e copia = 1, você obtém duas cópias reais dos metadados críticos.) Para fazer isso, esfregue o pool executando sudo zpool scrub poolname . Se você precisar cancelar um scrub em execução, execute sudo zpool scrub poolname -s (o -s significa "stop"). Quando o scrub terminar, você pode obter uma lista de todos os arquivos afetados por erros no nível de armazenamento executando zpool status poolname -v , o que esperamos que imprima no known data errors . Você pode então decidir se deseja descartar esses arquivos ou restaurá-los a partir de backups. Observe que é possível executar o ZFS com checksum=off , o que desativa a soma de verificação. (A página de manual do zfs (8), entretanto, adverte que desabilitar checksums é NÃO uma prática recomendada , ênfase original.)

Você deve executar scrubs regularmente. O tempo que um scrub demora depende muito da quantidade de dados que você tem e de seus padrões de gravação (gravar arquivos grandes uma vez, que nunca são gravados novamente, é muito melhor nesse aspecto do que arquivos pequenos que são atualizados regularmente no local) devido à cópia do ZFS -on-write arquitetura, eventualmente, levando à fragmentação. Eu recomendo executar scrubs não menos do que a cada poucas semanas. Com algumas centenas de gigabytes de dados (com base em sua declaração que você usou para armazenar suas fotos na unidade de 500 GB), não deve mais do que algumas horas.

I don't want to wear down the backup drive unnecessarily

Geralmente, o que mata os HDDs de rotação magnética é o spin-up e a força física. Um disco rígido rotacional magnético não sofre de nada parecido com o desgaste do flash dos SSDs (que geralmente não é um problema com os SSDs modernos). >, de qualquer maneira). Tanto os HDDs como os SSDs são projetados e construídos para serem usados e, desde que sejam saudáveis, podem levar uma surra bastante proverbial. (É quando um HDD é marginal que você deve começar a se preocupar e copie seus dados o mais rápido possível.)

    
por 05.07.2016 / 16:21