r1 - 15 Feb 2009 - 12:20:31 - MarcoAndreFerreiraDiasYou are here: TWiki >  Main Web > LogBook > EntryDescriptionNo75

node 64 bits para cmssoft

Description

Instalação de um node 64 bits para os jobs do cmssoft. Foi feita usando o kickstart, primeiro baixando os pacotes necessários na osg-ce
yum install dhcp.i386
yum install tftp-server.i386
yum install system-config-netboot.i386 

DHCP

A configuração é no /etc/dhcp.conf inserindo o MAC Address da máquina
ddns-update-style none;
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;
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.150;

host node83 
{
        hardware ethernet 00:30:48:89:26:AD;
        fixed-address 192.168.1.83;
        filename "/tftpboot/linux-install/pxelinux.0";
}
   }
Depois inicie o serviço service dhcpd start

TFTP

Certifique-se que o /etc/xinetd.d/tftp esteja assim (principalmente a opção disable )
{
	socket_type		= dgram
	protocol		= udp
	wait			= yes
	user			= root
	server			= /usr/sbin/in.tftpd
	server_args		= /tftpboot
	disable			= no 
	per_source		= 11
	cps			= 100 2
	flags			= IPv4
}
Edite o arquivo /tftpboot/linux-install/pxelinux.cfg/default dando o local do seu arquivo para o kickstart e a interface de rede utilizada pelo servidor (a osg-ce) para fazer a instalação (no caso a rede interna, eth1)
DISPLAY msgs/message.txt
TIMEOUT 10
PROMPT  1
DEFAULT linux
    kernel vmlinuz
    append ks=nfs:192.168.1.150:/export/linux/kickstart/ks.cfg initrd=initrd.img  devfs=nomount ksdevice=eth1
   LOCALBOOT 0
Edite a mensagem apresentada no boot, também
47                                                                             07
47   Press:                                                                07
47      0741boot     0747 for normal boot               07
47      0741linux    0747 to install a new node         07
47                                                                                  07
Copie as imagens necessárias do próprio repositório:
cd /tftpboot/linux-install
wget ftp://ftp.scientificlinux.org/linux/scientific/46/x86_64/images/SL/pxeboot/vmlinuz
wget ftp://ftp.scientificlinux.org/linux/scientific/46/x86_64/images/SL/pxeboot/initrd.img
Copie o pxelinux.0 para o local apontado no seu arquivo de configuração do dhcp
cp /tftpboot/linux-install/pxelinux.0 /tftpboot/.

Kickstart

Gerado a partir de um /root/anaconda-ks.cfg de um node em operação, esta no local apontado pelo pxelinux.cfg/default , no nosso caso /export/linux/kickstart/ks.cfg:
install
nfs --server=192.168.1.150  --dir=/export/linux/scientific/46
lang en_US.UTF-8
langsupport --default en_US.UTF-8 en_US.UTF-8 pt_BR.UTF-8
keyboard br-abnt2
network --device eth1 --bootproto dhcp 
rootpw --iscrypted $1$iRzYaomV$ENFqdjD7qCeLaZn6SMoIB/
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc America/Sao_Paulo
bootloader --location=mbr --driveorder=sda
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all
part /boot --fstype ext3 --size=100 --asprimary
part / --fstype ext3 --size=10240 --asprimary
part /var --fstype ext3 --size=2048
part swap --size=2048 --asprimary
part /tmp --fstype ext3 --size=500
part /scratch --fstype ext3 --size=1 --grow
%packages
@ engineering-and-scientific
@ brazilian-support
@ admin-tools
@ portuguese-support
@ editors
@ system-tools
@ base-x
@ graphics
@ development-tools
@ misc-sl
@ gnome-desktop
@ dialup
@ apt-rpm
@ yum
@ openafs-client
@ server-cfg
-octave
-pvm
-units
kernel-smp
kernel
grub
-samba-client
-lam
-lapack
-blas
%post

NFS

