A maioria dos ambientes computacionais modernos usam algum tipo de RAID, com objetivo de aumentar o espaço para guardar arquivos, melhorar performance de armazenamento e garantir disponibilidade de serviços. Esta tecnologia, para armazenagem de dados, foi idealizada no começo dos anos 80, em resposta às demandas decorrentes da informatização em larga escala que começava a surgir ao final dos anos 70.
Este documento abrange os aspectos principais sobre a tecnologia RAID, como sua origem, conceito, características, indicações de uso e outros tópicos relevantes.
No início dos anos 70, inicia-se a informatização das cadeias de produção e serviços, principalmente nos países industrializados. Ascende a necessidade por sistemas de armazenamento digital mais seguros, com alta disponibilidade e de maior capacidade. Os mainframes, que eram os grandes computadores da época, usavam o conceito SLED, o qual um único disco rígido era usado para alocar dados. No entanto, era comum o volume dos dados de uma empresa ultrapassar a capacidade dos maiores HDs que existiam naquela época; além disso, estes discos rígidos não eram rápidos o suficiente e eram vulneráveis à falhas.
Por volta de 1975, a Geac Computer Corporation inicia o desenvolvimento do Geac 8000, um sistema computacional de múltiplo acesso a dispositivos de armazenamento e com alguma proteção contra perda de dados. Ainda neste período, seus fundadores, Gus German (Robert Angus) e Ted Grunau, discutem, pela primeira vez, o uso de discos redundantes e batizam a ideia com o nome de MF-100.
Em 1976, a Tandem Computers lança os servidores NonStop que proporcionavam tolerância a falhas através de um conceito precoce de RAID 1. No ano de 1977, A IBM apresenta uma recurso de storage que mais tarde seria chamada de RAID nível 4. Em 1983, a DEC insere discos rígidos RA80 e RA81, em modo espelhado (que mais tarde seria chamado de RAID 1), em seus storages HSC50. Em 1986, a IBM registra patente para o que chamaríamos de RAID-5.
Em 1987, na Universidade da Califórnia, David Patterson, Garry A. Gibson e Randy H. Katz, criam o termo RAID. No ano seguinte, estes estudiosos demonstram na conferência da SIGMOD (Special Interest Group on Management of Data), seu trabalho chamado A Case for Redundant Arrays of Inexpensive Disks (RAID), onde discorrem sobre a evolução na capacidade dos HDs e como a tecnologia RAID poderia melhorar a performance de I/O, segurança e escalabilidade em mainframes e ambientes que guardam dados digitais. Ainda nesse documento técnico, são apresentados os níveis de RAID 0, 1, 2, 3, 4 e 5.
Logo os idealizadores da nova tecnologia trocaram a palavra inexpensive (barato) por independent. Assim, a expressão Redundant Arrays of Inexpensive Disks deu origem a Redundant Arrays of Independent Disks.
Ao final da década de 80, a IBM já estava empregando RAID 5 em seus servidores S/38 e AS/400, bem como outras grande empresas do mesmo segmento já usavam algum tipo de tecnologia RAID em seus produtos.
Em 1993, David Patterson, Garry A. Gibson e Randy H. Katz, com apoio da NASA e DARPA, constroem um protótipo de matriz com 192 discos rígidos. Este experimento demonstrou um as principais caraterísticas de um sistema RAID: mapeamento entre dispositivos físicos e lógicos, redundância, cache, paridade, entre outras. Através deste estudo, eles também caracterizaram o RAID nível 6. Este projeto serviu de base para os sistemas RAID modernos oferecidos por grandes empresas de informática.
Por volta de 1995, o mercado relacionado a RAID começa a ascender de forma relevante. Em 1997, com o advento do ATAPI-4 e Ultra DMA (que permitiam transferências de dados mais rápidas e com menos uso de CPU), são introduzidas no mercado as primeiras placas RAID para slot PCI. Assim, era possível ter acesso aos benefícios da tecnologia RAID, sem precisar de discos SCSI (que eram caríssimos). Os grandes fabricantes de controladoras, como LSI e Adaptec, que até então tinham seus chips diretamente soldados em placas de servidores de média e larga escala, passam a avançar, vertiginosamente, no mercado das pequenas e médias empresas.
A versão 3.0 do FreeBSD, lançada em 1998, é a primeira distribuição da família BSD com uma ferramenta para administração de RAID. Trata-se do vinum, um gestor de volumes que permite implementar matrizes nível 0, 1 e 5.
Ainda em 1998, distribuições Linux passam a ter o software raidtools disponível em seus repositórios. Em 2001, é lançado o mdadm, que tomou o lugar do raidtoolstornou-se a principal ferramenta para gerenciamento de RAID em Linux.
No começo de 2000, com o surgimento das controladoras RAID em formato PCI e dos sistemas de RAID por software, o uso de matrizes de discos começa a se popularizar fora dos ambientes enterprise.
Originalmente, os níveis mais comuns das matrizes de discos são 0, 1, 2, 3, 4, 5 e 6. Posteriormente, foram criados níveis híbridos como RAID 0+1, RAID 1+0, RAID 50, RAID 60, etc.
Ao longo dos anos, surgiram tecnologias derivadas, inspiradas e análogas ao RAID, como JBOD, volumes lógicos, entre outras. A maioria delas são baseadas em software e não necessitam de controladoras especiais.
Na virada para o século 21, já havia um grande mercado em torno dos arranjos de discos. Fazia parte desse nicho os fabricantes de controladoras, fornecedores de servidores, desenvolvedores de softwares, etc. No entanto, não haviam regras para implementação dessa tecnologia e era comum os fabricantes de placas e os desenvolvedores de soft RAID usarem algoritmos distintos.
Em 2004, os níveis e formatos de RAID começaram a ser padronizados pela SNIA através do formato DDF. É criado o primeiro documento com recomendações e especificações técnicas. Dois anos depois, é publicado Common RAID Disk Data Format (DDF) v1.2, contendo correções e revisões da primeira versão. Em 2009, é lançada a versão 2.0 (última, até a data presente).
Mesmo com as padronizações estabelecidas, ainda existem fabricantes e desenvolvedores que usam variações diferentes e também proprietárias. Isso acontece não somente em controladoras de discos, mas, também, em soluções de RAID por softwares - por exemplo, as últimas versões do mdadm instalam superblocos em áreas de disco que não correspondem às recomendações da SNIA.
RAID é o acrônimo para Redundant Array of Independent Disks e consiste em uma tecnologia que mapeia dispositivos de armazenamento para um ou mais discos virtuais, com objetivo de fornecer maior capacidade, resiliência, aumento de performance e escalabilidade. A tradução do termo, para português, é Conjunto Redundante de Discos Independentes ou Arranjo Redundante de Discos Independentes.
A camada de RAID é, tipicamente, situada logo acima de setores ou blocos e logo abaixo da camada do LVM (volumes físicos, grupos de volumes e volumes lógicos) ou do sistemas de arquivos.
De acordo com as normas da Storage Networking Industry Association, as características do RAID devem estar descritas em uma estrutura de metadados localizada ao final de cada dispositivo que participa do array. Esse padrão de metadados, recomendado pela SNIA, chama-se Disk Data Format. Alguns fabricantes de controladoras também usam o termo Configuration on Disk (COD).
A estrutura de metadados do tipo DDF também é chamada de superbloco. Ele contém informações como o tamanho do array, quantidade de discos, GUIDs etc.
O padrão DDF deveria ser seguido por todo mercado. Mas isso nem sempre acontece e existem fabricantes que criam e adotam formatos proprietários.
É uma plataforma de RAID nativa em ambientes Linux. A localização dos seus metadados varia de acordo com a versão de seu superbloco e não segue, necessariamente, as convenções da SNIA. Nas versões 0.9 e 1.0, os superblocos ficam no começo do discos. Por outro lado, nas versões 1.1 e 1.2 os superblocos estão localizados no final dos dispositivos.
AMF (Adaptec Metadata Format) e HostRAID.
HPT370, HPT372 e toda a série RocketRAID.
IMSM (Matrix) e RST (Rapid Storage).
LSI Data Format (LDF) em placas MegaRAID.
Nvidia nForce RAID ou nvraid (MCP, etc.).
Promise FastTrack (chip PDC20378, etc.).
Linha Silicon Image Medley RAID IDE/ATA.
Série VIA VT8237 RAID (VIA Technologies).
Chips da família JMB360 (JMB366, etc.).
A paridade é o processo de introduzir um bit de controle (bit de paridade) em uma transmissão de dados, para detectar e resolver eventuais erros. A principal vantagem do uso de paridade como forma de controle de erros é que ela emprega um cálculo bem simples, consumindo poucos recursos de processamento. O bit de paridade pode ser ímpar ou par.
Exemplo: ao anexar um bit de paridade a um byte (8 bits) que está sendo transmitido, um erro pode ser detectado se a paridade do byte não coincidir com o bit de paridade.
Os RAID de nível 5 e 6, assim como seus derivados, usam usam sistema de paridade para correção de erros. Nestas tecnologias, blocos de dados possuem seus respectivos bits de paridade replicados em cada dispositivo do array. Na prática, se um bloco apresentar erro ou se um disco falhar, os dados perdidos podem ser recalculados e recuperados à partir de uma equação envolvendo as informações de paridade.
Significa arranjo, conjunto ou matriz. Pode ser usado como sinônimo para RAID (conjunto de discos).
Strip (listra) configura um conjunto de blocos localizados em um mesmo dispositivo físico (HD, SSD etc.).
Stripe (faixa) é um segmento de strips distribuídas entre os discos do array, com tamanho de 256KB à 512KB.
Significa extensão. É uma região contígua em um disco físico, formada pela intersecção de strips e stripes.
VD é um objeto apresentado como storage device ao host. Ao menos um dispositivo físico é associado ao VD.
PD, ou Physicsl Disk, significa "disco físico" e se refere a um dispositivo de armazenamento (HD, SSD, etc.).
BVD é um VD vinculado à níveis não híbridos de RAID, como RAID-0 ou 5. BDVs são compostos de discos físicos.
DG constitui um agrupamento de discos físicos. Vários discos físicos podem ser combinados em um grupo de discos.
Significa configuração externa. É uma configuração de RAID proveniente de uma outra controladora ou sistema.
Dispositivos físicos ligados à controladoras RAID, mas que são apresentados diretamente (como discos) ao host.
Disco de reserva, presente em RAID, que substitui, automaticamente, um disco ativo que para de funcionar.
Inicialmente, em 1988, a equipe de Berkley apresentou os níveis 0, 1, 2, 3, 4 e 5, e, posteriormente, idealizou o nível 6. Estes são os sete níveis padrão de RAID.
RAID-0 é o nível de arranjo com maior desempenho e consiste na junção de dispositivos físicos (HD, SSD, etc.), ou partições, que formam um único disco virtual, cuja capacidade é a soma do tamanho de cada dispositivo do arranjo. A forma como os dados são distribuídos é conhecida como striping, cuja tradução aproximada é expansão ou distribuição; deriva da palavra stripe, que significa faixa. Neste tipo de arranjo os dados se expandem por todos os discos.
No arranjo nível 0 as informações são divididas em blocos de tamanho fixo com as operações, de leitura e escrita, ocorrendo em modo paralelo e com os discos trabalhando de forma independente. Isto explica a alta performance do RAID-0, que é proporcional à quantidade de seus dispositivos de armazenamento - quanto mais discos tiver, mais rápido será.
Esta tecnologia de array não possui redundância, nem paridade ou esquema de correção de erro. Portanto, o RAID-0 torna-se inconsistente e seus arquivos são perdidos quando qualquer um de seus drives para de funcionar. A probabilidade de falha é proporcional a quantidade de drives; quanto mais discos tiver, maior será a chance do RAID ficar inoperante.
O array nível 0 visa, exclusivamente, performance e espaço de armazenamento. É recomendado para dispositivos de cache ou armazenagem temporária de dados não críticos. Não é indicado para guardar conteúdos importantes.
RAID-1 é composto de dois ou mais dispositivos físicos que replicam seus blocos, entre si, de modo que eles permanecerem com seus conteúdos sempre idênticos para entregar maior disponibilidade. Esta técnica é conhecida como mirroring ou espelhamento porque de fato ela mantém um grupo de discos "espelhados". Neste nível de array, os dispositivos geram um drive virtual que possui a capacidade de apenas um deles; ou seja: um array composto de dois dispositivos de 1 terabyte mapeará um disco virtual com somente 1 terabyte de espaço.
Normalmente é configurado com dois discos fazendo duplicação de dados. Mas é possível criar matrizes com três ou mais dispositivos, gerando um ambiente de alta resiliência com conteúdo triplicado (multi-mirroring) ou até quadruplicado; quanto mais drives tiver, maior será o nível de segurança. Independente da quantidade de drives, os extents de um RAID-1 sempre terão conteúdos idênticos.
Este tipo de array tem menor eficiência de espaço em disco e, consequentemente, gera maior custo de armazenagem quando comparado com outros níveis. Quanto a sua performance, possui alta velocidade de leitura (devido às solicitações simultâneas em todos os discos), mas a velocidade escrita não é tão boa (por causa do custoso processo de espelhamento dos dados).
O array de nível 1 não usa paridade. Mas isso não representa um problema de segurança porque o RAID-1 foi projetado para ser resiliente; apenas um disco do array é suficiente para ele continuar online e com seus dados íntegros. Sua indicação é para sistemas de backup guardam dados críticos. Dada sua baixa performance, é contraindicado para cenários que exigem mais IOPS.
RAID-2 segue o princípio da união de drives físicos para formar um único drive virtual, com a distribuição de dados entre os devices ocorrendo em nível de bit. Esta tecnologia de array possui um sistema de correção de erro denominado Hamming-Code ECC (Error Correcting Code), o qual garante maior disponibilidade através de paridade dedicada operando em nível de bit.
Este tipo de matriz permite diversas configurações, podendo usar vários discos dedicados para correção de erros. Foi usada nos antigos supercomputadores Connection Machine CM-2, da empresa Thinking Machines, proporcionando maior proteção contra perda de dados. A tecnologia RAID-2 entrou em desuso e não há mais sistemas ou controladoras que a suportam.
RAID-3 é mais uma tecnologia que usa striping (distribuição) para formar um drive virtual, visando maior espaço para armazenamento e mais IOPS (entra e saídas por segundo) em determindas operações. Este nível de matriz tem seus dados divididos em bytes e utiliza um bit de paridade, dedicado, para cada stripe ou byte. Este bit é localizado no começo ou final de cada extent.
Poucas controladoras suportam RAID-3 devido a complexidade de seu funcionamento e a dependência de HDs com função de sincronização de eixo; por isso são raras as suas implementações. Sendo assim, este nível de array ficou obsoleto porque existem outras soluções que possuem as mesmas qualidades, mas com menor custo de produção e mais fáceis de serem implementadas.
RAID-4, assim como os níveis 2 e 3, é um tipo de array que utiliza stripes de dados e prioriza a junção de drives físicos para formar um disco virtual. A divisão de dados ocorre em blocos (em vez de bytes, como acontece nos níveis antecessores). Essa tecnologia era bastante usada nos storages FAS, da NetApp, por atender pontualmente aos propósitos do produto.
Este nível de matriz tende a maior performance de leitura, se comparado aos seus predecessores, por operar com I/Os paralelos (sem necessidade de acessar todos os discos para realizar um único I/O). Também adota paridade dedicada. Sua substituição por RAID DP - recurso, proprietário, com dupla paridade da NetApp - levou o RAID-4 a obsolescência.
RAID-5 caracteriza-se por prover os três benefícios principais que se espera de uma arranjo de discos: maior espaço de armazenamento, boa performance e resiliência. Este tipo de RAID aloca uma ampla área de cada dispositivo físico para os blocos de dados e uma área menor para guardar paridade e checksum (verificação de integridade) de dados. Quanto maior a quantidade de discos que ele possui, mais espaço fica disponível para dados e menos para controle de erros.
Em um RAID 5, os blocos de dados são gravados, sequencialmente, em forma de stripe (faixa), e distribuídos por todos os dispositivos de armazenamento. As informações de paridade são escritas em um strip (listra) dentro do stripe. Se um arquivo de 256KB estiver alocado em um arranjo de 5 discos, configurado com stripes de 256KB, o arquivo será divido em 4 strips de 64KB e ocupará todo stripe em questão; a estrutura de paridade ocupará um strip de 64KB dentro de cada disco do array.
O esquema de paridade do array nível 5 exige que ele tenha pelos menos três discos para ser configurado. É através das informações de paridade, que o array permanece operante mesmo quando um dos discos apresenta problemas e, também, permite a substituição do drive danificado, de modo a reescrever seus dados para um drive novo. Não é necessário um drive dedicado para checksum (somas de verificação), como ocorre em outros níveis de array. No contexto de RAID, checksums são resultados de operações XOR (operação lógica ou exclusivo).
Arranjo nível 5 permite leituras e gravações paralelas, o que gera um ganho significativo de desempenho. Isso faz com que o esta tecnologia tenha maior performance do que todas as suas antecessoras, com exceção ao RAID-0. O RAID-5 tolera falha de um de seus discos.
O fato do RAID-5 possuir atributos desejáveis em um storage moderno, faz com que ele seja utilizado nos mais diversos ambientes. É comumente usado em appliances NAS, datastores, servidores, entre outros ambientes de pequeno e médio porte.
É comum que RAID-5 seja configurado com um ou mais discos de spare (reserva).
RAID-6 foi projetado para continuar funcionando mesmo quando duas unidades de armazenamento falharem ao mesmo tempo, devido ao seu esquema de dupla paridade. Consiste em uma evolução do RAID-5, com melhorias no sistema de correção de erros, mas com tendência a ser mais lento que seu antecessor (em decorrência das operações de I/O gastas com checksum e paridade). O array de nível 6 proporciona espaço de armazenamento, boa performance e alta disponibilidade.
Um arranjo de nível 6 tem seus dados gravados em forma de stripe e os blocos são distribuídos por todos os drives de armazenamento. RAID-6 requer um mínimo de quatro discos e utiliza o equivalente a dois discos para compor sua estrutura de dupla paridade (DP); os dois strips de paridade são contíguos.
O alto processamento com cálculos de checksum, que garantem alta confiabilidade em RAID-6, não afetam a velocidade de I/O nas tarefas de leitura, mas comprometem a performance de escrita. Em caso de problemas com discos, o processo de reconstrução (rebuilding) do arranjo pode ser demorado. No entanto, controladoras enterprise (Adaptec 5805, Dell PERC H739P, LSI 8888ELP, 3ware 9690SA-8i, entre outras) podem mitigar ou mesmo resolver este problema de lentidão para gravar dados. A estrutura de dupla paridade também compromete o espaço do drive virtual para armazenamento de conteúdos.
As recomendações de uso para RAID-6 são serviços e aplicações que contém informações sensíveis, bem como, sistemas para backup de dados críticos.
Normalmente, um RAID-6 é configurado com um ou mais discos de spare (reserva).
Os níveis híbridos ou aninhados (nested levels) foram criados pela indústria armazenamento de dados e consiste na combinação de diferentes níveis básicos (0 à 6) de RAID.
RAID 0+1, ou RAID 01, é o espelhamento (RAID-1) de dois arranjos RAID-0 e cada um destes tem a mesma quantidade de discos. Este tipo de matriz concilia expansão de tamanho (oferecida pelo RAID-0) com segurança (RAID-1). Este tipo de arranjo funciona com número par de discos e quando quando há problema em um deles, o arranjo degradado passa a ficar sem redundância.
A reconstrução de um RAID 0+1, que ocorre com a reposição de um disco corrompido, é demorada e apresenta riscos, devido a grande quantidade de dados que devem ser lidos durante o processo. Mas em seu estado normal de funcionamento ele tem alta velocidade de leitura e média para escrita.
É um tipo de matriz pouco usada e obsoleta, por existirem outras com mais atributos positivos e com melhor custo-benefício - como RAID-5 ou mesmo o RAID 10.
RAID 1+0, ou RAID 10, caracteriza-se pela expansão (RAID-0) de dois ou mais RAID-1, combinando espelhamento e striping. Por ser um conjunto de arrays nível 1, esta tecnologia proporciona os benefícios de redundância do RAID-1 e o alto volume de espaço oferecido pelo RAID-0.
Este sistema de armazenamento pode suportar problemas ou ausência de diversos drives, desde que dois destes drives não façam parte do um mesmo espelhamento. RAID 10 tem desempenho similar ao RAID 0+1 e baixa eficiência de espaço para guardas dados.
RAID 10 pode ser usado em ambientes com aplicações, como bancos de dados, que precisam de elevado IOPS de leitura e boa disponibilidade.
RAID 50, ou RAID 5+0, é um striping de RAID-0 composto por dois ou mais subarrays RAID-5, combinando qualidades destes dois sistemas de RAID. Ele foi desenvolvido por fabricantes de servidores com objetivo de ter mais performance (principalmente de gravação) que as matrizes nível 5.
É preciso de pelo menos 6 drives para configurar um RAID 50, portanto é um tipo de array com custo elevado de implementação. Ele permanece funcional mesmo com a falha de um drive de cada subarray RAID-5. No entanto, existe certa lentidão para reparo do arranjo em decorrência de disco danificado.
Matrizes nível 50 são podem ser usadas para aplicações que demandam alta performance com confiabilidade razoável. Porém, não apresentam vantagens significativas sobre outros tipos de RAID e por isso são suportadas por poucas controladoras. Sua utilização é pouco comum.
RAID 60, ou RAID 6+0, é um striping de RAID-0 composto por dois ou mais subarrays RAID-6 e, assim, combinando atributos destes dois tipos de arrays. Tem boa velocidade de leitura, entrega uma boa confiabilidade, mas a eficiência de espaço para uso é ruim.
O RAID 60 requer pelo menos oito unidades de armazenamento para ser configurado, tendo custo de implantação ainda mais elevado que o RAID 50, o que o torna inviável na maioria das vezes.
Storages com RAID 60 são bastante raros em razão de existirem poucos modelos de controladoras que o suportam, além de haverem outros sistemas de armazenamento com melhor custo-benefício.
RAID 100, ou RAID 10+1, é um sistema de armazenamento teórico que caracteriza-se pelo conjunto de matrizes RAID-10 em striping por RAID-0. Não existem controladoras, nem softwares que suportariam este tipo de array e, certamente, nunca existiu um ambiente RAID 100 em produção.
RAID por hardware, igualmente conhecido como Hardware RAID é um arranjo de dispositivos de armazenamento, implementado por meio de uma controladora com firmware responsável por distribuir os dados entre os discos do RAID, bem como, gerenciar seu funcionamento.
Uma vantagem importante do RAID por Hardware é a economia de recursos no sistema operacional do host em razão de todo processamento referente ao array ser feito por uma controladora. Também possuem cache interno e bateria para fornecer energia temporária para a memória cache, em caso de falha ou ausência de eletricidade. Outro benefício é a maior facilidade de gerenciamento do RAID, através de uma interface gráfica ou linha de comando (cli) que permite ao usuário realizar operações de criação, configuração e gerenciamento do RAID.
As desvantagens do RAID por hardware, estão relacionadas aos gastos elevados com controladoras, hardwares específicos e equipamentos adicionais. Há também ressalvas por serem soluções proprietárias e de código fechado, sendo muito difícil identificar o modo de distribuição de dados, entre outras informações.
Formalmente denominada disk array controller, pode ser um placa (conectada ao servidor ou storage, através de um slot ou cabo) ou um chip SoC (integrado a placa mãe do servidor, computador ou storage). Os arranjos com chip integrado recebem o nome de ROMB (Raid On MotherBoard).
RAID por software, igualmente chamado de Software RAID ou Soft RAID, é um arranjo de dispositivos de armazenamento implementado por meio de software, em que a distribuição dos dados na camada RAID é gerenciada pelo sistema operacional, um programa ou driver.
Praticamente todos os sistemas Unix oferecem uma solução nativa de RAID. Em Linux, o suporte às matrizes de discos existe em nível de kernel - que é muito vantajoso devido a performance - e o gerenciamento acontece por meio da ferramentas que já estão contidas na instalação do sistema. FreeBSD suporta várias implementações de Soft RAID, como o GEOM - que está embutido no kernel. Solaris conta com o Solstice DiskSuite. Em HP-UX usa-se o VxVM (Veritas Volume Manager) para gerenciamento de RAID, embora LVM seja a tecnologia padrão para configurar conjuntos de discos. Recentemente, muitos dos sistema Unix adotaram RAID-Z (RAID ZFS) como padrão de armazenamento.
O menor custo é, certamente, a principal vantagem deste tipo de implementação, a qual não há necessidade de controladoras caríssimas, hardware dedicado ou storages de grife. Maior controle sobre o arranjo, facilidade de migração e escalabilidade do ambiente, são outros benefícios interessantes. O RAID por software também pode suportar uma quantidade muito grande de discos.
Dentre as desvantagens do soft RAID, devemos mencionar o maior processamento no servidor ou storage. A dificuladade de gerenciamento é um outro inconveniente, frequentemente, mencionado por muitos administradores.
Recomenda-se que neste tipo de RAID haja comunicação direta dos drives físicos, através de controladoras do tipo HBA ou com suporte a pass-through.
RAID-Z é uma avançada tecnologia RAID, integrada ao sistema de arquivos ZFS, que disponibiliza armazenamento de nível corporativo sem necessidade de equipamentos específicos, dedicados ou de alto custo. É um subsistema de armazenamento avançado que foi desenvolvido pela Sun Microsystems, em 2005, e lançado em uma das atualizações do Solaris 10.
A configuração e gerenciamento de um RAID-Z ocorre de forma bem simples. Com um comando zpool create é criado um RAID operante (com sistema de arquivos montado e pronto para uso) e com o comando zpool stat é exibido o estado de funcionamento do arranjo. Esta praticidade é um dos principais atrativos para o usos desta plataforma.
O RAID-Z usa stripes de largura variável, sendo imune ao fenômeno write hole error em que o arranjo torna-se inconsistente após uma operação de escrita incompleta. É, portanto, muito seguro e recomendado para ambientes críticos e que necessitam de alta disponibilidade. Além disso, ele agrega todos os outros benefícios da tecnologia ZFS, como snapshot nativo, auto reparo, checksum de dados, etc.
Este tipo de arranjo oferece altas performances se o ARC (cache primário) e L2ARC (cache secundário) estiverem devidamente configurados e usando dispositivos SSD, NVMe, cache drive, que suportam IOPS elevado.
BTRFS (B-Tree File System) é uma solução de storage similar ao ZFS, oferecendo checksum, snapshot, gestão de volumes, RAID nativo, etc. Entretanto, o BTRFS escreve seus dados em formato de extents, em vez de blocos. Além disso, possui o verificador de integridade denominado btrfsck.
É uma tecnologia com especificidades de segurança ideais para rodar em cenários críticos: auto recuperação e correção de dados em tempo real. Atualmente, suporta RAID-0, RAID-1, RAID-10, RAID-5 e RAID-6; porém, os níveis 5 e 6 ainda não são recomendados para ambientes em produção.
O desenvolvimento do B-Tree File System é mantido por grandes empresas (Meta, Suse, Red Hat, entre outras), por isso sua adoção tem crescido, em ambientes corporativos, ao longo dos últimos anos.
MDRAID, também conhecido como RAID MD (Multiple Devices), é um subsistema de armazenamento presente no kernel de distribuições Linux e constitui a mais famosa tecnologia de RAID baseada em software. Sua interface para criação, gerenciamento e manutenção é o consagrado utilitário mdadm.
A maioria dos appliances NAS de baixo custo usam RAID MD combinado com LVM (gerenciador de volumes lógicos padrão do Linux) e um sistema de arquivos EXT4 ou XFS. Similarmente, grande parte dos appliances mid-end usam este mesmo sistema. Esta configuração é muito comum em equipamentos Qnap, Synology, Seagate, Asustor, entre outros.
O sistema MDRAID permite gerar arrays com os níveis padrão RAID-0, RAID-1, RAID-4, RAID-5 e RAID-6, bem como, os arrays híbridos RAID-10, RAID-50, dentre outros.
Vinum Volume Manager foi o primeiro gerenciador de volumes e RAID, integrado em sistemas da família BSD. Seu desenvolvimento teve inspiração no Veritas Volume Manager, sendo inserido, em 1998, no FreeBSD e NetBSD. Ele consiste, basicamente, em módulo de kernel que cria discos virtuais do tipo RAID-0, RAID-1 e RAID-5; além de permitir a combinação entre eles.
Ao longo do tempo, o vinum foi substituído por soluções mais modernas, como o GEOM, Bioctl, ZFS e HAMMER (DragonFly), e parece ser pouco usado na atualidade.
Veritas Volume Manager, lançado em 1993, foi um inovador produto para gerenciar armazenamento em ambientes computacionais. Sua primeira versão oferecia capacidade de gerenciamento à RAID-0, RAID-1 e volumes lógicos; além de recursos muito avançados para aquela época (operações online de expansão ou redução de volumes e migrações de dados sem necessidade de desligar o sistema ou interromper serviços).
GEOM é uma estrutura de armazenamento presente no FreeBSD e usada para implementação de soft RAID. Ela é qualificada como "modular" porque é composta, basicamente, por módulos de kernel que são responsáveis pelo funcionamento dos arranjos.
Com o advento do ZFS, o uso de RAID convencional começa entrar em desuso no FreeBSD. Mas ainda há um número expressivo de ambientes usando GEOM com matrizes convencionais.
Bioctl é uma plataforma para implantação de RAID e uma interface para gestão de volumes, pertencentes aos unixes OpenBSD e NetBSD. É um subsistema de armazenamento, criado em 2005, que tem como base o módulo bio.
Online: DiskSuite foi um programa gerenciador de volumes, lançado em 1991, pela Sun, para ser usado no SunOS. Foi a solução pioneira de software RAID e permitia, basicamente, a configuração de RAID-0 e RAID-1. Posteriormente, teve seu nome mudado para Solstice DiskSuite e Solaris Volume Manager ou SVM.
No início dos anos 2000, são lançadas uma série de placas-maẽs para desktop e servidores baratos, contendo interfaces IDE, SCSI ou SATA, capazes de fornecer um sistema RAID. A linha hostRAID, da Adaptec, foi uma das pioneiras em fake RAID, bem como alguns produtos da Promise Technology e HighPoint. Mais recentemente, a RST (Rapid Storage Technology) e Intel Matrix passaram dominar esse mercado.
Fake RAID é sempre concebido por uma plataforma de fácil configuração e de baixo custo. Na maioria dos casos, são controladores de disco, convencionais, integrados à placas-mães que contém BIOS com rotinas básicas de RAID, que apenas fornecem interface simplória para o usuário criar arranjos, mas não entregam discos virtuais para o host. Portanto, o sistema operacional depende de um driver ou software complementar para mapear e gerenciar o disco virtual.
Todavia esta plataforma não use controladoras RAID autênticas, ela suporta inicialização (boot) de sistemas instalados em partições de discos virtuais.
Container é um grupo de discos gerenciados em um único conjunto, que pode conter vários arranjos RAID, de tipos diferentes, os quais cada arranjo usa discos específicos. É apenas um conjunto de metadados apontando para os dispositivos que de fato integram os arranjos. Por exemplo: um conjunto de 4 discos pode ter um RAID-0, que usa dois dispositivos, e um RAID-1, que usa os outros dois dispositivos.
Um RAID, bem como seus discos físicos (PD) e seus discos virtuais (VD), podem ter diferentes estados de funcionamento. Estas condições operacionais são sinalizadas por bits específicos em áreas dedicadas nos physical disks (HDs, SSDs, etc.) e virtuals disks (abstrações do arranjo ou discos virtuais gerados à partir dele).
A utilização de unidades integradas como recurso de armazenamento não é exclusivo de RAID e, ao longo da história da informática, existiram outros métodos para juntar ou concatenar dispositivos. Estes, muitas vezes, seguem nenhuma norma relacionada a RAID, usando formas autênticas de alocação.
JBOD, abreviação para Just a Bunch of Disks, que significa Apenas um Monte de Discos, é um método simples de armazenamento através de discos concatenados (combinados), sem qualquer tipo de configuração especial, que formam uma unidade virtual cujo tamanho é a soma de todos eles. Os discos são tratados e consumidos de modo independente e sequencial: quando o espaço de um deles acaba o próximo é utilizado para alocar arquivos.
O propósito do JBOD é apenas extensão de capacidade, com nenhuma redundância, disponibilidade ou ganho de desempenho. Sua implementação é simples e rápida, sendo uma solução interessante para um provisionamento rápido de storage - principalmente, em servidores de arquivos temporários.
Algumas controladoras possuem suporte embarcado para JBOD. No entanto, ele também pode ser provisionado sem uso de hardware dedicado, em sistemas Unix que possuem suporte nativo para este tipo de arranjo. Também pode ser configurado em ambientes Microsoft Windows, através de spanned disks, com o LDM.
Volume lógico é a associação de um ou mais discos físicos em um ou mais volumes virtuais, com propósito de oferecer maior capacidade, eficiência e flexibilidade de armazenamento. Todos os sistemas Unix-like têm suporte nativo a esta tecnologia e o gerenciador de volumes lógicos mais conhecido é o LVM que faz parte distribuições Linux.
A forma de escrita dos dados em um volume lógico pode ser linear, espelhado (mirror) ou distribuído (stripe). No modo linear, as informações são gravadas de forma a ocupar um disco por vez. No modo espelhado, os dados são replicados entre os discos. No modo distribuído, os dados são gravados em stripes (faixas), ou seja, são distribuídos em os discos. O LVM permite criar volumes, do tipo stripe, em formato RAID-5.
Os volumes lógicos são sempre gerenciados por software e não há controladoras com suporte a este tipo de recurso.
Disco dinâmico é uma técnica de armazenamento, criada pela Microsoft, muito parecida com volume lógico dos sistemas Unix. O seu gerenciamento é feito pela ferramenta LDM (Gerenciador de Disco Lógico).
Os tipos de discos dinâmicos também são muito semelhantes aos usados nos volumes lógicos, sendo eles: spanned (estendido), mirror (espelhado) striped (distribuído) ou RAID-5.
As soluções modernas de RAID alcançaram um alto grau de maturidade, possibilitando implantação de ambientes muito confiáveis e com alto rendimento. Problemas que pareciam não haver resolução, como inconsistência de paridade, foram resolvidos por soluções software RAID que garantem atomicidade de escrita através de copy-on-write (COW). Em compensação, plataformas hardware RAID ficaram mais robustas, por meio de controladoras com alto poder de processamento e diversos recursos.
Apesar dos consideráveis avanços, ainda há desafios pertinentes ao desempenho de RAID, em alguns cenários específicos, e a maior adoção dos padrões da SNIA por parte dos fabricantes e desenvolvedores.
Devemos enfatizar que não existe ambiente totalmente imune a incidentes, ainda que os principais níveis de RAID proporcionem maior segurança de armazenamento. Portanto, ambientes que guardam informações importantes devem ter soluções ativas de backup e disaster recovery.
Em caso perda de dados ou problemas com arranjos, é recomendado recorrer ao serviço especializado em recuperar RAID, oferecido pela Hosco.
#RAID #RAID0 #RAID1 #RAID5 #RAID6 #RAID10 #dados #armazenamento #storage #Hosco