Quais são os diferentes níveis de RAID amplamente usados ​​e quando devo considerá-los?

181

Esta é uma pergunta canônica sobre os níveis de RAID.

O que são:

  • os níveis de RAID normalmente usados ​​(incluindo a família RAID-Z)?
  • implantações são comumente encontradas?
  • benefícios e armadilhas de cada um?
MDMarra
fonte
10
@ erimar77 O objetivo da rede StackExchange é coletar todo o conhecimento sobre o assunto especificado na rede SE . Isso significa que os dados na Wikipedia são inúteis para a missão. Eu sou bastante versado em RAID, então não preciso da resposta, mas deve ser uma pergunta canônica. Uma pergunta cônica é aquela que contém uma resposta definitiva para um problema comum para o qual somos capazes de apontar todas as duplicatas. "Basta pesquisar no Google" ou "na Wikipedia" não são respostas aceitáveis. O artigo na Wikipedia é muito bom, no entanto.
MDMarra
2
Copiados para Super User para que puder VTC como uma duplicata lá. Copie a resposta para Superusuário (ou deixe-me copiá-la por enquanto).
Hennes

Respostas:

197

RAID: Por que e quando

RAID significa Matriz Redundante de Discos Independentes (alguns são ensinados como "Barato" para indicar que são discos "normais"; historicamente, havia discos internamente redundantes que eram muito caros; já que esses não estão mais disponíveis, a sigla se adaptou).

No nível mais geral, um RAID é um grupo de discos que atuam nas mesmas leituras e gravações. A E / S SCSI é executada em um volume ("LUN") e estes são distribuídos para os discos subjacentes de uma maneira que introduza um aumento de desempenho e / ou um aumento de redundância. O aumento de desempenho é uma função da distribuição: os dados são espalhados por vários discos para permitir que as leituras e gravações usem as filas de E / S de todos os discos simultaneamente. A redundância é uma função do espelhamento. Discos inteiros podem ser mantidos como cópias ou faixas individuais podem ser gravadas várias vezes. Como alternativa, em alguns tipos de invasões, em vez de copiar dados bit por bit, a redundância é obtida através da criação de faixas especiais que contêm informações de paridade, que podem ser usadas para recriar quaisquer dados perdidos no caso de uma falha de hardware.

Existem várias configurações que fornecem diferentes níveis desses benefícios, abordadas aqui, e cada uma delas tem um viés em relação ao desempenho ou redundância.

Um aspecto importante na avaliação de qual nível de RAID funcionará para você depende de suas vantagens e requisitos de hardware (por exemplo: número de unidades).

Outro aspecto importante da maioria desses tipos de RAID (0,1,5) é que eles não garantem a integridade dos seus dados, porque são abstraídos dos dados reais que estão sendo armazenados. Portanto, o RAID não protege contra arquivos corrompidos. Se um arquivo for corrompido por qualquer meio, a corrupção será espelhada ou paritária e confirmada no disco, independentemente. No entanto, o RAID-Z afirma fornecer a integridade dos seus dados no nível do arquivo .


RAID de conexão direta: Software e Hardware

Há duas camadas nas quais o RAID pode ser implementado no armazenamento conectado diretamente: hardware e software. Nas verdadeiras soluções de RAID de hardware, existe um controlador de hardware dedicado com um processador dedicado aos cálculos e processamento de RAID. Geralmente, ele também possui um módulo de cache com bateria, para que os dados possam ser gravados no disco, mesmo após uma falha de energia. Isso ajuda a eliminar inconsistências quando os sistemas não são desligados corretamente. De um modo geral, os bons controladores de hardware têm melhor desempenho do que seus colegas de software, mas também têm um custo substancial e aumentam a complexidade.

O RAID de software normalmente não requer um controlador, pois não usa um processador RAID dedicado ou um cache separado. Normalmente, essas operações são tratadas diretamente pela CPU. Nos sistemas modernos, esses cálculos consomem recursos mínimos, embora ocorra alguma latência marginal. O RAID é tratado diretamente pelo sistema operacional ou por um controlador falso no caso do FakeRAID .

