Linux Network: Professor Atos Ramos
Linux Network: Professor Atos Ramos
Linux Network: Professor Atos Ramos
Objetivos
Entender os principais níveis de RAID;
Configurar RAID-1;
Verificar o estado do RAID;
Simular falhas no RAID.
Linux Network
Introdução teórica
Um servidor deve sofrer muitas manutenções durante seu período de uso? Não! Um servidor
bem configurado e otimizado deve funcionar muito bem durante anos com poucas intervenções.
Um servidor deve ser bem mais estável e confiável do que um “desktop”.
O servidor pode fornecer vários serviços como “DNS”, “HTTP”, “Proxy”,”Banco de Dados”, e
muitos outros. Todos eles configurados para atender um alto número de usuários simultâneos. Mas
o que torna um servidor seguro?
O que torna um servidor seguro é o uso de componentes redundantes. Quais são os
problemas mais comuns que ocorrem em um servidor? Problemas nos discos rígidos e fontes de
alimentação. Os discos rígidos são confiáveis? Não são. Discos rígidos possuem partes mecânicas
e estas são extremamente sujeitas a falhas.
Linux Network
Qual a vida média útil de um HD? Em torno de 5 anos. Pode-se ter sorte e ele funcionar por
mais algum tempo bem. Depende da marca e dos seus cuidados com o disco.
HDs “IDE” não são recomendados para servidores. Os HDs recomendados são os do tipo
“SCSI” ou “Sata”. O “Sata” é uma opção mais barata.
O HD “IDE” não oferece suporte a “NCQ”. Mas o que é “NCQ”? Trata-se de um recurso que
permite à controladora do HD alterar a sequência das leituras no disco, a fim de otimizar o
processo.
Linux Network
Linux Network
O que poderia ser feito para garantir que esse servidor continue operando caso um disco pife?
Usar RAID.
O RAID - Redundant Array of Inexpensive Disks foi desenvolvido em 1988 como uma solução
barata para garantir a disponibilidade da informação armazenada em discos, utilizando para
isso uma configuração especial de discos rígidos, que podem oferecer redundância em caso
de falhas e ganho de performance em escrita ou leitura, dependendo da configuração do
conjunto “RAID”.
Linux Network
Via Software: Feito por aplicativos e módulos do sistema operacional. O “RAID” via software só
entra em funcionamento depois que o “Kernel” é carregado na memória do computador. A
principal vantagem é a facilidade de configuração e a flexibilidade, já que podemos
trabalhar com vários discos diferentes. A principal desvantagem é a dependência da correta
configuração do sistema operacional.
Via Hardware: Feito por uma placa controladora que conecta um disco ao outro. A principal
vantagem é o desempenho, já que um “RAID” via hardware é mais rápido e independente do
sistema operacional. A principal desvantagem, é que a placa controladora se torna um SPOF -
Single Point of Failure, ou seja, é necessário ter uma controladora de discos igual ou compatível
com a que você possui para o caso de falhas neste hardware.
Linux Network
Níveis de RAID
Os principais níveis de “RAID” utilizados hoje no mercado são os níveis 0,1, 5, e suas derivações,
como por exemplo, o RAID 10. Vamos entendê-los:
RAID 0: Este é o único nível de “RAID” que não implementa redundância. Sua finalidade é
aumentar o desempenho de leitura e gravação, uma vez que ao gravar, divide os dados em
partes iguais e armazena cada fragmento em um disco diferente simultaneamente. Por isso,
com dois discos, a velocidade de leitura praticamente dobra. Com três discos, triplica. E assim
por diante. Sua desvantagem é que se qualquer um dos disco falhar, o sistema operacional
para de funcionar, além de ocasionar perda dos dados. São necessários ao menos dois discos
para implementar “RAID 0”, e eles podem ser de tamanhos diferentes.
Linux Network
Linux Network
RAID 1: O nível mais utilizado. Sua principal finalidade é prover redundância dos dados. Esta é
garantida pela duplicação dos dados que são igual e simultaneamente gravados em cada par
de discos, logo, se um deles falhar, o outro continuará operando e mantendo a informação
disponível, até que a substituição do disco defeituoso seja feita. O ganho de desempenho está
na leitura, uma vez que os dados são lidos em partes iguais e simultaneamente de todos os
discos. A desvantagem desse nível é que só metade do volume total de armazenamento nos
discos utilizados ficará disponível para o sistema operacional. É preciso no mínimo dois discos
para implementar “RAID 1”, sempre em pares.
Linux Network
Linux Network
RAID 5: Neste nível de “RAID” teremos um balanço das vantagens e desvantagens do níveis
anteriores, ou seja, “RAID 5” provém um ganho de desempenho e tolerância a falhas a custos
menores que “RAID 0” ou “RAID 1” individualmente. O ganho de desempenho está mais uma vez na
leitura. Quanto mais discos forem adicionados a composição, mais rápida será a leitura, uma vez
que a gravação é distribuídas em blocos de tamanhos iguais por todos os discos. A “mágica” do
“RAID 5” está justamente na divisão e distribuição destes blocos. Numa composição de três discos os
dados serão divididos em dois blocos, “A1” e “B1”, sendo que os bits destes dois blocos serão
comparados através de um “XOR” que é um identificador de exclusividade. O resultado será
gravado no terceiro volume como “P1”. Além disso, os blocos de paridade são alternadamente
gravados em cada disco, aumentando a tolerância.
Exemplo:
A1 B1 P1
A2 P2 C2
P3 B3 C3
Linux Network
Qualquer um dos discos que falhar pode ser rapidamente reconstruído através de novas operações “XOR” entre
os dados restantes. Tomemos por exemplo “A1 = 01001100” e “B1 = 10100101”.
01001100 XOR
10100101
--------
11101001
Agora suponha que o bloco “B1” foi perdido. Para recuperá-lo basta aplicar um “XOR” entre “A1” e “P1”.
01001100 XOR
00010110
--------
01011010
A operação XOR significa que se são iguais "0 e 0" ou "1 e 1", então o resultado é verdadeiro (0). Se houver mais de
dois blocos para serem comparados, calcule a paridade dos dois primeiros, e com resultado, compare com o
terceiro, e assim sucessivamente. A principal desvantagem do “RAID 5” é o custo de processamento da paridade.
Portanto, “RAID 5” é menos eficiente na gravação que seus antecessores.
Linux Network
A quantidade mínima de discos no “RAID 5” é 3, podendo suportar qualquer número maior que
3, mesmo para discos de tamanhos diferentes. O volume disponível para armazenamento é
dado pela equação “(Q-1)*Dmenor”, onde Q é a quantidade de discos, e “Dmenor” o tamanho
do menor disco.
Os níveis de “RAID” podem ser combinados para se potencializar alguma das vantagens
deles. As combinações mais comuns são os chamado “RAID 10”, “RAID 0+1” e “RAID 50”.
A prova LPI pode cobrar conhecimentos do aluno sobre os níveis de “RAID” citados. Não
esqueça que “RAID” não é Backup. Tenha sempre Backup.
Linux Network
Antes de criarmos as partições “RAID”, temos que ter em mente nossa tabela de particionamento:
# cat /etc/fstab
Agora iremos ver nossas partições:
# cat /proc/partitions
Por causa do Aula de “RAID” iremos ter que recriar as partições, e deixar estas Partições Livres
para nossos testes:
Tipo Device Ponto de Montagem Tamanho em MB Filesystem
Log /dev/sda10 Não montado 512 MB Sem fs
Log /dev/sda11 Não montado 512 MB Sem fs
Log /dev/sda12 Não montado 512 MB Sem fs
Log /dev/sda13 Não montado 512 MB Sem fs
Log /dev/sda14 Não montado 512 MB Sem fs
Nas partições para realização deste trabalho, defina o tipo das partições como “sem fs”, e utilize o
programa “cfdisk” para realização desta tarefa. Não esqueça de reiniciar o computador.
# cfdisk /dev/sda
Linux Network
Criando o “RAID”
Vamos criar o “RAID” utilizando o nível 1 utilizando dois discos e um "spare":
# mdadm --create /dev/md0 --level=1 --raid-devices=2 --spare-devices=1
/dev/sda11 /dev/sda12 /dev/sda13
No segundo terminal, verifique a sincronização do RAID.
Depois de criarmos o “RAID”, é necessário editar o arquivo “/etc/mdadm/mdadm.conf”, que será
utilizado durante a administração do “RAID”:
# vim /etc/mdadm/mdadm.conf
Modifique o arquivo, adicionando o seguinte conteúdo:
DEVICE /dev/sda11 /dev/sda12 /dev/sda13
ARRAY /dev/md0 devices=/dev/sda11,/dev/sda12,/dev/sda13
Depois de criarmos o “RAID”, aplique o sistema de arquivos “ext3” no dispositivo “/dev/md0”:
# mkfs.ext3 /dev/md0
Linux Network
Montando o “RAID”:
# mount -t ext3 /dev/md0 /mnt/raid
Configure o “/etc/fstab”:
/dev/md0 /mnt/raid ext3 defaults 0 2
Linux Network
Administrando o RAID