Introducción.
En el presente artículo se trata el tema de crear dos nuevos nodos trabajadores (c-wn3 y c-wn4) también virtualizados con KVM y agregarlos al cluster para aumentar su capacidad de cómputo.
Clonar las nuevas máquinas virtuales.
Gracias a las facilidades que provee la virtualización es posible evitar la necesidad de repetir la gran mayoría de tareas de instalación y configuración de los nodos al clonar a uno de ellos, en este caso crearemos los nuevos nodos a partir del c-wn1.
Desde el servidor de máquinas virtuales ejecutar los siguientes comandos.
ADVERTENCIA: para que la clonación se pueda realizar, la máquina virtual de orígen, en este caso c-wn1 deberá estar apagado.
$ virt-clone –connect=qemu:///system \
-o c-wn1 \
-n c-wn3 \
-f /u/vms/c-wn3.img
$ virt-clone –connect=qemu:///system \
-o c-wn1 \
-n c-wn4 \
-f /u/vms/c-wn4.img
Iniciar las máquinas virtuales.
Nuevamente desde el servidor es necesario ejecutar los siguientes comandos para iniciar las máquinas virtuales de los nodos trabajadores para su posterior configuración.
$ virsh start c-wn3
$ virsh start c-wn4
Conectarse a las máquinas virtuales.
Desde el equipo cliente que se utiliza para la administración de las máquinas virtuales ejecute los siguientes comandos.
$ virt-viewer -c qemu+ssh://ivy/system c-wn3
$ virt-viewer -c qemu+ssh://ivy/system c-wn4
Actualizar el hostname.
Editar el archivo /etc/sysconfig/network de cada uno de los nuevos nodos y actualizarlo con su información específica. Para el nodo c-wn3 utilizar el siguiente contenido.
NETWORKING=yes
NETWORKING_IPV6=no
GATEWAY=192.168.1.1
HOSTNAME=c-wn3.jorgeivanmeza.com
Para c-wn4 utilizar el siguiente contenido.
NETWORKING=yes
NETWORKING_IPV6=no
GATEWAY=192.168.1.1
HOSTNAME=c-wn4.jorgeivanmeza.com
Actualizar la dirección IP.
Editar el archivo /etc/sysconfig/network-scripts/ifcfg-eth0 de cada uno de los nuevos nodos y actualizarlo con su información específica. Para el nodo c-wn3 utilizar el siguiente contenido.
DEVICE=eth0
BOOTPROTO=static
TYPE=Ethernet
ONBOOT=yes
HWADDR=<dejar la existente>
NETMASK=255.255.255.0
IPADDR=192.168.1.213
Para c-wn4 utilizar la siguiente información.
DEVICE=eth0
BOOTPROTO=static
TYPE=Ethernet
ONBOOT=yes
HWADDR=<dejar la existente>
NETMASK=255.255.255.0
IPADDR=192.168.1.214
Reiniciar las máquinas c-wn3 y c-wn4 para que los cambios en la configuración recién realizados tengan efecto.
Actualizar la configuración de hosts.
Editar el archivo /etc/hosts del servidor c-head y actualizarlo con la información específica de cada uno de los nodos.
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.1.210 c-head.jorgeivanmeza.com c-head c-nfs.jorgeivanmeza.com c-nfs
192.168.1.211 c-wn1.jorgeivanmeza.com c-wn1
192.168.1.212 c-wn2.jorgeivanmeza.com c-wn2
192.168.1.213 c-wn3.jorgeivanmeza.com c-wn3
192.168.1.214 c-wn4.jorgeivanmeza.com c-wn4
Posteriormente es necesario replicar esta nueva especificación de los hosts a los demás nodos del cluster, para esto es necesario que todos se encuentren en ejecución.
# scp /etc/hosts c-wn1:/etc/hosts
# scp /etc/hosts c-wn2:/etc/hosts
# scp /etc/hosts c-wn3:/etc/hosts
# scp /etc/hosts c-wn4:/etc/hosts
Configurar la autenticación basada en el huésped para root.
En el nodo cabeza (c-head) ejecutar los siguientes comandos para listar las llaves de los hosts conocidos en el cluster.
# cd /root
# ssh-keyscan -t rsa,dsa c-head c-head.jorgeivanmeza.com c-nfs c-nfs.jorgeivanmeza.com c-wn1 c-wn1.jorgeivanmeza.com c-wn2 c-wn2.jorgeivanmeza.com c-wn3 c-wn3.jorgeivanmeza.com c-wn4 c-wn4.jorgeivanmeza.com > ssh_known_hosts
# mv ssh_known_hosts /etc/ssh/ssh_known_hosts
# chown root:root /etc/ssh/ssh_known_hosts
# chmod 644 /etc/ssh/ssh_known_hosts
Propagar el archivo ssh_known_hosts a los nodos trabajadores.
# scp /etc/ssh/ssh_known_hosts c-wn1:/etc/ssh/ssh_known_hosts
# scp /etc/ssh/ssh_known_hosts c-wn2:/etc/ssh/ssh_known_hosts
# scp /etc/ssh/ssh_known_hosts c-wn3:/etc/ssh/ssh_known_hosts
# scp /etc/ssh/ssh_known_hosts c-wn4:/etc/ssh/ssh_known_hosts
Creación del archivo de .shosts.
En el nodo cabeza (c-head) ejecutar los siguientes comandos.
# cut -d’ ‘ -f1 < /etc/ssh/ssh_known_hosts|sort -u | grep -v , > shosts
# mv shosts /root/.shosts
# chown root:root /root/.shosts
# chmod 600 /root/.shosts
Propagar el archivo .shosts a los nodos trabajadores.
# scp /root/.shosts c-wn1:/root/.shosts
# scp /root/.shosts c-wn2:/root/.shosts
# scp /root/.shosts c-wn3:/root/.shosts
# scp /root/.shosts c-wn4:/root/.shosts
Definir los archivos de configuración de Condor para los nuevos nodos del cluster.
En el nodo cabeza (c-head) ejecutar los siguientes comandos para especificar archivos de configuración según los hostnames de los nuevos nodos.
# cd /nfs/condor/condor-etc/
# ln -s condor_config.worker condor_config.c-wn3
# ln -s condor_config.worker condor_config.c-wn4
Establecer las ubicaciones locales necesarias para almacenar la información de registros y colas para los nuevos nodos.
# cd ~condor/hosts
# mkdir -p c-wn3/execute c-wn3/log c-wn3/spool
# mkdir -p c-wn4/execute c-wn4/log c-wn4/spool
# chmod a+rwx c-wn3/execute c-wn4/execute
# chmod +t c-wn3/execute c-wn4/execute
# chown -R condor:condor ~condor/hosts/c-wn3 ~condor/hosts/c-wn4
Se recomienda reiniciar el servicio de Condor o la máquina completa para garantizar que todos las modificaciones recién realizadas sean tenidos en cuenta.
Verificar la inclusión de los nuevos nodos al cluster.
Desde el nodo cabeza del cluster (c-head) ejecutar los siguientes comandos para verificar su pool de nodos.
# condor_status
Name OpSys Arch State Activity LoadAv Mem ActvtyTime
c-wn1.jorgeivanmez LINUX X86_64 Unclaimed Idle 1.780 246 0+00:00:04
c-wn2.jorgeivanmez LINUX X86_64 Unclaimed Idle 2.410 246 0+00:00:04
c-wn3 .jorgeivanmez LINUX X86_64 Unclaimed Idle 1.830 246 0+00:00:04
c-wn4 .jorgeivanmez LINUX X86_64 Unclaimed Idle 2.240 246 0+00:00:04
Total Owner Claimed Unclaimed Matched Preempting Backfill
X86_64/LINUX 4 0 0 4 0 0 0
Total 4 0 0 4 0 0 0
# condor_status -java
Name JavaVendor Ver State Activity LoadAv Mem ActvtyTime
c-wn1.jorgeivanmez Sun Micros 1.6.0_ Unclaimed Idle 1.780 246 0+00:00:04
c-wn2.jorgeivanmez Sun Micros 1.6.0_ Unclaimed Idle 2.410 246 0+00:00:04
c-wn3 .jorgeivanmez Sun Micros 1.6.0_ Unclaimed Idle 1.830 246 0+00:00:04
c-wn4 .jorgeivanmez Sun Micros 1.6.0_ Unclaimed Idle 2.240 246 0+00:00:04
Total Owner Claimed Unclaimed Matched Preempting Backfill
X86_64/LINUX 4 0 0 4 0 0 0
Total 4 0 0 4 0 0 0