De um modo geral, se alguém escolher o RAID por software, deve evitar o FakeRAID e usar o pacote nativo do SO em seus sistemas, como discos dinâmicos no Windows, mdadm / LVM no Linux ou ZFS no Solaris, FreeBSD e outras distribuições relacionadas . O FakeRAID usa uma combinação de hardware e software que resulta na aparência inicial do RAID de hardware, mas no desempenho real do RAID de software. Além disso, geralmente é extremamente difícil mover a matriz para outro adaptador (caso o original falhe).


Armazenamento centralizado

O outro local em que o RAID é comum é em dispositivos de armazenamento centralizado, geralmente chamados de SAN (Storage Area Network) ou NAS (Network Attached Storage). Esses dispositivos gerenciam seu próprio armazenamento e permitem que os servidores conectados acessem o armazenamento de várias formas. Como várias cargas de trabalho estão contidas nos mesmos poucos discos, é geralmente desejável ter um alto nível de redundância.

A principal diferença entre um NAS e uma SAN é o bloco versus as exportações no nível do sistema de arquivos. Uma SAN exporta um "dispositivo de bloco" inteiro, como uma partição ou volume lógico (incluindo aqueles criados sobre uma matriz RAID). Exemplos de SANs incluem Fibre Channel e iSCSI. Um NAS exporta um "sistema de arquivos", como um arquivo ou uma pasta. Exemplos de NASs incluem CIFS / SMB (compartilhamento de arquivos do Windows) e NFS.


RAID 0

Bom quando: Velocidade a todo custo!

Ruim quando: você se preocupa com seus dados

O RAID0 (também conhecido como Striping) às vezes é chamado de "a quantidade de dados que você terá quando uma unidade falha". Realmente corre contra o grão de "RAID", onde o "R" significa "Redundante".

O RAID0 pega seu bloco de dados, divide-o em tantas partes quanto os discos (2 discos → 2 partes, 3 discos → 3 partes) e depois grava cada parte dos dados em um disco separado.

Isso significa que uma única falha no disco destrói toda a matriz (porque você possui as Partes 1 e 2, mas não a Parte 3), mas fornece acesso muito rápido ao disco.

Geralmente não é usado em ambientes de produção, mas pode ser usado em uma situação em que você possui dados estritamente temporários que podem ser perdidos sem repercussões. É usado geralmente para armazenar dispositivos em cache (como um dispositivo L2Arc).

O espaço total em disco utilizável é a soma de todos os discos da matriz somados (por exemplo, 3x discos de 1 TB = 3 TB de espaço).

RAID 1


RAID 1

Bom quando: você tem um número limitado de discos, mas precisa de redundância

Ruim quando: você precisa de muito espaço de armazenamento

O RAID 1 (também conhecido como espelhamento) pega seus dados e os duplica de maneira idêntica em dois ou mais discos (embora normalmente apenas 2 discos). Se mais de dois discos forem usados, as mesmas informações serão armazenadas em cada disco (todas idênticas). É a única maneira de garantir redundância de dados quando você tem menos de três discos.

Às vezes, o RAID 1 melhora o desempenho da leitura. Algumas implementações do RAID 1 serão lidas nos dois discos para dobrar a velocidade de leitura. Alguns lerão apenas de um dos discos, o que não oferece vantagens adicionais de velocidade. Outros lerão os mesmos dados de ambos os discos, garantindo a integridade da matriz em todas as leituras, mas isso resultará na mesma velocidade de leitura de um único disco.

Geralmente, é usado em servidores pequenos com pouca expansão de disco, como servidores 1RU que podem ter espaço apenas para dois discos ou em estações de trabalho que exigem redundância. Devido à sua alta sobrecarga de espaço "perdido", pode ser proibitivo o custo com unidades de pequena capacidade, alta velocidade (e alto custo), pois você precisa gastar o dobro do dinheiro para obter o mesmo nível de armazenamento utilizável.

O espaço total em disco utilizável é o tamanho do menor disco da matriz (por exemplo, 2 discos de 1 TB = 1 TB de espaço).