Certifique-se que o /etc/exports contém as linhas necessárias para que a instalação seja realizada
/export/postinstall		192.168.1.0/24(rw,async,no_root_squash)
/export/linux/scientific/46     192.168.1.0/24(rw,async,no_root_squash)
/export/linux/kickstart		192.168.1.0/24(rw,async,no_root_squash)
Sem reiniciar o nfs
exportfs -a

Repositório para o Scientific Linux

O arquivo ks.cfg indica onde fica os pacotes do SL necessários. Criamos um repositório para isso
rsync -avzlH --delete --exclude=sites/Fermi --exclude=errata/debuginfo --exclude=errata/obsolete rsync://rsync.scientificlinux.org/scientific/46/x86_64/ /export/linux/scientific/46/

No node

Reinicie o node e aperte a tecla F12, para que a instalação seja feita.

Pós Instalação

No osg-ce, crie um diretório com os arquivos necessários para a instalação do node:
authorized_keys                                gmond.conf  node_instalar.sh      ntp.conf
condor                                         hosts       nsswitch.conf         pacman-3.26
ganglia-monitor-core-gmond-2.5.7-1.x86_64.rpm  mailnode    nsswitch.conf.rpmnew  step-tickers

O arquivo condor é o arquivo de inicialização do condor. O diretório mailnode contém os mesmos do /etc/sendmail

access          helpfile             mailertable.db   sendmail.cf.rpmnew  submit.cf.bak     virtusertable
access.db       local-host-names     Makefile         sendmail.mc         submit.cf.rpmnew  virtusertable.db
domaintable     local-host-names.db  sendmail.cf      sendmail.mc.rpmnew  submit.mc
domaintable.db  mailertable          sendmail.cf.bak  submit.cf           trusted-users

Todos estes arquivos são retirados de um node comum.

Execute então este script no node que será instalado

#!/bin/bash
TEMP=/teste
#Em FNODE coloque o primeiro nó do rack para acertar o physical view do gmond
RACK=5; FNODE=71;
mkdir $TEMP;
mount -t nfs 192.168.1.150:/export/postinstall $TEMP;
cd $TEMP;
cp ntp.conf /etc/.;
cp hosts /etc/hosts;
cp nsswitch.conf /etc/.;
cp step-tickers /etc/ntp/.;
cp condor /etc/init.d/condor;
cp gmond.conf  /etc/.;
#copiando a chave para fazer scp e ssh
mkdir /root/.ssh;
chmod 600 /root/.ssh;
cp authorized_keys /root/.ssh/.;
#configuracao de rede
mv /etc/resolv.conf /etc/resolv.conf.old;
echo domain grid >>/etc/resolv.conf;
echo nameserver 192.168.1.150 >>/etc/resolv.conf;
echo nameserver 143.108.30.90 >>/etc/resolv.conf;
echo nameserver 143.107.128.16 >>/etc/resolv.conf;
mv /etc/sysconfig/network /etc/sysconfig/network.old;
NNAME=`ifconfig eth1 | grep Bcast |cut -c31- | cut -d " " -f1`; 
echo NETWORKING=yes >>/etc/sysconfig/network;
echo HOSTNAME=node${NNAME}| cat >>/etc/sysconfig/network; 
echo GATEWAY=192.168.1.150| cat>>/etc/sysconfig/network;
echo NISDOMAIN=grid|cat>>/etc/sysconfig/network;
#para permitir o logwatch de enviar e-mail para osg-ce
echo root: root@osgce.grid|cat>>/etc/aliases;
#alterando a configuracao default de e-mails
mv /etc/mail /etc/mail.old; 
cp -pr $TEMP/mailnode /etc/mail;
chkconfig sendmail on;
mv /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth1.bak; 
cat /etc/sysconfig/network-scripts/ifcfg-eth1.bak| sed -e "/BOOTPROTO=dhcp/d"| sed -e "/ONBOOT=no/d"|  sed -e "/HWADDR/d"|cat
 >> /etc/sysconfig/network-scripts/ifcfg-eth1;
