Escolar Documentos
Profissional Documentos
Cultura Documentos
Page 1 of 5
Introduo, softwares e o ambiente utilizado Trago neste artigo, uma abordagem simples sobre conceitos e a configurao de RAID por software com duas ferramentas muito utilizadas para tal propsito, o raidtools e o mdadm. Mas antes de entrarmos afundo nas ferramentas, o que RAID?! - RAID significa: Redudant Array of Independent Disk Algo como "Matriz redundante de discos independentes", e a ideia bsica de RAID combinar diversos discos em um volume lgico com o intuito de disponibilizar maior confiabilidade, redundncia de dados e/ou ganho de desempenho, dividindo as operaes realizadas nos discos (leitura e escrita). O que define o modo ao qual o RAID em si ir trabalhar (desempenho e/ou redundncia) o "nvel" de RAID, onde destes existem vrios (0,1,5,10..), cada um com uma utilizao especfica, podendo inclusive ser combinados entre si. Abaixo, abordarei dois nveis bsicos e muito conhecidos, o RAID-0 e o RAID-1.
RAID 0
utilizado exclusivamente para o aumento de desempenho usando dois discos iguais para reduzir o tempo de escrita no disco. O grande problema deste tipo de RAID a falta de confiabilidade nos dados, pois se um dos discos falhar todos os dados armazenados sero perdidos devido aos dados estarem "separados" entre os membros do array.
RAID 1
Este tipo de RAID utilizado para a redundncia dos dados, onde uma cpia dos dados feita entre os membros que esto no array. So utilizados dois discos, sendo que o espao disponvel ser o do menor disco, porm, o desempenho um pouco afetado devido s operaes serem gravadas mais de uma vez.
raidtools Esta uma ferramenta que tem se tornado obsoleta. Eu, particularmente, prefiro o mdadm, mas de qualquer forma uma ferramenta bacana, antiga, porm ainda usada. Segundo as "ms" lnguas, o software em questo instvel e contm alguns bugs, mas gosto gosto. :) mdadm Uma ferramenta muito poderosa, seu suporte foi incorporado ao kernel 2.6, onde mdulos referentes ao RAID e tambm sobre o LVM (que por sinal ser o prximo artigo), melhoraram e muito. A ferramenta em questo de fcil configurao, estvel e muito fcil encontrar sua documentao na Internet. O nome md significa "multiple Device". E adm, bvio que significa "administrar" (ou seja, administrar mltiplos dispositivos). Ele um software free e disponibilizado sobre a licena GPL.
O ambiente: Dois discos rgidos de 3GB, utilizando uma mquina virtual com o Debian instalado.
RAID: Particionando os discos com a ferramenta fdisk A primeira coisa a fazer criar e configurar o tipo de parties dos discos que sero utilizados no RAID para o tipo fd (RAID Linux autodetect), onde nos exemplos seguintes, iremos configurar um RAID nvel 1. Podemos utilizar o fdisk para o particionamento e para alterar o tipo da partio, exemplo: Obs.: Os discos que irei utilizar esto representados no meu servidor como /dev/sdd e /dev/sdc. # fdisk -l /dev/sd[cd]
Disk /dev/sdc: 3221 MB, 3221225472 bytes 255 heads, 63 sectors/track, 391 cylinders Units = cilindros of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=14078
03/02/2013
Page 2 of 5
Concluso: O disco /dev/sdd no contm uma tabela de parties vlida. Como pode ser verificado, os discos em questo no contm nenhuma tabela de partio, ainda. Eu irei criar uma nica partio que ir englobar todo o HD, vamos l: # fdisk /dev/sdc Comando (m para ajuda): n # Nova partio
Comando - ao e estendida p partio primria (1-4) p # partio primria
Aqui, eu altero o tipo de partio para fd: Comando (m para ajuda): t #Tipo de partio
Selected partition 1 Cdigo hexadecimal (digite L para listar os cdigos): fd #Tipo de partio selecionada O tipo da partio 1 foi alterado para fd (Deteco automtica de RAID Linux)
O mesmo deve ser feito com o segundo disco e aps o correto particionamento dos discos, vamos configurao. ;)
Pacotes necessrios
Tenho que admitir que, devido ao raidtools ser um software deveras antigo, tive um pouco de dificuldade para encontr-lo, at por que ele no est presente nos repositrios oficiais, pelo menos no da distribuio que usei. Encontrei para o Debian neste mirror:
z
http://archive.debian.net/en/woody/raidtools
Depois de feito o download, instale o pacote atravs do dpkg: # dpkg -i raidtools_0.42-33_i386.deb Caso ocorram dependncias, use a seguinte opo do apt-get, ou instale as dependncias manualmente: # apt-get install -f E depois, rode o dpkg novamente. Aps instalar o raidtools e alterar o tipo de partio em ambos os discos, iremos partir para o arquivo de configurao do nosso dispositivo de RAID, o /etc/raidtab: # vi /etc/raidtab # Informa qual o nome do dispositivo de RAID. raiddev /dev/md0
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=14078
03/02/2013
Page 3 of 5
# O nivel de RAID. raid-level 1 # A quantidade de discos que faro parte do RAID. nr-raid-disks 2 # Tamanho dos blocos do Array(KB). chunk-size 4 # Cria um superbloco no final de cada um dos discos RAID (valores 0 ou 1) persistent-superblock 1 # Os discos a serem utilizados no array. device /dev/sdc1 raid-disk 0 device /dev/sdd1 raid-disk 1 Agora precisamos somente criar o dispositivo de RAID, e para isso utilizamos o comando mkraid: # mkraid /dev/md0 Ele deve retornar algo como:
mkraid version 0.36.4 parsing configuration file handling MD device /dev/md0 analyzing super-block disk 0: /dev/sdc1, 3076416kB, raid superblock at 3076352kB disk 1: /dev/sdd1, 3076416kB, raid superblock at 3076352kB initializing raid set clearing device /dev/sdc1 clearing device /dev/sdd1 (98% done; ~0:00 left 1:30 elapsed [33821.2 KB/sec]) writing raid superblock MD ID: a92b4efc Conforms to MD version: 0.36.4 Raid set ID: 48eeb121 Creation time: Sun Jan 20 03:35:16 2013 Update time: Sun Jan 20 03:36:48 2013 State: 1 (clean) Raid level: 1 Individual disk size: 3004MB (3076352kB) Total number of disks: 2 Number of raid disks: 2 Number of active disks: 2 Number of working disks: 2 Number of failed disks: 0 Number of spare disks: 0 Disk 0: raid_disk 0, state: 6 (operational, active, sync) Disk 1: raid_disk 1, state: 6 (operational, active, sync) mkraid: completed
Obs.: Podemos verificar a sincronizao dos HD's no arquivo /proc/mdstat. Agora basta formatar: # mkfs -t ext3 /dev/md0 E montar: # mount /dev/md0 /backup Pronto! :)
Configurando um RAID 1 com o mdadm O ambiente utilizado foi o mesmo do exemplo anterior, neste caso somente restaurei o snapshoot da VM. O mdadm, provavelmente, encontra-se disponvel nos repositrios da sua distribuio. Para procur-lo em distribuies derivadas do Debian usando o apt, use o seguinte comando: # apt-cache search mdadm Ele deve retornar:
mdadm - tool to administer Linux MD arrays (software RAID)
Agora, basta instalar: # apt-get install mdadm Em Red Hat e derivados: # yum list mdadm # yum install mdadm Devido ao mdadm trabalhar com superblocos persistentes por padro, podemos utiliza-lo na criao de dispositivos RAID de duas maneiras, sendo uma delas usando o arquivo de configurao /etc/mdadm/mdadm.conf ou diretamente atravs da ferramenta mdadm (esta ser a forma utilizada no artigo).
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=14078
03/02/2013
Page 4 of 5
O primeiro passo a seguir idntico ao utilizar o raidtools, necessrio alterar o tipo das parties para fd. Para quem no sabe realizar o procedimento, na parte onde abordei o raidtools, o procedimento feito passo a passo, basta dar uma olhadinha. :) Aps as alteraes realizadas no disco, vamos comear a criar o nosso dispositivo de RAID (RAID 1) utilizando o comando mdadm, irei explicando seus parmetros a cada comando: # mdadm -C -v /dev/md0 -l 1 -n 2 /dev/sdc1 /dev/sdd1
mdadm: size set to 2056192K mdadm: array /dev/md0 started.
Onde:
z z z z
-C Cria o Dispositivo de RAID; -l O Nvel(level) do RAID; -n O nmero de dispositivos que compem o RAID; /dev/sd[cd]1 Os discos que fazem parte do meu novo dispositivo de RAID, o /dev/md0 (lembrando que "md" vem de dispositivos mltiplos).
Como pode ser observado, o prprio mdadm j informa que o dispositivo de RAID foi inicializado na sada do comando. E uma das maneiras de verificar se o RAID est funcionado utilizando o arquivo /proc/mdstat, onde o sincronismo entre os discos tambm pode ser verificado. Outra maneira de verificar o funcionamento do RAID utilizando a opo "-D" (ou: --detail [detalhes]) do mdadm, onde a sada bem completa. Agora basta fazer o mesmo procedimento bsico, aplicar um sistema de arquivos ao nosso sistema de RAID (Ex.: mkfs -t ext3 /dev/md0), montar em um ponto de montagem qualquer, de acordo com as suas necessidades e ser feliz. :) * Lembrando que o mdadm fornece muitas opes bacanas para o RAID, vamos mais algumas. Uma coisa muito interessante testar a eficincia do RAID que estou configurando, e para isso o mdadm possibilita "falhar" um dos discos. Mas calma, ele no vai destruir o seu HD. O que o mdadm faz "marcar" o seu disco como defeituoso, assim o mdadm passa a utilizar os outros discos do array para o seu correto funcionamento (claro, dependendo das configuraes que voc fez e o nvel do RAID). Antes de falhar um dos meus discos, vamos ver como que est o "status" do meu device de raid: # mdadm -D /dev/md0
/dev/md0: Version Creation Time Raid Level Array Size Used Dev Size Raid Devices Total Devices Preferred Minor Persistence Update Time State Devices Devices Devices Devices : : : : : : : : : : : : : : : 00.90 Mon Jan 21 02:39:08 2013 raid1 2056192 (2008.34 MiB 2105.54 MB) 2056192 (2008.34 MiB 2105.54 MB) 2 2 0 Superblock is persistent Mon Jan 21 02:39:50 2013 clean 2 2 0 0
UUID : 48c32905:e7358574:b05e291b:984b098e (local to host daileon) Events : 0.18 Number 0 1 Major 8 8 Minor 33 49 RaidDevice State 0 active sync 1 active sync
/dev/sdc1 /dev/sdd1
Como pode ser observado, est tudo OK, agora falhando um dos discos: # mdadm --manage /dev/md0 --set-faulty /dev/sdd1
mdadm: set /dev/sdd1 faulty in /dev/md0
Agora meu disco apresentou uma "falha" no dispositivo /dev/sdd1: # mdadm -D /dev/md0
/dev/md0: Version Creation Time Raid Level Array Size Used Dev Size Raid Devices Total Devices Preferred Minor Persistence Update Time State Active Devices Working Devices Failed Devices Spare Devices : : : : : : : : : : : : : : : 00.90 Mon Jan 21 02:39:08 2013 raid1 2056192 (2008.34 MiB 2105.54 MB) 2056192 (2008.34 MiB 2105.54 MB) 2 2 0 Superblock is persistent Mon Jan 21 02:52:53 2013 clean, degraded 1 1 1 0
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=14078
03/02/2013
Page 5 of 5
Events : 0.19 Number 0 1 2 Major 8 0 8 Minor 33 0 49 RaidDevice State 0 active sync 1 removed faulty spare
/dev/sdc1
/dev/sdd1
Neste caso, como existem somente dois HDs e o RAID de nvel 1, os dados no sero perdidos, pois as cpias dos dados esto salvas no outro disco, ento, bastaria eu remover este HD "defeituoso", espetar um novo, particionar, alterao o tipo da partio e adicion-lo no meu RAID. Como por exemplo: # mdadm --manage /dev/md0 --add /dev/sde1 Assim eu poderia verificar o andamento da sincronizao do novo disco atravs do arquivo /proc/mdstat. isso pessoal! At a prxima...
Referncias
z z
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=14078
03/02/2013