Minicluster:DRBL

De WikiLICC
Revisão de 00h02min de 28 de outubro de 2010 por Dago (Discussão | contribs) (I. Configuração do Servidor Linux)
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. Neste texto, usamos eth1 para conectar a internet, enquanto que eth0 (a placa extra) é usada para o DRBL (use um IP privado, por exemplo, 192.168.0.99). Se no seu Linux o serviço NetworkManager é iniciado automaticamente, é recomendado desligar ou remover. No Fedora você pode: chkconfig --del NetworkManager, chkconfig --del NetworkManagerDispatcher, e ligar o serviço de rede com "chkconfig network on". Suas 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 você usa o Gnome, pode apagar 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 no servidor, tenha certeza que o modo DMA está ativo. Isto acelera a velocidade de acesso ao disco do servidor. Use hdparm /dev/hdx para verificar se o modo está ativo ou não. Se estiver off, rode hdparm -d1 -c3 -k1 /dev/hdx para ativar. Troque /dev/hdx por /dev/hda se seu disco IDE para o sistema Linux está em "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 or /etc/selinux/config e reinicialize sua máquina.

II. Configuração dos clientes

Nota: Este processo é feito no servidor para uso nos clientes.

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 rode (para adicionar ao sistema rpm)

   gpg -a --export D7E8DF3A > GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL
  • Baixe o arquivo drbl-1.9.6-35.i386.rpm (por exemplo, a versão estável está no Sourceforge)
  • Se conecte como root 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 (Algo como "perl-Digest-SHA1"). Usando yum baixará automaticamente, senão use
  yum install perl-Digest-SHA1

Se usar rpm, instale com (Fedora 8)

  rpm -Uvh http://opensource.nchc.org.tw/fedora/linux/releases/8/Fedora/i386/os/Packages/perl-Digest-SHA1-2.11-4.fc8.i386.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 default:

 /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

Para o impaciente

Rode

/opt/drbl/sbin/drbl4imp

para terminar o passo 2b e 3a. drbl4imp usa os valores padrão para configurar o servidor DRBL. THIS IS VERY IMPORTANT! 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

  • Arrume seu ambiente e tenha certeza que você o conhece.
  • 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 3a, você pode fazer uma configuração personalizada:
    • Se possui diretórios para compartilhar no servidor, tal como /home/export, então modifique o arquivo (Cuidado ao editá-lo)!!!
   vi /opt/drbl/conf/drbl.conf
e edite (Somente leitura _ro ou Leitura_e_escrita _rw)
   diskless_root_dir_ro_user_add="/home/export"
   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: Você não precisa 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 3a

Rode

 /opt/drbl/sbin/drblpush -i

O programa auto-detecta o sistema para descobrir os argumentos. Se os argumentos não são dados no sistema, o sistema pedirá a você (veja no site).

  • Nota!!! Se pacotes mais novos são instalados no servidor depois desse paso, 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 ambiente 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.

5. 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.

6. 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.

7. Desinstalar

Para desinstalar drbl e pacotes relacionados, rode:

/opt/drbl/sbin/drblsrv -u

e siga os passos.

Referências