RAID 1


RAID 1E

O nível 1E RAID é semelhante ao RAID 1, pois os dados são sempre gravados em (pelo menos) dois discos. Mas, diferentemente do RAID1, ele permite um número ímpar de discos, simplesmente intercalando os blocos de dados entre vários discos.

As características de desempenho são semelhantes ao RAID1, a tolerância a falhas é semelhante ao RAID 10. Esse esquema pode ser estendido para números ímpares de discos com mais de três (possivelmente chamado RAID 10E, embora raramente).

RAID 1E


RAID 10

Bom quando: você quer velocidade e redundância

Ruim quando: você não pode perder metade do espaço em disco

RAID 10 é uma combinação de RAID 1 e RAID 0. A ordem dos 1 e 0 é muito importante. Digamos que você tenha 8 discos, ele criará 4 matrizes RAID 1 e aplicará uma matriz RAID 0 sobre as 4 matrizes RAID 1. Requer pelo menos 4 discos e discos adicionais devem ser adicionados em pares.

Isso significa que um disco de cada par pode falhar. Portanto, se você tiver os conjuntos A, B, C e D com os discos A1, A2, B1, B2, C1, C2, D1, D2, poderá perder um disco de cada conjunto (A, B, C ou D) e ainda ter uma matriz em funcionamento.

No entanto, se você perder dois discos do mesmo conjunto, a matriz será totalmente perdida. Você pode perder até (mas não garantido) 50% dos discos.

Você tem alta velocidade e alta disponibilidade garantidas no RAID 10.

O RAID 10 é um nível de RAID muito comum, especialmente em unidades de alta capacidade, nas quais uma única falha no disco torna mais provável uma segunda falha no disco antes da reconstrução da matriz RAID. Durante a recuperação, a degradação do desempenho é muito menor do que sua contraparte do RAID 5, pois ele só precisa ler de uma unidade para reconstruir os dados.

O espaço em disco disponível é 50% da soma do espaço total. (por exemplo, unidades de 8x 1 TB = 4 TB de espaço útil). Se você usar tamanhos diferentes, somente o menor tamanho será usado em cada disco.

Vale ressaltar que o driver de raid de software do kernel Linux chamado md permite configurações de RAID 10 com uma quantidade ímpar de unidades , ou seja, um RAID 10 de 3 ou 5 discos.

RAID 10


RAID 01

Bom quando: nunca

Ruim quando: sempre

É o inverso do RAID 10. Ele cria duas matrizes RAID 0 e coloca um RAID 1 por cima. Isso significa que você pode perder um disco de cada conjunto (A1, A2, A3, A4 ou B1, B2, B3, B4). É muito raro ver em aplicativos comerciais, mas é possível com RAID de software.

Para ser absolutamente claro:

  • Se você possui um array RAID10 com 8 discos e um morre (vamos chamá-lo de A1), você terá 6 discos redundantes e 1 sem redundância. Se outro disco morrer, há uma chance de 85% de que sua matriz ainda esteja funcionando.
  • Se você possui um array RAID01 com 8 discos e um morre (nós o chamaremos A1), você terá 3 discos redundantes e 4 sem redundância. Se outro disco morrer, há uma chance de 43% de que sua matriz ainda esteja funcionando.

Ele não fornece velocidade adicional sobre o RAID 10, mas substancialmente menos redundância e deve ser evitado a todo custo.


RAID 5

Bom quando: você deseja um equilíbrio de redundância e espaço em disco ou tem uma carga de trabalho de leitura aleatória principalmente

Ruim quando: você tem uma carga de trabalho de gravação aleatória alta ou unidades grandes

O RAID 5 tem sido o nível de RAID mais usado por décadas. Ele fornece o desempenho do sistema de todas as unidades na matriz (exceto pequenas gravações aleatórias, que resultam em uma pequena sobrecarga). Ele usa uma operação XOR simples para calcular a paridade. Em caso de falha de uma única unidade, as informações podem ser reconstruídas a partir das unidades restantes usando a operação XOR nos dados conhecidos.

