Introdução
Hoje no mundo das informações ainda vemos muitas empresas ( de pequeno,  médio e até algumas de grande porte) que não tem nenhum tipo tecnologia de armazenamento.

346955637_9f3002fbb2_n

Hoje temos no mercado placas domésticas que já dispõem de sistemas de tecnologia de armazenamento.

Mais o que são essas tecnologias de armazenamentos ?

Ao final dos anos 80 foi proposto uma forma de não só recuperar dados com velocidade mais também que os mesmo sejam armazenados com segurança, esse modelo proposto se é conhecido como RAID.

O que é RAID?
RAID do inglês Redundant Array of Independent Disks trazendo isso para uma tradução literária Conjunto de Redundante de Discos Independentes.

O RAID consiste de uma técnica na utilização de dois ou mais discos para ganhar desempenho ou segurança em casos em que podemos combinar o desempenho com a segurança.

Essa implementação será sempre transparente para o usuário, o sistema interpreta essa combinação de discos como uma única unidade de disco e todo o trabalho é feito pela controladora RAID.
Implementações
Um sistema RAID pode ser implementado de duas formas, ou via software ou diretamente via hardware.

A Implementação via Software: A implementação via software é mais barata não exigindo a necessidade de uma placa controladora RAID porem todo o processamento de controle é manipulação de dados é feito sobre o sistema operacional e com isso existe um custo computacional sobre o processador e memória.

Implementação via Hardware: A implementação por Hardware exige uma controladora RAID que será a responsável por gerir os discos e entregar ao sistema operacional o disco pronto, com isso temos um ganho maior em performance e até mesmo em segurança na sua maioria as controladoras são elaboradas com um sistema de baterias, fazendo com que se houver uma falha de energia haja uma garantia do armazenamento dos dados que estavam pendentes. As controladoras tem seu próprio núcleo de processamento assim aliviando o processador e deixando isso de forma transparente até mesmo para o sistema operacional

Tipos de RAID?
Temos hoje alguns tipos de RAID e cada RAID com suas particularidades, porem todas elas estão preocupadas na velocidade e gravação dos dados ou na segurança da guarda dessas informações e alguns casos combinadas a velocidade e segurança, contamos hoje com os seguintes tipos de RAID:
RAID 1
RAID 2
RAID 3
RAID 4
RAID 5
RAID 6
RAID 01 ou RAID 0+1
RAID 10 ou RAID 1+0
RAID 50
RAID 100
As RAID’s que serão vistas nesse artigo serão as mais utilizadas, algumas delas ficaram defasadas devido ao uso de novas tecnologias e outras foram substituídas por outras como é o caso da RAID 2 que se tornou obsoleta devido aos discos mais atuais possuírem checagem de erros e a RAID 4 que é substituída pela RAID 5 que supera os problemas mais comuns pela RAID 4.
RAID 0
No RAID 0 os dados são divididos em pequenos fragmentos e armazenados em paralelos nos discos disponíveis, com isso o tempo de gravação e leitura é reduzido pela quantidade de discos que participam do conjunto.

Exemplo: Se temos dois discos em nosso conjunto significa que metade dos dados serão armazenados no disco 1 e a outra metade no disco 2, se o tempo de gravação de um determinado dado em um disco é de 1s em nosso conjunto esse tempo será de 0,5s visto que essa dado será fragmentado e armazenado em simultâneo nos dois discos.

A controladora RAID é responsável por quebrar esses dados e enviar para os discos, que irão pegar os dados que lhe foram passados e efetuar sua gravação de forma independente. Com esse conjunto quanto mais discos mais rápido será o tempo de gravação e leitura visto que a leitura e quanto mais disco mais espaços teremos disponível.

raid-figura-1
Na Figura 1 temos um exemplo de 2 discos em um conjunto RAID 0, onde a soma desses discos nos dá uma disponibilidade de 240GB e ao se gravar uma informação em um disco outro fragmento dela é gravado em outro.

Podemos observar isso através das cores laranjas e verdes considerando-as como dados diferentes e vemos que ambas estão nos dois discos.

Um grande problema nesse conjunto é que se um dos discos falhar nossos dados não servem mais de nada, visto que eles estão distribuídos em fragmentos entre os discos.
RAID 1
O RAID 1 diferente do RAID 0 preza pela segurança e não pela velocidade, ele utiliza dois ou mais discos e os discos são espelhados, ou seja: os dados que são gravados em um disco são automaticamente replicados para os demais discos que participam desse conjunto em caso de um dos discos falhar o próximo entra em ação imediatamente.

