Upgrade da Farm

Description

A primeira idéia é construir um nó que fosse a imagem de um nó comum da rede, e testar a upgrade usando dns+pxe+kickstart para automatizar a upgrade dos nós.

Replicacão de disco-cobaia

Iremos copiar a imagem de um hd para um diretorio /export/linux/sda1.img:
[root@node15:/export/linux]# dd if=/dev/sda of=sda1.img
71687372+0 records in
71687372+0 records out
O próximo passo é ligar a porta ethernet sobrando da spgrid04 e ligá-la em qualquer porta de um switch do rack B. Assim podemos acessar a rede interna.

Logamos a spgrid04 e bootamos usando o CD 4.1 do scientific linux, usando a opcão linux rescue. Além do idioma (english), tipo do teclado (br-abnt2), nesse momento ele pedirá se você deseja configurar a rede. Configuramos a porta eth1 ligada ao switch com ip 192.168.1.104 e netmask 255.255.255.0. Não monte as particões.

Para acessar a sprace devemos ter acesso ssh. Logo modificamos momentâneamente o /etc/ssh/sshd_config, comentando as linhas:

#PermitRootLogin no
#PasswordAuthentication no
e reiniciamos:
[root@sprace ~]# /etc/init.d/sshd restart
Agora voltamos ao aquário, e no prompt digitamos:
mkdir teste
mount -t nfs 192.168.1.200:/export /teste
dd if=/teste/linux/sda1.img of=/dev/sda
Ou seja, exportamos a imagem na sprace, demos um dd verificando o arquivo sda1.img e mandamos para o /dev/sda da máquina clone. Depois de algum tempo, configure a rede do nó recém criado:
umount /teste
mount /dev/sda2 /teste
vim /teste/etc/sysconfig/network
vim /teste/etc/sysconfig/network-scripts/ifcfg-eth0
umount /teste
Temos que configurar o ip da spgrid04 (HOSTNAME=spg04 para a rede interna)-> 192.168.1.104, NISDOMAIN=grid, GATEWY=192.168.1.150. No outro arquivo, lembramos de modificar o HWADDR da eth0 (00:30:48:71:D2:48) Temos que configurar o ip da spgrid04 (HOSTNAME=spg04 para a rede interna)-> 192.168.1.104, NISDOMAIN=grid, GATEWY=192.168.1.150. No outro arquivo, lembramos de modificar o HWADDR da eth0 (00:30:48:71:D2:48),
NETWORKING=yes
HOSTNAME=spg04
GATEWAY=192.168.1.150
NISDOMAIN=grid
[mdias@spg04 mdias]$ more /etc/sysconfig/network-scripts/ifcfg-eth1
# Intel Corp.|82541GI/PI Gigabit Ethernet Controller
DEVICE=eth1
BOOTPROTO=static
BROADCAST=192.168.1.255
HWADDR=00:30:48:71:D2:48
IPADDR=192.168.1.104
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
TYPE=Ethernet
[mdias@spg04 mdias]$ more /etc/sysconfig/network-scripts/ifcfg-eth0
# Intel Corp.|82541GI/PI Gigabit Ethernet Controller
DEVICE=eth0 BROADCAST=192.168.1.255
HWADDR=00:30:48:71:D2:49
IPADDR=192.168.1.104
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=no   <---------------Só a eth1 é ativada!!!

A principio não temos que modificar o grub (ou seja mountar a /dev/sda1, que é a particão /boot na criada /teste, modificar o /teste/grub/menu.lst e dar um grub-install /dev/sda), pois tinhamos um scientific linux de mesma versão instalado antes.

Tiramos o cd e modificamos o Physical View do gmond:

[mdias@spg04 mdias]$ more /etc/gmond.conf
name "SPGRID Cluster"
owner "SPRACE-HEP"
url "http://spgrid.if.usp.br/"
num_nodes  5
setuid ganglia
location "6,0,0"
[root@spg04 mdias]$ /etc/init.d/gmond restart
para ficar num rack virtual 6.

Replicacão dos discos-Update

A replicacão dos discos não é necessária para a upgrade, e sim para nós de teste. Os procedimentos feitos a seguir foram aplicados ao nó 80: Na sprace:

  • Se logue em um nó que seja da mesma fase que o que você deseja replicar (no nosso exemplo o nó 78). Como o /raid0 dos nós é um diretório da spraid montado via nfs com bastante espaco vamos fazer uma imagem aí:
