Share via


Tolerância a falhas e eficiência de armazenamento em clusters do Azure Stack HCI e do Windows Server

Aplica-se a: Azure Stack HCI, versões 22H2 e 21H2; Windows Server 2022, Windows Server 2019

Este artigo explica as opções de resiliência disponíveis e descreve os requisitos de dimensionamento, a eficiência do armazenamento e as vantagens gerais e desvantagens de cada um.

Descrição Geral

Espaços de Armazenamento Direto fornece tolerância a falhas, muitas vezes denominada "resiliência", para os seus dados. A sua implementação é semelhante ao RAID, exceto distribuído por servidores e implementado em software.

Tal como acontece com o RAID, existem algumas formas diferentes Espaços de Armazenamento podem fazê-lo, o que torna diferentes compromissos entre a tolerância a falhas, a eficiência de armazenamento e a complexidade da computação. Estas enquadram-se amplamente em duas categorias: "espelhamento" e "paridade", esta última por vezes chamada "codificação de eliminação".

Espelhamento

O espelhamento proporciona tolerância a falhas ao manter várias cópias de todos os dados. Isto assemelha-se mais a RAID-1. A forma como esses dados são recortados e colocados não é trivial (consulte este blogue para saber mais), mas é absolutamente verdade que todos os dados armazenados através do espelhamento são escritos, na sua totalidade, várias vezes. Cada cópia é escrita em hardware físico diferente (unidades diferentes em servidores diferentes) que se presume que falham de forma independente.

Pode escolher entre dois tipos de espelhamento : "bidirecional" e "tridirecional".

Espelho de duas vias

O espelhamento bidirecional escreve duas cópias de tudo. A eficiência de armazenamento é de 50 por cento– para escrever 1 TB de dados, precisa de, pelo menos, 2 TB de capacidade de armazenamento físico. Da mesma forma, precisa de, pelo menos, dois "domínios de falha" de hardware – com Espaços de Armazenamento Direto, isso significa dois servidores.

espelho bidirecional

Aviso

Se tiver mais de dois servidores, recomendamos que utilize o espelhamento tridirecional.

Espelho de três vias

O espelhamento tridirecional escreve três cópias de tudo. A eficiência de armazenamento é de 33,3 por cento– para escrever 1 TB de dados, precisa de, pelo menos, 3 TB de capacidade de armazenamento físico. Da mesma forma, precisa de, pelo menos, três domínios de falha de hardware – com Espaços de Armazenamento Direto, o que significa três servidores.

O espelhamento tridirecional pode tolerar com segurança, pelo menos , dois problemas de hardware (unidade ou servidor) de cada vez. Por exemplo, se estiver a reiniciar um servidor quando de repente outra unidade ou servidor falhar, todos os dados permanecerão seguros e continuamente acessíveis.

espelho de três vias

Parity

A codificação de paridade, muitas vezes denominada "codificação de eliminação", fornece tolerância a falhas através de aritmética bit a bit, o que pode ficar notavelmente complicado. A forma como isto funciona é menos óbvia do que o espelhamento e existem muitos recursos online excelentes (por exemplo, este Guia de Manequins de terceiros para a Codificação de Eliminação) que o podem ajudar a ter a ideia. Basta dizer que proporciona uma melhor eficiência de armazenamento sem comprometer a tolerância a falhas.

Espaços de Armazenamento oferece dois tipos de paridade : paridade "única" e paridade "dupla", este último empregando uma técnica avançada denominada "códigos de reconstrução local" em escalas maiores.

Importante

Recomendamos que utilize o espelhamento para a maioria das cargas de trabalho sensíveis ao desempenho. Para saber mais sobre como equilibrar o desempenho e a capacidade consoante a carga de trabalho, veja Planear volumes.

Paridade única

A paridade única mantém apenas um símbolo de paridade bit a bit, o que fornece tolerância a falhas em relação a apenas uma falha de cada vez. Assemelha-se mais a RAID-5. Para utilizar a paridade única, precisa de, pelo menos, três domínios de falha de hardware – com Espaços de Armazenamento Direto, o que significa três servidores. Uma vez que o espelhamento tridirecional proporciona uma maior tolerância a falhas à mesma escala, desencorajamos a utilização de paridade única. Mas, está lá se insistir em usá-lo, e é totalmente suportado.

