Minicluster:DRBL

De WikiLICC
Revisão de 23h16min de 27 de outubro de 2010 por Dago (Discussão | contribs) (Passo 3a)
Ir para: navegação, pesquisa

Diskless Remote Boot in Linux (DRBL)

Preamble

Este documento descreve como setup o ambiente "DRBL" em (para outros sistemas veja o original):

  • Fedora Core 13

Setup the Diskless Remote boot in Linux (DRBL) Environment

I. Configuração do Servidor Linux

  • Instale o Linux e configure todas as placas de rede. Neste texto, usamos eth0 para conectar a internet, enquanto que eth1, eth2, eth3 são para o DRBL (coloque o IP das placas de rede como IP privado (i.e. 192.168.x.x, no exemplo: eth1:192.168.101.254, eth2:192.168.102.254, eth3:192.168.103.254...)); IPs privados (e.g. 192.168.x.x) são usados para o ambiente DRBL. 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. Setting up clients to use the DRBL environment

         o There are four different scenarios where you can make clients boot from network: 1) the client has PXE network interface card, 2) the client has a floppy drive, 3) the client has a CDROM, 4) the client has a local hard drive. We use etherboot 5.4.3 as an example for cases 2-4. NOTE! With DRBL version 1.3.9 or later, if you want to use Etherboot, Etherboot bersion 5.4.0 or newer is required.
         o Case 1: The client has a PXE network interface card
               + Set the client's BIOS to boot from "LAN" or "network".
               + Take one of the Asus motherboards for example, in this manual file.
                    1. Page 4-24, you will see OnBoard LAN, there is a subfuncton "OnBoard LAN BOOT ROM", normally it's disabled, you have to enable it.
                    2. Usually you have to reboot it now, make the function re-read by BIOS.
                    3. After rebooting, enter BIOS setting again, this time, in Page 4-35, you have to make LAN boot as the 1st boot device.
               + That's it. Let client boot and enjoy DRBL!!!
         o Case 2: The client has a floppy drive.
               + <Step 4a> Get the image file first.
                     # Use the "universal" image /opt/drbl-etherboot/etherboot-net.zdsk in the DRBL server. It supports most modern network cards. (Ref: here. If this universal image fails, try using specific image for client's network card, the image file is located in /opt/drbl-etherboot/. As an example, if you have a Realtek 8139 network card, use the image /opt/drbl-etherboot/rtl8139.zdsk.
               + <Step 4b> Insert the floppy to floppy drive in DRBL server
                     # Run "cat /opt/drbl-etherboot/etherboot-net.zdsk > /dev/fd0" in the DRBL server.
                     # If you want to create the image floppy in M$ windows, download rawrite.exe or "RawWrite for windows" (http://uranus.it.swin.edu.au/~jn/linux/) to write the ROM image to floppy.
               + <Step 4c> Put this floppy to client's floppy drive, make sure the floppy is the first boot device in the client's BIOS. If everything was done correctly, after a few minutes, the clients will be waiting for you to login, All the accounts are same as the ones in server.
         o Case 3: Client has a CDROM (Reference):
               + 1) The "universal" image is located in /opt/drbl-etherboot/etherboot-net.iso
                 2) Burn the ISO to a CD:
                 cdrecord -v speed=12 fs=16m dev=0,0,0 -data etherboot-net.iso
                 (If necessary, modify "dev=0,0,0", run "cdrecord -scanbus" to get your CD burner.)
                 3) Ensure the PC is set to boot from CDROM, place the burned CD in the drive, and reboot. Done!
         o Case 4: client has a local hard drive
               + If the client has a local hard drive which is installed with the bootloader grub in GNU/Linux:
                 1. Copy the file "/opt/drbl-etherboot/etherboot-net.zlilo" to client's directory "/boot/" in its harddisk
                 2. Append one block in the client's /boot/grub/menu.lst or /boot/grub/grub.conf (depends on your distribution) like this:
                 ---------------
                 title Etherboot-PXE
                 kernel /boot/etherboot-net.zlilo
                 ---------------
                 3. Change the default boot to the corresponding one above, like "default 1", in menu.lst or grub.conf in client.
               + If the client is running M$ Windows XP/2K on its hard disk:
                 You can install WINGRUB. Put the file etherboot-net.zlilo in C:\, and the files: C:\boot.ini and C:\GRUB\MENU.LST look like: (This method is only suitable for installing wingrub in BOOT.INI (Tool -> Install grub -> Boot from BOOT.INI). If necessary, you can use other modes provides by WinGRUB):
                 boot.ini:
                 ---------------
                 [boot loader]
                 timeout=30
                 default=C:\GRLDR
                 [operating systems]
                 multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
                 C:\GRLDR="Etherboot"
                 ---------------
                 MENU.LST:
                 ---------------
                 timeout 7
                 title etherboot
                 root (hd0,0)
                 kernel /etherboot-net.zlilo
                 title Windows at (hd0,0)
                 root (hd0,0)
                 chainloader +1
                 ---------------
               + If the client has local hard drive which is installed with M$ Windows 9x:
                 1. Copy the file "/opt/drbl-etherboot/etherboot-net.com" to client's hard disk
                 2. Rename it so that it is shorter in client, for example, "eb-net.com".
                 3. Write a multi-boot config file in the client (e.g. add one paragraph to run "eb-net.com").


V. Additional usage for the DRBL environment

         o Some useful scripts are located in the directories /opt/drbl/sbin and /opt/drbl/bin in the server, Take a look at them. Usage will appear by running them without parameters.
         o The most useful command is /opt/drbl/sbin/dcs which sets the client's default boot mode. Here's a screenshot of what it looks like:
           drbl_client_switch screenshot
         o Another useful command is drbl-SL.sh, it can load Small GNU/Linux (DSL, PuppyLinux, INSERT, PLD, Debian Live, GeeXbox, PUD-Linux...) into DRBL environment. By doing this, the client can use that Small GNU/Linu after booting via PXE. The client still can work even if the network cable is unplugged. It's fire and forget. For more info, check here.

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

Para desinstalar drbl e pacotes relacionados, rode:

/opt/drbl/sbin/drblsrv -u

e siga os passos.

References