INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS CURSO CLUSTERS & GRID COMPUTING EN ENTORNOS DE SOFTWARE LIBRE I. Clusters bajo Linux Isabel Campos Plasencia Responsable de Proyectos de Computación 28, 29 y 30 de Noviembre 2005 http://bifi.unizar.es/clustersygrid Estrategia de Administración: ¿Qué conlleva? ● Mantenimiento Físico de las máquinas Conexiones eléctricas, consolas,... BIOS ● Sistema Operativo Mecanismo de Booting Instalación y Configuración de las máquinas Integridad del sistema: detección de intrusiones ● Monitorización del cluster Chequeo del estado del cluster Gestión de los mensajes de error ● Seguridad Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Administración de clusters MONITORIZACIÓN SEGURIDAD Instalación Mantenimiento Físico ADMINISTRACIÓN DEL SISTEMA Software Clusters & Grid computing en entornos de software libre Usuarios INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Estrategia de Administración: ¿Qué conlleva? ● Uso del cluster Setup de usuarios y login Envío de trabajos Law enforcement ● Aplicaciones de usuario Instalación Setting­up y mantenimiento de las variables de entorno $ENV. ► Para cada punto debe haber una estrategia bien definida!! Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS CURSO CLUSTERS & GRID COMPUTING EN ENTORNOS DE SOFTWARE LIBRE Administración del Sistema Booting e Instalación del Sistema Operativo 28, 29 y 30 de Noviembre 2005 http://bifi.unizar.es/clustersygrid Instalación del Sistema Operativo: Mecanismo de Booting ► Booting en los nodos del cluster ● Boot via NFS – El sistema operativo está almacenado en el servidor y se exporta con NFS – Los nodos hacen el boot mediante DHCP/BOOTP y TFTP – Los discos duros locales se usan para almacenamiento provisional de datos (/tmp) – Otra opción: el booting a través de la red es particularmente fácil de mantener porque todo el software está en el servidor. ● Boot desde disco local – Más costoso desde el punto de vista del mantenimiento – Mucho más tolerante a errores de red, por ejemplo. Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Instalación del Sistema Operativo: DHCPD y PXE booting dhcpd IP: 192.168.1.1 Hostname: nodo1 Servidor Ethernet El fichero /etc/dhcpd.conf: host nodo1 { hardware Ethernet 00:28:20:4F:C3:80; fixed­address 192.168.1.1; } Clusters & Grid computing en entornos de software libre HW address: 00:28:20:4F:C3:80 INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Instalación del Sistema Operativo: DHCPD y PXE booting PXE protocol tftp protocol Servidor Ethernet El fichero /tftpboot/pxelinux.cfg/nodo1 ….. Install=nfs://192.168.1.250/nfs/SuSE9 El fichero /nfs/SuSE9/xml/nodo1.xml Contiene los detalles del software a instalar Instalación del Sistema Operativo Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Instalación del sistema operativo Maquina de Instalación (aislada del exterior) /boot /etc /lib /usr/etc /usr/bin Network exterior lxinst Red Complejo del cluster Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Instalación del sistema operativo Tiempo de instalación por nodo (via NFS) t/N [min] 20:00 17:30 15:00 10:15 10:00 06:09 04:33 05:00 03:24 00:00 1 3 5 7 9 11 13 15 N NFS server: Pentium 200MHz, 64MB RAM, 40 GB Hdisk NIC 3Com 3c905 100BaseTX (Boomerang) 100 Mbit full duplex Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS CURSO CLUSTERS & GRID COMPUTING EN ENTORNOS DE SOFTWARE LIBRE Monitorización del Cluster 28, 29 y 30 de Noviembre 2005 http://bifi.unizar.es/clustersygrid Monitorización del Cluster ► Parámetros a monitorizar ● Hardware: Discos, conexión a la red, Temperatura, Memoria,... ● Software: integridad del OS, versión kernel, updates del sistema,... ● Otros: ¿Está el directorio /data/protein montado en lxdata0 ? ► Características del sistema de monitor ● ● ● ● Aplicable a todas las plataformas Linux Dar una visión global rápida del estado de las máquinas Proveer de un mecanismo de corrección de errores y alerta No interferir en la operación de las máquinas ► Diseño de un monitor „a la carta“ ● A partir de herramientas UNIX standard (shell scripts, HTML) ● Se instala como un programa en shell que se ejecuta periodicamente (cron job) Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Monitorización del Cluster: Algunas herramientas ► Estado del Hardware ● Voltaje, T, Ventiladores, chasis,... ► Estado Operacional ● Filesystems (¿montados? ¿Llenos?) ● Mensajes del disco (¿errores?) ● Usuarios ( usuarios ilegales) ● Uptime ● Daemons (cron,nfs) ► Rendimiento ● Uso del Sistema ● Contando Mflop/s, Mref/s (desarrollo de programas) Clusters & Grid computing en entornos de software libre http://www.lm­sensors.nu Scripts en shell Usar ganglia toolkit http://ganglia.sourceforge.net http://perfctr.sourceforge.net INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Monitorización del Cluster: Algunas herramientas ► Librería de Sensores: Implementado como un módulo del kernel que se carga al hacer el boot ► Ganglia Toolkit ► Multicast (TCP/IP transporte): muy rápido * Monitorización completa en tiempo real (Opensource) Versiones para Linux, Solaris, Tru64, IRIX, Windows Mantiene una tabla dinámica de máquinas: es decir, no se cuelga al tratar de conectar a un nodo que esta caído. Performance Counters Kernel patch (cuidado!!) (mikpe@csd.uu.se) Basado en la información leída en registros del CPU de propósito especial * Nota: sshd es muy lento para clusters grandes (>100 nodos) Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Ejemplo: Instalación de Sensores ¿Qué son los sensores? Chips incluídos en la placa base de los PCs (desde 1998) para controlar el estado del Hardware. Su estado se lee a través del bus ISA o del bus SM (System Management) mediante I/O normal. ¿Qué parámetros de hardware controlan? Temperatura de la CPU y del chasis Voltaje de entrada a la placa base Velocidad de los ventiladores,… ¿Cómo se lee el estado de esos chips en Linux? Un módulo del kernel de Linux se encarga de leer el estado del chip correspondiente. Hay un módulo para cada parámetro del hardware a controlar. http://www.lm­sensors.nu Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Intermedio: kernel y modulos ► Kernel: En Linux, es el “software” a través del cual el usuario interacciona con el hardware Proceso System calls & faults signals Linux Kernel Hardware Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Interacción Proceso­Kernel ► System Calls ● Filesystem: rmdir( ), open( ),… ● Proceso: getuid( ), exit( ),… ● Network: send( ), listen( ),… ► Signals ● ● ● ● SIGHUP: Terminal hangup SIGTERM: Termination (kill ­9 pid) SIGINT: Interrupción desde el teclado (CTRL­C) SIGSEGV: Segmentation violation Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Interacción Proceso­Kernel Nivel de usuario Kernel p1 p2 signals p3 System calls scheduler Virtual memory traps & faults CPU System memory Device drivers Physical memory terminal Clusters & Grid computing en entornos de software libre Filesystems disk Network protocol Network drivers Network interface INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Módulos del Kernel Módulo Parte del Kernel que se carga en el sistema operativo solamente cuando se necesita Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Ejemplo de módulo: Medida de los sensores User­space Aplicación: sensors Driver Client i2c­dev i2c core Algorithm Kernel Hardware Adapter Adapter specific code Adapter Hardware Clusters & Grid computing en entornos de software libre I2C­Devices INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Monitorización: Estado Operacional Chequeo frecuente (~15 minutos) de los puntos clave que hacen al cluster operativo: ► Controlar que los daemons del sistema están lanzados – Generales: nfsserver, portmapd,… – Particulares: pvfsd, dhcpd… ► ¿ Están todos los nodos encendidos ? – Responden los nodos al “ping” ► Directorios NFS montados adecuadamente – /home, /pvfs, /usr/local/sys,… accesibles en todo el cluster Scripts: Shell, PERL,… Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Monitorización: Integridad del Sistema Operativo ¿Ha habido algun cambio accidental en los ficheros del sistema? ¿Hay algún intruso en el cluster? Comparar el Software instalado en el cluster con el software de la máquina de instalaciones (CDs originales) Directorios a chequear: Sistema Operativo: /bin, /usr/lib, /lib, /sbin,… Seguridad: /etc/hosts.allow, .deny, /etc/routes Mecanismo de alerta y corrección Construcción de un script adecuado Envio automático de e­mail al administrador Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Monitorización del Cluster: BIFI Monitor nodos El servidor central... nodoi:/boot nodoi:/etc nodoi:/lib nodoi:/usr/bin “check_os.sh“ ...ordena chequear el Sistema Operativo de cada maquina cada dia a las 24:00 lxinst NO en el .html ? = /boot /etc /lib /usr/bin SI en el .html 1. e­mail admin@bifi 2. Subsanar el error: ejemplo cp lxinst:/lib/* nodo#:/lib/ (manual o automáticamente) en el .html Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Detección de intrusiones ► Protegido en la máquina de instalación Ficheros /nfs/updates/chkref.nodox con entradas de la forma: 9ker74rhkl91h33432b –rwxr­xr­x root 12/09/03 /bin/cp Checksum: md5sum Permisos Owner Fecha nombre ► Generado localmente en el nodox /tmp/chkref.nodox Desde lxinst se ejecuta: /nfs/updates/secure_bin/diff /nfs/updates/chkref.nodox /tmp/chkref.nodox Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS CURSO CLUSTERS & GRID COMPUTING EN ENTORNOS DE SOFTWARE LIBRE Administración del Sistema Seguridad 28, 29 y 30 de Noviembre 2005 http://bifi.unizar.es/clustersygrid Medidas de seguridad y prevención Protección contra ataques externos ● ● ● ● ● Firewall PC ­ Ipchains / Iptables Apagar todas las utilidades que no sean necesarias (sonido,...) TCP Wrapper OpenSSH: sólo conexiones encriptadas Instalación regular de paquetes con updates concernientes a la seguridad Forzar el cumplimiento de las normas ● Conjunto de scripts que garantizen el orden – No login en los nodos de computación – Prohibido mandar programas en interactivo, – .... Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS CURSO CLUSTERS & GRID COMPUTING EN ENTORNOS DE SOFTWARE LIBRE Administración del Sistema Gestión de los recursos: Colas de Batch 28, 29 y 30 de Noviembre 2005 http://bifi.unizar.es/clustersygrid ¿Porqué un sistema de batch? ► Motivación Uso más efectivo de los ordenadores (ej. Carga uniforme) Uso de recursos 24h/día Asignación de recursos de acuerdo a reglas (quien recibe cuánta CPU) Ejecución rápida de tareas (el sistema sabe cuales son los nodos más desocupados) ► Nuestro objetivo El usuario le dice al sistema de batch el nombre de un script, especificando sus necesidades (trabajo en serie, o en paralelo, memoria, tiempo de CPU….) El sistema de batch garantiza que el trabajo se ejecutará lo antes posible Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS El proyecto Sun Grid Engine ► Desarrollado por Sun Microsystems junto con iniciativas Open Source ► Año 2000: Sun compra Gridware (en particular su sistema propietario de batch, CODINE ) ► Sun inicia dos proyectos ● Una versión comercial (http://www.sun.com/gridware) – – – – Plataformas: PCs, Silicon, Sun, IBM, HP, MAC. OS: Linux, Solaris, IRIX, AIX, MACos, Windows… Linux Kernel 2.2, 2.4, 2.6 Software de visualización: Accounting Reporting Console (ARco) – Precio: (N1 Grid Engine version 6) » Cluster hasta 50 nodos 10,000$ » Hasta 250 nodos 30,000$ » Hasta 2,000 nodos 80,000$ Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS El proyecto Sun Grid Engine ● Versión libre bajo la disciplina Open Source – http://gridengine.sunsource.net – Oficialmente soportado para: » » » » » » » » – Linux x86, kernel 2.4, glibc >= 2.2 Linux AMD64 (Opteron), kernel 2.4, glibc >= 2.2 Silicon Graphics IRIX 6.5 Sun MicrosystemsSolaris (Sparc and x86) 7, 8 en 32­ bit y 64­bit AppleMac OS/X CompaqTru64 Unix 5.0, 5.1 Hewlett PackardHP­UX 11.x IBM AIX 4.3, 5.1 Funciona además (con modif. mínimas) para » x86_64 (Xeon EMT64) con kernels 2.6 » IA64 (Itanium) Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Instalación de SGE Open Source Descarga de software: ● http://gridengine.sunsource.net ● Descarga del binario de la plataforma correspondiente, o bien ● Descarga de las fuentes & compilar ► Nodo Master instalación desde los binarios ● mkdir /usr/local/sys/sge & tar xf sge­version­ plataforma.tar ● Añadir entrada en /etc/services – sge_commd puerto_libre/tcp ● Editar un fichero con los nombres de los nodos a controlar ● Script de inicialización va por defecto a / etc/init.d/rcsge ● Efecto visible: sge_commd, sge_qmaster y sge_sched están corriendo Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Instalación de SGE ► Nodos de Ejecución y de control mkdir /usr/local/sys/sge mount master:/usr/local/sys/sge /usr/local/sys/sge . /usr/local/sys/sge/settings.sh ./install_execd en cada nodo desde ese directorio Efecto visible sge_execd, sge_commd y sge_sheperd están corriendo ● Las colas se configuran graficamente, (y se clonan) ● En el nodo interactivo del cluster no hay sge_execd ni sge_sheperd . ● ● ● ● ● Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Instalación de SGE ► Monitorización y control ● . /usr/local/sys/sge/settings.sh ● Con entorno X11 – Lanzar ”qmon &” ● Sin entorno X11 – Comandos en linea de configuración de colas (qconf y qmod) – Sobre los trabajos (qsub, qstat, qdel,…) – Administración: qacct Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS ¿Cómo ve el cluster SGE ? Nodo interactivo sge_commd Nodo de envío Nodo servidor sge_commd sge_qmaster Nodo master sge_schedd Nodo de computación ? sge_commd sge_execd Nodos de ejecución sge_sheperd Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Envío de trabajos: usuarios y máquinas ► Nodo de Envío nodo autorizado a enviar trabajos (qsub) y a obtener información sobre su status (qstat). ► Nodo de Ejecución nodo al que se le permite ejecutar trabajos ► Nodo de Administración nodo desde el que se ejecutan tareas de administración ► Nodo Master nodo que controla toda la actividad SGE, información de status, etc… Una misma máquina puede desempeñar varios de los papeles descritos ► Administrador usuario que controla SGE ► Operador usuario con privilegios de admin, pero que NO puede cambiar la configuración de las colas ► Propietario Usuario que tiene colas en propiedad ► Usuario común Usuario que sólo puede controlar sus propios trabajos Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Configuración de las colas Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS Ejemplos de scripts SGE ► Trabajo en serie ► Trabajo en Paralelo #/bin/sh #$ ­o $HOME/mydir/myjob.out #$ ­N myjob #$ ­M user@unizar.es #$ ­l p4=yes . /etc/profile.sge cd mydir ./myprog #/bin/sh #$ ­o $HOME/mydir/myjob.out #$ ­N myjob #$ ­pe mpi 4­10 #$ ­M user@unizar.es . /etc/profile.sge . /etc/mpi.setup –e mpi cd mydir mpirun –np $NSLOTS ./myprog Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS SGE Job monitoring Clusters & Grid computing en entornos de software libre INSTITUTO DE BIOCOMPUTACIÓN Y FÍSICA DE SISTEMAS COMPLEJOS