White paper XtremIO DATA PROTECTION (XDP) Proteção de dados específicos de flash, fornecida pelo XtremIO (Ver. 4.0) Resumo Este white paper apresenta o XtremIO Data Protection (XDP) e discute seus benefícios e suas vantagens com relação ao RAID, com consideração especial aos requisitos únicos dos storage arrays flash corporativos. Abril de 2015 Copyright © 2015 EMC Corporation. Todos os direitos reservados. A EMC assegura que as informações apresentadas neste documento estão corretas na data da publicação. As informações estão sujeitas a alterações sem prévio aviso. As informações nesta publicação são fornecidas “no estado em que se encontram”. A EMC Corporation não garante nenhum tipo de informação contida nesta publicação, assim como se isenta de garantias de comercialização ou adequação de um produto a um propósito específico. O uso, a cópia e a distribuição de qualquer software da EMC descrito nesta publicação exigem uma licença de software. Para uma lista mais atualizada de produtos da EMC, consulte “Produtos” no site brazil.emc.com. EMC2, EMC, o logotipo da EMC e o logotipo da RSA são marcas registradas ou marcas comerciais da EMC Corporation nos Estados Unidos e em outros países. VMware é uma marca registrada da VMware, Inc. nos Estados Unidos e/ou em outras jurisdições. Todas as outras marcas comerciais aqui utilizadas pertencem a seus respectivos proprietários. © Copyright 2014 EMC Corporation. Todos os direitos reservados. Publicado no Brasil. Número da peça H13036-03 (Rev. 04) XtremIO Data Protection (XDP) 2 Índice Resumo................................................................................................................... 1 Resumo executivo ................................................................................................... 4 Uma breve história do RAID ..................................................................................... 5 RAID 1 (espelhamento) ....................................................................................................... 6 RAID 0 (fracionado) ............................................................................................................ 7 RAID 10 (espelhamento + fracionado) ................................................................................ 8 RAID 5 (striping de disco com paridade) ............................................................................. 9 RAID 6 (striping de disco com paridade dupla) ................................................................. 10 Comparação entre RAID 10, 5 e 6 ........................................................................... 11 Uma introdução ao esquema de proteção de dados avançada da XtremIO .............. 12 Atualizações eficientes de frações com o XDP ........................................................ 14 Reconstruções eficientes ....................................................................................... 19 Benefícios administrativos do XDP ......................................................................... 23 Conclusão ............................................................................................................. 24 Como saber mais .................................................................................................. 25 XtremIO Data Protection (XDP) 3 Resumo executivo Todos os sistemas de armazenamento corporativos utilizam várias formas de redundância para proteger os dados contra perda quando ocorre uma falha inevitável em um componente do array. O RAID (Redundant Array of Independent Disks, array redundante de discos independentes) foi inventado para permitir que os dados sejam dispersados por vários drives para obter desempenho, mas também para proteger os dados em caso de falha de um drive de disco (e, em iterações mais recentes, em vários drives de disco). As implementações de RAID foram sempre criadas com a presunção de ter o disco giratório como opção de mídia, forçando considerações indesejáveis de vantagens e desvantagens entre o nível desejado de desempenho, sobrecarga de capacidade e proteção de dados. Em vez de simplesmente adotar algoritmos de RAID pré-existentes, o XtremIO reinventou a proteção de dados desde o início para aproveitar as propriedades específicas da mídia flash. O algoritmo de proteção de dados resultante (XtremIO Data Protection, ou XDP) combina simultaneamente as características mais desejáveis dos algoritmos RAID tradicionais, evita suas armadilhas e traz funcionalidades inteiramente novas e até então impossíveis para o Storage Array do XtremIO. O XtremIO Data Protection aumenta também significativamente a durabilidade da mídia flash subjacente em comparação com qualquer algoritmo RAID anterior, uma consideração importante para um flash array corporativo. XtremIO Data Protection (XDP) 4 Uma breve história do RAID As falhas de disco continuam a ser um dos principais mecanismos de falha e uma fonte potencial de perda de dados nos sistemas de armazenamento modernos. No mundo dos discos rígidos giratórios, as falhas geralmente significam a perda simultânea da capacidade de leitura e gravação. O RAID foi inventado especificamente para a recuperação a partir de falhas de discos giratórios segmentando os dados em vários drives físicos e, na maioria dos algoritmos RAID, calculando e armazenando dados redundantes que podem ser usados para remontar as informações perdidas em um ou mais drives com falha. No entanto, com drives de estado sólido (SSDs), os mecanismos de falha são geralmente diferentes. Falhas de SSD podem ser completas, parciais ou transientes, e um esquema de proteção de dados em SSD deve tratar de todas as situações. O tópico sobre por que os SSDs falham e como eles se comportam exatamente nas falhas está fora do escopo deste documento, mas a XtremIO levou em consideração todos os mecanismos de falha de SSD no projeto do XDP. Este documento inicia com uma revisão dos esquemas mais comuns de RAID (RAID 1, 0, 10, 5 e 6). Ao analisar sua eficiência de espaço e sobrecarga de desempenho, é possível descobrir por que eles não são os mais adequados para a proteção contra falhas de SSD. Em seguida, o documento discute como o XDP se compara a esses algoritmos e como ele inova em dimensões que não são possíveis com discos giratórios. XtremIO Data Protection (XDP) 5 RAID 1 (espelhamento) Esse esquema espelha todas as gravações em dois discos diferentes em paralelo. Todas as gravações dos usuários são traduzidas em duas gravações simultâneas pelo storage array e as leituras podem ser atendidas a partir de qualquer das cópias. Quando um dos discos espelhados falhar, nenhuma informação será perdida desde que o disco íntegro restante mantenha uma cópia completa dos dados e a leituras possam ser distribuídas a partir dele. Quando o disco com defeito for substituído, os dados serão reconstituídos simplesmente copiando o disco íntegro para o novo disco. Discos: M1 M2 Dados: A1 A1 A2 A2 A3 A3 Figura 1: RAID 1 – Todas as gravações são espelhadas em dois discos diferentes. Esse esquema tem bom desempenho de reconstrução, mas requer a sobrecarga de capacidade de 50%. No diagrama, dois discos estão espelhando três blocos de dados. Benefício: Proteção de dados com reconstrução eficiente. Inconveniente: Alto custo, devido à sobrecarga de capacidade. Sobrecarga de capacidade: Muito alta. A capacidade utilizável é de apenas 50% da capacidade bruta. Gravações de usuário por atualização: duas gravações, uma para cada lado do espelho. Sobrecarga de I/O de atualização de bloco: Uma gravação para cada gravação do usuário. XtremIO Data Protection (XDP) 6 RAID 0 (fracionado) Esse esquema divide dados uniformemente em dois discos ou mais (fracionados) sem informações de paridade. O RAID 0 não oferece nenhuma redundância de dados e geralmente é usado para aumentar o desempenho, mas também pode ser usado como uma maneira de criar um grande disco lógico de dois discos físicos ou mais (no mínimo dois discos). Os dados podem ser fornecidos em paralelo a partir de todos os discos na fração, resultando em alto desempenho para ações de leitura e gravação. O RAID 0 não tem nenhum cálculo de paridade (assim como o RAID 01) e o desempenho de gravação é mais rápido. Discos: D0 D1 D2 Dados: A1 A2 A3 A4 A5 A6 A7 A8 A9 Figura 2: RAID 0 - Todas as gravações de entrada são fracionadas em dois discos ou mais. No diagrama, nove blocos de dados são fracionados em três discos. Benefício: Excelente desempenho (já que os blocos são fracionados). Inconveniente: Nenhuma redundância (nenhum espelho e nenhuma paridade). Não deve ser usado para sistemas essenciais. Sobrecarga de capacidade: Nenhum. A capacidade utilizável é de 100% da capacidade bruta. Gravações de usuário por atualização: Uma gravação. Sobrecarga de I/O de atualização de bloco: Nenhum. XtremIO Data Protection (XDP) 7 RAID 10 (espelhamento + fracionado) Esse esquema combina RAID 0 e RAID 1 e é implementado como um array fracionado cujos segmentos são arrays de RAID 1. O RAID 10 tem a mesma tolerância a falhas e sobrecarga de capacidade que o RAID 1. Os segmentos de striping do RAID 1 alcançam altas taxas de I/O. Em algumas circunstâncias, um array de RAID 10 pode sustentar várias falhas de drive simultâneas. M1 M2 Discos Discos: D0 D1 D2 D33 Dados Dados: A1 A1 A2 A2 A3 A3 A4 A4 A5 A5 A6 A6 Figura 3: RAID 10 – Todas as gravações de entrada são espelhadas em dois discos separados e depois fracionadas em dois discos ou mais. No diagrama, seis blocos de dados são espelhados e fracionados em quatro discos. Benefício: Melhor desempenho e melhor tempo de reconstrução. Suporta taxas de I/O muito altas. Inconveniente: Alto custo, grande sobrecarga e escalabilidade limitada com custo alto. Sobrecarga de capacidade: Muito alta. A capacidade utilizável é de apenas 50% da capacidade bruta. Gravações de usuário por atualização: duas gravações, uma para cada lado do espelho. Sobrecarga de I/O de atualização de bloco: Uma gravação para cada gravação do usuário. XtremIO Data Protection (XDP) 8 RAID 5 (striping de disco com paridade) Uma “fração” de RAID 5 é composta de blocos de dados distribuídos por diversos discos e um único bloco de paridade (calculado executando-se operações lógicas XOR com os blocos de dados) armazenado em um disco adicional. O disco que contém o bloco de paridade é alternado com cada nova fração gravada. Os tamanhos das frações RAID 5 são geralmente descritos como N+1 (onde N é o número de discos de dados na fração), sendo os mais comuns 4+1 e 5+1. Com o RAID 5, a perda simultânea de dois ou mais drives resulta em perda de dados, o que limita o tamanho prático de fração. A alta probabilidade de dois discos falharem simultaneamente limita a largura prática da fração. Fração D0 D1 D2 D3 A1 A2 A3 Ap Bp B1 B2 B3 C1 Cp C2 C3 N=3 Figura 4: Uma disposição 3+1 RAID 5 – cada fração consiste em três blocos de dados e um bloco de paridade. Benefício: Bom desempenho geral com sobrecarga de capacidade razoável. Inconveniente: Não é a melhor opção em nenhum aspecto. O RAID 10 tem melhor desempenho. O RAID 6 tem melhor proteção de dados. Sobrecarga de capacidade: Calculada como 1/(N+1). Portanto, um RAID 5 3+1 tem uma sobrecarga de capacidade de 25% e um RAID 5 5+1 tem sobrecarga de capacidade de 16,7%. Gravações de usuário por atualização: N+1 gravações (onde N são os blocos de dados e atualização de blocos de paridade), supondo uma gravação de fração completa. Sobrecarga de I/O de atualização de bloco: 1/N gravações (onde N é o número de discos de dados em uma fração), supondo uma gravação de fração completa. XtremIO Data Protection (XDP) 9 RAID 6 (striping de disco com paridade dupla) O RAID 6 é semelhante ao RAID 5, exceto que cada fração contém não apenas um, mas dois blocos de paridade. No RAID 6, um bloco de paridade é calculado para executar operações XOR lógicas nas colunas de dados e o outro bloco de paridade é calculado por diagonais de codificação em uma matriz de frações. Isso dá ao RAID 6 o benefício adicional de ser capaz de sobreviver a falhas simultâneas de dois drives. O RAID 6 foi concebido originalmente para drives SATA de grande capacidade (1 TB ou mais) em que os longos tempos de reconstrução deixavam os storage arrays RAID 5 em um estado degradado estendido, resultando em uma probabilidade inaceitavelmente alta de perda de dados. Os tamanhos de frações do RAID 6 são geralmente descritos como N+2 (em que N é o número de discos de dados na fração). Com o RAID 6, a perda simultânea de três ou mais drives resulta na perda de dados. D0 D1 D2 D3 D4 P Q A1 A2 A3 A4 A5 Ap Aq B1 B2 B3 B4 B5 Bp Bq C1 C2 C3 C4 C5 Cp Cq N=5 Figura 5: Uma disposição 5+2 RAID 6 – cada fração consiste em cinco blocos de dados e dois blocos de paridade. Benefício: Forte proteção de dados. Inconveniente: A alta sobrecarga computacional pode levar a um menor desempenho. Sobrecarga de capacidade: Calculada como 2/(N+2). Portanto, um RAID 6 5 + 2 tem uma sobrecarga de capacidade de 28,6% e um RAID 6 8+2 tem sobrecarga de capacidade de 20%. Gravações de usuário por atualização: N+2 gravações (onde N são os blocos de dados e atualização de dois blocos de paridade), supondo uma gravação de fração completa. Sobrecarga de I/O de atualização de bloco: 2/N gravações (onde N é o número de discos de dados em uma fração), supondo uma gravação de fração completa. XtremIO Data Protection (XDP) 10 Comparação entre RAID 10, 5 e 6 Os administradores de armazenamento muitas vezes precisam fazer uma escolha difícil entre capacidade, nível de proteção de dados e desempenho. Cargas de trabalho orientadas ao desempenho são geralmente provisionadas em RAID 10, mas com o alto custo de 50% de sobrecarga de capacidade. Cargas de trabalho menos sensíveis podem usar o RAID 5, e grandes conjuntos de dados com menores necessidades de desempenho podem ser altamente protegidos com o RAID 6. O desafio é adaptar-se dinamicamente às mudanças dos tipos de dados armazenados. Uma opção feita hoje pode deixar os dados em um nível de RAID inferior à ideal no futuro. Embora alguns sistemas de armazenamento permitam migrações em tempo real entre os níveis de RAID, isso requer administração proativa e pode precisar ser repetido à medida que os dados continuem a evoluir. À luz desses desafios, a administração de armazenamento é concebida como “arte” em vez de uma ciência exata. Em vez de simplesmente adotar um (ou mais) dos algoritmos RAID existentes e implementá-lo nos SSDs, a XtremIO escolheu desenvolver um novo tipo de esquema de proteção de dados que combinasse os melhores atributos dos níveis RAID pré-existentes e ao mesmo tempo evitasse suas desvantagens. Além disso, como a durabilidade do flash é uma consideração especial para um array totalmente flash, a XtremIO considerou essencial desenvolver um algoritmo de proteção de dados que requeresse menos ciclos de gravação. Isso maximiza a vida útil do serviço dos SSDs do array, fornecendo ainda um melhor desempenho, uma vez que estão disponíveis mais ciclos de I/O para gravações de host (I/Os de front-end) em comparação com as operações internas do array (I/Os de back-end). Boa utilização da capacidade Alto desempenho Proteção superior Figura 6: Os esquemas RAID existentes têm muitas vantagens e desvantagens. O XDP combina os melhores atributos de vários níveis de RAID e os estende, oferecendo novas funcionalidades exclusivas até então impossíveis. XtremIO Data Protection (XDP) 11 Uma introdução ao esquema de proteção de dados avançada da XtremIO O esquema do XtremIO Data Protection é muito diferente do RAID em vários aspectos. Como o XDP trabalha sempre em um storage array totalmente flash, vários critérios de projeto são importantes: Sobrecarga de capacidade ultrabaixa – a capacidade de flash é mais cara do que a capacidade de disco. Portanto, é mais desejável usar um striping muito largo para reduzir a sobrecarga de capacidade. O XDP usa uma largura de fração de 23+2 *, que equivale a uma sobrecarga de capacidade de apenas 8%. Altos níveis de proteção de dados – o XDP é um esquema N+2, o que faz com que ele seja tolerante a duas falhas de SSD simultâneas em cada X-Brick. Tempos de reconstrução rápidos – o XDP permite reconstruções muito rápidas, não apenas porque o flash é uma tecnologia de mídia subjacente rápida, mas também porque a arquitetura com reconhecimento de conteúdo da XtremIO precisa reconstruir apenas o espaço gravado de um drive. Espaços vazios são detectados e ignorados. Além disso, o XDP tem algoritmos de codificação de paridade específicos do flash (descritos mais adiante neste documento) que permitem que as reconstruções ocorram com menos ciclos de I/O para os drives. A reconstrução é executada simultaneamente em todos os 24 drives restantes, acelerando ainda mais o processo de reconstrução. Durabilidade do flash – o XDP requer menos gravações por atualização de fração do que qualquer algoritmo RAID. Isso aumenta a durabilidade do flash até 2,5 vezes mais do que com implementações de RAID padrão. Desempenho – por exigir menos operações de I/O por atualização de fração, o XDP deixa mais ciclos de I/O disponíveis para I/O de host (front-end), o que resulta em um desempenho superior do array. Como o XDP atinge esses objetivos aparentemente contraditórios simultaneamente? A resposta está na capacidade do algoritmo de posicionar e acessar dados em qualquer posição em qualquer SSD. Os algoritmos RAID anteriores tinham que considerar como manter os dados contíguos para evitar os seeks da cabeça do drive de disco. O XDP presume que uma mídia de acesso aleatório como o flash está presente no array, e por isso pode fazer o layout dos dados e lê-los novamente de formas altamente eficientes que penalizariam pesadamente um algoritmo RAID baseado em disco, mas que não têm efeitos nocivos na arquitetura totalmente flash do XtremIO. O XDP usa uma variação da paridade de linha e diagonal N+2. Consulte a Figura 7 abaixo para ter uma amostra do layout de dados do XDP. * Para um X-Brick Starter 10 TB (5 TB), o XDP usa uma largura de fração de 11+2. XtremIO Data Protection (XDP) 12 k-1 D0 D1 D2 D3 D4 P Q 1 2 3 4 5 P1 2 3 4 5 1 P2 3 4 5 1 2 P3 4 5 1 2 3 P4 1º i 2º i 3º i 4º i 5º i k = 5 (prime) Figura 7: Exemplo de layout de dados do XDP. O XDP faz uso de cálculos de paridade de linha (P) e diagonal (Q). Aqui é mostrada uma fração 5+2, mas na verdade o XDP usa uma fração 23+2. Cada fração protegida pelo XDP usa 23 colunas e 28 linhas. Na Figura 7, a paridade baseada em linha do XDP é mostrada pelo retângulo vermelho e o bloco de paridade é armazenado na coluna ‘P’. A paridade diagonal do XDP é mostrada pelo retângulo azul e é armazenada na coluna ‘Q’. A localização do bloco de paridade ‘Q’ corresponde ao esquema de numeração (número quatro no diagrama) da diagonal. Para calcular efetivamente a paridade diagonal (que abrange várias frações baseadas em linhas), o XDP grava os dados em um tamanho da fração de 23 *28 = 644 blocos de dados, permitindo que a paridade diagonal seja calculada enquanto todos os dados ainda estão na memória. XtremIO Data Protection (XDP) 13 Atualizações eficientes de frações com o XDP Mas como o layout de dados do XDP beneficia o array XtremIO em comparação com o RAID tradicional? A resposta recai na sobrecarga de I/O requerida para fazer uma atualização de fração. Com todos os esquemas RAID Atualizações de frações versus frações completas baseados em paridade, é muito mais Em qualquer algoritmo RAID baseado em paridade (inclusive no rápido (devido à menor sobrecarga XDP), há menos sobrecarga de I/O para a gravação de uma de I/O) fazer gravações de frações “fração completa” do que na atualização de uma fração com completas (gravação de dados em novos dados. Uma gravação de fração completa incorre apenas um local vazio do disco) do que na sobrecarga computacional do cálculo da paridade e os drives precisam apenas gravar os novos dados e os blocos de paridade atualizar um único bloco em uma associados. Uma atualização requer a leitura de blocos de dados fração (atualização de dados em um existentes e dos blocos de paridade, a computação da nova local existente). Uma gravação de paridade e a gravação dos novos dados e da paridade atualizada. fração completa exige que a paridade Portanto, as gravações de frações completas são desejáveis seja calculada e que os dados sejam e fáceis de executar quando o array está vazio. gravados. No entanto, uma No entanto, à medida que um array vai ficando cheio, a maioria das gravações será de sobregravações de blocos de dados atualização de uma fração existente existentes, uma vez que fica mais difícil encontrar espaço livre no exige que os blocos de dados e de array para executar uma gravação de bloco completo, forçando paridade na fração sejam lidos e a ocorrência de mais atualizações de frações e reduzindo o depois a nova paridade seja desempenho. calculada com base nos dados A estratégia comum para o tratamento dessa situação atualizados, e os blocos de dados é implementar uma função de coleta de lixo que procura dados e de paridade resultantes são obsoletos nas frações existentes e os reempacota em frações completas, permitindo que seja recuperado espaço para existam gravados. Por exemplo, o RAID 6 (espera-se) sempre frações completas disponíveis para novas incorre em três leituras (o bloco de gravações. Em um flash array, esse é um enfoque indesejável, dados existente e os dois blocos de porque o ato de coleta de lixo leva a um desempenho imprevisível paridade) e três gravações (o novo (a função de coleta de lixo em si consome ciclos de I/O e gera bloco de dados e os dois blocos de sobrecarga computacional no array) e desgasta o flash mais cedo (a coleta de dados de um local e a gravação deles em um novo paridade recalculados) para cada local amplifica o número de gravações que a mídia flash resiste. atualização de bloco. A maneira de A XtremIO projetou uma solução completamente exclusiva para reduzir a sobrecarga de I/O média este problema. Em vez da coleta de lixo, o array XtremIO funciona para a gravação de um volume RAID com a suposição de que as atualizações de frações serão 6 é tentar fazer o máximo de predominantes à medida que array estiver em serviço ao longo do gravações de frações completas e o tempo. Os algoritmos do XDP posicionam as novas gravações com eficiência nas frações mais vazias do array, fornecendo mínimo de atualizações de um único desempenho consistente e previsível à medida que a capacidade bloco que for possível. No entanto, do array é preenchida. O XDP evita o problema de amplificação de isso se torna cada vez mais difícil à gravações criado pela coleta de lixo. O resultado é que o array medida que o array vai ficando cheio. XtremIO fornece desempenho consistente em todas as vezes, Esse é um dos motivos pelos quais e aumenta a durabilidade do flash até 2,5 mais do que as implementações RAID tradicionais. o desempenho do array tende a degradar substancialmente à medida que a capacidade é reduzida. O array não consegue mais encontrar frações completas vazias e precisa executar várias atualizações de frações parciais. Isso incorre em níveis muito mais altos de I/O de back-end, consumindo IOPS de disco que de outra maneira estaria disponível para solicitações do host de front-end. XtremIO Data Protection (XDP) 14 O array XtremIO e o XDP operam de uma maneira fundamentalmente diferente. O array XtremIO armazena blocos com base não em seu endereço lógico, mas em sua impressão digital de conteúdo individual. Na camada física, o array XtremIO tem total liberdade sobre onde gravar os novos blocos de dados (essa capacidade só é possível em um projeto totalmente flash). Os arrays tradicionais atualizam endereços de blocos lógicos na mesma posição física no disco (causando a grande sobrecarga de I/O de uma atualização de fração). Os arrays totalmente flash tipicamente têm uma função de coleta de lixo que tenta liberar dados obsoletos em frações completas vazias. No entanto, uma atualização em um endereço de bloco lógico no XtremIO é gravada em um novo local no disco com base na impressão digital do conteúdo (se o conteúdo já existir no array, o bloco é simplesmente desduplicado). Como acontece com o RAID tradicional, o XDP tenta fazer o máximo de gravações de frações completas possível, juntando blocos novos/alterados e gravando-os em frações vazias disponíveis no array. No entanto, com o XDP, a não disponibilidade de uma fração completa não causa os altos níveis de sobrecarga de atualização de frações parciais encontrados no RAID tradicional, nem a coleta de dados presente em outros flash arrays, porque o XtremIO não atualiza os dados no local. Em vez disso, o array sempre coloca os dados na fração mais vazia disponível. E, como explicado abaixo, a sobrecarga de I/O do XDP para uma atualização de fração parcial normalmente é muito menor do que com RAIDs tradicionais. O resultado líquido é que o XtremIO quase nunca incorre na sobrecarga de I/O total de uma atualização de fração do RAID 6. A sobrecarga de I/O média do XtremIO para essa operação é muito próxima daquela de uma gravação de fração completa. Na verdade, o desempenho médio de atualização do XtremIO é aproximadamente 40% melhor do que do RAID 10, o nível RAID com o melhor desempenho. Para demonstrar como isso funciona, considere a situação em que o array XtremIO está 80% cheio, o que significa que existe um espaço livre de 20%. Este exemplo é usado porque ilustra como o XDP mantém o desempenho mesmo quando o array está quase cheio. Essa é uma condição que causa problemas para outros projetos de flash arrays que dependem de mecanismos de coleta de lixo para mover os dados para criar uma fração completamente vazia de RAID para os novos dados de entrada. Isso se torna cada vez mais difícil de fazer à medida que o array fica cheio, especialmente em face das pesadas cargas de trabalho de gravação. Em contraste, o XDP não requer uma fração completa. Ao contrário, o XDP foi projetado para sobressair ao lidar com gravações de frações parciais, o que se torna a condição de operação normal em estado estável quando um array está em serviço por algum tempo. Quando novos dados entram no array XtremIO, o XDP escolhe a fração mais vazia, porque ela incorre na menor sobrecarga de atualizações de paridade e de acessos ao disco. Depois da atualização, essa fração estará cheia, enquanto em média as demais frações terão um pouco mais de 20% livres. A repetição deste cenário em um array que está 80% cheio cria uma distribuição equilibrada de espaço livre nas frações, que vai de zero (fração cheia) a 2 vezes o espaço livre do array, que nesse caso é 40% (2 x 20% livres). XtremIO Data Protection (XDP) 15 Figura 8: O XDP classifica todas as frações com base em quão cheias ou vazias elas estão e sempre grava na fração mais vazia. Nesta visão simplificada, existem dez drives de dados (colunas) e dez frações (linhas). As frações mais vazias são classificadas na parte de baixo. O exemplo mostra um array que está 80% cheio. Como o XDP tem 644 blocos de dados e, em média, uma atualização de fração é feita com 40% de espaço livre na fração (em um array 80% cheio), isso significa que o XDP tem 644,40%* ≈ 257 blocos de dados na fração disponíveis para gravação do usuário. Quando a fração for atualizada, haverá uma sobrecarga de regravação de paridade em que o XDP terá 28 blocos de paridade de linha e 29 blocos de paridade diagonal, totalizando 57 + 257 = 314 operações de gravação. 314 operações de gravação para 257 blocos de dados do usuário é uma sobrecarga de gravação de 1,22 I/Os. A sobrecarga de leitura de XDP por fração é idêntica em 1,22 I/Os, refletindo a necessidade de ler os blocos de dados existentes e os blocos de paridade para executar os cálculos de paridade atualizada. * Por causa da forma como o XDP funciona, em média, a fração mais vazia no XDP tem o dobro de blocos livres em comparação com o espaço livre de nível de sistema. XtremIO Data Protection (XDP) 16 Figura 9: O XDP sempre grava os dados novos na fração que tem mais espaço vazio (aquela que está na parte inferior da pilha). Neste exemplo, quatro blocos estavam livres (dois estavam vazios e dois estavam disponíveis para serem sobrescritos). Usando este método, o XDP amortiza a sobrecarga de I/O de atualização com a maior eficiência possível. Figura 10: Sempre que uma fração é atualizada, o XDP reclassifica todas as frações de forma que a próxima atualização ocorra da fração mais vazia. À medida que os hosts sobregravam os endereços lógicos, suas antigas localizações no SSD são marcadas como livres para serem sobrescritas. XtremIO Data Protection (XDP) 17 Tabela 1: Comparação da sobrecarga de I/O de diferentes esquemas RAID com relação ao XDP. Algoritmo Leituras por atualização de fração Desvantagem da leitura do algoritmo tradicional Gravações por atualização de gravação Desvantagem da gravação do algoritmo tradicional XDP 1,22 — 1,22 — RAID 10 0 — 2 1,6x RAID 5 2 1,6x 2 1,6x RAID 6 3 2,4x 3 2,4x Em um sistema baseado em flash, a desvantagem do RAID tradicional se manifesta não apenas no menor desempenho, mas também na menor durabilidade da mídia flash. Como os drives flash têm um número finito de ciclos de gravação que podem resistir, o XDP permite que os arrays XtremIO não apenas tenham um melhor desempenho, mas também durem mais. Essa é uma vantagem significativa de alto valor em um storage array corporativo. Considere o XtremIO com relação a outro produto que implementa o RAID 6. Ambos fornecem proteção de dados N+2, mas o XtremIO permite que o flash dure 2,4 vezes mais, oferecendo desempenho de I/O 2, 4 vezes melhor. A vantagem do XDP é verdadeira não apenas para atualizações, mas também para outras operações importantes de armazenamento, como reconstruções devido a falhas de SSD. XtremIO Data Protection (XDP) 18 Reconstruções eficientes O esquema inovador de paridade baseada na diagonal do XDP desempenha um papel importante durante as reconstruções do drive. Embora a reconstrução de um drive com falha depois de uma falha de um único drive possa ser feita inocentemente usando apenas informações de paridade baseadas em linha (que requer a leitura de blocos K* por bloco com falha), esse não é o método usado pelo XDP. D0 Q 4 linhas D1 D2 D3 D4 2 3 4 5 1 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4 P 5 5 colunas Figura 11: Com o RAID, uma falha em um drive (D0) pode ser reconstruída usando uma paridade baseada em linha (P). Isso requer a leitura de blocos K1 (D1, D2, D3, D4, P) para reconstruir cada bloco de dados ausente no drive com falha. O XDP é muito mais eficiente do que este método. O XDP acelera a reconstrução usando a paridade de linha e a paridade diagonal. Considerando que D0 falhou, o XDP recupera os dois primeiros blocos (D0-1, D0-2) usando suas paridades de linha. Com o RAID tradicional, o processo de reconstrução de paridade baseada em linha continua com as linhas restantes. * K: Número de colunas de dados em uma fração ou número geral de discos na fração, com exceção dos discos de paridade. No storage array do XtremIO K=23. XtremIO Data Protection (XDP) 19 D0 D1 D2 D3 D4 2 3 4 5 1 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4 P Q 5 Figura 12: Processo de reconstrução hipereficiente do XDP. Neste exemplo, as duas primeiras linhas são reconstruídas usando a paridade baseada em linha convencional. No entanto, com o XDP, à medida que o sistema lê essas duas linhas, ele mantém alguns de seus blocos de dados na memória, porque eles podem ser aproveitados para executar reconstruções de paridade baseadas na diagonal. Na Figura 12, os blocos D2-3, D3-4, D1-3 e D2-4 são retidos dessa maneira. Com essas informações já disponíveis, o XDP não precisa ler todas as linhas restantes para completar a reconstrução, porque muitas das frações de paridade diagonal podem ser completadas com apenas alguns blocos adicionais. Como resultado, o número de I/Os de leitura no SSD é minimizado e a eficácia e o tempo gerais do processo de reconstrução aumentam. Por exemplo, a fração diagonal para os blocos com numeração 4 (D0-4, que precisa ser reconstruído, D1-4, D2-4, D3-4 e Q-4) já tem os blocos D2-4 e D3-4 na memória das operações de reconstrução baseadas em linha anteriores. D0 D1 D2 D3 D4 1 2 3 4 5 1 2 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4 P Q 5 Figura 13: O XDP usou a paridade baseada em linha para reconstruir D0-1 e D0-2. Ele também reteve os blocos marcados em verde na memória. Portanto, eles não precisam ser relidos para concluir a reconstrução. Esses dados são usados completar a reconstrução usando a paridade diagonal (Q). XtremIO Data Protection (XDP) 20 D0 D1 D2 D3 D4 1 2 3 4 5 1 2 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4 4 P Q 5 Figura 14: A paridade baseada na diagonal do XDP permite que as reconstruções ocorram com menos operações de I/O. Aqui, o D0-4 é reconstruído usando uma combinação de informações retidas durante uma reconstrução baseada em linha de D0-1 e D0-2, juntamente com as informações diagonais contidas em D1-4 e Q-4. Portanto, a reconstrução de D0-4 requer apenas duas leituras (D1-4 e Q-4) enquanto nos RAIDs tradicionais exigiria cinco leituras (D1-5, D2-1, D3-2, D4-3 e P). De forma similar, a reconstrução de D0-3 requer apenas a leitura de D4-3 e Q-3. O processo de reconstrução é feito simultaneamente em todos os 24 drives restantes. O sistema reconstrói um grande número de frações ao mesmo tempo, usando todos os SSDs restantes no XDP. Isso acelera o processo, resultando em um tempo de reconstrução reduzido. Este método não oferece nenhuma vantagem na reconstrução de colunas de paridade perdidas e por isso requer um pouco mais do que 3 K/4 leituras em média (lembre-se de que cada disco contém colunas de dados e de paridade em um esquema de paridade rotativa). É fácil ver que esse esquema também equilibra as leituras de reconstrução igualmente pelos discos sobreviventes. XtremIO Data Protection (XDP) 21 Tabela 2: Comparação de algoritmos RAID e XDP. Algoritmo Lê para reconstruir uma fração de disco de largura K com falha * Desvantagem do algoritmo tradicional XDP 3 K/4 — RAID 10 1 Nenhuma RAID 5 K 33% RAID 6 K 33% A vantagem de eficiência do XDP leva a menores tempos de reconstrução e a um melhor desempenho do array durante as reconstruções, uma vez que são necessários menos I/Os de back-end para concluir a reconstrução, deixando mais I/Os de front-end disponíveis para os dados dos usuários. * K: Número de colunas de dados em uma fração ou número geral de discos na fração, com exceção dos discos de paridade. No storage array do XtremIO K=23. XtremIO Data Protection (XDP) 22 Benefícios administrativos do XDP Os benefícios do XDP vão além da proteção de dados superior, do desempenho, da utilização da capacidade e da durabilidade do flash. O algoritmo é completamente implementado no software (em vez de em uma controladora de hardware como ASIC ou FPGA), o que permite uma tremenda flexibilidade à medida que futuros projetos de X-Brick forem lançados. Essa flexibilidade é demonstrada na forma como o XDP responde dinamicamente a condições comuns de falha. Um XtremIO X-Brick padrão contém 25 SSDs, com 23 para dados e 2 para paridade. Quando um dos 25 SSDs em um X-Brick falha, o XDP reconstrói rapidamente o drive com falha, enquanto reconfigura dinamicamente as novas gravações recebidas em um tamanho da fração de 22+2 para manter uma proteção dupla de falha N+2 para todos os dados gravados no array. Uma vez que a reconstrução esteja concluída e que o drive com falha tenha sido substituído, as gravações recebidas serão novamente gravadas na fração 23+2 padrão. Essa capacidade de adaptação permite que o XDP tolere uma sequência de falhas de SSD sem a necessidade de correr para o datacenter para substituir os SSDs com falha. O XDP mantém uma capacidade de reserva de aproximadamente 5% para realizar uma reconstrução de drive (essa reserva é fatorada da capacidade utilizável do XtremIO) e pode continuar a reconstruir drives com falha repetidas vezes ao atender I/Os de usuário, desde que ainda haja capacidade disponível no array – até 5 falhas para um X-Brick completo e 4 falhas para um X-Brick Starter 10 TB (5 TB). O array terá menos capacidade disponível (até que os drives com falha sejam substituídos) e pode ficar um pouco mais lento porque tem menos drives funcionando, mas continuará íntegro e protegido. Este é um recurso realmente exclusivo que permite que os administradores adiem substituições de drives até uma época conveniente, o que é especialmente importante em datacenters remotos, seguros e totalmente automatizados. Um benefício adicional disso é que o array não requer hot spares, por isso cada slot no sistema contém um SSD que ativamente armazena dados e agrega ao desempenho do array. XtremIO Data Protection (XDP) 23 Conclusão o esquema de proteção de dados do XtremIO representa um salto na tecnologia de storage array. Ao projetar para o armazenamento flash e tirar vantagem de suas características exclusivas, o XDP permite que os arrays XtremIO tenham melhor desempenho e duram mais facilitando o uso e custando menos. Os benefícios do XDP incluem: • Proteção de dados N+2 • Sobrecarga de capacidade incrivelmente baixa de 8% • Desempenho superior a qualquer algoritmo RAID • Durabilidade de flash superior a qualquer algoritmo RAID • Tempos de reconstrução mais rápidos do que algoritmos RAID baseados em paridade • Maior robustez com algoritmos adaptativos que protegem totalmente os dados recebidos, mesmo quando existem drives defeituosos no sistema • Facilidade de administração por meio do suporte a fail-in-place • Utilizando o “Espaço livre” em vez de “Hot Spare” para recriação de SSD, aumentando a resistência e garantindo a reconstrução de pelo menos uma única falha SSD, mesmo que o array esteja cheio Com essas vantagens, o array totalmente flash XtremIO dá aos administradores de armazenamento o melhor de todos os mundos. Não há mais nenhuma necessidade de adivinhar que esquema RAID usar para um conjunto de dados específico e não há decisões de vantagens e desvantagens a tomar. Com o XtremIO, os dados têm a melhor proteção e o melhor desempenho ao mesmo tempo. XtremIO Data Protection (XDP) 24 Como saber mais Para uma apresentação detalhada sobre os recursos do storage array XtremIO e sobre como o XtremIO melhora consideravelmente o desempenho, a eficiência operacional, a facilidade de uso e o TCO, entre em contato com a XtremIO enviado um e-mail para [email protected]. Agendaremos uma reunião particular presencial ou virtual. O XtremIO oferece benefícios em muitos ambientes, mas é particularmente eficaz para servidores virtuais, desktops virtuais e aplicativos de banco de dados. Fale Conosco Para saber mais sobre como os produtos, serviços e soluções EMC ajudam a solucionar seus desafios de negócios e de TI, entre em contato com o representante local ou o revendedor autorizado, ou visite nosso site brazil.emc.com. EMC2, EMC, o logotipo da EMC, XtremIO e o logotipo da XtremIO são marcas registradas da EMC Corporation nos Estados Unidos e em outros países. VMware é marca registrada da VMware, Inc. nos Estados Unidos e em outras jurisdições. © Copyright 2015 EMC Corporation. Todos os direitos reservados. Publicado no Brasil. 04/15 EMC White Paper A EMC assegura que as informações apresentadas neste documento estão corretas na data da publicação. As informações estão sujeitas a alterações sem prévio aviso. XtremIO Data Protection (XDP) 25