ssh node78
cd /raid0/fase1_bck
dd if=/dev/sda of=sda1.img
Depois de um bom tempo teremos a imagem pronta.
  • Verifique se o dhcpd esta ativo.
No aquário:

* Como foi colocado um disco novo, não era possível a maquina bootar e ele automaticamente entrou no boot remoto (isto deve ser habilitado na sprace; verifique se o dhcp esta inicializado

/etc/init.d/dhcpd start
). Lembre-se que F12 habilita o boot remoto na inicializacão.
  • Fique esperto quando aparecer a tela escrito itautec com as općões de boot. Coloque
linux single
automaticamente a rede é configurada. Peća para ele não montar os discos e ele abrirá um shell. As máquinas da rede estarão acessíveis pelo endereco de IP e não o nome.
  • monte o /raid0 nesta máquina:
mkdir teste
mount -t nfs 192.168.1.100:/raid0 /teste
dd if=/teste/fase1_bck/sda1.img of=/dev/sda
Mais um tempo de espera!
  • Feito isso desmonte o diretório /teste e reboote sem o cabo de rede. Modifique os arquivos necessários descritos acima. * O grub é instalado automaticamente!*

Upgrade dos nós

Vamos agora criar o mirror de instalacão do SL 4.4 no /export/linux/ (seguindo aproximadamente a receita encontrada em https://www.scientificlinux.org/download/mirroring/mirror.ftp)

[root@sprace ~]cd
[root@sprace ~]mkdir /export/linux/SL_44_i386
[root@sprace ~]# vim download.verbose
set ftp:list-options -a
open ftp.scientificlinux.org/linux/scientific/44/i386
lcd /export/linux/SL_44_i386
mirror --delete --exclude sites/Fermi --exclude errata/debuginfo
--exclude errata/obsolete --verbose=4
quit
[root@sprace ~] nohup lftp -f download.verbose &
O que demorou umas 3 horas, aproximadamente. Agora vamos comecar a ajustar o dhcp para entregar um ip logo de cara para o pxe:

[root@sprace ~]# more /etc/dhcpd.conf

# sample configuration file for DHCP ISC 3.0

ddns-update-style none;

# Definition of PXE-specific options
# Code 1: Multicast IP address of bootfile
# Code 2: UDP port that client should monitor for MTFTP responses
# Code 3: UDP port that MTFTP servers are using to listen for MTFTP requests
# Code 4: Number of seconds a client must listen for activity before trying
#         to start a new MTFTP transfer
# Code 5: Number of seconds a client must listen before trying to restart
#         a MTFTP transfer

option space PXE;
option PXE.mtftp-ip               code 1 = ip-address;
option PXE.mtftp-cport            code 2 = unsigned integer 16;
option PXE.mtftp-sport            code 3 = unsigned integer 16;
option PXE.mtftp-tmout            code 4 = unsigned integer 8;
option PXE.mtftp-delay            code 5 = unsigned integer 8;
option PXE.discovery-control      code 6 = unsigned integer 8;
option PXE.discovery-mcast-addr   code 7 = ip-address;

# PXE specific options
class "pxeclients" {
  match if substring (option vendor-class-identifier, 0, 9) =
         "PXEClient";
  option vendor-class-identifier "PXEClient";
  vendor-option-space PXE;
  option PXE.mtftp-ip 0.0.0.0;
}

subnet 200.136.80.0 netmask 255.255.255.0
   {
   }
subnet 192.168.1.0 netmask 255.255.255.0 {
  deny unknown-clients;
  min-lease-time 300;
  default-lease-time 1800;
  max-lease-time 1800;
  use-host-decl-names on;
  option subnet-mask 255.255.255.0;
  option routers 192.168.1.200;

host spg04
{
        hardware ethernet 00:30:48:71:D2:48;
        fixed-address spg04;
        filename "/tftpboot/pxelinux.0";
}
   }
[root@sprace ~]# /etc/init.d/dhcpd start
Aqui só mostrei a linha da spg04. Observe que ela aponta para o /tftpboot/pxelinux.0 para acionar o pxe do nó.

Devemos configurar o xinet.d

[root@sprace ~]# more /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers,
#       \
#       and to start the installation process for some operating systems.
service tftp
{
        disable                 = no
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = /tftpboot
        per_source              = 11
        cps                     = 100 2
#       flags                   = IPv4
}
[root@sprace ~]# /etc/init.d/xinetd restart	
Basicamente é setar o disable como no, existia um -s no server_args e comentamos o flags.

Agora fomos no http://rpmfind.net e pegamos o tftp-hpa e instalamos na sprace:

[root@sprace ~]# rpm -ivh tftp-hpa-0.32-2.i386.rpm
E comecamos a construir a arvore de diretório do /tftpboot na mão:
[root@sprace ~]# cd /tftpboot
[root@sprace tftpboot]# mkdir pxelinux.cfg
[root@sprace tftpboot]# vim pxelinux.cfg/default
#SERIAL 1 19200

# Mensagem a ser apresentada
DISPLAY msgs/message.txt

# timeout de espera
TIMEOUT 100

# Sempre mostrar o prompt
PROMPT  1

# Default e' realizar a instalacão
DEFAULT linux

LABEL linux
    kernel vmlinuz
    append ks=nfs:192.168.1.200:/export/linux/kickstart/ks.cfg initrd=initrd.img  devfs=nomount ksdevice=eth0
#console=ttyS1,19200

LABEL boot
    LOCALBOOT 0
A linha append é um argumento passado para o kernel vmlinuz no diretorio /tftpboot que será bootado. Logo deve ser uma linha única. ele aponta para o ks.cfg. Como temos duas interfaces de rede, devemos setar o ksdevice para indicar por qual delas o kickstart ira "puxar" os arquivos de instalacão (mistério: a placa de rede ligado na rede interna é a eth1, mas instalacão só funcionou setando para eth0!).

Configuramos uma mensagem como se fosse o lilo ou o grub:

[root@sprace tftpboot]# mkdir msgs
[root@sprace tftpboot]# vim msgs/message.txt
Mensagem a ser apresentada no momento de boot

47                                              07
47               ITAUTEC CLUSTER                07
47               0741Boot Management0747                07
47                                              07
47   Press:                                     07
47      0741boot     0747 for normal boot               07
47      0741linux    0747 to install a new node         07
47                                              07

O mais importante é que o nó consiga buscar da sprace o pxelinux.0 (vem na instalacão do tftpboot), um kernel (vmlinuz) e o initrd.img que vamos pegar do repositório (na verdade acho que poderia ser qualquer kernel e initrd.img!!)

[root@sprace tftpboot]# cp  /export/linux/SL_44_i386/images/SL/pxeboot/vmlinuz /tftpboot/.
[root@sprace tftpboot]# cp /export/linux/SL_44_i386/images/SL/pxeboot/initrd.img /tftpboot/.
[root@sprace tftpboot]# cp /tftpboot/linux-install/pxelinux.0 .
[root@sprace tftpboot]# ls /tftpboot/
initrd.img  linux-install  msgs  pxelinux.0  pxelinux.cfg  vmlinuz

O ks.cfg foi criado usando uma interface gráfica na sprace, o Kickstart Configurator (no Applications->System Tools). Em qualquer um dos nós existe um arquivo /root/anaconda-ks.cfg que é feito pelo instalador do SL linux. Exporte ele para sprace, e carregue no aplicativo usando File-> Open File. O importante é ajustar o Instalation Method. O arquivo deve ficar como abaixo:

[root@sprace mdias]# more /export/linux/kickstart/ks.cfg
#Generated by Kickstart Configurator
#platform=x86, AMD64, or Intel EM64T

#System  language
lang en_SG
#Language modules to install
langsupport en_SG
#System keyboard
keyboard br-abnt2
#System mouse
mouse
#Sytem timezone
timezone America/Sao_Paulo
#Root password
rootpw --iscrypted $1$PaanCc7b$YxIe3kD9qpT0kGjyKBQSM.
#Upgrade existing installation
upgrade
#Use NFS installation Media
nfs --server=192.168.1.200  --dir=/export/linux/SL_44_i386/
#System bootloader configuration
bootloader --location=mbr
#System authorization infomation
auth  --useshadow  --enablemd5
#Network information
network --bootproto=static --ip=192.168.1.101 --netmask=255.255.255.0
--gateway=192.168.1.150 --nameserver=143.107.128.16,143.107.128.17
--device=eth0
network --bootproto=dhcp --device=eth1

Agora vamos entrar no aquário, rebootar o nó, entrar na bios e colocar a primeira placa de rede como primeiro boot device. Depois da instalacão devemos dar reboot e tirar a primeira placa de rede e voltar a configuracão original.

Basicamente isto subiu a spg04.

Depois da verificamos que o servico yum roda no cron atualizando o sistema automaticamente, o que não é desejado.

Updates

Marco em 03/05/2007

  • Todos os nós devem ter no /etc/sysconfig/network-scripts/ifcfg-eth1 a linha HWADDR preenchida senão a interface de rede é trocada depois da upgrade nestas versões do SL.
  • Para que a receita funcionasse no nós é necessario modifica, na sprace o ksdevice para eth1 no /tftpboot/pxelinux.cfg/default
  • Foi comentada a linha sobre configuracão de rede e colocada uma linha para desligar os servicos desnecessários após a instalacao no ks.cfg:
[root@sprace ~]# more /export/linux/kickstart/ks.cfg
#Generated by Kickstart Configurator
#platform=x86, AMD64, or Intel EM64T

#System  language
lang en_SG
#Language modules to install
langsupport en_SG
#System keyboard
keyboard br-abnt2
#System mouse
mouse
#Sytem timezone
timezone America/Sao_Paulo
#Root password
rootpw --iscrypted $1$PaanCc7b$YxIe3kD9qpT0kGjyKBQSM.
#Upgrade existing installation
upgrade
#Use NFS installation Media
nfs --server=192.168.1.200  --dir=/export/linux/SL_44_i386/
#System bootloader configuration
bootloader --location=mbr
#System authorization infomation
auth  --useshadow  --enablemd5
#Network information
#network --bootproto=static --ip=192.168.1.101 --netmask=255.255.255.0 --gateway=192.168.1.150 #--nameserver=143.107.128.16,143.107.128.17 --device=eth0
#network --bootproto=dhcp --device=eth1
%post
/sbin/chkconfig yum off
/sbin/chkconfig iiim off
/sbin/chkconfig ccsd off
/sbin/chkconfig pcmcia off
A linha %post desliga o yum, iiim ccsd e pcmcia.

  • Nos nos da primeira fase para fazer a upgrade mudavamos na Bios boot_> boot device priority-> IBA GE SLOT 310V. Nos nos da segunda fase o dispositivo era IBA GE SLOT 320V e nos nos da terceira IBA GE SLOT 0401. As vezes é necessário, se o boot remoto nao esta habilitado coloca-lo na bios na aba PCI. Importante : depois verificamos que o trabalho enorme de ficar modificando a bios pode ser suprimido apertando F12 na inicializacao! Assim não é necessário modificar a bios e ele vai para o boot remoto automaticamente!
  • Comentamos ainda a última linha do /etc/inittab
#co: 12345:respaw:/sbin/agetty ttyS0 9600 vt100_nat
dos nós com a porta serial ligada no nobreak. Assim o servico agetty nao entope os e-mails com erro na porta serial nestes nós por existir dois servicos usando a mesma porta. Devemos fazer com que o kernel leia este novo inittab:
telinit q

Ciclano em dd/mm/aaaa

Mais comentarios
Topic attachments
I Attachment History Action Size Date Who Comment
Unknown file formatEXT default r1 manage 0.4 K 2007-05-03 - 12:35 UnknownUser arquivo para o tftpboot
Unknown file formatconf dhcpd.conf r1 manage 12.0 K 2007-05-03 - 12:20 UnknownUser Arquivo para o dhcp
Unknown file formatimg initrd.img r1 manage 3511.9 K 2007-05-03 - 12:28 UnknownUser initrd para bootar remoto
Unknown file formatcfg ks.cfg r1 manage 0.9 K 2007-05-03 - 12:23 UnknownUser configuracao para o kickstart
Unknown file formatrpm tftp-hpa-0.32-2.i386.rpm r1 manage 17.0 K 2007-05-03 - 12:31 UnknownUser  
Unknown file formatEXT vmlinuz r1 manage 1469.1 K 2007-05-03 - 12:27 UnknownUser kernel para bootar remoto
Topic revision: r2 - 2007-05-03 - MarcoAndreFerreiraDias
 

This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback

antalya escort bursa escort eskisehir escort istanbul escort izmir escort