Aviso

Desaconselhámos a utilização de paridade única porque só pode tolerar com segurança uma falha de hardware de cada vez: se estiver a reiniciar um servidor quando, de repente, outra unidade ou servidor falhar, ocorrerá um período de indisponibilidade. Se tiver apenas três servidores, recomendamos que utilize o espelhamento tridirecional. Se tiver quatro ou mais, consulte a secção seguinte.

Paridade dupla

A paridade dupla implementa Reed-Solomon códigos de correção de erros para manter dois símbolos de paridade bit a bit, proporcionando assim a mesma tolerância a falhas que o espelhamento tridirecional (ou seja, até duas falhas ao mesmo tempo), mas com uma melhor eficiência de armazenamento. Assemelha-se mais a RAID-6. Para utilizar a paridade dupla, precisa de, pelo menos, quatro domínios de falha de hardware – com Espaços de Armazenamento Direto, o que significa quatro servidores. Nessa escala, a eficiência de armazenamento é de 50%, para armazenar 2 TB de dados, precisa de 4 TB de capacidade de armazenamento físico.

paridade dupla

A eficiência de armazenamento da paridade dupla aumenta quanto mais domínios de falha de hardware tiver, de 50% até 80%. Por exemplo, às sete (com Espaços de Armazenamento Direto, isto significa sete servidores), a eficiência aumenta para 66,7 por cento – para armazenar 4 TB de dados, precisa apenas de 6 TB de capacidade de armazenamento físico.

de paridade dupla

Consulte a secção Resumo para obter a eficiência dos códigos de reconstrução de entidade dupla e local em todas as escalas.

Códigos de reconstrução local

Espaços de Armazenamento introduz uma técnica avançada desenvolvida pela Microsoft Research chamada "códigos de reconstrução local", ou LRC. Em grande escala, a paridade dupla utiliza LRC para dividir a codificação/descodificação em alguns grupos mais pequenos, para reduzir a sobrecarga necessária para efetuar escritas ou recuperar de falhas.

Com unidades de disco rígido (HDD), o tamanho do grupo é de quatro símbolos; com unidades de estado sólido (SSD), o tamanho do grupo é de seis símbolos. Por exemplo, eis o aspeto do esquema com unidades de disco rígido e 12 domínios de falha de hardware (ou seja, 12 servidores) – existem dois grupos de quatro símbolos de dados. Obtém 72,7% de eficiência de armazenamento.

local-reconstruction-codes

Recomendamos este guia aprofundado, mas eminentemente legível, de como os códigos de reconstrução local lidam com vários cenários de falha, e por que razão são apelativos, por Claus Joergensen.

Paridade acelerada por espelho

Um volume Espaços de Armazenamento Direto pode ser parte espelhado e parte paridade. Escreve primeiro na parte espelhada e é gradualmente movida para a parte da paridade mais tarde. Efetivamente, isto está a utilizar o espelhamento para acelerar a eliminação da codificação.

Para misturar o espelho tridirecional e a paridade dupla, precisa de, pelo menos, quatro domínios de falha, ou seja, quatro servidores.

A eficiência de armazenamento da paridade acelerada por espelhos está entre o que obteria ao utilizar todo o espelho ou toda a paridade e depende das proporções que escolher. Por exemplo, a demonstração na marca de 37 minutos desta apresentação mostra várias combinações que alcançam 46 por cento, 54 por cento e 65 por cento de eficiência com 12 servidores.

Importante

Recomendamos que utilize o espelhamento para a maioria das cargas de trabalho sensíveis ao desempenho. Para saber mais sobre como equilibrar o desempenho e a capacidade consoante a carga de trabalho, veja Planear volumes.

Resumo

Esta secção resume os tipos de resiliência disponíveis no Espaços de Armazenamento Direto, os requisitos mínimos de dimensionamento para utilizar cada tipo, quantas falhas cada tipo pode tolerar e a eficiência de armazenamento correspondente.

Tipos de resiliência

Resiliência Tolerância a falhas Eficiência de armazenamento
Espelho de duas vias 1 50.0%
Espelho de três vias 2 33.3%
Paridade dupla 2 50.0% - 80.0%
Misto 2 33.3% - 80.0%