Nosso computador contendo um um RAID 1 tem alta disponibilidade, se estamos sobre uma controladora RAID podemos efetuar a troca do disco com problema com nosso computador ainda em funcionamento assim não parando com nosso serviço disponibilizado nessa maquina, diferente do RAID 0 que em caso de falhas os dados são perdidos o RAID 1 garante a integridade dos dados. O problema do RAID 1 é que os discos adicionados a esse conjunto são considerados apenas como um, fazendo dessa solução uma solução cara pois espaço são perdidos para que possamos criar a redundância.

Na próxima figura podemos observar o uso do RAID 1, como podemos ver os dados no primeiro disco estão replicados no segundo disco e a capacidade de nosso conjunto é apenas de 120GB.

raid-figura-2

RAID 5
Podemos definir o RAID 5 como um “Super” RAID 1 com inúmeros aprimoramentos pois este é o sucessor do RAID 4, o RAID 5 é voltado a ganhos de desempenho como o RAID 1 porem dispõem de um sistema de segurança chamado de paridade. A paridade é uma espécie de soma de segurança que é armazenada nos discos de paridade diferente do RAID 4 que armazena a paridade em apenas um dos discos o RAID 5 distribui essa paridade para todos os discos do conjunto e se um dos discos falhar, pode ser recuperado através dos dados de paridade contido nos demais discos.

RAID 0+1
O RAID 01 ou RAID 0+1 combina a velocidade do RAID 0 com a segurança do RAID 1, para a montagem desse conjunto é necessário no mínimo quatro discos sendo os dados são divididos para melhorar a performance mais também são replicados para garantir a segurança dos dados. No RAID 01 se um dos discos falhar o sistema irá trabalhar como RAID 0 pois isso compromete a redundância. Na Figura 3 podemos observar a montagem de um conjunto em RAID 01, temos um conjunto principal em RAID 0 onde os dados serão fracionados e gravados em paralelo nos discos desse conjunto, e um conjunto “secundário” com as mesmas configurações do primeiro ligados entre si através de uma ligação RAID 1 garantindo assim a redundância de um conjunto para o outro.

raid-figura-5

RAID 1+0
O RAID 10 ou também conhecido com RAID 1+0 assim como o RAID 01 combina a velocidade RAID 0 com o RAID 1, assim como o RAID 01 necessita de ao menos 4 discos para sua formação. Sua diferença entre o RAID 01 é que sua formação nos blocos de baixo são formados pelo RAID 1 e a ligação entre eles é feita através do RAID 0, nesse conjunto podem haver a perda de até metade dos discos, desde que a perda não seja em um bloco de espelhamento. Assim como no RAID 1 temos a possibilidade de trocar os discos em pleno funcionamento. Na Figura 4 vemos como é montado o conjunto de um RAID 10, podemos observar que detro dos conjuntos baixos os dados são replicados mais entre um conjunto e outros os dados estão fracionados.

 

raid-figura-6

Conclusão
Com isso vemos que podemos combinar a velocidade e asegurança e termos um sistema robusto, tolerante a falhas, segurança e com alta disponiblidade

Referencias
Hardware, o Guia Definitivo – Carlos E. Morimoto – 2007
http://pt.wikipedia.org/wiki/RAID
http://www.intel.com/support/pt/chipsets/imsm/sb/cs-009337.htm

Fonte Foto: Flickr – John Athayde

Gutierry Antonio Neto Pereira

No Code Squad ministra os seguintes treinamentos:  http://code-squad.com/perfil/gutierryantonio.netopereira#cursos-ministrados

Gutierry Antonio Neto Pereira – Engenheiro de Software Experiência em desenvolvimento com visual Fox Pro, Delphi, Ruby on Rails, Action Script 3.0 , nos bancos de dados Firebird, MySQL, gerencia de projetos de software e aplicação de métricas de software. Conhecimentos nas linguagens de programação Java, C# e C++, no banco de dados SQL Server.Participação de desenvolvimento de Framework em Delphi para desenvolvimento de softwares, desenvolvimento de framework para importação e exportação de dados entre banco de dados e Framework para BI.

Twitter