Como posso saber quais cópias de um arquivo são cópias COW?

1

Eu tenho um sistema ZFS conectado a um Macintosh pelo NFS. O sistema está quase cheio, mas eu encontrei um grande número de arquivos duplicados com jdupes .

Eu não sei como essas cópias foram feitas, é possível que elas tenham sido baixadas novamente da internet, e é possível que elas tenham sido copiadas com cp . Se eles foram copiados localmente, eles não devem usar espaço adicional, pois o ZFS é um sistema de arquivos copy-on-write, mas se eles tiverem sido baixados novamente, eles devem usar o mesmo espaço duas vezes. Meu servidor NFS não possui RAM suficiente para a deduplicação do ZFS.

Gostaria de substituir quaisquer cópias duplicadas fisicamente por cópias com cópias por escrito.

Como posso saber quais arquivos duplicados são cópias duplicadas um do outro?

    
por Dan 17.01.2017 / 00:57

1 resposta

1

Parece que você está confundindo duas propriedades do ZFS aqui:

  • Copy-on-Write (CoW) é uma descrição de como o sistema de arquivos funciona ao modificar arquivos. Os sistemas de arquivos tradicionais (não CoW) têm um ciclo de leitura-modificação-gravação, no qual as atualizações em um arquivo são feitas no local, significando que a única cópia do arquivo é modificada diretamente (escrevendo os bytes atualizados na posição especificada dentro do arquivo ). Se a energia for perdida, podem ocorrer danos. Esse não é o caso dos sistemas de arquivos CoW, como o ZFS, em que qualquer modificação em um arquivo nunca toca no arquivo: os bytes alterados são simplesmente acrescentados e, se isso for bem-sucedido, as partes antigas são marcadas como deletáveis. Isso evita a perda de integridade ao custo de mais fragmentação (porque cada alteração precisa de um novo espaço diferente).
  • A Deduplicação é um recurso opcional que pode ser ativado em sistemas de arquivos ZFS (o padrão é desativado). Se ativada, todos os dados a serem gravados serão procurados primeiro na tabela de deduplicação (DDT). Se já existir, não será gravado novamente, apenas vinculado. Isso funciona em trânsito (leitura e gravação), mas não para dados "antigos" armazenados já duplicados. Ele também tem certas desvantagens que você pode ler em toda a internet, então não vou descrevê-las aqui.

Se você nunca habilitou a desduplicação em seu sistema de arquivos, qualquer cópia ( cp , cópia no Finder etc.) criará novos dados e reduzirá seu espaço utilizável. Não há desduplicação padrão integrada (até a compactação recomendada está desativada por padrão!). Você pode verificar isso por si mesmo copiando um arquivo de 1 MB 1000 vezes, você perderá 1000 MB de espaço ao invés de 1 MB.

How can I tell which file duplicates are copy-on-write duplicates of each other?

Você não pode, mas você pode usar um verificador duplicado como você fez para encontrar duplicatas exatas (como em qualquer outro sistema de arquivos). Você também pode usar zdb -b poolname para estimar os benefícios da deduplicação para veja se o aumento de RAM seria bom para o seu caso. Além disso, ativar a compactação ajudará em qualquer caso, portanto, se você ainda não usá-lo, ative-o.

    
por 17.01.2017 / 09:52