rm /etc/sysconfig/network-scripts/ifcfg-eth1.bak;
#echo ONBOOT=yes|cat>>/etc/sysconfig/network-scripts/ifcfg-eth1;
MACADDR=`ifconfig eth1 | grep HWaddr| cut -c39-`; echo HWADDR=${MACADDR}|cat>>/etc/sysconfig/network-scripts/ifcfg-eth1;echo 
BROADCAST=192.168.1.255|cat>>/etc/sysconfig/network-scripts/ifcfg-eth1;IP=`ifconfig eth1 | grep Bcast |cut -c21- | cut -d " "
 -f1`;
echo IPADDR=${IP}|cat>>/etc/sysconfig/network-scripts/ifcfg-eth1 ;
echo NETMASK=255.255.255.0|cat>>/etc/sysconfig/network-scripts/ifcfg-eth1;
echo NETWORK=192.168.1.0| cat >> /etc/sysconfig/network-scripts/ifcfg-eth1;
#Definindo ponto de montagem dos nodes
#echo osgce:/opt/osg-1.0.0 /OSG nfs rw,hard,bg,rsize=32768,wsize=32768,udp,nfsvers=3,addr=192.168.1.150 0 0 |cat >>/etc/mtab;
#echo acs:/hdacs /hdacs nfs rw,hard,bg,rsize=32768,wsize=32768,udp,nfsvers=3,addr=192.168.1.154 0 0 |cat >>/etc/mtab ;
#echo osgce:/home /home nfs rw,hard,bg,rsize=32768,wsize=32768,udp,nfsvers=3,addr=192.168.1.150 0 0 |cat >>/etc/mtab;
echo "osgce:/home    /home           nfs     rw,hard,bg,rsize=32768,wsize=32768,udp,nfsvers=3"|cat >>/etc/fstab;
echo "osgce:/opt/osg-1.0.0  /OSG            nfs     rw,hard,bg,rsize=32768,wsize=32768,udp,nfsvers=3"| cat>>/etc/fstab;
echo "acs:/hdacs /hdacs nfs rw,hard,bg,noauto,rsize=32768,wsize=32768,udp,nfsvers=3"|cat >>/etc/fstab;
#criando pontos de montagem
mkdir /OSG
chkconfig ntpd on;
echo ypserver 192.168.1.150|cat>>/etc/yp.conf;
chkconfig ypbind on;
service ypbind start;
#mkdir /usr/local/opt;
#ln -s /OSG /usr/local/opt/OSG;
ln -s /OSG /opt/osg-1.0.0;
mkdir /scratch/condor;
mkdir /scratch/OSG;
#configurando para o condor
#useradd -d /scratch/condor -u 521 condor;
chmod a+rw /scratch/OSG;
chown condor:condor /scratch/condor;
#ln -s /usr/local/opt/OSG/condor/etc/condor_config /scratch/condor/condor_config;
cd /scratch/condor; 
touch condor_config.local;
mkdir execute log spool;
chown condor condor_config.local execute log spool;
chkconfig --add condor;
#instalando o gmond
let RANK=NNAME-FNODE;
echo location \"'$RACK','$RANK',0\"| cat >>/etc/gmond.conf;
groupadd -g 104 ganglia;
useradd -d /var/lib/ganglia -s /bin/false -g ganglia -u 107 ganglia ;
rpm -ivh $TEMP/ganglia-monitor-core-gmond-2.5.7-1.x86_64.rpm;
#Para o tmpwatch
echo 'for d in /scratch/OSG/*; do' >>/etc/cron.daily/tmpwatch
echo '    if [ -d "$d" ]; then' >> /etc/cron.daily/tmpwatch
echo '         /usr/sbin/tmpwatch -f 192 \"$d\"' >>/etc/cron.daily/tmpwatch
echo '    fi' >>/etc/cron.daily/tmpwatch
echo 'done' >>/etc/cron.daily/tmpwatch
#comecando a instalacao do worker node client
cd $TEMP/pacman-3.26
source setup.sh
mkdir /opt/OSG-wn-client
cd /opt/OSG-wn-client
VDTSETUP_AGREE_TO_LICENSES=y
export VDTSETUP_AGREE_TO_LICENSES
VDTSETUP_INSTALL_CERTS=l
export VDTSETUP_INSTALL_CERTS
VDTSETUP_EDG_CRL_UPDATE=n
export VDTSETUP_EDG_CRL_UPDATE
VDTSETUP_ENABLE_ROTATE=y
export VDTSETUP_ENABLE_ROTATE
VDTSETUP_CA_CERT_UPDATER=n
export VDTSETUP_CA_CERT_UPDATER
pacman -trust-all-caches -get OSG:wn-client
#comecando a instalacao do glexec 
mkdir /opt/glexec
cd /opt/glexec
pacman -trust-all-caches    -get http://vdt.cs.wisc.edu/vdt_181_cache:Glexec
sed -i 's/yourmachine.yourdomain/osg-ce.sprace.org.br/g'  /etc/glexec/contrib/gums_interface/getmapping.cfg
source setup.sh
vdt-control --on
mkdir /opt/glexec/glite/etc
# lembrar de montar o /OSG 
mount -t nfs 192.168.1.150:/opt/osg-1.0.0 /OSG
mkdir /etc/grid-security;ln -s /OSG/globus/share/certificates /etc/grid-security/certificates
cp /OSG/glite/etc/vomses /opt/glexec/glite/etc/.
cd /;
umount $TEMP
rm -rf $TEMP;
Reinicie a máquina após isso.

