I. Clusters bajo Linux

Anuncio
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!!) ([email protected])
 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 [email protected]
#$ ­l p4=yes
. /etc/profile.sge
cd mydir
./myprog
#/bin/sh
#$ ­o $HOME/mydir/myjob.out
#$ ­N myjob
#$ ­pe mpi 4­10
#$ ­M [email protected]
. /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
Descargar