Como é que a fragmentação definida pelo conteúdo reduz os dados duplicados nas cópias de segurança?

Eva Wong é a Redatora Técnica e e entusiasta residente na ZimaSpace. Uma geek de longa data com paixão por homelabs e software de código aberto, ela é especialista em traduzir conceitos técnicos complexos em guias acessíveis e práticos . Eva acredita que o auto-hospedagem deve ser divertida, não intimidante. Através dos seus tutoriais, ela capacita a comunidade adesmistificar configurações de hardware , desde a construção do seu primeiro NAS até dominar os contêineres Docker., from building their first NAS to mastering Docker containers.

O particionamento definido pelo conteúdo melhora a deduplicação de cópias de segurança ao escolher os limites dos blocos com base no conteúdo dos ficheiros, permitindo reutilizar regiões inalteradas após inserções ou eliminações.

As cópias de segurança incrementais contêm frequentemente ficheiros grandes que permanecem maioritariamente inalterados entre versões: imagens de discos virtuais, arquivos de correio eletrónico, bases de dados copiadas como ficheiros, pacotes de projetos e bibliotecas de multimédia exportadas. Se cada bloco começar num deslocamento fixo em bytes, a inserção de um pequeno cabeçalho perto do início pode deslocar todos os limites seguintes, apesar de os bytes posteriores serem idênticos. O particionamento definido pelo conteúdo faz com que a segmentação siga padrões de bytes locais em vez de posições absolutas, permitindo que a cópia de segurança volte a sincronizar-se com blocos antigos depois da região alterada.

Os limites de tamanho fixo podem transformar uma pequena edição em muitos blocos novos

Um particionador de tamanho fixo divide os dados em posições como a cada 1 MiB, independentemente do conteúdo dos bytes. Quando são inseridos bytes perto do início, os fluxos antigo e novo ficam desfasados, pelo que cada bloco fixo posterior contém uma combinação diferente de bytes, mesmo que quase todo o conteúdo subjacente tenha permanecido igual.

O particionamento definido pelo conteúdo foi desenvolvido para a deduplicação porque os pontos de corte derivados do conteúdo detetam redundância que os deslocamentos fixos podem não encontrar após edições locais. A vantagem não é o CDC prever quais os ficheiros semelhantes; é fornecer ao sistema de deduplicação uma segmentação capaz de sobreviver a posições deslocadas.

Se um ficheiro inteiro for substituído por bytes sem relação, nenhum algoritmo de particionamento pode fabricar conteúdo duplicado. O CDC é mais útil quando as versões partilham grandes regiões de bytes inalteradas, mas essas regiões se deslocaram em relação ao início do ficheiro.

Uma impressão digital deslizante procura pontos de corte locais no fluxo de bytes

O CDC move uma janela pela entrada e atualiza uma impressão digital à medida que os bytes entram e saem dessa janela. É declarado um limite quando a impressão digital satisfaz uma condição configurada, sujeita a regras de tamanho mínimo e máximo dos blocos que evitam blocos anormalmente pequenos ou grandes.

O particionador do Borg utiliza uma impressão digital deslizante do conteúdo, para que o custo de avaliar o próximo limite candidato não exija calcular novamente a função de dispersão de toda a janela. Como a impressão digital depende dos bytes próximos, a mesma sequência local pode desencadear o mesmo corte, mesmo quando o seu deslocamento absoluto no ficheiro mudou.

A impressão digital deslizante é, portanto, um mecanismo para encontrar limites, não a identidade final dos dados de cópia de segurança armazenados. Tratar essas duas funções de dispersão como equivalentes enfraqueceria a explicação de onde a deduplicação decide efetivamente o que reutilizar.

Os tamanhos mínimo, máximo e médio dos blocos também moldam a procura de limites. Controlam a frequência com que os cortes candidatos são considerados e a quantidade de metadados que o repositório tem de gerir.

O CDC volta a sincronizar-se após uma edição, em vez de permanecer deslocado indefinidamente