Condor

A instalação do condor neste node foi feita em separado, por ser necessário usar os binários 64 bits
mkdir /opt/condor-x86_64
tar -xvzf condor-7.0.5-linux-x86_64-rhel5-dynamic.tar.gz
cd condor-7.0.5
./condor_configure --install --maybe-daemon-owner --install-log
/opt/condor-x86_64/post_install --install-dir /opt/condor-x86_64
cp /OSG/condor/etc/condor_config /opt/condor-x86_64/etc/condor_config
vim /opt/condor-x86_64/etc/condor_config
CONDOR_LOCATION         = /opt/condor-x86_64
Somente editando a última linha já é necessário.

Também modifique o arquivo de inicialização do condor /etc/init.d/condor

CONDOR_SBIN=/opt/condor-x86_64

Como queremos somente que os jobs do cmssoft sejam roteados para lá, edite o arquivo local de configuração do condor, /scratch/condor/condor_config.local

START =  (Owner == "cmssoft")

Agora partimos para a configuração na osg-ce. Primeiro edite a linha no servidor condor para rotear realmente os jobs do cmssoft para um node 64 bits, editando /OSG/condor/etc/condor_config

APPEND_REQUIREMENTS = ((Disk > 3000000 || machine == "osg-ce.sprace.org.br") && \
(UidDomain == "grid") && \
(machine != "osg-ce.sprace.org.br" || JobUniverse == 12) && (Owner != "cmssoft" || JobUniverse == 12 )) || \
((Owner == "cmssoft" && JobUniverse != 12 )  && (Arch == "X86_64" && OpSys == "LINUX") && (UidDomain == "grid") )

Como ainda mantemos o gatekeeper 32-bits, existe um script que insere o requerimento exigindo que os jobs que entram sejam executados em nodes nessa arquitetura, o que não queremos no nosso caso, logo comente, em $VDT_LOCATION/globus/lib/perl/Globus/GRAM/JobManager/condor.pm

#    $requirements .= " && Arch == \"" . $description->condor_arch() . "\" ";

Updates

Fulano em dd/mm/aaaa

Coloca o que fez.

Ciclano em dd/mm/aaaa

Mais comentarios

-- MarcoAndreFerreiraDias - 15 Feb 2009

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r1 | More topic actions
 
Home
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback