Document

Anuncio
C3 – Cluster Command & Control suite
C3 es un paquete de libre distribución, desarrollado en el Oak Ridge National Laboratory para el cluster
Linux HighTORC, que ofrece un conjunto de comandos (en perl y phyton) que permiten gestionar de
manera cómoda un sistema de tipo cluster.
Consta de una interfaz de línea de comando que permite ejecutar un mismo comando en todos (o parte) de
los nodos que componen la máquina. Los comandos de C3 permiten al administrador efectuar operaciones
tales como reinicio y apagado de los hosts de manera remota, consulta de procesos y/o usuarios,
verificación y creación de sistemas de archivos, copiado de información, etc. Los comandos de C3 pueden
ser invocados desde otras aplicaciones; por ejemplo, desde alguna interfaz gráfica (GUI) como M3C.
La versión actual, v4.x, es multithread y ha sido diseñada para incrementar la escalabilidad del paquete a
clusters más grandes. También permite administrar múltiples clusters.
Instalación
El paquete se puede bajar desde la dirección: http://www.csm.ornl.gov/torc/C3/
En el fichero INSTALL se detallan los pasos a seguir para realizar la instalación y la configuración del
paquete. En el fichero README se indica cómo especificar un cluster en el fichero /etc/c3.conf.
Antes de proceder a la instalación hay que asegurarse que se tiene instalado Rsync, OpenSSL, OpenSSH,
PERL y Python. Si es necesario, hay que instalar Install Systemimager. También hay que asegurarse de
que tenemos activo el DNS (/etc/hosts...).
Para instalarlo:
[clap00@g000002 ~]$ wget http://www.csm.ornl.gov/torc/C3/Software/c3-4.0.1.tar.gz
[clap00@g000002 ~]$ tar zxf c3-4.0.1.tar.gz -C /tmp
[clap00@g000002 ~]$ /tmp/c3-4.0.1/install
Para que el comando ckill funcione hay que copiar el comando ckillnode en cada uno de los nodos;
por ejemplo, en /opt/c3-4:
[clap00@g000002 ~]$ cexec mkdir /opt/c3-4
[clap00@g000002 ~]$ cpush /opt/c3-4/ckillnode
Fichero de configuración
C3 necesita que en el directorio /etc exista un fichero (c3.conf) con la descripción de la máquina. Se
puede generar con cualquier editor de texto. Para el caso del cluster que tenemos instalado, el contenido
de dicho fichero es el siguiente:
cluster cluster32 {
g000002:nodo00 #head node
dead 0
nodo0[1-9]
nodo[10-31]
acpt48
acpt49
acpt51
}
cluster32 es el nombre que queremos dar al cluster, y entre llaves aparecen los nodos que lo
componen. El primer nodo es el head del cluster, y aparece con los dos nombres que tiene asociados a las
correspondientes tarjetas de red, la externa y la interna.
Se permite introducir nodos dead. Son nodos que no existen, y sirven para que la numeración de los nodos
reales no cambie, comience desde 1, etc.
También se pueden excluir selectivamente nodos poniendo la palabra exclude. Por ejemplo, si en el cluster
anterior pusiéramos exclude nodo09 estaríamos indicando que dicho nodo no se tuviera en cuenta en
la ejecución de los comandos C3. Esto permite no tener en cuenta un nodo cuando, por ejemplo, está
averiado. Es importante conocer esta estructura, porque a la hora de ejecutar los comandos hay que
especificar en qué rango de nodos queremos hacerlo.
Comandos
C3 ofrece los siguientes comandos:
Gestión de nodos
cshutdown
ckillnode
clist
cname
cnum
Manejo de ficheros
Ejecución remota
cget
cpush
cpushimage
crm
ckill
cexec
cexecs
Los comandos de C3 tienen la siguiente estructura:
comando [OPCIONES] [MAQUINA] parámetros
El campo OPCIONES es distinto para cada comando; para saber las opciones de cada uno de ellos, se
puede ejecutar el comando con la opción –h, y se imprime una pequeña pantalla de ayuda del comando.
En MAQUINA se especifica el conjunto de nodos sobre los que se va a ejecutar el comando. Si no se pone
nada, el comando se ejecutará sobre todos los nodos que estén descritos en el fichero /etc/c3.conf.
Se pueden especificar subconjuntos de nodos, por ejemplo, poniendo en dicho campo: cluster32:1-4.
En este caso, el comando se ejecutaría sólo en los nodos del 1 al 4.
> cshutdown
Permite apagar, reiniciar o suspender un nodo. Las opciones son las mismas del comando shutdown en
un sistema Linux. La opción t permite especificar el tiempo que se esperará para ejecutar la acción.
Ejemplo:
[clap00@g000002 ~]$
cshutdown r t 0
> clist, cname, cnum
Estos comandos permiten ver la estructura del cluster (clist), conocer los nombres de los nodos de un
cluster (cname), o obtener el índice dentro del cluster de un nodo concreto (cnum). Ejemplos:
[clap00@g000002 ~]$ clist
[clap00@g000002 ~]$ cname cluster32:0-1
[clap00@g000002 ~]$ cnum nodo20
> cget
Copia archivos de una cierta ubicación en los nodos. Ignora enlaces y directorios. Si existe un nombre de
archivo con el mismo nombre, lo renombra con un sufijo formado por el nombre del nodo del cluster.
Ejemplo:
[clap00@g000002 ~]$
cget /etc/rc.d/rc.local
> cpush
Permite mover archivos del nodo principal a los nodos.
Ejemplo:
[clap00@g000002 ~]$
cpush /home/local /home/rc.bk
> crm
Permite eliminar archivos y directorios en los nodos. Su funcionamiento es similar al comando rm, con las
opciones de interactivo y recursivo.
Ejemplo:
[clap00@g000002 ~]$
crm –iR /home/datos/temporal/
> ckill
Permite finalizar un proceso en ejecución en los nodos del cluster. Hay que utilizar el nombre del proceso
y no su ID de proceso, ya que el ID es diferente en cada nodo.
Ejemplo:
[clap00@g000002 ~]$
ckill –u clap01 xeyes
> cexec
Ejecuta cualquier comando de Linux en todos los nodos. cexecs sirve para invocar la versión serie de
cexec.
Ejemplo:
[clap00@g000002 ~]$
cexec “ps | grep clap00”
Descargar