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

Hace poco también salio al mercado "Getting Started with Processing", guía de bolsillo para principiantes en la herramienta que va por el mismo estilo del "Getting Started with Arduino" libro tan conocido por la comunidad de hardware libre, estos libros pueden comprarse en librerías o pueden comprarse las versiones digitales en PDF de los mismos. El libro incluye una introducción a la herramienta y el "Hola Mundo" de Processing, como comenzar a codificar, pintar en la pantalla, manejo de variables, interacción, manejo de fuentes e imágenes, movimiento; adicionalmente cubre características del lenguaje como la creación de funciones, manejo de programación orientada a objetos, uso de los arreglos; finalmente incluye un capitulo sobre como ir mas lejos con el desarrollo de aplicaciones 3D, exportar imágenes y comunicación con Arduino.