Infelizmente, no caso de uma falha na unidade, o processo de reconstrução exige muito IO. Quanto maiores as unidades no RAID, mais demorará a reconstrução e maior a chance de uma segunda falha na unidade. Como as unidades lentas grandes têm muito mais dados para reconstruir e muito menos desempenho para fazer isso, normalmente não é recomendável usar o RAID 5 com algo em torno de 7200 RPM ou menos.

Talvez o problema mais crítico com as matrizes RAID 5, quando usado em aplicativos de consumidor, seja o fato de que elas quase falharão quando a capacidade total exceder 12 TB. Isso ocorre porque a taxa de erro de leitura irrecuperável (URE) das unidades consumidoras SATA é de uma a cada 10 14 bits, ou ~ 12,5 TB.

Se dermos um exemplo de uma matriz RAID 5 com sete unidades de 2 TB: quando uma unidade falha, restam seis unidades. Para reconstruir a matriz, o controlador precisa ler seis unidades com 2 TB cada. Observando a figura acima, é quase certo que outro URE ocorrerá antes da conclusão da reconstrução. Quando isso acontece, a matriz e todos os dados são perdidos.

No entanto, a falha de URE / perda de dados / matriz com o problema RAID 5 em unidades de consumidor foi um pouco atenuada pelo fato de que a maioria dos fabricantes de discos rígidos aumentou as classificações de URE de suas unidades mais recentes para um em cada 10 15 bits. Como sempre, verifique a folha de especificações antes de comprar!

Também é imperativo que o RAID 5 seja colocado atrás de um cache de gravação confiável (com bateria). Isso evita a sobrecarga de gravações pequenas, bem como o comportamento irregular que pode ocorrer após uma falha no meio de uma gravação.

O RAID 5 é a solução mais econômica de adicionar armazenamento redundante a uma matriz, pois exige a perda de apenas 1 disco (por exemplo, discos de 12x 146 GB = 1606 GB de espaço utilizável). Requer no mínimo 3 discos.

RAID 5


RAID 6

Bom quando: você deseja usar o RAID 5, mas seus discos são muito grandes ou lentos

Ruim quando: você tem uma carga de trabalho de gravação aleatória alta

O RAID 6 é semelhante ao RAID 5, mas usa dois discos com paridade em vez de apenas um (o primeiro é XOR, o segundo é um LSFR), para que você possa perder dois discos da matriz sem perda de dados. A penalidade de gravação é maior que o RAID 5 e você tem um disco a menos de espaço.

Vale a pena considerar que, eventualmente, uma matriz RAID 6 encontrará problemas semelhantes aos de um RAID 5. Unidades maiores causam tempos de reconstrução maiores e erros mais latentes, levando à falha de toda a matriz e à perda de todos os dados antes da conclusão da reconstrução.

RAID 6


RAID 50

Bom quando: você tem muitos discos que precisam estar em uma única matriz e o RAID 10 não é uma opção devido à capacidade

Ruim quando: você tem tantos discos que são possíveis muitas falhas simultâneas antes da conclusão das reconstruções ou quando não há muitos discos

O RAID 50 é um nível aninhado, assim como o RAID 10. Ele combina duas ou mais matrizes RAID 5 e distribui os dados em um RAID 0. Isso oferece desempenho e redundância de disco múltiplo, desde que vários discos sejam perdidos de RAID 5 diferentes matrizes.

Em um RAID 50, a capacidade do disco é nx, em que x é o número de RAID 5s distribuídos. Por exemplo, se um RAID 50 simples de 6 discos, o menor possível, se você tivesse discos de 6x1 TB em dois RAID 5s que foram distribuídos para se tornar um RAID 50, você teria armazenamento utilizável de 4 TB.


RAID 60

Bom quando: você tem um caso de uso semelhante ao RAID 50, mas precisa de mais redundância

Ruim quando: você não possui um número substancial de discos na matriz

