Você está na página 1de 5

O bsico sobre RAID com mdadm e raidtools [Artigo]

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.

Outros exemplos de RAID: http://pt.wikipedia.org/wiki/RAID Quanto aos softwares utilizados:


z

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

O bsico sobre RAID com mdadm e raidtools [Artigo]

Page 2 of 5

Concluso: O disco /dev/sdc no contm uma tabela de parties vlida:


Disk /dev/sdd: 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

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

Nmero da partio (1-4): 1 #Primeira partio (/dev/sdc1)


Primeiro cilindro (1-391, default 1): # Valor do primeiro cilindro Using default value 1 Last cilindro, +cilindros or +size{K,M,G} (1-391, default 391): +3000M # cilindro final, ou # tamanho, neste caso aproximadamente 3 GB.

Comando (m para ajuda): p #Imprime a tabela de parties


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: 0xd976698f Dispositivo Boot /dev/sdc1 Start 1 End 383 Blocks 3076416 Id 83 System Linux

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)

Comando (m para ajuda): w #Grava a tabela de parties


A tabela de parties foi alterada! Chamando ioctl() para reler tabela de parties. Sincronizando discos.

O mesmo deve ser feito com o segundo disco e aps o correto particionamento dos discos, vamos configurao. ;)

Configurando um RAID 1 com o raidtools

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

O bsico sobre RAID com mdadm e raidtools [Artigo]

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

O bsico sobre RAID com mdadm e raidtools [Artigo]

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

Active Working Failed Spare

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

UUID : 48c32905:e7358574:b05e291b:984b098e (local to host daileon)

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=14078

03/02/2013

O bsico sobre RAID com mdadm e raidtools [Artigo]

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

Livro Certificao linux LPI 2 - Andr Stato Filho http://pt.wikipedia.org/wiki/RAID

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=14078

03/02/2013

Você também pode gostar