A codificação de apagamento (EC) é um dos métodos mais conhecidos de proteção de dados, em parte devido à sua eficiência, já que permite que uma área maior do disco seja disponibilizada para armazenamento de dados em comparação com as estratégias de RAID e espelhamento.
O que é a codificação de apagamento e como ela se compara aos esquemas de proteção de dados RAID e espelhamento? Quais são as vantagens e desvantagens da codificação de apagamento em comparação com outros métodos de proteção de dados, como o striping RAID e o espelhamento? Esta postagem do blog responderá a essas perguntas e explicará como a Qumulo utiliza a codificação de apagamento em suas instâncias de armazenamento local para maximizar o desempenho e a eficiência, ao mesmo tempo em que oferece proteção contra falhas de hardware.
O que é codificação de apagamento?
A codificação de apagamento é um método de proteção de dados em armazenamento que utiliza matemática avançada para permitir que um sistema de armazenamento regenere blocos de dados perdidos, comparando os blocos de dados remanescentes com seus respectivos blocos de paridade. n.
Codificação de apagamento x RAID: prós e contras
Para ajudar a explicar por que a codificação de apagamento é superior a outros métodos de proteção de dados, é importante compreender as diversas formas de proteção de dados existentes, bem como suas vantagens e desvantagens.
Matriz Redundante de Discos de Baixo Custo (RAID)
O RAID já existe há muito tempo. A configuração mais básica de proteção de dados é o RAID 1, também chamado de espelhamento. Como o próprio nome sugere, o espelhamento envolve gravar todos os dados simultaneamente em duas (ou mais) unidades, criando duas cópias idênticas.
Caso um dos discos em uma configuração de espelhamento RAID1 falhe, os dados perdidos podem ser recuperados a partir da “imagem espelhada”, já que cada cópia reside em seu próprio disco independente. O espelhamento é simples de implementar, mas apresenta algumas desvantagens. Como o espelhamento exige pelo menos uma cópia redundante de todo o conjunto de dados, ele representa um desperdício em termos de espaço necessário para a proteção dos dados. Além disso, o espelhamento só consegue lidar com a falha de uma unidade por vez, o que geralmente não é proteção suficiente para a maioria dos cenários de falha, especialmente à medida que o tamanho dos clusters aumenta.
Além da opção de espelhamento do RAID1, o padrão RAID oferece outras configurações para otimizar o desempenho, a proteção ou ambos. As opções incluem o RAID5, no qual um grupo de discos rígidos (normalmente entre 5 e 10) é agrupado em uma única matriz, com um disco do conjunto sendo usado para dados de paridade. Outra abordagem, chamada RAID6, utiliza o mesmo princípio básico, mas dedica dois discos separados no conjunto para armazenar dados de paridade. Outra configuração, o RAID10, espelha todo o conjunto de discos em um conjunto idêntico de discos.
Cada uma dessas opções apresenta suas próprias vantagens e desvantagens. Tanto o RAID5 quanto o RAID6 oferecem excelente desempenho em leitura, mas o desempenho em gravação é mais lento, pois cada operação de gravação exige o cálculo de um ou dois blocos de paridade. Além disso, essas configurações RAID mais avançadas podem se tornar extremamente complexas e difíceis de gerenciar e manter. Além disso, em caso de falha de um componente, os tempos de reconstrução com RAID podem ser inaceitavelmente lentos, o que afeta significativamente o desempenho para os usuários.
Codificação de apagamento
A pilha de armazenamento local da Qumulo inclui o Qumulo Armazenamento em Blocos Escalável (SBS), que é a camada de base que permite a proteção eficiente de dados em blocos por meio de codificação de apagamento, em vez de RAID.
Ao contrário do striping ou do espelhamento em RAID, a codificação de apagamento oferece proteção escalável para o armazenamento de grandes volumes de dados. A codificação de apagamento proporciona melhor desempenho, mais flexibilidade e maior eficiência, permitindo crescimento ilimitado ao mesmo tempo em que mantém proteção total dos dados e capacidade de resposta em um cluster local do Qumulo.
O algoritmo de codificação de apagamento da Qumulo baseia-se em Reed-Solomon princípios de correção de erros, maximizando o desempenho e a eficiência por meio das melhores práticas estabelecidas. Além disso, a Qumulo’s Proteção Adaptativa de Dados Esse suporte significa que a estrutura de codificação de apagamento do seu cluster Qumulo pode se ajustar para oferecer maior eficiência à medida que o cluster cresce.
Explicação sobre a codificação de apagamento (exemplos)
A codificação de apagamento é mais fácil de entender com exemplos. Aqui está um exemplo do nosso algoritmo de codificação 3,2:
Em uma codificação 3,2, três blocos (m = 3) são distribuídos por três dispositivos físicos distintos. Os blocos 1 e 2 contêm os dados do usuário que desejamos proteger (n = 2), e o terceiro bloco contém dados de paridade. O conteúdo do bloco de paridade é calculado por meio do algoritmo de codificação de apagamento.
Como cada bloco é gravado em uma unidade separada, mesmo que qualquer uma das três unidades falhe, as informações armazenadas nos blocos 1 e 2 continuam seguras, pois podem ser recriadas a partir do bloco de paridade.
Como funciona a codificação de apagamento
Funciona assim: se o bloco de dados 1 estiver disponível, o sistema simplesmente o lê. O mesmo se aplica ao bloco de dados 2. No entanto, se o bloco de dados 1 estiver faltando, o sistema de codificação de apagamento lê o bloco de dados 2, juntamente com o bloco de paridade, e reconstrói o valor do bloco de dados 1.
Da mesma forma, se o bloco de dados 2 estiver no disco com falha, o sistema lê o bloco de dados 1 e o bloco de paridade. O SBS sempre garante que os blocos estejam em eixos diferentes, para que o sistema possa ler os blocos simultaneamente.
A codificação 3,2 tem eficiência de 2/3 (n/m), ou seja, 67%. Embora seja melhor do que a eficiência de 50% do espelhamento, a codificação 3,2 ainda assim só oferece proteção contra a falha de um único disco.
A codificação de apagamento oferece proteção de dados configurável
A codificação de apagamento pode ser configurada para otimizar o desempenho, para reduzir o tempo de recuperação em caso de falha de mídia ou para oferecer maior resiliência — suportando até quatro discos com falha ou quatro nós com falha simultaneamente. Geralmente, o aumento da proteção ocorre às custas da capacidade útil.
No mínimo, o Qumulo utiliza a codificação 6,4, que armazena um terço a mais de dados do usuário no mesmo espaço que o espelhamento e tem a capacidade de tolerar duas falhas de disco, em vez de apenas uma, como ocorre no espelhamento ou na codificação 3,2. Em uma configuração 6,4, mesmo que dois blocos contendo dados do usuário estejam indisponíveis, o sistema precisa apenas ler os dois blocos de dados restantes e os dois blocos de paridade para recuperar os dados ausentes.
Então, o que tudo isso significa?
Ao operar no nível de bloco, em vez de no nível de arquivo como outras plataformas de armazenamento, a tecnologia exclusiva de codificação de apagamento da Qumulo não só permite proteger os dados de forma eficaz sem a necessidade de criar uma cópia 1:1 de todo o volume de dados, como também garante que o tamanho dos arquivos não tenha impacto nos tempos de codificação e recuperação. Seja o tamanho dos arquivos gigantesco ou minúsculo, o desempenho da codificação e da recuperação não é apenas rápido, mas também confiável.
Outros sistemas podem levar de horas a dias, ou até mais tempo, para se recuperarem de um incidente, dependendo da combinação de tamanhos de arquivos armazenados no cluster. O Qumulo se recupera de forma rápida e confiável, sem afetar o desempenho, independentemente da combinação de dados de arquivos armazenados. Isso também permite que os clientes do Qumulo possam utilizar as unidades de disco maiores e mais econômicas do mercado sem correr riscos.
Proteção de dados nas instâncias nativas da nuvem da Qumulo!
O Scalable Block Store gerencia a codificação de apagamento apenas em clusters físicos (locais) do Qumulo. Instâncias do Qumulo nativas da nuvem, como Qumulo nativo do Azure (ANQ) são desenvolvidos com base nos próprios serviços de dados persistentes do provedor de nuvem, como, por exemplo, o Azure Blob Storage.
Nota do editor: Publicada originalmente em 3 de novembro de 2021, esta postagem do blog foi atualizada desde então para garantir precisão e abrangência.