Redução de dados
O que é a redução de dados?
O termo «redução de dados» abrange vários métodos de otimização da capacidade. O seu objetivo é reduzir a quantidade de dados que é necessário armazenar. Face ao aumento global do volume de dados, esta redução é necessária para garantir um armazenamento de dados eficiente em termos de recursos e custos.
Existem diferentes abordagens para a redução de dados: a compressão de dados e a deduplicação. Enquanto a compressão sem perdas utiliza redundâncias dentro de um ficheiro para comprimir dados, os algoritmos de deduplicação sincronizam os dados entre ficheiros para evitar repetições.
Desduplicação
A deduplicação é um processo de redução de dados que se baseia essencialmente na eliminação da redundância de dados num sistema de armazenamento. Pode ser realizada tanto no destino do armazenamento como na origem dos dados. É utilizado um motor de deduplicação que recorre a algoritmos especiais para identificar e eliminar os ficheiros ou blocos de dados redundantes. O principal campo de aplicação da deduplicação é o backup de dados.
O objetivo da redução de dados através da deduplicação é gravar num suporte de dados não volátil apenas a quantidade de informação necessária para reconstruir um ficheiro sem perdas. Quanto mais duplicados forem eliminados, menor será a quantidade de dados que será necessário armazenar ou transferir.
Os ficheiros duplicados podem ser identificados ao nível do ficheiro, como acontece com o Git ou o Dropbox, mas os algoritmos de deduplicação que funcionam ao nível do subficheiro são mais eficientes. Para tal, os ficheiros são primeiro divididos em blocos de dados (chunks) e são-lhes atribuídos checksums únicos, denominados valores hash. Uma base de dados de acompanhamento funciona como uma instância central de controlo, que contém todos os valores de checksum.
É possível distinguir duas variantes de deduplicação baseada em blocos:
- Comprimento de bloco fixo: os ficheiros são divididos em secções de comprimento exatamente igual, que se ajustam ao tamanho do cluster do sistema de ficheiros ou do sistema RAID (geralmente 4 KB).
- Comprimento de bloco variável: o algoritmo divide os dados em blocos de comprimentos diferentes, cuja extensão varia de acordo com o tipo de dados que estão a ser processados.
A forma como os blocos são divididos tem um impacto significativo na eficiência da deduplicação de dados. Isto torna-se evidente quando se alteram ficheiros deduplicados posteriormente: ao utilizar tamanhos de bloco fixos, ao alterar um ficheiro, todos os segmentos subsequentes são também considerados novos devido ao deslocamento dos limites dos blocos pelo algoritmo de deduplicação. Isto aumenta a carga computacional e a utilização da largura de banda.
No entanto, se um algoritmo utilizar limites de bloco variáveis, as alterações num único bloco de dados não afetam os segmentos vizinhos. Em vez disso, apenas o bloco de dados modificado é ampliado com os novos bytes e guardado. Isto alivia a carga da rede. No entanto, a flexibilidade em termos de alterações nos ficheiros é mais exigente em termos de cálculos, uma vez que o algoritmo tem primeiro de determinar como os blocos são divididos.
Compressão de dados
A compressão de dados consiste em converter ficheiros numa representação alternativa mais eficiente do que a original. O objetivo desta redução de dados é diminuir tanto o espaço de armazenamento necessário como o tempo de transmissão. Esta eficiência na codificação pode ser alcançada através de duas abordagens diferentes:
- Compressão redundante: com a compressão de dados sem perdas, os dados também podem ser descomprimidos com exatidão, bit a bit, após a compressão. Por conseguinte, os dados de entrada e de saída são idênticos. Esta compressão redundante só é possível se um ficheiro contiver informação redundante.
- Compressão irrelevante: numa compressão com perdas, a informação irrelevante é eliminada para comprimir um ficheiro. Isto implica sempre uma perda de dados. Após uma compressão irrelevante, os dados originais só podem ser recuperados de forma aproximada. A classificação de quais dados são considerados irrelevantes é subjetiva. Por exemplo, na compressão de áudio MP3, são eliminados padrões de frequência que se presume que as pessoas mal ouvem ou nem sequer percebem.
Embora a compressão ao nível dos sistemas de armazenamento seja basicamente sem perdas, a perda de dados noutros domínios, como a transmissão de imagens, vídeo e áudio, é deliberadamente aceite para conseguir uma redução do tamanho dos ficheiros.
Tanto a codificação como a descodificação de um ficheiro exigem um esforço computacional. Isso depende principalmente do método de compressão utilizado. Enquanto algumas técnicas são concebidas para representar os dados de saída da forma mais compacta possível, outras centram-se na redução do tempo de cálculo necessário. Por conseguinte, a escolha do método de compressão depende sempre dos requisitos da aplicação em questão.
Comparação entre diferentes opções de redução de dados
Para implementar procedimentos de cópia de segurança ou otimizar o armazenamento em sistemas de ficheiros padrão, as empresas recorrem frequentemente à deduplicação. Isto deve-se principalmente ao facto de os sistemas de deduplicação funcionarem de forma extremamente eficiente quando se trata de armazenar ficheiros idênticos.
Os métodos de compressão de dados, por outro lado, estão frequentemente associados a custos de computação mais elevados e, por isso, requerem plataformas mais complexas. Os sistemas de armazenamento que combinam ambos os processos de redução de dados podem ser utilizados com maior eficácia. Em primeiro lugar, eliminam-se as redundâncias dos ficheiros a armazenar através da deduplicação e, em seguida, comprimem-se os dados restantes.