Redução de dados
Métodos de redução de dados podem ser usados para diminuir a quantidade de dados a serem fisicamente armazenados, o que economiza espaço e custos.
Definição: Redução de dados
Redução de dados é o termo usado para definir diferentes métodos de otimização de capacidade de armazenamento. Todos têm como objetivo final diminuir a quantidade de dados a serem armazenados, com vista na eficiência e na economia de recursos e despesas, uma vez que a quantidade de dados só aumenta no mundo.
Entre os métodos usados na redução de dados estão a compressão e a desduplicação. Enquanto a compressão faz uso de redundâncias dentro de arquivos para comprimir dados e evitar perdas, algoritmos de desduplicação sincronizam dados entre arquivos, evitando redundâncias.
Desduplicação
A desduplicação (ou deduplicação) é um processo de redução de dados que tem como principal objetivo evitar a redundância de dados em um sistema de armazenamento. Mecanismos de desduplicação utilizam algoritmos especiais para identificar e eliminar arquivos ou blocos de dados redundantes, o que pode ser feito tanto no destino do armazenamento quanto na origem dos dados. É comum encontrar processos de desduplicação em backups de dados.
A redução de dados por desduplicação resulta na gravação, em um suporte de dados não volátil, da quantidade mínima de informações necessárias para que um arquivo possa ser reconstituído sem perdas. Assim sendo, quanto mais dados duplicados forem removidos, menor será a quantidade de dados a serem armazenados ou transferidos.
Dados duplicados podem ser identificados no nível do arquivo, como no Git ou no Dropbox, mas algoritmos de desduplicação no nível do subarquivo são mais eficientes. Eles funcionam dividindo arquivos em blocos de dados (chunks) e determinando, a cada um deles, somas de verificação exclusivas, chamadas de valores hash. O controle central de todas as somas de verificação é feito por um banco de dados de rastreamento.
Na desduplicação baseada em blocos, blocos podem ser divididos de duas formas diferentes:
- Janela fixa/Bloco fixo: Arquivos são divididos em seções que contém exatamente o mesmo comprimento. Este é baseado no tamanho do cluster do arquivo ou do sistema RAID (normalmente, 4 KB).
- Janela deslizante/Bloco variável: O algoritmo divide dados em blocos, cujo comprimento varia de acordo com os tipos de dados a serem processados.
O modo de divisão dos blocos influencia fortemente a eficiência do processo de desduplicação, o que pode ser comprovado quando arquivos desduplicados são posteriormente alterados. No método de bloco fixo, todos os demais segmentos também são categorizados como novos pelo algoritmo de desduplicação, quando um arquivo é alterado por mudanças nos limites dos blocos. Isso aumenta tanto o esforço computacional quanto a utilização da largura de banda.
Quando, por outro lado, um algoritmo utiliza o método de blocos variáveis em um processo de desduplicação, alterações realizadas em um único bloco de dados não afetam os demais segmentos. Assim, somente o bloco de dados alterado é estendido pelos novos bytes e salvo, reduzindo a carga da rede. Entretanto, a flexibilidade de alterações de arquivos tem maior exigência computacional, uma vez que o algoritmo deve, primeiramente, entender como se dá a divisão dos blocos.
Compressão
A compressão de dados é um processo de redução de dados que converte arquivos em representações reduzidas, mais eficientes que a versão original. Seu objetivo também é diminuir o espaço de armazenamento necessário, assim como o tempo de transmissão dos arquivos. Duas abordagens diferentes colaboram para o ganho de codificação:
- Compressão sem perdas: Na compressão de dados por redundância, estes mesmos dados podem ser descomprimidos, em processo reverso, com precisão de bits. Neste caso, dados de entrada e saída permanecem idênticos. A realização de uma compressão sem perdas só é possível em arquivos que contenham informações redundantes.
- Compressão com perdas: Na compressão de dados por irrelevância, informações compreendidas como irrelevantes são removidas durante o processo de compressão do arquivo. Alguns dados sempre são perdidos quando esta abordagem é utilizada, o que quer dizer que dados originais só podem ser aproximadamente restaurados após serem submetidos a uma compressão. Não há como dizer, com precisão, que dados são classificados como irrelevantes. Na compressão de um áudio MP3, por exemplo, padrões de frequência supostamente pouco ou não audíveis podem ser removidos.
Embora compressões que ocorram no nível do sistema de armazenamento praticamente não ocasionem perdas, perdas de dados durante transmissões de imagens, vídeos e áudios são propositalmente provocadas, com o objetivo de se reduzir o tamanho do arquivo.
Tanto a codificação quanto a decodificação de um arquivo exigem esforços computacionais que dependem, prioritariamente, do método de compressão utilizado. Enquanto uma abordagem esforça-se para representar dados de saída da forma mais reduzida possível, a outra concentra-se em reduzir o tempo necessário de computação. Assim sendo, o método de compressão a ser escolhido deve depender, sempre, dos requisitos e da área de aplicação.
Aplicação de métodos de redução de dados
Empresas geralmente utilizam métodos de desduplicação para realizar backups ou para otimizar o armazenamento em sistemas de arquivos padrão. É que o método de desduplicação é especialmente eficiente em se tratando de armazenamento de arquivos idênticos.
Métodos de compressão de dados, por outro lado, costumam resultar em custos de computação mais altos, exigindo, portanto, plataformas mais complexas. Sistemas de armazenamento que combinam ambos os métodos de redução de dados são, portanto, mais eficientes. Primeiramente, eles removem redundâncias dos arquivos a serem armazenados, por meio da desduplicação. Em seguida, os dados são comprimidos.