|
![]() ![]() |
E-mail: contato@tmsoft.com.br Copyright: Proibida a cópia ou reprodução do conteúdo ou parte dele, exceto se o nome do autor, e-mail e este aviso constarem na cópia. Esta documentação tem como proposito ensinar e exemplificar a aplicação de RAID 0 via software, usando Linux. Caso não esteja familiarizado com o termo RAID, recomendo a leitura desse artigo técnico: http://pt.wikipedia.org/wiki/RAID 1 - O que é e como funciona RAID 0 União de unidades de armazenamento. Necessário duas ou mais unidades. O tamanho das unidades serão unidos (2 unidades de 200 gigas cada resultarão em uma unidade de 400 gigas). Ao gravar um arquivo, ele será dividido em padaços e cada pedaço será gravado em uma unidade. Assim, se forem necessários 200 operações de escrita para gravar o arquivo, cada disco (considerando dois disco no exemplo) fará apenas 100 operações. O arquivo será gravado na metade do tempo normal. Na leitura o processo é o mesmo, cada disco fornecerá sua parte do arquivo, reduzindo o tempo de leitura, e aumentando a largura de banda. Vantagem: possibilita conseguir enormes espaços de armazenamento, com velocidades reais mais rápidas do que o hardware dos discos são capazer de prover. Largura de banda com no mínimo o dobro da velocidade de escrita e leitura. Desvantagem: no caso de uma das unidades envolvidas sofrer dano, todo o sistema de arquivos é perdido, pois todos os dados gravados no sistema RAID 0 precisam das partes envolvidas para ser totalmente legivel, o sistema RAID 0 tem que ser remontado com um novo disco. Onde se deve usar RAID 0: sistemas de cache de arquivos temporários, ou onde a perda dos arquivos não significa dano sério. Há duas de fazer RAID: 1 - Como fazer RAID via Linux Para explicar, usarei o seguinte ambiente:
Com a ajuda do programa fdisk ou cfdisk, crie uma partição com 100% do disco, o tipo da partição deve ser FD (Linux raid autodetect) Exemplo de como ficou o particionamento no nosso exemplo: root@servidor:~# fdisk -l Disk /dev/sdb: 3221 MB, 3221225472 bytes 255 heads, 63 sectors/track, 391 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 391 3140676 fd Linux raid autodetect Disk /dev/sdc: 3221 MB, 3221225472 bytes 255 heads, 63 sectors/track, 391 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdc1 1 391 3140676 fd Linux raid autodetect root@servidor:~#3 - Unindo partições e criando o disco RAID No comando abaixo, informaremos ao sistema operacional por meio do comando mdadm que as duas partições acima serão unidas em uma única unidade lógica. Informaremos que desejamos fazer um raid0 (--level=raid0), o caminho do dispositivo lógico será /dev/md0 (-C /dev/md0), que o RAID envolverá 2 partições já criadas (--raid-devices=2) e em seguida, o caminho das partições. (/dev/sdb1 e /dev/sdc1) root@servidor:~# mdadm -C /dev/md0 --level=raid0 --raid-devices=2 /dev/sdb1 /dev/sdc1 mdadm: array /dev/md0 started.Agora, iremos imprimir a lista de discos, podemos notar que uma nova unidade aparecerá (/dev/md0) root@servidor:~# fdisk -l Disk /dev/sdb: 3221 MB, 3221225472 bytes 255 heads, 63 sectors/track, 391 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 391 3140676 fd Linux raid autodetect Disk /dev/sdc: 3221 MB, 3221225472 bytes 255 heads, 63 sectors/track, 391 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdc1 1 391 3140676 fd Linux raid autodetect Disk /dev/md0: 6431 MB, 6431965184 bytes 2 heads, 4 sectors/track, 1570304 cylinders Units = cylinders of 8 * 512 = 4096 bytes Disk /dev/md0 doesn't contain a valid partition tableVocê poderá observar que o disco lógico /dev/md0 não possui uma tabela de partição. Não é necessário particionar esse disco, pois ele é a união de duas partições reais. O próximo passo será formatá-lo com um tipo de sistema de arquivos. 4 - Formatando a partição RAID 0 root@servidor:~# mkreiserfs /dev/md0 mkreiserfs 3.6.19 (2003 www.namesys.com) A pair of credits: Joshua Macdonald wrote the first draft of the transaction manager. Yuri Rupasov did testing and benchmarking, plus he invented the r5 hash (also used by the dcache code). Yura Rupasov, Anatoly Pinchuk, Igor Krasheninnikov, Grigory Zaigralin, Mikhail Gilula, Igor Zagorovsky, Roman Pozlevich, Konstantin Shvachko, and Joshua MacDonald are former contributors to the project. Many persons came to www.namesys.com/support.html, and got a question answered for $25, or just gave us a small donation there. Guessing about desired format.. Kernel 2.6.28.10-prol7 is running. Format 3.6 with standard journal Count of blocks on the device: 1570304 Number of blocks consumed by mkreiserfs formatting process: 8259 Blocksize: 4096 Hash function used to sort names: "r5" Journal Size 8193 blocks (first block 18) Journal Max transaction length 1024 inode generation number: 0 UUID: b357be78-2ef6-496b-8ca3-eb14421ba63b ATTENTION: YOU SHOULD REBOOT AFTER FDISK! ALL DATA WILL BE LOST ON '/dev/md0'! Continue (y/n):y<ENTER> Initializing journal - 0%....20%....40%....60%....80%....100% Syncing..ok Tell your friends to use a kernel based on 2.4.18 or later, and especially not a kernel based on 2.4.9, when you use reiserFS. Have fun. ReiserFS is successfully created on /dev/md0. root@servidor:~#5 - Montando a partição RAID 0 em uma pasta root@servidor:~# mount /dev/md0 /supercache root@servidor:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/hda2 7.6G 6.6G 1016M 87% / /dev/md/0 6.0G 33M 6.0G 1% /supercacheNão se esqueça de declarar no arquivo /etc/fstab a relação de montagem. 6 - Programando RAID para iniciar automaticamente com o Linux Alem da configuração normal do arquivo /etc/fstab, é necessário configurar o arquivo /etc/mdadm.conf A - Declarar partições que participam de sistemas RAID: root@servidor:~# echo 'DEVICE /dev/sdb*[0-9] /dev/sdc*[0-9]' > /etc/mdadm.confB - Declarar o RAID ativo e o id do array: root@servidor:~# mdadm --examine --scan >> /etc/mdadm.confVeja como ficou o arquivo /etc/mdadm.conf apos os comandos acima (arquivo válido apenas para nosso exemplo): root@servidor:~# cat /etc/mdadm.conf DEVICE /dev/sdb*[0-9] /dev/sdc*[0-9] ARRAY /dev/md0 level=raid0 num-devices=2 UUID=83307bf6:8745a2b8:24b64cab:910738ac O sistema RAID está pronto. Reinicie o servidor e certifique-se de que a unidade é montada automaticamente, conforme sua configuração de /etc/fstab. |