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
Download

XTREMIO DATA PROTECTION (XDP)