Distribuciones para Cluster Linux Alejandro Reyes Rodríguez Mireya Vázquez Nolasco José Abel Herrera Corredor Oscar Rafael García Regis Enrique Cruz Martínez 2003-7
Alejandro Reyes Rodríguez Dirección General de Servicios de Cómputo Académico. (DGSCA) UNAM. Cómputo Aplicado Mireya Vázquez Nolasco Dirección General de Servicios de Cómputo Académico. (DGSCA) UNAM. Cómputo Aplicado José Abel Herrera Corredor Dirección General de Servicios de Cómputo Académico. (DGSCA) UNAM. Cómputo Aplicado Oscar Rafael García Regis Laboratorio de Dinámica No Lineal Facultad de Ciencias, UNAM Enrique Cruz Martínez Dirección General de Servicios de Cómputo Académico. (DGSCA) UNAM. Cómputo Aplicado
Resumen Son herramientas de instalación automáticas para instalar Linux en un cluster o en un cúmulo de hosts. Se describen las alternativas de distribución de uso gratuito en la red, para instalar, configurar, administrar y monitorear un cluster. Para el adecuado funcionamiento de estas distribuciones existen herramientas soportadas por la distribución, para controlar, monitorear y revisar cualquier tipo de falla de un cluster, que también pueden ser descargadas de manera gratuita de la red. En este documento se describen las etapas a seguir para crear un cluster con algunas de las distribuciones para cluster Linux que hay en la red.
Índice I. Fundamentos 2 II. Proceso de Instalación 4 III. Configuración 5 IV. Monitoreo del Sistema 6 V. Soluciones Cluster 7 Referencias 9 1
Tutorial: Distribuciones para Cluster Linux I. Fundamentos de una Distribución Cluster Un cluster es un conjunto de computadoras interconectadas entre si por medio de una red, con el objetivo de trabajar como una sola unidad. Herramientas de automatización Agilizar el proceso de instalación. Mantener el control sobre todos los nodos. Seguridad durante la edición de archivos. Facilitar la construcción y configuración del cluster. Ejemplos DEBIAN Fully Automatic Installation (FAI) RED HAT Kickstart Método de booteo Antes de realizar el proceso de instalación se debe elegir el método de booteo que será utilizado. PXE disquete de arranque vía red Pre-Execution Environment (PXE). Tecnología implementada en las tarjetas de red desarrolladas por Intel (ej. Intel EtherExpress PRO 100), las cuales utilizan el protocolo de booteo PXE contenido en un chip de memoria ROM que se encuentra en las tarjetas. Servicios necesarios BOOTP/DHCP TFTP NFS DEBMIRROR 2
BOOTP / DHCP Bootstrap Protocol (BOOTP) Protocolo que utiliza un paquete llamado BOOTREQUEST que contiene las direcciones de red estáticas para cada host. Dynamic Host Configuration Protocol (DHCP) Protocolo basado en BOOTP empleado para que los host de una red puedan obtener su configuración de forma dinámica a través del servidor. TFTP Trivial File Transfer Ptotocol (TFTP) se utiliza para la transferencia de archivos desde raíz (/) a un host local o remoto. Utiliza los servicios de conexión vía UDP. Solamente sirve para enviar o recibir archivos, no hace autentificacion ni proporciona acceso a archivos. NFS Se usa para transferir el kernel a los nodos cliente. Network File System (NFS) brinda la posibilidad de compartir recursos entre computadoras, permitiendo que partes del sistema de archivos sea exportado. NFSROOT es un directorio que se crea en la raíz del servidor de instalación y contiene el sistema de archivos que será utilizado durante el proceso de instalación de los nodos. Su nombre por default es /tftpboot DEBMIRROR Es un directorio que contiene todos los paquetes de Debian, se recomienda utilizar este espejo local en caso de instalar varias computadoras. Se crea el directorio /files/scratch y se corre el siguiente programa /usr/share/fai/utils/mkdebmirror 3
II. Proceso de instalación Balanceadores de carga Los balanceadores de carga permiten optimizar la utilización de los recursos de un cluster mediante la asignación de tareas a los nodos con menor carga de trabajo, o con mayor cantidad de recursos libres. El balanceo de la carga se realiza mediante la calendarización de trabajos o a través de la migración de procesos. Administración del cluster Tareas básicas: Instalación, actualización y configuración de software. Monitoreo del sistema para resolver eventuales problemas (red, hardware y/o software). Control de cuentas de usuario. Respaldo de información. Establecer niveles de seguridad aceptables. Mantenimiento de los componentes de hardware. La administración de un cluster se vuelve más compleja a medida que se incrementa el número de nodos, por lo tanto es importante contar con herramientas que permitan realizar algunas tareas de administración sobre un conjunto de nodos, pero de manera centralizada. Cluster Command & Control Tool Suite (C3) C3 está compuesto por un conjunto de scripts de perl y phyton que implementan una serie de instrucciones para reducir el tiempo y esfuerzo para operar y sintonizar un cluster. Los comandos de C3 permiten al administrador efectuar operaciones como ejecución de instrucciones de manera paralela o secuencial sobre los nodos, 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. 4
Comandos Cexec Cget Cname Clist Cnum Ckill Cpush Cpushimage Crm Cshutdown Script fundamental que posibilita la ejecución de cualquier comando estándar de Linux sobre todos los nodos del cluster Obtiene archivos o directorios desde todos los nodos del cluster Regresa el nombre del nodo especificado Lista los nombres y tipos de clusters en el archivo de configuracion Reporta el índice de un nodo dentro del cluster especificado Envía señales a procesos específicos Distribuye archivos o directorios sobre los nodos del cluster Actualiza la imagen del disco duro en cada nodo Elimina archivos o directorios contenidos en los nodos Apaga o reinicia los nodos III. Configuración /etc/c3.conf cluster cobalt { cobalt:master nodo0[1-4] exclude [45-55] dead node05 } # nodo maestro # nodos de cálculo # no incluir este rango # el nodo05 está abajo Instalación cobalt:/# wget http://www.csm.ornl.gov/torc/c3/software/c3-3.1.2.tar.gz cobalt:/# tar zxf c3-3.1.2.tar.gz -C /tmp cobalt:/# /tmp/c3-3.1.2/install cobalt:/# cexec mkdir /opt/c3-3 cobalt:/# cpush /opt/c3-3/ckillnode 5
IV. Monitoreo del sistema Ganglia provee un completo ambiente de monitoreo y ejecución en tiempo real que permite controlar cientos de nodos a traves de una red. Ganglia monitorea: Parámetros constantes! Arquitectura y frecuencia del CPU.! Tipo y versión del sistema operativo.! Memoria total.! Número de CPUs en cada nodo.! Area Swap.! Tiempo de actividad, etc. Parámetros no constantes como:! Porcentajes de uso de CPU.! Utilización de disco.! E/S a través de la red.! Memoria disponible.! Actividad de procesos. Componentes! Ganglia Meta Daemon (gmetad)! Ganglia Monitor Daemon (gmond)! Ganglia Web Frontend 6
V. Soluciones Cluster Ventajas Reducen la necesidad de instalar múltiples herramientas y mantienen una configuración global consistente. 7
Los componentes de software interactúan mejor al ser diseñados para trabajar juntos. Se pueden obtener resultados inmediatamente después de instalarlos. Automatización de las tareas más importantes para crear un cluster:! Instalación de Linux! Construcción de una base de datos con información de cada uno de los nodos! Seguridad! Instalación de bibliotecas y herramientas necesarias para desarrollar programas paralelos! Manejo de la carga de trabajo en clusters multiusuario! Integración del sistema, manejo de paquetes y documentación 8
Referencias http://www.informatik.uni-koeln.de/fai/ http://ganglia.sourceforge.net/ http://openmosix.sourceforge.net/ http://www.openclustergroup.org/ http://www.opensce.org/moin/ http://rocks.npaci.edu/rocks/ http://www.scyld.com http://www.linuxnetworx.com/ 9