RAID 6 é RAID 60 e RAID 5 é RAID 50. Essencialmente, você tem mais de um RAID 6 que os dados são distribuídos em um RAID 0. Essa configuração permite até dois membros de qualquer RAID 6 individual no conjunto. falhar sem perda de dados. Os tempos de reconstrução para matrizes RAID 60 podem ser substanciais, por isso é geralmente uma boa idéia ter um hot spare para cada membro RAID 6 na matriz.

Em um RAID 60, a capacidade do disco é n-2x, onde x é o número de RAID 6s distribuídos. Por exemplo, se um RAID 60 de 8 discos simples, o menor possível, se você tivesse discos de 8x1 TB em dois RAID 6s que foram distribuídos para se tornar um RAID 60, você teria armazenamento utilizável de 4 TB. Como você pode ver, isso fornece a mesma quantidade de armazenamento utilizável que um RAID 10 daria em uma matriz de 8 membros. Enquanto o RAID 60 seria um pouco mais redundante, os tempos de reconstrução seriam substancialmente maiores. Geralmente, você deseja considerar o RAID 60 apenas se tiver um grande número de discos.


RAID-Z

Bom quando: você está usando o ZFS em um sistema que o suporta

Ruim quando: O desempenho exige aceleração de RAID por hardware

O RAID-Z é um pouco complicado de explicar, pois o ZFS muda radicalmente a maneira como os sistemas de armazenamento e arquivos interagem. O ZFS abrange as funções tradicionais de gerenciamento de volume (RAID é uma função de um Volume Manager) e sistema de arquivos. Por esse motivo, o ZFS pode executar o RAID no nível do bloco de armazenamento do arquivo, e não no nível da faixa do volume. É exatamente isso que o RAID-Z faz: grava os blocos de armazenamento do arquivo em várias unidades físicas, incluindo um bloco de paridade para cada conjunto de faixas.

Um exemplo pode deixar isso muito mais claro. Digamos que você tenha 3 discos em um pool ZFS RAID-Z, o tamanho do bloco é 4KB. Agora você escreve um arquivo no sistema com exatamente 16 KB. O ZFS dividirá isso em quatro blocos de 4KB (como seria um sistema operacional normal); então calculará dois blocos de paridade. Esses seis blocos serão colocados nas unidades de maneira semelhante à maneira como o RAID-5 distribuiria dados e paridade. Isso é uma melhoria em relação ao RAID5, pois não houve leitura das faixas de dados existentes para calcular a paridade.

Outro exemplo se baseia no anterior. Digamos que o arquivo tenha apenas 4KB. O ZFS ainda precisará criar um bloco de paridade, mas agora a carga de gravação é reduzida para 2 blocos. A terceira unidade estará livre para atender a quaisquer outras solicitações simultâneas. Um efeito semelhante será observado sempre que o arquivo que está sendo gravado não for múltiplo do tamanho do bloco do pool multiplicado pelo número de unidades menos um (por exemplo, [Tamanho do arquivo] <> [Tamanho do bloco] * [Unidades - 1]).

O ZFS que lida com o Gerenciamento de Volume e o Sistema de Arquivos também significa que você não precisa se preocupar em alinhar partições ou tamanhos de bloco de distribuição. O ZFS lida com tudo isso automaticamente com as configurações recomendadas.

A natureza do ZFS neutraliza algumas das advertências clássicas do RAID-5/6. Todas as gravações no ZFS são feitas de maneira copiar-gravar; todos os blocos alterados em uma operação de gravação são gravados em um novo local no disco, em vez de sobrescrever os blocos existentes. Se uma gravação falhar por qualquer motivo ou o sistema falhar no meio da gravação, a transação de gravação ocorrerá completamente após a recuperação do sistema (com a ajuda do log de intenções do ZFS) ou não ocorrerá, evitando a possível corrupção de dados. Outro problema com o RAID-5/6 é a perda potencial de dados ou a corrupção silenciosa de dados durante as reconstruções; zpool scruboperações regulares podem ajudar a detectar corrupção de dados ou a conduzir problemas antes que causem perda de dados, e a soma de verificação de todos os blocos de dados garantirá que toda a corrupção durante uma reconstrução seja detectada.

