Aug 01

Introducción.

ArchLinux es una distribución que me sigue pareciendo interesante, especialmente por su rapidez y transparencia en términos de los paquetes que instala: únicamente los solicitados.  Por ahora es la distribución que estoy utilizando para hacer las pruebas y experimentos que se me ocurren, a excepción del proyecto de Grid que requiere explícitamente utilizar nodos con Scientific Linux.

Aparentemente esta distribución no se encuentra basada en ninguna otra que haya utilizado anteriormente, esto trae para mi un agradable obstáculo ya que desconozco como realizar la mayoría de los procedimientos habituales como cambiar el hostname, activar sudo o actualizar sus paquetes entre muchas otras cosas.  Así que todo es nuevo y todo debe ser explorado y experimentado lo que me hace evocar recuerdos de hace mas de 10 años cuando cuando me iniciaba en el uso de Linux.

En este artículo se describe como realizar la configuración de una dirección IP dinámica gracias a DHCP y su contraparte estática, la cual tiene un detalle muy pequeño pero importante con su puerta de enlace.

Procedimiento.

Configuración de la IP dinámica.

# vi /etc/rc.conf

eth0=”dhcp”
INTERFACES=(eth0)

Configuración de una IP estática.

# vi /etc/rc.conf

eth0=”eth0 192.168.1.222 netmask 255.255.255.0 broadcast 192.168.1.255
INTERFACES=(eth0)
gateway=”default gw 192.168.1.1
ROUTES=(gateway)

Nótese que se removió el símbolo (!) de la variable gateway en la asignación de ROUTES, si esto no se realiza, el enrrutador por defecto no será agregado a las rutas estáticas definidas al inicio del sistema operativo.

Tagged with:



En August 1 de 2010, Jorge Iván Meza Martínez escribió acerca de Asignar una dirección IP estática en ArchLinux 2010.05 x64.
Jul 14

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

Tagged with:



En July 14 de 2010, Jorge Iván Meza Martínez escribió acerca de Cluster-C: clonar dos nuevos nodos virtualizados con KVM al cluster.
Jun 07

Introducción.

En el presente artículo se especifican los pasos necesarios para crear las máquinas virtuales de los nodos trabajadores (worker nodes) a partir de la máquina virtual de la cabeza del cluster, la cual hasta ahora tiene una configuración básica y general para todos los nodos.

Crear las máquinas virtuales.

Desde el servidor de máquinas virtuales ejecutar los siguientes comandos para crear a los nodos trabajadores como clones inicialmente del nodo cabeza.

ADVERTENCIA: para que la clonación se pueda realizar, la máquina virtual de orígen, en este caso c-head, deberá estar apagada.

$ virt-clone --connect=qemu:///system  \
-o c-head \
-n c-wn1 \
-f /u/vms/c-wn1.img \
--debug --force

$ virt-clone --connect=qemu:///system  \
-o c-head \
-n c-wn2 \
-f /u/vms/c-wn2.img \
--debug --force

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-wn1

$ virsh start c-wn2

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-wn1

$ virt-viewer -c qemu+ssh://ivy/system c-wn2

Actualizar la configuración de hosts.

Editar el archivo /etc/hosts y actualizarlo con la información específica para cada uno de los nodos.  Para el c-wn1 utilizar el siguiente contenido.

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

Para c-wn2 utilizar la siguiente información.

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

Actualizar el hostname.

Editar el archivo /etc/sysconfig/network y actualizarlo con la información específica para cada uno de los nodos.  Para el nodo c-wn1 utilizar el siguiente contenido.

NETWORKING=yes
NETWORKING_IPV6=no
GATEWAY=192.168.1.1
HOSTNAME=c-wn1.jorgeivanmeza.com

Para c-wn2 utilizar la siguiente información.

NETWORKING=yes
NETWORKING_IPV6=no
GATEWAY=192.168.1.1
HOSTNAME=c-wn2.jorgeivanmeza.com

Actualizar la dirección IP.

Editar el archivo /etc/sysconfig/network-scripts/ifcfg-eth0 y actualizarlo con la información específica para cada uno de los nodos.  Para el nodo c-wn1 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.211

Para c-wn2 utilizar la siguiente información.

DEVICE=eth0
BOOTPROTO=static
TYPE=Ethernet
ONBOOT=yes
HWADDR=xxx
NETMASK=255.255.255.0
IPADDR=192.168.1.212

Reiniciar.

Reiniciar las máquinas virtuales c-wn1 y c-wn2 para que los cambios recién realizados tengan efecto.

# reboot

Tagged with:



En June 7 de 2010, Jorge Iván Meza Martínez escribió acerca de Cluster-C: Creación de los “worker nodes” del cluster y su configuración de red.
Jun 07

Introducción.

En el presente artículo se detalla el procedimiento para crear la máquina virtual de la cabeza (head) del cluster a partir de la máquina virtual genérica creada anteriormente además se realizan ajustes de configuración, incluyendo la red, que son genéricos a todos los demás nodos.

Creación de la máquina virtual para c-head.

Clonar la máquina virtual genérica con la especificación del nuevo nodo.

$ virt-clone --connect=qemu:///system  \
-o scientificlinux-5.5_x64-general \
-n c-head \
-f /u/vms/c-head.img \
--debug --force

Desde el servidor iniciar la máquina virtual recién creada.

$ virsh start c-head

Desde el equipo cliente donde se esté realizando la administración de las máquinas realice la conexión con la máquina recién iniciada.

$ virt-viewer -c qemu+ssh://ivy/system c-head

Inicie una sesión con el usuario root para realizar las siguientes tareas de administración.

Desactivar el inicio del sistema de ventanas.

La siguiente modificación impide que se inicie automáticamente el sistema de ventanas del sistema operativo, esto con el fin de agilizar su inicio y disminuír los riesgos de seguridad relacionados con sus protocolos.  En términos del cluster este paso es opcional y de ser necesario puede omitirse.  De cualquier manera el sistema de ventanas puede ser iniciado manualmente mediante el comando startx.

Modifique el nivel de ejecución por defecto (5) al multiusuario sin ventanas (3).

# vi /etc/inittab

id:3:initdefault:

Desactivar servicios.

Desactivcación del firewall.

La desactivación del firewall es temporal y se realiza mientras se configuran los nodos, posteriormente es necesario restaurarlo previos ajustes a la configuración.  No se recomienda que los nodos permanezcan conectados a una red pública como Internet durante el proceso de instalación, especialmente en esta etapa en la que carecen de firewall.

# chkconfig --list iptables

iptables    0:off    1:off    2:on    3:on    4:on    5:on    6:off

# chkconfig iptables off

Desactivcación de la actualización automática de Yum.

Por su parte la actualización automática del sistema operativo es considerada como un riesgo para el cluster ya que es posible que actualice paquetes críticos a nuevas versiones que no hayan sido probadas y que desestabilicen al servidor.  De cualquier manera, es posible verificar manualmente cuales son los paquetes suceptibles de ser actualizados mediante la ejecución del comando yum check-update y de forzar la actualización manualmente mediante la invocación del comando yum update.

# /etc/init.d/yum stop

# chkconfig --list yum

yum    0:off    1:off    2:on    3:on    4:on    5:on    6:off

# chkconfig yum off

Configuración del archivo de hosts.

La configuración de este archivo es esencial para poder identificar los diferentes nodos del cluster a partir de su nombre, especialmente en etapas tempranas en las que aún no se cuenta con un servicio de DNS que los incluya.

Los nombres de los diferentes nodos que componen el cluster corresponden a la siguiente definición.

  • El nodo principal: c-head.
  • El nodo que expone el sistema de archivos compartido: c-nfs, corresponderá físicamente con la misma máquina de c-head.
  • Los nodos de procesamiento (worker nodes) serán c-wn1 y c-wn2 respectivamente.

# vi /etc/hosts

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

Configuración del hostname.

# vi /etc/sysconfig/network

NETWORKING=yes
NETWORKING_IPV6=no
GATEWAY=192.168.1.1
HOSTNAME=c-head.jorgeivanmeza.com

El valor de la variable GATEWAY debe ajustarse según la dirección IP de la pasarela real de la red.

Configuración de la dirección IP.

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=static
TYPE=Ethernet
ONBOOT=yes
HWADDR=<dejar la existente>
NETMASK=255.255.255.0
IPADDR=192.168.1.210

El valor de la variable IPADDR debe coincidir con la dirección IP del servidor según la planeación realizada (ver /etc/hosts).

Reiniciar el servicio de red para tomar en cuenta los cambios recién realizados.

# /etc/init.d/network restart

Configuración de los servicios de nombres a utilizarse.

# vi /etc/nsswitch.conf

#hosts: db files nisplus nis dns
hosts:  files dns

Configuración de los servidores DNS.

En esta sección es necesario que se ajusten las direcciones IP de los servidores DNS que se van a utilizar.  En este caso se van a utilizar los servidores DNS públicos de Google.

# vi /etc/resolv.conf

search jorgeivanmeza.com
nameserver 8.8.8.8
nameserver 8.8.4.4

Detener al servidor.

# halt

Enlaces.

Tagged with:



En June 7 de 2010, Jorge Iván Meza Martínez escribió acerca de Cluster-C: Creación del nodo “head” del cluster y su configuración de red.