RAID (Redundant Array of Independent Disks), originalmente conhecido como Redundant Array of Inexpensive Disks, foi proposto pela primeira vez pelo Professor D. A. Patterson da Universidade da Califórnia, Berkeley, no artigo "A Case of Redundant Array of Inexpensive Disks" em 1988. Naquela época, discos de grande capacidade eram caros, então a ideia básica do RAID era combinar organicamente múltiplos discos de pequena capacidade e relativamente baratos para obter a capacidade, desempenho e confiabilidade equivalentes a discos caros de grande capacidade a um custo menor. À medida que o custo e o preço dos discos continuaram a diminuir, o termo "barato" tornou-se sem sentido, e o RAID Advisory Board (RAB) decidiu substituir "barato" por "independente".
Essa ideia de design do RAID foi rapidamente adotada pela indústria. A tecnologia RAID, como uma tecnologia de armazenamento de alto desempenho e alta confiabilidade, tem sido amplamente aplicada. O RAID usa principalmente striping de dados, espelhamento e tecnologias de paridade de dados para alcançar alto desempenho, confiabilidade, tolerância a falhas e escalabilidade. De acordo com as estratégias e arquiteturas de uso ou combinação dessas três tecnologias, o RAID pode ser dividido em diferentes níveis para atender às necessidades de diferentes aplicações de dados. Os níveis RAID originais RAID1-RAID5 foram definidos no artigo de D. A. Patterson et al., e RAID0 e RAID6 foram expandidos desde 1988. Nos últimos anos, os fornecedores de armazenamento introduziram continuamente níveis RAID como RAID7, RAID10/01, RAID50, RAID53 e RAID100, mas não há um padrão unificado. Atualmente, os padrões reconhecidos pela indústria são RAID0-RAID5, e os quatro níveis, exceto RAID2, foram definidos como padrões industriais. Os níveis RAID mais comumente usados no campo de aplicação real são RAID0, RAID1, RAID3, RAID5, RAID6 e RAID10.
Do ponto de vista da implementação, o RAID é dividido principalmente em três tipos: RAID de software, RAID de hardware e RAID híbrido. Para RAID de software, todas as funções são concluídas pelo sistema operacional e CPU, e não há chip de controle/processamento RAID independente e chip de processamento de E/S, portanto, a eficiência é a mais baixa. O RAID de hardware é equipado com um chip de controle/processamento RAID especial e chip de processamento de E/S, bem como um buffer de array, e não ocupa recursos da CPU, mas o custo é muito alto. O RAID híbrido possui um chip de controle/processamento RAID, mas carece de um chip de processamento de E/S, e precisa da CPU e programas de driver para concluir, e seu desempenho e custo estão entre o RAID de software e o RAID de hardware.
Cada nível RAID representa um método de implementação e tecnologia, e não há distinção entre níveis altos e baixos. Em aplicações práticas, o nível RAID apropriado e o método de implementação específico devem ser selecionados de acordo com as características das aplicações de dados do usuário, e a disponibilidade, desempenho e custo devem ser considerados de forma abrangente.
RAID, ou seja, Redundant Array of Independent Disks, é geralmente abreviado como array de discos. Em resumo, RAID é um subsistema de disco composto por múltiplos drives de disco independentes de alto desempenho, que fornece maior desempenho de armazenamento e tecnologia de redundância de dados do que um único disco. RAID é uma tecnologia de gerenciamento de múltiplos discos que fornece armazenamento econômico, alta confiabilidade de dados e alto desempenho para o ambiente host. A definição de RAID pela SNIA é: um array de discos em que parte do espaço de armazenamento físico é usado para registrar as informações redundantes dos dados do usuário armazenados no espaço restante. Quando um disco ou caminho de acesso falha, as informações redundantes podem ser usadas para reconstruir os dados do usuário. Embora o striping de disco não esteja em conformidade com a definição de RAID, ele geralmente também é chamado de RAID (ou seja, RAID0).
A intenção original do RAID era fornecer funções de armazenamento de ponta e segurança de dados redundante para grandes servidores. Em todo o sistema, o RAID é considerado um espaço de armazenamento composto por dois ou mais discos, e o desempenho de E/S do sistema de armazenamento é melhorado lendo e escrevendo dados em múltiplos discos simultaneamente. A maioria dos níveis RAID possui medidas completas de verificação e correção de dados, e até métodos de espelhamento, que aumentam muito a confiabilidade do sistema, e é daí que vem "Redundante".
Aqui precisamos mencionar JBOD (Just a Bunch of Disks). Inicialmente, JBOD era usado para representar uma coleção de discos sem software de controle para fornecer controle coordenado, que é o principal fator que distingue RAID de JBOD. Atualmente, JBOD geralmente se refere a um gabinete de disco, independentemente de fornecer funcionalidade RAID ou não.
Os dois objetivos principais do RAID são melhorar a confiabilidade dos dados e o desempenho de E/S. No array de discos, os dados são distribuídos entre múltiplos discos, mas para o sistema de computador, ele se parece com um único disco. A redundância é alcançada escrevendo os mesmos dados em múltiplos discos (geralmente espelhamento) ou escrevendo os dados de paridade calculados no array, de modo que a perda de dados não ocorra quando um único disco falha. Alguns níveis RAID permitem que mais discos falhem simultaneamente, como o RAID6, onde dois discos podem ser danificados ao mesmo tempo. Sob tal mecanismo de redundância, o disco com falha pode ser substituído por um novo disco, e o RAID reconstruirá automaticamente os dados perdidos de acordo com os dados e dados de paridade nos discos restantes para garantir a consistência e integridade dos dados. Os dados são distribuídos e armazenados em múltiplos discos diferentes no RAID, e a leitura e escrita de dados simultâneas são muito melhores do que as de um único disco, de modo que uma largura de banda de E/S agregada maior pode ser obtida. Claro, o array de discos reduzirá o espaço de armazenamento total disponível de todos os discos, sacrificando espaço em troca de maior confiabilidade e desempenho. Por exemplo, a utilização do espaço de armazenamento do RAID1 é de apenas 50%, e o RAID5 perderá a capacidade de armazenamento de um disco, e a utilização do espaço é (n-1)/n.
O array de discos pode garantir a operação contínua do sistema sem interrupção quando alguns discos (únicos ou múltiplos, dependendo da implementação) são danificados. Durante o processo de reconstrução dos dados do disco com falha para o novo disco, o sistema pode continuar operando normalmente, mas o desempenho será reduzido em certa medida. Alguns arrays de discos devem ser desligados ao adicionar ou excluir discos, enquanto outros suportam hot swapping, permitindo a substituição de drives de disco sem desligar. Esse array de discos de ponta é usado principalmente em sistemas de aplicação com altos requisitos de confiabilidade, e o sistema não pode ser desligado ou o tempo de desligamento deve ser o mais curto possível. Geralmente falando, o RAID não pode substituir o backup de dados. É impotente para perda de dados causada por falhas não relacionadas a discos, como vírus, destruição humana, exclusão acidental, etc. Nesse momento, a perda de dados é relativa ao sistema operacional, sistema de arquivos, gerenciador de volume ou sistema de aplicação. Para o próprio sistema RAID, os dados estão intactos e nenhuma perda ocorreu. Portanto, backup de dados, recuperação de desastres e outras medidas de proteção de dados são muito necessárias, que complementam o RAID e protegem a segurança dos dados em diferentes níveis para evitar a perda de dados.
Existem três conceitos e tecnologias chave no RAID: espelhamento, striping de dados e paridade de dados. O espelhamento copia dados para múltiplos discos. Por um lado, pode melhorar a confiabilidade e, por outro lado, pode ler dados de duas ou mais cópias simultaneamente para melhorar o desempenho de leitura. Obviamente, o desempenho de gravação do espelhamento é ligeiramente inferior, e leva mais tempo para garantir que os dados sejam gravados corretamente em múltiplos discos. O striping de dados armazena fatias de dados em múltiplos discos diferentes, e múltiplas fatias de dados juntas formam uma cópia completa de dados, que é diferente das múltiplas cópias de espelhamento e geralmente é usada para considerações de desempenho. O striping de dados tem uma granularidade de concorrência mais alta. Ao acessar dados, é possível ler e escrever dados em discos diferentes simultaneamente, obtendo assim uma melhoria de desempenho de E/S muito significativa. A paridade de dados usa dados redundantes para detecção e reparo de erros de dados. Os dados redundantes são geralmente calculados por algoritmos como código de Hamming e operação XOR. O uso da função de paridade pode melhorar muito a confiabilidade, robustez e tolerância a falhas do array de discos. No entanto, a paridade de dados precisa ler dados de vários locais e realizar cálculos e comparações, o que afetará o desempenho do sistema. Diferentes níveis de RAID adotam uma ou mais das três tecnologias acima para obter diferentes confiabilidade de dados, disponibilidade e desempenho de E/S. Quanto a que tipo de RAID (mesmo novos níveis ou tipos) projetar ou qual modo de RAID adotar, é necessário fazer uma escolha razoável sob a premissa de entender profundamente os requisitos do sistema e avaliar abrangentemente a confiabilidade, desempenho e custo para fazer uma escolha de compromisso.
-
Grande Capacidade: Esta é uma vantagem óbvia do RAID. Ele expande a capacidade do disco, e o sistema RAID composto por múltiplos discos tem um enorme espaço de armazenamento. Agora a capacidade de um único disco pode chegar a mais de 1TB, então a capacidade de armazenamento do RAID pode atingir o nível PB, e a maioria dos requisitos de armazenamento pode ser atendida. Geralmente falando, a capacidade disponível do RAID é menor que a capacidade total de todos os discos membros. Diferentes níveis de algoritmos RAID exigem uma certa sobrecarga de redundância, e a sobrecarga de capacidade específica está relacionada ao algoritmo adotado. Se o algoritmo e a capacidade do RAID forem conhecidos, a capacidade disponível do RAID pode ser calculada. Geralmente, a utilização da capacidade do RAID está entre 50% e 90%.
-
Alto Desempenho: O alto desempenho do RAID beneficia-se da tecnologia de striping de dados. O desempenho de E/S de um único disco é limitado por tecnologias de computador como interface e largura de banda, e é frequentemente o gargalo do desempenho do sistema. Através do striping de dados, o RAID distribui o E/S de dados para cada disco membro, obtendo assim um desempenho de E/S agregado várias vezes maior do que o de um único disco.
-
Confiabilidade: Disponibilidade e confiabilidade são outras características importantes do RAID. Teoricamente, a confiabilidade de um sistema RAID composto por múltiplos discos deve ser pior do que a de um único disco. Há uma suposição implícita aqui: a falha de um único disco fará com que todo o RAID fique indisponível. O RAID usa tecnologias de redundância de dados como espelhamento e paridade de dados para quebrar essa suposição. O espelhamento é a tecnologia de redundância mais primitiva, que copia completamente os dados em um determinado grupo de drives de disco para outro grupo de drives de disco para garantir que sempre haja uma cópia de dados disponível. Comparado com a sobrecarga de redundância de 50% do espelhamento, a paridade de dados é muito menor, e usa as informações redundantes de paridade para verificar e corrigir os dados. A tecnologia de redundância do RAID melhora muito a disponibilidade e confiabilidade dos dados, e garante que quando vários discos falham, os dados não serão perdidos e a operação contínua do sistema não será afetada.
-
Gerenciabilidade: Na verdade, o RAID é uma tecnologia de virtualização que virtualiza múltiplos drives de disco físicos em um drive lógico de grande capacidade. Para o sistema host externo, o RAID é um drive de disco único, rápido e confiável de grande capacidade. Dessa forma, os usuários podem organizar e armazenar os dados do sistema de aplicação neste drive virtual. Do ponto de vista da aplicação do usuário, isso pode tornar o sistema de armazenamento simples e fácil de usar e gerenciar. Como o RAID completou uma grande quantidade de trabalho de gerenciamento de armazenamento internamente, o administrador só precisa gerenciar um único drive virtual, o que pode economizar muito trabalho de gerenciamento. O RAID pode adicionar ou excluir dinamicamente drives de disco e realizar automaticamente a verificação de dados e a reconstrução de dados, o que pode simplificar muito o trabalho de gerenciamento.