Após uma inserção ou eliminação, a janela deslizante vê inicialmente bytes diferentes e produz limites de blocos diferentes em torno da edição. Quando avança totalmente para uma região suficientemente longa e inalterada, pode encontrar os mesmos padrões de conteúdo local e retomar os cortes em posições alinhadas com a versão anterior.

O Borg observa que os limites definidos pelo conteúdo podem permanecer estáveis relativamente ao conteúdo inalterado, mesmo quando são inseridos ou removidos bytes noutro local. É essa ressincronização que confina muitas edições a um pequeno número de blocos novos, em vez de invalidar o resto do ficheiro.

O Restic também divide os ficheiros em blobs de comprimento variável utilizando uma impressão digital deslizante, para que blobs de comprimento variável inalterados possam ser novamente referenciados entre instantâneos. O repositório continua a precisar de um índice para reconhecer esses blobs já armazenados.

A distância de ressincronização depende dos parâmetros de particionamento e do padrão de bytes alterado, pelo que o CDC não garante que surja exatamente um bloco novo por cada edição. A sua vantagem é a localidade estatística: é menos provável que as alterações desloquem todos os limites seguintes.

Um identificador de bloco forte decide a reutilização depois de escolhido o limite

Encontrar um limite apenas indica onde termina um bloco candidato; o repositório tem ainda de decidir se o conteúdo completo desse bloco já existe. Essa segunda decisão utiliza um identificador de conteúdo mais forte ou uma função de dispersão autenticada sobre o bloco concluído, procurando-o no índice do repositório.

O Borg separa explicitamente a função de dispersão usada para definir os limites da identidade criptográfica do bloco utilizada como critério de deduplicação. Do mesmo modo, o Restic referencia os blobs armazenados através de uma função de dispersão forte do conteúdo, em vez de tratar a impressão digital deslizante como prova de que dois blocos são idênticos.

Este design em duas fases explica claramente o percurso de armazenamento: a função de dispersão deslizante escolhe a segmentação candidata; a função de dispersão do conteúdo identifica o bloco resultante; a pesquisa no repositório decide entre armazenar e reutilizar. As poupanças de deduplicação só acontecem nas duas últimas fases, embora o CDC torne muito mais provável que essas correspondências sobrevivam às edições.

O tamanho dos blocos e a transformação dos dados definem o equilíbrio entre computação e poupança

Blocos médios mais pequenos isolam as alterações com maior precisão, mas aumentam o número de impressões digitais, entradas de índice, pesquisas, objetos de metadados e referências de armazenamento. Blocos maiores reduzem a sobrecarga da indexação, mas permitem que uma pequena edição invalide uma unidade maior de dados reutilizáveis.

O FastCDC centra-se na redução da sobrecarga de CPU da função de dispersão deslizante, mantendo uma forte deteção de redundância e demonstrando que o próprio particionamento pode tornar-se um custo relevante antes de serem eliminados quaisquer bytes duplicados. Os melhores parâmetros equilibram o trabalho de particionamento, o tamanho do índice e o padrão de semelhança do conjunto de cópias de segurança.

A transformação dos dados antes do particionamento também pode eliminar a semelhança de bytes de que o CDC depende. A encriptação com diferentes valores nonce, os formatos que reescrevem a maior parte de um ficheiro após uma pequena alteração lógica ou alguns esquemas de compressão podem fazer com que duas versões logicamente semelhantes pareçam não relacionadas ao nível dos bytes.

A análise da ZimaSpace sobre a sobrecarga do índice de deduplicação aborda o outro lado deste compromisso: uma reutilização mais granular exige mais metadados e memória para acompanhar o que já existe. O CDC é valioso quando o armazenamento recuperado supera esse custo adicional de particionamento e indexação, e não simplesmente porque os blocos de tamanho variável parecem mais sofisticados.

Centro de Tecnologia e IA

Mais para Ler

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.