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