Requisitos mínimos de dimensionamento

Resiliência Domínios de falha mínimos necessários
Espelho de duas vias 2
Espelho de três vias 3
Paridade dupla 4
Misto 4

Dica

A menos que esteja a utilizar tolerância a falhas de chassis ou rack, o número de domínios de falha refere-se ao número de servidores. O número de unidades em cada servidor não afeta os tipos de resiliência que pode utilizar, desde que cumpra os requisitos mínimos para Espaços de Armazenamento Direto.

Eficiência de paridade dupla para implementações híbridas

Esta tabela mostra a eficiência de armazenamento de códigos de reconstrução local e paridade dupla em cada escala para implementações híbridas que contêm unidades de disco rígido (HDD) e unidades de estado sólido (SSD).

Domínios de falha Layout Eficiência
2
3
4 RS 2+2 50.0%
5 RS 2+2 50.0%
6 RS 2+2 50.0%
7 RS 4+2 66.7%
8 RS 4+2 66.7%
9 RS 4+2 66.7%
10 RS 4+2 66.7%
11 RS 4+2 66.7%
12 LRC (8, 2, 1) 72.7%
13 LRC (8, 2, 1) 72.7%
14 LRC (8, 2, 1) 72.7%
15 LRC (8, 2, 1) 72.7%
16 LRC (8, 2, 1) 72.7%

Eficiência de paridade dupla para implementações com flash

Esta tabela mostra a eficiência de armazenamento de paridade dupla e códigos de reconstrução local em cada escala para implementações com flash que contêm apenas unidades de estado sólido (SSD). O esquema de paridade pode utilizar tamanhos de grupo maiores e obter uma melhor eficiência de armazenamento numa configuração totalmente flash.

Domínios de falha Layout Eficiência
2
3
4 RS 2+2 50.0%
5 RS 2+2 50.0%
6 RS 2+2 50.0%
7 RS 4+2 66.7%
8 RS 4+2 66.7%
9 RS 6+2 75.0%
10 RS 6+2 75.0%
11 RS 6+2 75.0%
12 RS 6+2 75.0%
13 RS 6+2 75.0%
14 RS 6+2 75.0%
15 RS 6+2 75.0%
16 LRC (12, 2, 1) 80.0%

Exemplos

A menos que tenha apenas dois servidores, recomendamos que utilize espelhamento tridirecional e/ou paridade dupla, uma vez que oferecem uma melhor tolerância a falhas. Especificamente, garantem que todos os dados permanecem seguros e continuamente acessíveis mesmo quando dois domínios de falha ( com Espaços de Armazenamento Direto, ou seja, dois servidores - são afetados por falhas simultâneas.

Exemplos em que tudo permanece online

Estes seis exemplos mostram o que o espelhamento tridirecional e/ou a paridade dupla podem tolerar.

  • 1. Uma unidade perdida (inclui unidades de cache)
  • 2. Um servidor perdido

tolerância a falhas-exemplos-1-e-2

  • 3. Um servidor e uma unidade perdidas
  • 4. Duas unidades perdidas em servidores diferentes

tolerância a falhas-exemplos-3-e-4

  • 5. Mais de duas unidades perdidas, desde que, no máximo, dois servidores sejam afetados
  • 6. Dois servidores perdidos

tolerância a falhas-exemplos-5-e-6

... em todos os casos, todos os volumes permanecerão online. (Certifique-se de que o cluster mantém o quórum.)

Exemplos em que tudo fica offline

Ao longo da sua duração, Espaços de Armazenamento pode tolerar qualquer número de falhas, uma vez que restaura a resiliência total após cada uma delas, dado tempo suficiente. No entanto, no máximo, dois domínios de falha podem ser afetados com segurança por falhas a qualquer momento. Seguem-se exemplos do que o espelhamento tridirecional e/ou a paridade dupla não podem tolerar.

  • 7. Unidades perdidas em três ou mais servidores ao mesmo tempo
  • 8. Três ou mais servidores perdidos ao mesmo tempo

tolerância a falhas-exemplos-7-e-8

Utilização

Veja Criar volumes.

Passos seguintes

Para obter mais informações sobre assuntos mencionados neste artigo, veja o seguinte: