Minicluster:DRBL

De WikiLICC
Revisão de 11h36min de 29 de outubro de 2010 por Dago (Discussão | contribs) (III. Configure o sistema de arquivos para o cliente no Servidor)
Ir para: navegação, pesquisa

Este documento descreve como configurar o ambiente "DRBL" em Fedora 13 (para outros sistemas e detalhes veja o original).

Configure o ambiente Diskless Remote Boot in Linux (DRBL)

I. Configuração do Servidor Linux

  • Instale o Linux e configure todas as placas de rede. Usamos a placa de rede integrada eth1 para conectar a internet (IP ...), enquanto que a placa extra eth0 é usada para o DRBL se conectar ao switch (use um IP privado: 192.168.0.99).
  • É recomendado desligar ou remover o serviço NetworkManager se estiver sendo é iniciado automaticamente (não fiz):
 chkconfig --del NetworkManager
 chkconfig --del NetworkManagerDispatcher
e para ligar o serviço de rede use
 chkconfig network on
  • As regras para o firewall serão reescritas no servidor DRBL. Depois de completar o setup do DRBL e testar com sucesso, você pode reconfigurar o firewall. Lembre que os serviços NIS, tftp e dhcp são necessários, assim NÃO bloqueie eles no firewall.
  • Para melhor performance (opcional):
    • Se tu usa o Gnome, apague alguns arquivos de linguagem em /etc/gconf/gconf.xml.defaults/. Isto economiza espaço no servidor (Ex.: mantendo somente %gconf-tree.xml e %gconf-tree-zh_TW.xml economizará 40 MB (Com 16 clientes economizará 640 MB no servidor) e o carregamento no servidor NFS será menor.
    • O sistema de arquivos reiserfs é recomendado (se disponível) por melhor performance (comparado com ext2/ext3).
  • Depois de instalar o Linux, verifique se o modo DMA está ativo (pois acelera a velocidade de acesso ao disco do servidor) usando
 hdparm /dev/hdx
Para ativar o modo DMA use
 hdparm -d1 -c3 -k1 /dev/hdx
Troque /dev/hdx por /dev/hda se seu disco IDE para o sistema Linux for um Primary IDE.
  • Nota sobre Selinux: Desligue ao menos que entenda como usá-lo (senão poderá ter "Permission denied"). Para desabilitar SELinux, digite SELINUX=disabled em /etc/sysconfig/selinux ou /etc/selinux/config e reinicialize sua máquina.

II. Configuração dos clientes (feito no servidor)

Passo 2a

  • Instale a DRBL key (ID: 1024D/D7E8DF3A, Key fingerprint = F532 A131 65AF 2168 1634 DB1B 4000 9511 D7E8 DF3A) no seu sistema rpm. Três modos de fazer isso:
   rm -f GPG-KEY-DRBL; wget http://drbl.org/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL
 ou
   rm -f GPG-KEY-DRBL; wget http://drbl.nchc.org.tw/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL
 ou  baixe a key do key server. O KeyID para DRBL é D7E8DF3A:
   gpg --keyserver subkeys.pgp.net --recv-key D7E8DF3A

e para adicionar ao sistema rpm, rode

   gpg -a --export D7E8DF3A > GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL


  su - root
  • Instale o arquivo que você baixou:
  yum install drbl-XXX.i386.rpm
    ou
  rpm -Uvh drbl-XXX.i386.rpm
  • Nota: Um módulo perl é necessário (perl-Digest-SHA1). Usando yum baixará automaticamente, senão use
  yum install perl-Digest-SHA1
ou usando rpm
  rpm -Uvh http://opensource.nchc.org.tw/fedora/linux/releases/13/Fedora/i386/os/Packages/perl-Digest-SHA1-2.12-2.fc13.i686.rpm

PS. Os arquivos DRBL estão em http://ftp.twaren.net/local-distfiles/drbl-core/ ou http://free.nchc.org.tw/drbl-core

Passo 2b

Cenário 1 - Internet rápida:

Pressione Enter para aceitar a opção padrão (veja Minicluster:DRBL:drblsrv):

 /opt/drbl/sbin/drblsrv -i

Cenário 2 - Sem internet ou internet lenta:

Liste os pacotes necessários com

 /opt/drbl/sbin/drblsrv-offline -r

Depois de instalar estes pacotes, se estiver certo que o kernel no servidor é compatível com a CPU do cliente, rode

 /opt/drbl/sbin/drblsrv-offline -s `uname -r`

ou baixe o arquivo rpm do kernel apropriado (compatível com o cliente). Rode

 /opt/drbl/sbin/drblsrv-offline -k $KERNEL_PKG

onde $KERNEL_PKG é o nome do arquivo rpm do kernel com o caminho. Na dúvida, tecle Enter para aceitar os valores padrões.

  • Para ajuda e opções use
 /opt/drbl/sbin/drblsrv-offline --help

Cenário 3 - Para o impaciente

Rode

/opt/drbl/sbin/drbl4imp

para terminar o passo 2b e 3a. drbl4imp usa os valores padrões para configurar o servidor DRBL. IMPORTANTE! O padrão pode não ser o ideal, pois usa a opção range no servidor e assim seu cliente não terá sempre o mesmo IP (também é limitado a 12 clientes por placa de rede).

III. Configure o sistema de arquivos para o cliente no Servidor

  • Temos um servidor e 16 clientes (mais um IP no switch?? O IP do ambiente DRBL (LAN) é 192.168.0.99. Os serviços DHCP, TFTP, NFS, etc rodam em [eth0].
         [NIC ]   NIC IP          Clientes
+------------------------------+
|         DRBL SERVER          |
|                              |
|    +-- [eth1] 143.54.226.166 +- to WAN (rede da matemática)
|                              |
|    +-- [eth0] 192.168.0.99   +- to clients group 0 [ 2 clients, their IP
|                              |            from 192.168.0.100 - 192.168.0.101]                                                   
+------------------------------+ 
  • Existem 4 modos no DRBL:
Full DRBL e Full Clonezilla
A banda e o espaço em disco necessários são maiores, mas a configuração do sistema será salva no servidor e cada cliente terá sua própria configuração.
DRBL SSI (Single System Image)
Uma única imagem para todos os clientes. A configuração individual é criada em run-time no momento do boot. Isto reduz o espaço em disco já que é necessário uma única imagem no disco. A desvantagem é que cada cliente NÃO pode ter sua configuração própria (Configuração do usuário será salva no servidor). Se novos clientes forem adicionados, a única coisa a fazer é modificar o arquivo de configuração dhcpd (dhcpd.conf). Use "/opt/drbl/sbin/dcs -> others -> gen_3N_conf" para criar ou rode "/opt/drbl/sbin/drbl-3n-conf generate", os arquivos necessário serão criados. Neste modo, uma placa de rede no servidor pode ter 253 clientes.
Clonezilla Box
É baseado no modo DRBL SSI, especialmente para o sistema clone. Se for usar o modo DRBL SSI, tenha certeza que o cliente tem memória grande (digamos > 512 MB) e que todo o equipamento (especialmente a placa gráfica) nos clientes é o mesmo.
  • Antes do passo 3, você pode fazer uma configuração personalizada:
    • Se possui diretórios para compartilhar no servidor, tal como /home/export, então edite o arquivo (indicando ro=somente leitura, rw=leitura e escrita)
   vi /opt/drbl/conf/drbl.conf
   ..
   diskless_root_dir_ro_user_add="/home/somenteleitura"
   diskless_root_dir_rw_user_add="/home/export" 
   ..
  • Se os clientes possuem disco rígido local e a partição é formatada (por exemplo, /dev/hda1, com arquivo de sistema ext3), então possivelmente você quer que o cliente monte /dev/hda1 como /localwork quando inicializando. Portanto edite /opt/drbl/conf/client-append-fstab (a sintaxe é como /etc/fstab). Neste exemplo, podemos editar /opt/drbl/conf/client-append-fstab como:
   /dev/hda1 /localwork ext3 defaults 0 0
PS: Não é necessário criar o diretório /tftpboot/node_root/localwork no servidor DRBL manualmente; ele será criado mais tarde pelo drblpush.
  • Para ter serviços extras no cliente (como apmd ou bluetooth) If you have extra services (such as apmd and bluetooth), edite
   vi  /opt/drbl/conf/client-extra-service
e adicione
   service_extra_added="apmd bluetooth".
  • Se você quer renomear algum ou todos os hostnames criados automaticamente por "drblpush -i", edite agora
   vi /opt/drbl/conf/client-ip-hostname 
Se as máquinas não estão designadas, drblpush usará o hostname criado automaticamente.

Passo 3

O programa auto-detecta os argumentos do sistema, caso não achar, perguntará a você (Minicluster:DRBL:exemplo, veja no site). Rode

 /opt/drbl/sbin/drblpush -i


  • Nota!!! Se pacotes mais novos são instalados no servidor depois desse passo, você deve rodar (isto carrega as configurações salvas anteriormente)
 /opt/drbl/sbin/drblpush -i
   ou 
 /opt/drbl/sbin/drblpush -c /etc/drbl/drblpush.conf
novamente tal que os novos pacotes sejam entregues aos cliente.
  • Nota!!! Não é recomendado ativar o sistema de atualização automática. Se novos pacotes são instalados no servidor, sem rodar /opt/drbl/sbin/drblpush -i, o programa para o cliente pode não ser compatível com o mais novo no servidor. Se quiser deixar ativo o sistema de atualização, lembre de seguir o passo acima para atualizar os arquivos no cliente automaticamente.

IV. Configurando os clientes para usar o DRBL

Existem quatro cenários diferentes para dar o boot nos clientes (veja o original para usar Etherboot com 2)disquete , 3) CDROM ou 4) disco rígido).

O cliente possui placa rede PXE

  • Edite o BIOS do cliente para dar o boot da "LAN" ou "network".
  • anotado na sala.

Pronto! Basta reinicializar a máquina.

V. Uso adicional do ambiente DRBL

  • Alguns scripts estão em /opt/drbl/sbin e /opt/drbl/bin no servidor. Dê uma olhada. Para descobrir como usar rode eles sem parâmetros.
  • O comando mais útil é /opt/drbl/sbin/dcs que seta o modo de boot padrão dos clientes.
  • Outro comando útil é drbl-SL.sh, que carrega um Linux pequeno (DSL, PuppyLinux, INSERT, PLD, Debian Live, GeeXbox, PUD-Linux...) no ambiente DRBL. Assim o cliente pode usar o Linux Pequeno depois de dar o boot via PXE. O cliente pode ser usado ainda que o cabo de rede seja desconectado.

Upgrade

Para upgrade para uma versão mais nova:

  1. Backup the important files, such as those files in /etc/drbl and /etc/dhcpd.conf or /etc/dhcp3/dhcpd.conf, etc...
  2. Run "/opt/drbl/sbin/drblsrv -u" to uninstall all the DRBL-related packages
  3. Follow the step II, download the drbl main program, re-install and configure it again (i.e. /opt/drbl/sbin/drblsrv -i and /opt/drbl/sbin/drblpush -i)

Algumas vezes, se as versões são próximas, podes tentar upgrade sem reinstalar e reconfigurar (i.e. somente yum upgrade). Entretanto, não é recomendado, pois alguns arquivos serão enviados aos clientes somente depois que drblsrv e drblpush são rodados.

Desinstalar

Para desinstalar drbl e pacotes relacionados, rode:

/opt/drbl/sbin/drblsrv -u

e siga os passos.

Referências