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

Topic revision: r1 - 2009-02-15 - MarcoAndreFerreiraDias
 

This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 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