Quando estiver escolhendo uma solução de armazenamento em massa os fatores mais importantes a considerar são a velocidade, a confiança e o custo. É raro ter todos os três num equilíbrio; normalmente um rápido e confiável dispositivo de armazenamento em massa é caro, e para baixar o preço tanto a velocidade como a confiánça do dispositivo podem ser sacrificadas.
No desenvolvimento do sistema descrito abaixo, o custo é escolhido como o fator mais importante, seguido da velocidade e então a confiança. A velocidade da tranferência de dados deste sistema determinada é relacionada pela rede. E enquanto a confiança é muito importante, o controlador CCD descrito abaixo disponibiliza dados que já tiveram cópias de segurança geradas em CD-Rs e que podem facilmente ser substituídos.
Definir seus próprios requerimentos é o primeiro passo na escolha de uma solução de armazenamento em massa. Se suas necessidades preferirem a velocidade e a confiança ao invés do custo, sua solução irá ser diferente do sistema descrito nesta seção.
Em relação ao sistema de discos IDE, temos três discos IDE Western Digital 30GB de 5400 RPM para o núcleo do disco CCD descrito abaixo, disponibilizando aproximadamente 90GB de armazenamento. De maneira ideal, cada disco IDE teria sua própria controladora e cabo, mas para minimizar custos não utilizaremos controladoras IDEs adicionais. Uma vez que os discos são configurados com jumpers, temos que cada controladora IDE possui um mestre(master) e um escravo(slave).
Ao reciniciar, a BIOS do sistema terá que detectar automaticamente os discos conectados. Ainda mais importante, o FreeBSD terá que detectar os discos ao reiniciar:
ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33 ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33 ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33 ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33
Nota: Se o FreeBSD não detectar todos os discos, confira se os discos foram jumpeados corretamente. A maioria das controladores também possuem a opção de jumpeamento ``Cable Select''. Este não é o jumper para a relação master/slave. Consulte a documentação da controladora para ter ajuda de como identificar a maneira correta de configurar.
Em seguida, consideraremos como serão conectados como parte do sistema de arquivos. Você deve realizar uma pesquisa entre o vinum(8) (Capítulo 13) e o ccd(4). Nesta configuração em particular, o ccd(4) foi o escolhido.
O controlador ccd(4) permite que você pegue diversos discos iguais e concatenê-os em um sistema de arquivos lógico. Para fazer o uso do ccd(4) você precisará de um kernel contruído com o suporte ao ccd(4). Adicione esta linha no seu arquivos de configuração do kernel, recompile e reinstale o kernel:
pseudo-device ccd 4
Nos sistemas 5.X você deve usar a linha à seguir:
device ccd
Nota: No FreeBSD 5.X não é necessário especificar um número de dispositivos ccd(4), como o dispositivo do controlador ccd(4) agora se auto-replica -- novas instâncias do dispositivo serão criadas automaticamente sobre demanda.
O suporte ao ccd(4) pode também ser carregado como um módulo de kernel carregável no FreeBSD 3.0 ou anterior.
Para configurar o ccd(4) você deve primeiro usar o disklabel(8) para rotular os discos:
disklabel -r -w ad1 auto disklabel -r -w ad2 auto disklabel -r -w ad3 auto
Isto criará um rótulo de disco para o ad1c, ad2c e ad3c que farão uso do disco todo.
Nota: Desde o FreeBSD 5.1-RELEASE, o utilitário bsdlabel(8) substitui o antigo programa disklabel(8). No bsdlabel(8) algumas opções e parâmetros obsoletos foram retirados; no exemplo que segue temos a opção -r que deve ser retirada. Para mais informações, visite a página de manual do bsdlabel(8).
O próximo passo é mudar o tipo do rótulo. Você pode usar o disklabel(8) para editar os discos:
disklabel -e ad1 disklabel -e ad2 disklabel -e ad3
Isto abre o rótulo atual de cada disco com o editor especificado pela variável de ambiente EDITOR, que geralmente é o vi(1).
Um rótulo de disco não modificado parecerá com algo como isto:
8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
Adicione uma nova partição e para que o ccd(4) use. Isto pode usualmente ser copiado da partição c, mas a opção fstype tem de ser 4.2BSD. O rótulo do disco agora deve parecer com algo como isto:
8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597)
O dispositivo ccd0c pode não existir ainda, para criá-lo execute os seguintes comandos:
cd /dev sh MAKEDEV ccd0
Nota: No FreeBSD 5.0, o devfs(5) gerenciará automaticamente os dispositivos listados em /dev, o que dispensa o uso do MAKEDEV.
Agora que você tem todos os discos rotulados você deve contruir o ccd(4). Para fazer isso, use o ccdconfig(8) com opções similares as que seguem:
ccdconfig ccd032
0
/dev/ad1e
/dev/ad2e /dev/ad3e
O uso e o significado de cada opção está listado abaixo:
Após executar o ccdconfig(8) o ccd(4) é configurado. Um sistema de arquivo pode ser instalado. Use o newfs(8) para mais opções, ou simplesmente execute:
newfs /dev/ccd0c
Geralmente, você irá querer montar o ccd(4) em cada reinício do sistema. Para fazer isso você deve configurar isso primeiro. Escreva sua configuração corrente no /etc/ccd.conf utilizando os seguintes comandos:
ccdconfig -g > /etc/ccd.conf
Durante o reinício do sistema o script /etc/rc executa ccdconfig -C caso exista o /etc/ccd.conf. Isto automaticamente configura o ccd(4) e então este poderá ser montado.
Nota: Se você estiver inicializando o sistema em modo monousuário, antes você poder dar mount(8) no ccd(4), você precisa definir os seguintes comandos para configurar a matriz:
ccdconfig -C
Para montar automaticamente o ccd(4) coloque uma entrada para o ccd(4) em /etc/fstab e então este será montado no início do sistema:
/dev/ccd0c /media ufs rw 2 2
O gerenciador de volumes Vinum é um controlador de dispositivo de bloco que implementa controladores de discos virtuais. Este isola o disco físico da interface de dispositivos de bloco e mapeia os dados em meios que resultam num aimento de flexibilidade, performance e confiança comparáveis as tradicionais slices de armazenamento em disco. O vinum(8) implementa os modelos RAID-0, RAID-1 e RAID-5, tanto individualmente como combinando.
Visite Capítulo 13 para mais informações sobre vinum(8).
O FreeBSD também suporta uma variedade de controladoras RAID. Estes dispositivos controlam um subsistema RAID sem precisar de um software específico do FreeBSD para gerenciar a matriz.
Utilizando uma BIOS na placa, a placa controla a maioria das operações em disco. À seguir temos uma configuração descrevendo o uso de uma controladora Promise IDE RAID. Quando esta placa é instalada e o sistema é iniciado, é apresentado um prompt pedindo informações. Siga as instruções para entrar na tela de configuração da placa. Daqui, você tem a habilidade para combinar todos os discos conectados. Após ter feito a configuração os disco parecerão um único disco para o FreeBSD. Outros níveis de RAID podem ser configurados como descrito.
O FreeBSD permite que você troque um disco falhando em uma matriz. Isto requere que você pegue-o antes de reiniciar o sistema.
Você provavelmente verá algo como o seguinte em /var/log/messages ou na saída do dmesg(8):
ad6 on monster1 suffered a hard error. ad6: READ command timeout tag=0 serv=0 - resetting ad6: trying fallback to PIO mode ata3: resetting devices .. done ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11) status=59 error=40 ar0: WARNING - mirror lost
Utilizando o atacontrol(8), busque por informações:
# atacontrol list ATA channel 0: Master: no device present Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0 ATA channel 1: Master: no device present Slave: no device present ATA channel 2: Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present ATA channel 3: Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present # atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED
Você primeiramente precisará desconectar o disco da matriz para então poder removê-lo seguramente:
# atacontrol detach 3
Substitua o disco.
Reconecte o disco como um reserva:
# atacontrol attach 3 Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present
Reconstrua a matriz:
# atacontrol rebuild ar0
O comando de reconstrução executará até estar completo. Entretanto, é possível abrir outro terminal (utilizando Alt+Fn ) e checar o progresso da reconstruição com o seguinte comando:
# dmesg | tail -10 [output removed] ad6: removed from configuration ad6: deleted from ar0 disk1 ad6: inserted into ar0 disk1 as spare # atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed
Espere até que esta operação esteja completa.
Anterior | Principal | Próxima |
Adicionando Discos | Acima | Criando e utilizando mídias ópticas (CDs & DVDs) |
Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.