A principal desvantagem do RAID-Z é que ele ainda é um ataque de software (e sofre a mesma latência menor incorrida pela CPU que calcula a carga de gravação em vez de permitir que um HBA de hardware o descarregue). Isso pode ser resolvido no futuro pelos HBAs que suportam a aceleração de hardware do ZFS.

Outra funcionalidade RAID e fora do padrão

Como não há autoridade central que imponha nenhum tipo de funcionalidade padrão, os vários níveis de RAID evoluíram e foram padronizados pelo uso predominante. Muitos fornecedores produziram produtos que divergem das descrições acima. Também é bastante comum que eles inventem alguma nova terminologia de marketing sofisticada para descrever um dos conceitos acima (isso acontece com mais frequência no mercado SOHO). Quando possível, tente fazer com que o fornecedor descreva realmente a funcionalidade do mecanismo de redundância (a maioria oferecerá essas informações voluntariamente, pois não há mais um segredo).

Vale ressaltar, existem implementações do tipo RAID 5 que permitem iniciar uma matriz com apenas dois discos. Armazenaria dados em uma faixa e paridade na outra, semelhante ao RAID 5 acima. Isso funcionaria como o RAID 1 com a sobrecarga extra do cálculo de paridade. A vantagem é que você pode adicionar discos à matriz recalculando a paridade.

Mark Henderson
fonte
No momento, não tenho tempo para adicionar essas informações, mas seria uma boa idéia explicar como você pode usar a taxa de erro de leitura irrecuperável para estimar o maior conjunto de RAID 5 que você pode usar com discos específicos.
Hubert Kario
Ótimo resumo! Eu tenho uma adição sobre RAID5 vs. RAID6: Muitas vezes, as pessoas que consideram a confiabilidade geral (chance de falha catastrófica da matriz) de matrizes preenchidas com um grande número de eixos ou discos de capacidade muito alta escolhem RAID6. Eles fazem isso com base na probabilidade de uma segunda falha ocorrer enquanto o primeiro disco está sendo reconstruído. Minha regra geral pessoal é RAID6 quando o número de eixos-árvore é maior que 8 ou quando as unidades individuais são maiores que 1TB. Não consegui encontrar uma calculadora canônica, mas o Google e o tempo de reconstrução conhecido ajudarão a calcular bem.
JGurtz
3
Vale a pena acrescentar aqui que o software Linux RAID10 não é padrão. Permite layouts incomuns e potencialmente úteis. pt.wikipedia.org/wiki/Non-standard_RAID_levels#Linux_MD_RAID_10
Zoredache
Pode valer a pena, incluindo esclarecimentos sobre penalidade de gravação e coalescência de faixas. O RAID 2 ou 3 pode valer uma menção honrosa, mas não conheço nenhuma implementação 'real'. No entanto - NetApp ainda usam RAID4 (e RAID-DP é basicamente RAID4 com uma unidade de paridade extra.)
Sobrique
1
RAID 6: LSFR deve ser LFSR (registro de deslocamento de realimentação linear)?
um CVn
58

RAID UM MILHÃO !!!!

128 discos para que as leituras sejam rápidas, gravações horríveis, mas muito confiáveis, eu imagino, e você obteria 1/128 do espaço disponível, portanto não é ótimo do ponto de vista orçamentário. Não faça isso com pen drives, tentei e atirei fogo na atmosfera ...

insira a descrição da imagem aqui

Chopper3
fonte
7
Oh Deus. Chopper está perdendo a cabeça agora.
MDMarra
4
Eu entendi errado minha matemática?
usar o seguinte comando
6
Você sabe que eu vou construir isso certo?
usar o seguinte comando
33
O Raid 1000000 exigiria um mínimo de 128 discos, mas forneceria 64 discos com espaço de armazenamento, o mesmo pior desempenho de gravação que o Raid 1, e quaisquer duas falhas de unidade adjecentes matariam a matriz. Você estava descrbing Raid 0111111, que teria muito boa confiabilidade (Raid 11111110 teria deve melhorar a confiabilidade em avergage.)
Kevin Cathcart
5
Oh amável. Níveis binários de RAID. Qual é o próximo?
a CVn