Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Recommended Posts

ImplementaçãoPré-requisitos:Para implementar a solução RAID, você precisa de:Uma controladora de disco caso seu RAID seja via hardware; É interessante utilizar um no-break para garantir a integridade do equipamento. InstalaçãoExecute o Synaptic e instale os seguintes pacotes:raidtools util-linux ou utilize o comando apt-get: # apt-get install raidtools util-linux ConfiguraçãoPrimeirament observe o conteúdo do arquivo /proc/mdstat :# cat /proc/mdstatpersonalities: read_ahead not setunused devices: <none>Você sempre irá editar este arquivo para verificar as configurações de RAID. Observer que nenhum dispositivo de RAID está atualmente ativo.Crie as partições que você desejar incluir em sua configuração de RAID; por exemplo:# fdisk /dev/hdaComando (tecle m para obter ajuda): nP próximo passo dependerá do nível de RAID que você escolheu usar; a seguir cada uma destas configurações serão vistas.Modo LinearSe você tem duas ou mais partições que não são necessariamente do mesmo tamanho, você poderá concatenar uma com a outra. Crie o arquivo /etc/raidtab para edscrever sua configuração. Um arquivo raidtab em modo linear terá uma aparência semelhante a esta:raiddev /dev/md0raid-level linearnr-raid disks 2 chunk-size 32 persistent-superblock 1device dev/hda6raid-disk 0device dev/hda7raid-disk1Nos exemplos serão utilizadas duas partições de aproximadamente 1GB, sendo elas hda6 e hda7. Discos sobressalentes não são suportadas aqui. Se um disco falhar, o arranjo ira falhar juntamente com ele. Não existem informações que possam ser colocadas em disco sobressalente. Para criar o arranjo execute o comando:# mkraid /devmd0analyzing super-blockdisk 0: dev/hda6, 1028128 kb, raid superblock at 1028032disk 1: dev/hda7, 1028128 kb, raid superblock at 1028032Isto irá inicializar o arranjo, escrever os blocos persistentes e deixar pronto para uso. Verificando o arquivo /proc/mdstat você pode ver que o arranjo está funcionando:# cat /proc/mdstatPersonalities: [linear]read_ahead 1024 sectorsmd0: active linear hd7[1] hd6 [0]2056064 blocks 32k runningunused devices: <none>Agora você ja pode criar um sistema d arquivos, como se fosse em um dispositivo normal:# mke2fs /dev/md0mke2fs 1.32 (09-Nov-2002)Filesystem label=OS type: LinuxBlock size = 4096 (log = 2)Fragment size = 4096 (log = 2)257024 inodes, 514016 blocks25700 blocks (5.00%) reserverd for the superuserFirst data block = 016 block groups32768 blocks per group, 32768 fragments per group16064 inodes per groupSuperblock backup stored on blocks: 32768, 98304, 163840, 229376, 294912Writing inode tables: doneWirting superblocks and filesystem accounting information: doneThis filesystem will be automatcally checked every 37 months or on 180 days, witch ever comes first. Use tunefs -c or -i to override.Como está sendo usado o sistema de arquivos ext3 no exemplo, é interessante configurar o número de verificações que serão feitas nos sistemas de arquivos do dispositivo:# tune2fs -c 20 /dev/md0 tune2fs 1.32 (09-Nov-2002)Setting maximal count to 20.Neste exemplo, a cada 20 inicializações será feita uma verificação. Em seguida crie um ponto de montagem e montar o dispositivo:# mkdir /mnt/md0# mount /dev/md0 /mnt/md0# dfFilesystem 1k-blocks Used Avaliable Use% Mounted on/dev/md0 2023760 20 1920940 0% /mnt/md0Observe que o tamanho total é de aproximadamente 2GB, pelo fato de ter sido feita uma concatenação de duas unidades, cada uma com aproximadamente 1GB. RAID -0Tendo dois ou mais dispositivos mais ou menos do mesmo tamanho, é possível combinar suas capacidades de armazenamento, bem como seus desempenhos, através de acesso em paralelo.Modifique ou crie o arquivo etc/raidtab para descrever a sua configuração.Observe o exemplo:raiccev /dev/md0raid-leve 0nr-raid-disks 2persistent-superblock 1chunk-size 4device /dev/hda6raid-disk 1Crie o dispositivo de RAID através dos comandos:# raidstop /dev/md0# mkraid -force /dev.md0DESTRYING the contents of /dev/md0 in 5 seconds, Crtl + C if unsure handling MD device /dev/md0analysing super-blockdisk 0: dev/hda6, 1028128 kb, raid superblock at 1028032disk 1: dev/hda7, 1028128 kb, raid superblock at 1028032Isto ira inicializar os superblocos e iniciar o dispositivo RAID. Observando o arquivo /proc/mdstat pode-se ver:# cat /proc/mdstat Personalities: [raid0]read_ahead 1024 sectors md0: active raid0 hd7 [1] hda6[0]2056064 blocks 4k chunksunused devices <none>Agora o dispositivo /edv/md0 já está pronto. Pode ser criado um sistema de arquivos e ser montado para uso.RAID - 1Com dois dispositivos aproximadamente do mesmo tamanho, é possível fazer com que um seja espelho do outro. Se você tiver mais dispositivos, poderá usá-los como um sistema de discos sobressalentes; isto será feito automaticamente por uma parte do espelho se um dos dispositivos operantes falhar.Para isto configure o arquivo /etc/raidtab da seguinte maneira:raiddv /dev/md0raid level 1nr-raid-disks 2nr-spare-disks 0chunk size 4persistent-superblock 1device /dev/hda6raid-disk 0device /dev/hda7raid-disk 7 (A configuração acima trata apenas de um exemplo. Você pode configurar os dispositivos de acordo com as suas nescessidades.)Se você usar discos sobressalentes, adicione no final da especificação do dispositivo o seguinte:device /dev/hdb1spare-disk 0Onde /dev/hdb1 é um disco sobressalente . Configure o número de discos sobressalentes, sempre de uma forma proporcional.tendo tudo pronto para começar a inicialização do RAID o espelho poderá ser construído, e os índices (não no caso de dispositivos sem formatação) dos dois dispositivos srão sincronizados. Execute:# mkraid /dev/md0Neste momento veja este comando que irá fazer a inicialização do espelho. Observe agora o arquivo /proc/mdstat; ele irá mostrar que o dispositivo /dev/md0 foi inicializado, que o espelho começo a ser reconstruído, e quanto falta para a reconstrução ser completada:# cat /proc/mdstat Personalities : [raid1]read_ahead 1024 sectorsmd0: active raid1 hda7(1) hda6(0)1028032 blocks [2/2][uU] resync=63% finish=2.5minunused devices: <none>O preocesso de reconstrução é transparente: você poderá usar dispositivos durante a execução deste processo. É possível até formatar o dispositivo enquanto a reconstrução está sendo executada. Você também pode montar e desmontar as unidades neste período (somente se um disco falhar esta ação será prejudicada). Agora ja é possível criar o sistema de arquivos, montar e visualizar o tamanho do dispositivo final:# mount /dev/md0 /mnt/md0# dfFilesystem lk-blocks Used Avaliable Use% Mounted on/dev/md0 1011928 20 960504 2% /mnt/md0Observe que o tamanho do dispositivo corresponde ao tamanho de um único dispositivo, por se tratar de um espelho de discos RAID - 4Com três ou mais dispositivos aproximadamente do mesmo tamanho, sendo um dispositivo significativamente mais rápido que os outros dispositivos, é possível compilá-los em um único dispositivo grande, mantendo ainda informação de redundância. Eventualmente você pode colocar alguns dispositivos para serem usados como discos sobressalentes.Um exemplo de configuração para o arquivo /etc/raidtab:raiddev /dev/md0raid-level 4nr-raid-disks 3nr-spare-disks 0persistent-superblock 1chunk size 32device /dev/hda5 raid-disk 0device /dev/hda6raid-disk 1device /dev/hda7raid-disk 2Se houver discos sobressalentes, será nescessário configurar da mesma forma, seguindo as especificações do disco RAID. Veja o exemplo:device /dev/hdb1spare-disk0 O disco sobressalente é criado em todos os níveis de RAID. Inicialize o RAID 4 com o comando:# mkraid /dev/md0handling MD device dev/md0analysing super-blockdisk0: /dev/hda5, 1028128Kb, raid superblock at 1028032Kbdisk1: /dev/hda6, 1028128Kb, raid superblock at 1028032Kbdisk2: /dev/hda7, 1028128Kb, raid superblock at 1028032Kb# cat proc/mdstatPersonalities: [raid5]read_ahead1024 sectorsmd0: active raid5 hda7[2] hda6[1] hda5[0]2056064 block level 4,32k chunk, algorithm, 0 [3/3] [uUU] resync=59% finish=4.6minunused devices: <none>Para formatar o RAID-4, utilize as seguintes opções especiais do mke2fs:# mke2fs -b 4096 -R stride=8 /dev/md0mke2fs 1.32 (9-Nov-2002)Filesystem label=OS type: Linuxblock size= 4096 (log=2)Fragment size=4096 (log=2)257024 inodes, 514016 blocks25700 blocks (5.00%) reserved for the super userFirst data block=0 16 block groups 32768 blocks per group,32768 fragments per group 16064 inodes per groupSuperblock backups stored on blocks:32768, 98304, 163840, 229376, 294912Writing inode tables: doneWriting superblocks and filesystem accounting information: doneThis filesystem will be automatically checked every 37 months or 180 days, wicthever comes first. Use tune2fs -c or -i to overriteBasta montar o RAID para uso. O tamanho total será de N-1, ou seja, o tamanho total de todos os dispositivos menos um, reservado pela paridade:# dfFilesystem lk-blocks Used Avaliable Use% Mounted on /dev/md0 2023760 20 192094 1% /mnt/md0Note que o RAID-4 carrega o MD do RAID-5, por que são de niveis similares de RAID. RAID-5Similar ao RAID 4, porém é implementado através de 3 ou mais dispositivos de tamanho aproximado, combinados em um dispositivo maior. Ainda mantém um grau de redundância para proteger os dados. Podem ser usados discos sobressalentes, tomando parte de outros discos automaticamente, caso eles venham a falhar.Se você está usando N dispositivos onde o menos tem um tamanho S, o tamanho total do arranjo será (N-1)*S. Esta perda de espaço é utilizada para paridade (redundância) das informações. Assim, se algum disco falhar, todos os dados continuarão intactos. Porém, se dois discos falharem, todos os dados serão perdidos.Configure o arquivo /etc/raidtab de uma forma similar a esta:raiddev /dev/md0raid-level 5nr-raid-disks 3nr-spare-disks 0persistent-superblock 1parity-alogarithm left- symmetric cchunk-size 32device /dev/hda5raid-disk 0device /dev/hda6raid-disk 1device /dev/hda7raid-disk 2Se existir algum disco sobressalente, ele pode ser inserido de uma maneira similar, seguindo as especificações do disco de RAID. Por exemplo:device /dev/hdb1spare-disk 0Um tamanho do pedaço (chunk size) é de 32Kb é um bom padrão para sistemas de arquivos com uma finalidade genérica deste tamanho. O arranjo no qual o arquivo raidtab anterior é usado é de (n-1)*s=(3-1)*2= 4Gb de dispositivo. Isto prevê um sistema de arquivos ext3 com um bloco de 4Kb de tamanho. Você poderia aumentar, juntamente com o arranjo, o tamanho do pedaço e o tamanho do bloco do sistema de arquivos.Execute o comando mkraid para o dispositivo /dev/md0. Isto fará com que se inicie a reconstrução do arranjo. Observe o arquivo/proc/mdstat para poder fazer um acompanhamento do processo:# cat /proc/mdstatPersonalities: [raid5]read)ahead 1024 sectorsmd0: active raid5 hda7[2] hda6[1] hda5[0]2056064 blocks level 5,32k chunk, algorithm 2 [3/3] [uUU] resync=29% finish=11.4minunused devices: <none>Se o dispositivo for criado com sucesso, a reconstrução será iniciada. O arranjo não estará consistente até a fase de reconstrução ter sido completada. Entretanto, o arranjo é totalmente funcional (exceto para troca de dispositivos que falharam no processo); você pode formatar e usar o arranjo enquanto ele estiver sendo reconstruído. Formate o arranjo com o comando: # mke2fs -b 4096 -R strides=8 /dev/md0Quando você tiver um dispositivo RAID executando, você pode sempre parar ou reiniciar usando os comandos: raidstop /dev/md0 ou raidstart /dev/md0Uso de RAID para obter alta disponibilidadeAlta disponibilidade é difícil e cara. Quanto mais arduamente você tenta fazer um sistema ser tolerante a falhas, mais ele assa a ser dispendioso e difícil de implementar. As seguintes sugestões, dicas, idéias e suposições poderão ajudar você a respeito deste assunto Os discos IDE podem falhar de tal maneira que o disco que falhou em um cabo de IDE possa também impedir que um disco bom, no mesmo cabo, responda, quando a impressão de que os dois discos falharam. Apesar de RAID não oferecer proteção contra falhas em dois discos, você deve colocar apenas um disco em um cabo IDE devem pertencer a configurações diferentes de RAID. Observações similares são aplicadas às controladoras de disco. Não sobrecarregue os canais de uma controladora; utilize controladoras múltiplas. Não utilize o memo tipo ou número de modelo para todos os discos. Não sobrecarregue os canais em uma controladora; utilize controladoras múltiplas. Não utilize o mesmo tipo ou número de modelo para todos os discos. Não é incomum em variações elétricas bruscas perder dois ou mais discos, mesmo com uso de supressores - eles não são perfeitos ainda. O calor e a ventilação insuficiente do compartimento de disco são outras causas da perda de disco. Utilizar diferentes tipos de discos e controladoras diminui a probabilidade de danificação de um disco (calor, choque físico, vibração, choque elétrico) Para proteger o disco contra falhas de controladora ou de CPU é possível contruir um compartimento de disco SCSI que tenha cabos gêmeos, ou seja, conectado a dois computadores. Um computador irá montar o sistema de arquivos somente para leitura, e atuar como um computador reserva ativo. Quando o computador reserva é capaz de determinar que o computador mestre falhou (por exemplo, através de um adaptador watchdog), ele irá cortar a energia do computador mestre (para ter certeza de que ele realmente está desligado), e então fazer a verificação com o fsck e remontar o sistema para leitura escrita. Sempre utilize um no-break, e efetue os desligamentos corretamente. Embora um desligamento incorreto não possa danificar os discos, executar o ckraid mesmo em arranjos pequenos é extremamente lento. Você deve evitar a execução do ckraid sempre que for possível, ou pode colocar um hack no kernel e começar a reconstrução do código verificando erros. Cabos SCSI são conhecidos por serem muito sugeitos a falhas, e podem causar todo tipo de problemas. Utilize o cabeamento de mais alta qualidade que você puder encontrar à venda.Utilize por exemplo o bubble-wrap para ter certeza de que os cabos não estão muito perto um do outro e do cross-talk. Observe rigorosamente as restrições do comprimento do cabo. Dê uma olhada em SSI (arquitetura de armazenamento serial). Embora seja muito caro, parece ser menos vulnerável aos tipos de falhas que o SCSI apresenta. Testando a Configuração Simulando uma falha de drive: se você deseja fazer isso, basta "desligar o drive", ou seja, desligar a máquina. Se você está interessado em testar se seus dados podem resistir, faça realmente isto: Desligue a máquina, retire o disco e reinicia a máquina novamente. Lembre-se de que você não deve fazer isto em um sistema de produção: faça-o primeiro em uma máquina de testes. Olhe os logs no syslog e no arquivo /proc/mdstat, para verificar como o RAID está indo. Lembre-se também de que você deve utilizar arranjos de RAID -(1,4,5), para ser capaz de sobreviver a falha de discos. RAID Linear ou RAID-0 irão falhar completamente quando o dispositivo for perdido. Simulando dados comrrompidos: Raid assume que se uma escrita para o disco não retorna erros, então a escrita foi feita com sucesso. Assim, se seu disco corrompe dados sem retornar erros, seus dados ficaram corrompidos. Isto é possível, mas difícil de acontecer, e poderia resultar em um sistema de arquivos corrompido. Você pode corromper um sistema de arquivos (usando o comando dd, por exemplo). Porém, RAID não garante a integridade dos dados, ele apenas permite você manter seus dados se o disco "morre".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coitadu do HyperFast gente, ninguem comentou o artigo dele, hehehe ...O que você quer que eu diga?Legal, muito bom, mas pra quem usa, heheh ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.