Tema 2: Admin. Sistemas Unix • Funciones del Administrador •Administración de Clusters Taxonomía: Introducción Diseño de un entorno de Administración Ejemplos (OpenMosix) Funciones del Administrador INTRODUCCIÓN • CIENCIA TAREAS: RUTINARIAS/DIARIO (Sam, Scripts, Comandos directos) • ARTE SINTONIZACIÓN (Sar, HP_glance_Plus, Tunex) Introducción(1/2) Perfil del administrador: • Generalista (h/w, s/w; heterogeneidad) • Tecnología usuario funcione adecuadamente • Mejorar la productividad • Del guru (herencia) al profesional “Dependencia de cada instalación” Introducción (2/2) Sistemas operativos monolíticos -Solaris 2.6, IRIX 6.2, Linux 2.2 Microkernels y derivados - Mach 3.0, Chorus - OSF/1, AIX 4.1, HP-UX 10.30 La Administración como Ciencia •Proceso de Pre-instalación •Proceso de Instalación •Proceso de Post-instalación Customización Tareas de diario Proceso de Pre-instalación • Configuraciones soportadas Stand-alone, data-less, disk-less, server WS, escritorio, servidor, empotrados • Plataformas h/w soportadas (compatibilidad) •Requerimientos de Recursos •Distribución del medio (CD, Streamer, R_) •Tipos de discos soportados (SCSI, HP,SASI) •Espacio disco requerido (Swap,S.O._K) Proceso de Pre-instalación • Características de los ejecutables • Proceso de boot (test, rom, disco, remoto) • Coexistencia de varios S.O. (particiones) • Eficiencia /costo /extensibilidad/ seguridad • Migración de sistema • Complejidad / Prestaciones /Servicios “Selección del S.O. en función de las aplicaciones a ejecutar y requerimientos: compatibilidad, soporte, puesta a punto” Dimensionar de forma adecuada (Problema Aulas) MV corriendo bajo S.O. Huesped MV corriendo sin S.O. Huesped Proceso de Pre-instalación Herramientas básicas del Administrador: • Combinación de niveles (gráficas, en linea) • Shell Scripts (automatizar tareas) • Documentos de estándares (FHS) • man, apropos, HOW TO • Gestión de paquetes (rpm, tgz, (tar; gunzip)) • LinuxConfig, SaX, etc Sistema de Ficheros (1/4) • Partición (fdisk, diskdruid, format, smit) • Creación del FS (mkfs) • Modelos (ext2fs, ufs, minix, jsf, afs, nfs, ...) • Distribución ( /, /usr, /home, /var, /swap,...) • Puntos de mount (/etc/fstab, /etc/ufstab, ..) • Utilidades sin FS (dd, cpio, tar) Hw / Sw Disco FUJITSU MAG 3091 - Pruebas zoning para el caso de lectura 30 Tasa de transferencia (en MB/s) 25 Zona 1 Zona 2 20 Zona 3 Zona 4 Zona 5 Zona 6 Zona 7 15 Zona 8 Zona 9 Zona 10 Zona 11 10 Zona 12 5 0 0 200 400 600 800 Tamaño de cada petición individual (en KB) 1000 1200 Sistema de Ficheros: organización el sistema. •/bin: Ejecutables básicos del SSOO. •/dev: Ficheros especiales asociados a dispositivos. •/etc: Configuración del sistema. •/home: Directorio de cuentas de usuarios. •/lib: Librerías básicas del sistema. / /bin /dev /etc /home /lib /mnt /opt /proc /sbin /tmp /usr /var /bin /etc /include /lib /man /local Instalación S.O. • • • • • • • • BIOS (boot.image, bootnet.image, ISO, rawrite.exe) Reloj del Sistema, SMP, módulos Upgrade/ install Tipo sistema (WS/server/...) Particiones, formateo, disco inicio Instalar paquetes CONFIGURAR SISTEMA (red, printer, etc) Cluster, swap, etc Proceso de Post-instalación(1/2) • Tareas de customización del Sistema - Init, Spooler, I/O - Recovery system, Seguridad, NIS/NFS - Scripts de configuración • Tareas de diario - Cuentas de usuario, Back-up - S/W inst., fsck, Shutdown - Monitoring (prestaciones, Syslog) Post-instalación (2/2) • Recovery system • /etc/rc (mount predefinido, explícito, automático) • Red (demonios, ficheros de configuración, etc.) • Control minucioso de las operaciones a realizar •/etc/init Creación del primer proceso Login:xxxx Login:xxxx password: password: ****** ****** init init init init getty getty exec login login exec sh sh /dev/tty0 sh sh ## ls ls ls ls Arranque del Sistema •Arranque del kernel. •Montar el sistema de ficheros raíz. •Arranque del proceso init (PID 1). •Montaje del resto de sistemas de ficheros. •Inicialización de los terminales. •Activación del runlevel (demonios). Niveles de ejecución •Runlevel 0: Parada del sistema •Runlevel S: Modo mantenimiento •Runlevel 1: Multiusuario sin red •Runlevel 2: Multiusuario con red •Runlevel 3: Multiusuario con red y X •Runlevel 4: <Reservado> •Runlevel 5:<Reservado> •Runlevel 6: Reboot Fichero /etc/inittab Cada entrada tiene el formato: id:runlevels:action:process args –id: Identificador único. –runlevels: Niveles en los que se ejecuta. –action: Modo de ejecución. –process args: Proceso a ejecutar. Tipos de acciones Las acciones habituales son: • initdefault: nivel en el que arrancará el Sª •wait: Arranca el proceso y espera a su finalización antes de seguir. •respawn: Arranca el proceso automáticamente en el caso de que muera. •once: Si no esta arrancado lo lanza (sin esperar). •boot: Ejecuta sólo en el arranque (sin esperar). •off: Si el proceso está en ejecución mátalo. Scripts del Sistema El directorio /etc/init.d/ es el usado para mantener los scripts de arranque de los servicios del sistema. – Son scripts (/bin/sh) no binarios. – Reciben diferentes argumentos (start, stop, status, restart, ...). Scripts del Runlevel • Directorio de scripts del sistema: /etc/init.d/ / /etc S K start/stop • Directorio de cada runlevel: /etc/rc3.d/ /init.d /network /rc3.d /S10network S10network orden Symbolic link script Post-instalación (customización) • Manejo de Dispositivos • Servicios de red • Otros servicios Administración de Dispositivos • Independencia de los dispositivos • Gestores de dispositivos • Instalación • Los dispositivos y el buffer cache Diseño de drivers en UNIX Carga y descarga de módulos Request_m() Kml código Espacio_kernel Kerneld Espacio_user modprob /etc/modules.conf módulo insmod (insmod/Kerneld/thread) /etc/modules/version Terminales • Cableado (null-modem, RS-232) • ls - /dev/ttyS* ; Mknod -m666/dev/ttyS=c4 64 • /etc/inittab S0:123:respawn:/sbin/agetty /dev/ttyS0 -L 9600 vt100 • Emulación de terminal (cliente) Servicios de Red •Interfaces •Modelo ISO/OSI •Direccionamiento •Subred y routing •Daemons •Aplicaciones c/s •NIS y NFS •Seguridad Servicios de Red Protocolos: tcp/ip, arp, icmp, igmp 5 Aplicación 4 Transporte 3 Red 2 Enlace 1 Dispositivo / Física Subred 172.17.4.0 172.17.2.0 172.17.6.0 gateways 2 interfaces • Unicast – 1-to-1 Broadcast » 1-to-all Dir IP: 192.168.0.255 Multicast » 1-to-many Multicast IP Multicast Application Layer Multicast Overlay Multicast Ejemplo LVoD: IP-Multicast Proxy-Multicast ALM-Multicast Usuarios Usuarios Servidor VoD Servidor VoD Red troncal Red troncal Red troncal Servidor VoD Red servicio Red servicio Red troncal •Routing •Forwarding Red servicio Internet Red servicio Servidor VoD Red troncal Red troncal Red servicio Red servicio Servidor VoD Red troncal Usuarios Servidor VoD Usuarios Complejidad Routing: Optimización de Métricas Árbol multicast de costo mínimo: • Costo: 23 • Retardo medio: 39 Árbol multicast óptimo: • Costo: 35 • Retardo medio: 35 Servicios de Red La configuración básica del entorno de red: • Driver de la tarjeta (lsmod (1)) • ifconfig configurar el protocolo de transporte # ifconfig eth0 198.109.1.1 netmask 255.255.255.0 # ifconfig lo 127.0.0.1 S/etc/rc.config, RH/etc/sysconfig/network • route tablas de encaminamiento tcp/ip • /etc/resolv.conf indicar máquina DNS Comprobar funcionamiento ping, nslookup, host Configuración de TCP/IP Encaminamiento IP: – Encaminamiento local. – Encaminamiento dentro de la subred. – Encaminamiento externo (Router). Ejemplos: route route route route add add add add -host 127.0.0.1 lo -net 138.100.8.0 netmask 255.255.248.0 eth0 default gw 192.168.1.1 eth0 default ppp0 Demonios de Red Dos modalidades de servicios: – Dependiente del inetd. – Autónomo (modo standalone). in.ftpd 21 inetd 23 in.telnetd 80 httpd TCP Wrappers, tcpd Monitorizar las peticiones de conexión, crear un registro de conexiones y aceptar o denegar conexión en función de la identidad m_cliente. Servicios RPC de Sun Servicios de red de SUN: – NFS (Network File System) – NIS (Network Information System) Usan un demonio de enlace: portmapper 111 portmapper 3 2 1 nfsd function(...) nfs 1.003 nis 1.004 •NIS - Desarrollado SUN, facilitar la Adm.de grupos de WS (información centralizada de configuración) - Máquinas agrupadas en dominios Asimetría R/W maps (regenerar/propag) No control de acceso, grupo ni ACL No FAQ (cache => tráfico) Mapas centralizados => n_admin?? • NIS+ Introducido SUN (Solaris 2.1) - Se pueden delegar autorizaciones para administrar parte de un dominio - Los maps son reemplazados por tablas - Criterios de búsqueda múltiples col. - Server establece los derechos de acceso (RPC: parámetros + info de identidad) Configurar el cliente NIS 1.- /etc/rc.config YP_DOMAINNAME=“x.uab.es” YP_SERVER=“maquina server” /etc/hosts 127.0.0.1 local host 158.109.11.107 aolin4.uab.es aolin4 /bin/domainname 158.109.11.103 2.- Cargar demonio si no está en /etc/rc.local >/usr/bin/portmap >ypbind 3.- Añadir clientes NIS /etc/passwd +Usuario::::: NFS #.S.e exports(5) for a description. # /home/hola 158.109.65.244(rw) - Activación de los daemons necesarios Una vez configurado las carpetas, deberemos activar los daemons necesarios. $ sbin/init.d/nfsserver restart //actuar como servidor NFS $ sbin/init.d/portmap restart //permite conversion TCP/IP RCP $ rcnetwork restart $ rcnfsserver restart $ rpcinfo –p (nos mostrará los daemons activados para comprobar) $ Mount –t nfs 158.109.65.242 :/home/hola /home/carpeta Servicios de Red •Interfaces •Modelo ISO/OSI •Direccionamiento •Subred y routing •Daemons •Aplicaciones c/s •NIS y NFS •Seguridad Otros Servicios • Servidor Web: – Apache, NCSA. • Servidor FTP: – WU-ftp. • Agente de correo: – Sendmail, Postfix • Servicios de correo: – IMAP, POP. Syslog (eventos y send ) Metalog (filtrado) Syslog-ng Seguridad Puntos de interés: – Seguridad Interior: Programas con permisos. – Seguridad Exterior: Servicios de red. – Detección de Intrusiones: Una vez que han superado la seguridad. La mejor defensa es no tener una máquina con instalación estándar. Seguridad • Antes de firewalls, etc; backups • Proteger la BIOS • Paso de parámetros al lilo (delay=0, restricted) • DES (fuerza bruta), MD5 • bit SUID • rpm con firmas pgp comparar con listas oficiales • Minimizar los servicios ofrecidos • inetd, wrappers, firewalls, sniffers • Conexiones cifradas • Snort, nmap, tripware, logcheck • Consultar las listas de seguridad (bugtraq) Administración de Sistemas Unix • INTRODUCCIÓN • CIENCIA TAREAS: RUTINARIAS/DIARIO (Sam, Scripts, Comandos directos) • ARTE SINTONIZACIÓN (Sar, HP_glance_Plus, Tunex) Proceso de Post-instalación • Tareas de customización del Sistema - Init - Spooler - I/O • Tareas de diario - Cuentas de usuario - Back-up - S/W inst. - fsck - Shutdown - Monitoring Cuentas de Usuario (T. diario) Creación de un usuario: –Insertarlo en el fichero de usuarios. –Asignarle un passwd. –Definir parámetros (limites). –Crear el directorio home. –Copiar ficheros iniciales (/etc/skel). –Cambiar el propietario del home. –Dar de alta en mail, quota, ... Gestión de usuarios •Fichero de usuarios: /etc/passwd usuario:passwd:uid:gid:desc:home:shell •Fichero de grupos: /etc/group grupo:<reserved>:gid:usuarios... •Fichero de Passwords: /etc/shadow usuario:passwd:parámetros... /etc/profile (sesión y ~/.profile de usuario) Gestión de usuarios distribuida: NIS Fichero de usuarios: /etc/passwd Fichero de grupos: /etc/group Backup Incrementales /completos Una estrategia de backup debe incluir: –Estimación del volumen de datos. –Selección de los ciclos de backup. –Automatización (cliente/servidor). –Verificación del sistema. Herramientas de backup: tar, cpio, dd Shutdown • Procedimientos de Arranque y parada •Envía una señal a los procesos para su terminación. •Entrada en modo monousuario (saca los usuarios y mata al resto de procesos). •Sincronización de los sistemas de ficheros (sync). •Notificación a los usuarios. Instalación de paquetes El formato de paquete depende del S.O.: –RedHat y otros linux: RPM. –Fedora YUM –Solaris: PKG. –AIX: SMIT. xrpm, Krpm, gnorpm (versiones gráficas) Código Fuente tar -xvfz nombre.tar.gz (gzip –d & tar –xvf $./configure –prefix=path $make $make install Actualización del Kernel (1/3) • Conseguir los fuentes, (desarrollo 1.1.x estables o de producción, estables 1.2.x). Uname -a • Versión adecuada de gcc y libc (gcc –v, ls – l/lib/lib*).README /usr/src/linux & Recursos? • Salvar los fuentes del anterior (cuidado enlaces) • cp linux x.y.z.tgz /usr/src • tar xvfzp linux x.y.z.tar.gz (genera /usr/src/linux) • cd linux • Configurar el núcleo (make config, menuconfig, xconfig: y, n, m) Actualización del Kernel (2/3) • Creación de dependencias make dep • Limpiar ficheros antiguos make clean • Compilación del núcleo (make b/zImage, zdisk, zlilo) en: /usr/src/linux/arch/i386/boot/zImage • Compilación e instalación de módulos (make modules Make modules_install (en: lib/modules/x.y.z)) /etc/rc.d/rc.modules ya se pueden cargar • Instalación del nuevo núcleo Actualización del Kernel (3/3) • Instalación del nuevo núcleo cp zImage /vmlinuz-x.y.z • Editar el fichero /etc/lilo.config (opciones de matener el antiguo) Image=/vmlinuz Label =linux x.y.z • Editar el gestor LILO lilo Parchear el núcleo • Recoger sólo lo que ha cambiado respecto a lo anterior (patch X.Y.gz; versión del patch) • Guardar el árbol de directorios del núcleo actual Desde /usr/src, tar cvfz fuentes_ant.tar.gz linux • En /usr/src gzip –d patch x.y.z.gz • patch –p0 < patch x.y.z • Si error find –name “.rej” Los patch sólo funcionan con la versión anterior # for i in patch-2.2.0[123456789].gz;do ¾Gzip –d $i | patch –p0 ¾ done Tema 2:Adminstración de Sistemas like_Unix • Funciones del Administrador •Administración de Clusters Taxonomía: Introducción Diseño de un entorno de Administración Ejemplos (OpenMosix) Introducción Aplicaciones: a.- HPC: Calculo de PI 4 dx π =∫ 2 0 1+ x 1 4 3.5 3 y 2.5 2 1.5 1 0.5 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 x b.- Comerciales Cambio de aplicaciones paralelas (Wrp y Wp) • Shared hosting platforms • VN (Nodos Virtuales) • CCOF (Cluster Computing on the Fly) • Market-based Cluster (Miss-deadline, slack, makespan) Cómputo paralelo Cluster NO DEDICADO DEDICADO Perfiles de uso Podemos diferenciar 2 perfiles: •Administrador •Usuario MOAB Admin Job Queue Resource Manager User Compute Nodes Usuario: entorno de trabajo (1/2) Massive parallel computer gateway user Jobs Tasks PC-Cluster Entorno de trabajo (2/2) - Comandos de manejo dependencias del sistema de colas (Loadleveler, SGE, PBS, Slurm, etc). - Especificación de requerimientos Parámetros de las aplicaciones y entorno Adaptación de las interfaces de usuario Hardware Problema eléctrico, refrigeración, encendido, ubicación, etc más que un problema informático. • Box barato • Rak compacto mantenimiento CPU Hardware Intel Pentium III, IV http://www.intel.com/ http://www.amd.com/ AMD Athlon Transmeta Crusoe http://www.transmeta.com/ Conexión CPU Vs Memoria Red Ethernet Gigabit Ethernet Myrinet QsNet Giganet SCI Gigabit Wake On LAN Hardware Atoll VIA Infinband Estudio de nuestra propuesta en redes InfiniBand ¿Por que InfiniBand? El estándar esta diseñado para ofrecer una arquitectura conmutada punto a punto (Point-to-point switched I/O fabric) IBA en Top500sin (30 primeros) Provee un mecanismo de transporte confiable descarte de paquetes (Reliable transport mechanism) Especifica un extenso conjunto de mecanismos de gestión que permiten quitar carga a los procesadores, configurar y 13% monitorizar la red (Management model) Implementación en InfiniBand 30% Propietarios 7% El gestor de red puede programarse para encontrar trayectorias alternativas (Multipath support) Cray In. El switch es capaz de identificar congestión evaluando el estado de sus buffers y marcar los paquetes (Congestion marking) Myrinet InfiniBand en el top500 Interconnect family 23% SP sw itch IBA Quadrics Noviembre Junio Junio 7% 2006 3% 2006 2005 17% Noviembre 2005 Gigabit Ethernet 42.60 % 51.20 % 50.00 % 42.80 % Myrinet 15.80 % 17.40 % 20.20 % 27.80 % Infiniband 15.60 % 7.20 % 5.40 % 3.20 % Quadrics 2.80 % 2.80 % 2.80 % 2.60 % otros Sistema de disco SCSI IDE Raid Diskless Cluster http://www.linuxdoc.org/HOWTO/Diskless-HOWTO.html DAS Cache? SAN NAS Software Entornos de desarrollo Diferentes tipo de entornos Utility Computing 6 Workload 5 Management Management Information Information Information 4 2 3 Holistic Cluster Local Area Grid Wide Area Grid Wide Area Grid Wide Area Grid Moab Moab Moab Moab Moab Moab TORQUE TORQUE Linux Network 1 Simple Cluster Moab TORQUE TORQUE Load Leveler LSF PBS Pro TORQUE Load Leveler LSF RM’ RM’s RM’ RM’s RM’ RM’s RM’ RM’s RM’ RM’s RM’ RM’s RM’ RM’s RM’ RM’s Storage Licenses •SLA’s •Orchestration •Auto Provisioning •Potentially Virtual •Workload Aware •Adaptive OS Other OS OS Other OS OS Other OS OS Other OS Diverse HW & Networks Diverse HW & Networks Diverse HW & Networks Diverse HW & Networks Diverse HW & Networks Diverse HW & Networks Diverse HW & Networks Diverse HW & Networks RM’ RM’s RM’ RM’s HPC Data Center Diverse HW & Networks Diverse HW & Networks Linux Diverse HW & Networks Diverse HW & Networks S.O. Linux Kernels http://www.kernel.org/ Linux Distributions Red Hat Debian GNU/Linux S.u.S.E. Slackware www.redhat.com www.debian.org www.suse.com www.slackware.org Administración: software NFS(Network File System) NIS (Network Information System) NTP (Network Time Protocol) server client client client Manejo de recursos y planificadores Process distribution Load balance Job scheduling of multiple tasks CONDOR http://www.cs.wisc.edu/condor/ DQS http://www.scri.fsu.edu/~pasko/dqs.html LSF http://www.platform.com/index.html The Sun Grid Engine http://www.sun.com/software/gridware/ Administrador: Cola Req. Historico Cliente Req. Administración Trabajos ejecutados Red Job Schedulers Servidor LoRaS Req. Gestor de Colas Trabajo Politicas Despachador de trabajos Estado? Trabajo Estado / Fin trabajo Estado NOW (CSC) Control Lanzar/Terminar trabajo Trabajos Control de Nodos Seleccionar trabajos para su ejecución sobre el mejor conjunto de nodos Coscheduling (corto plazo) Taxonomía: Planificación de trabajos en entornos paralelos Actualmente: Flexibilidad y predecibilidad Edition, scripts, cc, etc Soft Real-Time applications (local and parallel workload) ¡¡¡ Nuevas: Aplicaciones & Entornos!!! Relación entre planificación de corto y largo plazo: SLURM • ¿ Manejo de cores a nivel de job-scheduler ? Posibilidad de Simulación - Modelos analíticos - Históricos - Híbridos Desarrollo de programas Editor Language Compiler Emacs C, C++, Fortran, Java GNU http://www.gnu.org/ NAG http://www.nag.co.uk PGI http://www.pgroup.com/ VAST http://www.psrv.com/ Absoft http://www.absoft.com/ Fujitsu http://www.fqs.co.jp/fort-c/ Intel http://developer.intel.com/software/ products/compilers/index.htm MPI Implementación mpich http://www-unix.mcs.anl.gov/mpi/index.html Fácil de usar Alta portabilidad para UNIX, NT/Win, Globus Lam http://www.lam-mpi.org/ High availability Profiler MPE (MPICH) Paradyn http://www.cs.wisc.edu/paradyn/ Vampier http://www.pallas.de/pages/vampir.htm Cluster Distribución FAI http://www.informatik.uni-koeln.de/fai/ Alinka http://www.alinka.com/ Mosix http://www.mosix.cs.huji.ac.il/ Bproc http://www.beowulf.org/software/bproc.html Scyld http://www.scyld.com/ Score http://pdswww.rwcp.or.jp/dist/score/html/index.html Librería matemática PETSc PETSc is a large stuite of data structures and routines for both uni and parallel processor scientific computing. http://www-fp.mcs.anl.gov/petsc/ Distribuciones más utilizadas (Top 500) Other 8% Oscar 30% Score 10% Scyld 12% NPACI Rocks, Moab 40% Componentes OSCAR includes (currently): – C3 – Cluster Management Tools (ORNL) – SIS – Network OS Installer (IBM) – MPI-CH – Message Passing Interface – LAM – Message Passing Interface (Indiana University) – OpenSSH/OpenSSL – Secure Transactions – PBS – Job Queuing System – Maui – Batch scheduler – PVM – Parallel Virtual Machine (ORNL) – Ganglia – Cluster Monitor Tema 2:Adminstración de Sistemas like_Unix • Funciones del Administrador •Administración de Clusters (1 sesión) Taxonomía: Introducción Diseño de un entorno de Administración Ejemplos (OpenMosix) Reflexiones: Admin_Cluster Linux • Cluster compartido varios usuarios y tipos de carga ( Validez definida por las necesidades del entorno) • 64..128 nodos. Cuidado con la escalabilidad de las soluciones (Signal/Stop) • Altamente configurable, fácil de instalar y usar (Admin, user) • Diseño modular y distribuido • Apuesta por la Predecibilidad frente a: escalabilidad, tolerancia a fallos, balanceo de carga y seguridad. • PBS, CCS (100.000 líneas, 400 ficheros) ==Î (10.000 líneas de código y 30 ficheros de complejidad) • Modos de funcionamiento space-sharing (modo exclusivo) & time-sharing (compartido para tareas del metacomputador). Balancear rendimiento/costo (backfilling conservativo, dinámico ?) • Permitir trabajos paralelos, interactivos, tiempo real y batch • El usuario paralelo especifica los requerimientos (nodos, tiempo, tipo de ejecución, memoria, etc). Grado de fiabilidad? • Considerar periodos día / noche a la hora de planificar (imágenes). • Instalación automática bajo GUI. • Punto de acceso de trabajos provenientes de un GRID u otro cluster. Especificación de Funcionalidad • Revisar la arquitectura del entorno (Crono, CCS,SLURM) Vs Middleware (SCE(KSIX)) • Ingeniería del S/W (browser-based GUI. GUI cliente, Cluster server) • Monitorización: (server (Big-brother) o server y usuario) • Mantenimiento: manejador de Imágenes (Lizard: 15m create, 3m clon), update, solución de problemas • Configuración e instalación: uno o varios master server (NFS;DNS;DHCP) nodos y front-end. • Buscar la singularidad (volcar los esfuerzos) •Ingeniería del S/W (browser-based GUI. GUI cliente, Cluster server) •Monitorización: (server (Big-brother) o server y usuario) • ¿Qué herramientas tienen sentido? • Turnaround / slowdown /througput? • Mantenimiento • Configuración e instalación 111 portmapper 2 nfs 1.003 nis 1.004 1 nfsd function(...) MAC=0A:12:A1:00:B2:24:AE servidor cliente dhcpd IP=138.100.9.201 • Buscar la singularidad Process distribution Load balance Job scheduling of multiple tasks Tema 2:Administración de Sistemas like_Unix • Funciones del Administrador •Administración de Clusters (1 sesión) Taxonomía: Introducción Diseño de un entorno de Administración Ejemplos (OpenMosix) The openMosix Project has officially closed as of March 1, 2008. Source code and mail archives continue to be available from SourceForge as read-only resources. Moshe Bar OpenMosix Herramientas • Visualización de estado • Programación de características Libros “Building Linux Clusters” “How to Build Beowulf” “High Performance Cluster Computing” Web sites IEEE Computer Society Task Force on Cluster Computing http://www.ieeetfcc.org/ White Paper http://www.dcs.port.ac.uk/~mab/tfcc/WhitePaper/ Cluster top 500 http://clusters.top500.org/ Beowulf Project http://www.beowulf.org/ Beowulf Under Ground http://www.beowulf-underground.org/ Tema 3: Evaluación de prestaciones 3.2.a Evaluación de prestaciones 3.2.b Recursos del Sistema y consideraciones de diseño 3.2.c Herramientas de medida 3.2.d Metodología 3.2.a.- Evaluación de prestaciones Introducción (1/3) “Trasladar las definiciones subjetivas de rendimiento a un proceso de cuantificación” • Introducción (Objetivos, Niveles S.O. =>solución aproximada, no existen formas precisas de caracterizar los programas) Puertas ) registros) ISP) PMS) S.O. ) Aplicación Primitivas y técnicas Rendimiento específicas diferente Introducción (2/3) Objetivos en la evaluación de rendimiento: • Evaluación de selección (Configuración OK) • Proyección del rendimiento (Sª no existente) Predecir cargas, etapas iniciales, modificaciones Objetivos?, mejor organización • Control del rendimiento (medir, ρ ?, actuar) Proceso de configuración y sintonización Introducción (3/3) Administración de Sistemas Unix • INTRODUCCIÓN • CIENCIA TAREAS: RUTINARIAS/DIARIO (Sam, Scripts, Comandos directos) • ARTE SINTONIZACIÓN (Sar, HP_glance_Plus, Tunex) 3.2.b.- Recursos del Sistema Diferentes aplicaciones diferentes recursos Caracterización de la Carga (1/2) • Conjunto de todas las entradas que el sistema recibe del entorno - Externa (workload (t), sistema (s.o./hw), p_sistema (cc,linker) - Dependencia de las fronteras Determinar cuál de los numerosos aspectos tienen influencia en el rendimiento del Sistema. Caracterización de la Carga (2/2) • Tiempos, mezcla instrucciones, Benchmarks, kernels y programas sintéticos. • Parámetros significativos: - # procesos Cola ready - Duración ráfaga CPU-burst - DAG, DG (vol. Comp, vol.comunica) - scalls, fork/s, namei, igets, exec, lread - Distinguir fases (paralelismo) Modelos (1/5) Capacidad de modelado vs capacidad de decisión. Tipos de modelos: Estructurales Funcionales Analíticos Prestaciones Modelos (2/5) Estructurales (interrelaciones entre componentes) Modelos (3/5) Funcionales Especifican el funcionamiento o comportamiento del sistema. - Diagramas de estado - Diagramas de flujo - Redes de Petri - DAG, DG, TIG DAG /DG Vc / Vcom. Redes de Petri • Carl Adam Petri en 1962. (>10.000 publications). red1 red2 safe yr1 yr2 yellow1 rg1 yellow2 rg2 gy2 gy1 green1 green2 Modelos (4.1/5) Analíticos Expresión matemática de la relación p = Sp (W) p = indice de pretaciones W = Carga derivada por el análisis del comportamiento de un modelo funcional del sistema.(representatividad, tratabilidad) Se ocupan de los problemas de gestión de uno o varios recursos específicos del sistema Modelos analíticos (4.2/5) Teoría de colas Modelos analíticos (4.3/5) 1.- Modelo de llegadas - Instantes de llegada al sistema - Tiempo medio entre dos llegadas consecutivas =1/λ - Velocidad media de llegadas de clientes = λ El proceso de llegadas puede ser modela do por una distribución de Poisson. P (n, t) = ((λ t) n) / n! * (e –λt) Modelos analíticos (4.4/5) 2.- Modelo de Servicio - Sea s el tiempo que necesita un cliente en servicio - Velocidad media de servicio µ - Tiempo medio que necesita para servir un cliente 1/ µ Distribución del tiempo de servicio Ps= 1- e - µt Modelos analíticos (4.5/5) 3.- Política de colas: FCFS, RR, prioridades Conocidos 1, 2 y 3 se pueden deducir una serie de formulas de rendimiento. λ = Número promedio de arribos por período de tiempo μ = Número promedio de gente o cosas servidos por período de tiempo n = número de unidades en el sistema LS = Número promedio de unidades (clientes) en el sistema LS = ρ = Factor de utilización del sistema = λ μ −λ λ μ WS = Tiempo promedio que una unidad permanece en el sistema = (tiempo de espera + tiempo de servicio) 1 WS = μ −λ Modelos analíticos (4.6/5) Cadenas de Markov Modelos empíricos(5/5) Un modelo empírico de prestaciones es obtenido a partir de la experiencia. A partir de los datos se construye el modelo , sin ningún modelo supuesto. Contrariamente, los modelos analíticos derivan de la descripción matemática de un modelo funcional. • Modelos de regresión lineal • Profiles Modelos (5.1/5) Modelos de Regresión Derivado de las observaciones se construye el modelo. Normalmente se asumen modelos lineales. Pi = a0 + Σ aij zj + … (j=1, j=n) Pi = variable dependiente de rendimiento zj = f ( carga del sistema, medidas internas) (validación sobre conjunto de datos o clusters lineales) Clustering Y (Consumo) E(y|x) E(y|x)=β0+β1x ΔE(y|x) Δx β1= ΔE(y|x) Δx pendiente β0{ constante X (renta) Modelo de Regresión Lineal Simple Modelos (5.2/5) Trazas de Gantt (degeneración modelo de prestaciones se muestra como la carga afecta al consumo de recursos) Cuota Algoritmo arquitectura r = T. ex. Política de planificación Traza de GANTT T.ex. (cuota) r Τ1 1 Τ3 1 Τ2 2 Τ4 4 Τ5 4 Τ7 7 Τ8 4 Τ6 3 Τ9 1 P1 Τ1 Τ3 Τ2 P2 Τ4 Τ5 P1 Τ1Τ3 Τ6 P2 Τ2 Τ4 Τ8 Τ7 Τ5 Τ6 Τ7 Τ8 Τ9 Τ9 Simulación (eventos, tiempo, traza) Híbrido entre modelar y medir (incluir aspectos dinámicos del Sistema) Simulación Determinística Tiempo Traza Estocástica Eventos Simulación dirigida por eventos Algoritmo de simulación secuencial Inicializar:: clock : = 0; lista_eventos := (ti, mi); < mensaje mi será enviado a ti excepto si el proceso fuente recibe un mensaje previo a ti que lo cancela> Iterar:: while <no se alcance el criterio de finalización> do sacar de la lista el mensaje con menor tiempo. Simular el efecto de enviar el mensaje (t,m). < puede producir agregar / sacar mensaje de la lista > clock : = t; endwhile; Ejemplo de construcción de la tabla de eventos Monitores • Herramienta diseñada para observar la actividad de un sistema informático mientras es utilizado por los usuarios Monitor Carga • Acciones típicas de un monitor – Observar el comportamiento – Recoger datos estadísticos – Analizar estos datos – Mostrar los resultados Atributos de los monitores • Interferencia o sobrecarga (overhead) – Diferentes grados de intrusismo Sistema informático Monitor • Sistema informático Monitor • • Monitor Sistema informático • • • • Precisión – Calidad de la medida Resolución – Frecuencia de medida Ámbito o dominio de medida – Qué mide Anchura – Bits de información Capacidad de síntesis de datos Coste Facilidad de instalación y uso Implementación de los monitores • Software – Programas instalados en el sistema • Hardware – Dispositivos externos al sistema • Híbridos – Utiliza los dos tipos anteriores Los más habituales Entornos muy específicos Tema 3: Evaluación de prestaciones 3.2.a Evaluación de prestaciones 3.2.b Recursos del Sistema y consideraciones de diseño 3.2.c Herramientas de medida 3.2.d Metodología 3.2.c.- Herramientas de medida sar- System V: collects and reports systemactivity information on CPU, disk and memory vmstat- CPU and virtual memory iostat- I/O subsystem ps- shows current status of processes Accounting data netstat- network load who y w • who: quién está conectado al sistema (logged on) fede xavi :0 pts/0 Oct 30 15:07 (console) Oct 30 17:45 (paraiso.disca.upv.es) • w: quién está conectado al sistema (logged on) y qué hace % w 1:38pm USER jaume fede xavi pperez up 4:27, 18 users, load average: 0.04, TTY FROM LOGIN@ IDLE ttyp1 kaizen.gap.upv.e 9:17am 2:02m ttyp2 10:28am 51:02 :0 songoku.disca.up 1:20pm ? ttyp3 10:02am 29:22 0.03, 0.04 JCPU PCPU 2:48 0.48s 0.14s 0.03s 7:32 ? 0.18s 0.14s WHAT -sh rlogin ma ssh tiberio. Carga media del sistema Unix • • • Estados básicos de un proceso – En ejecución (running process) – En espera • Dispone de todo menos de la CPU (runnable process) • Bloqueado en una operación de I/O (blocked process) La cola de procesos del núcleo (run queue) está formada por aquellos que pueden ejecutarse (runnable) Carga media (system load average): número medio de procesos en ejecución y en la cola del núcleo blocked runnable running uptime • Tiempo que lleva el sistema en marcha y la carga media que soporta % uptime 1:21pm Hora actual up 1 day, 4:09, 18 users, Tiempo en marcha load average: 1.04, 0.30, 0.09 Último minuto 15 últimos minutos 5 últimos minutos – Estimación de la carga • Operación normal: hasta 3 • Muy alta: entre 4 y 7 • Excesivamente alta: mayor que 10 – La carga se tolera según la configuración de cada sistema Evolución típica de la carga media ¿Cómo mide la carga media el SO? • Experimentos de Neil Gunther – www.teamquest.com/resources/gunther/ldav g1.shtml Recursos del Sistema y consideraciones de diseño La importancia del diseño del S.O Entrada / Salida (logical disk, fs_distrib, hdparam, swap, raid, await, readblock, colas) Main( ) Usuario { ...fork( ) ... TRAP TRAP Kernel Call proc Call proc Copias en memorias intermedias y cambios de espacios de direcciones condicionan el rendimiento del sistema Sistema de ficheros: h/w y abstracciones Zoni ng30 read (fd, buffer, tamaño) buffer Usuario 25 tamaño archivo lógico (VFS) Bloques lógicos (Servidor de bloques) Cache de bloques (Servidor de bloques) Zona 1 3 1340 4 1756 5 840 6 8322 bloques del archivo bloques del dispositivo T a s a d e tra n s fe re n c ia (e n M B /s ) archivo lógico (FFS) Disco FUJITSU MAG 3091 - Pruebas zoning para el caso de lectura Zona 2 20 Zona 3 Zona 4 Zona 5 Zona 6 15 Zona 7 Zona 8 Zona 9 Zona 10 Zona 11 10 Zona 12 1340 1756 840 8322 5 1756 bloques del disco Manejador de disco y dispositivo 0 0 200 400 600 800 1000 1200 Tamaño de cada petición individual (en KB) 8322 # Hdparm –Tt /dev/hda0 Sistema de ficheros: estructuras de datos Tipo de Fichero y Protección Número de Nombres Propietario Grupo del Propietario Tamaño Instante de creación Instante del último acceso Instante de la última modificación Puntero a bloque de datos 0 Puntero a bloque de datos 1 Puntero a bloque de datos 9 Puntero indirecto simple Puntero indirecto doble Puntero indirecto triple Punteros a Bloques de Datos Punteros a Bloques de Datos Punteros a Bloques de Datos nodo-i Punteros a Bloques de Datos Punteros a Bloques de Datos Punteros a Bloques de Datos Superbloque Nodo_i MS-DOS Boot Dos copias de la FAT Directorio Raíz Datos y Directorios UNIX Boot Super Bloque Mapas de bits nodos-i Tablas internas y layout Datos y Directorios El directorio /proc • Contiene ficheros con información del sistema – Configuración – Estadísticas: contadores • Ejemplos – cpuinfo – meminfo – interrupts – devices – etc. %more /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 modelo : 5 modelo name : Pentium II (Deschutes) stepping : 2 cpu MHz : 350.807487 cache size : 512 KB fdiv_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr bogomips : 349.80 << bw de pico del disco nice FIFOs, DMA para reducir int. Parámetros de sar • Gran cantidad de parámetros – Varían de unas versiones a otras del monitor -u -B -c -b -d -I -n -q -r -w -W -x PID Utilización del procesador Paginación de la memoria virtual Creación de procesos Transferencias con la entrada/salida Transferencias para cada disco Sistema de interrupciones Conexión de red Carga media del sistema Sistema de memoria Cambios de contexto Intercambio (swapping) Estadísticas sobre un proceso Programa SarCheck • Herramienta para – Análisis de prestaciones – Sintonización, planificación de la capacidad • Sistemas Sun Solaris, HP-UX, AIX y Linux x86 • Basado en el monitor sar • Utiliza gnuplot para generar gráficos • Genera informes en formato HTML – Sección de recomendaciones – Sección de análisis de recursos – Sumario de estadísticas, etc. • www.sarcheck.com UNIX Performance Tuning Simplified... and Linux Performance Tuning too! Informe generado por SarCheck RESOURCE ANALYSIS SECTION Average CPU utilization was only 15.7 percent. This indicates that spare capacity exists within the CPU. If any performance problems were seen during the monitoring period, they were not caused by a lack of CPU power. CPU utilization peaked at 34.00 percent from 08:10:01 to 08:15:01. A CPU upgrade is not recommended because the current CPU had significant unused capacity. Sar –b –d (contadores asociados) Funcionamiento del monitor sar • Se basa en dos órdenes complementarias – sadc (system-accounting data collector) • Recoge los datos estadísticos (lectura de contadores) y construye un registro en formato binario (back-end) – sar • Lee los datos binarios que recoge sadc y las traduce a un formato legible por nosotros en formato texto (front-end) fichero histórico /dev/kmem contadores binarios sar sadc /proc contadores ASCII pipe Informe Los datos sobre la actividad • • • Se utiliza un fichero histórico de datos por cada día Se programa la ejecución de sadc un número de veces al día con la utilidad “cron” del sistema Unix – Por ejemplo, una vez cada 5 minutos Cada ejecución de sadc añade un registro binario con las datos recogidos al fichero histórico del día %ls /var/log/sa -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root root root root root root root root root root 3049952 3049952 3049952 3049952 3049952 3049952 3049952 3049952 2372320 Sep 30 23:55 sa30 Oct 1 23:55 sa01 Oct 2 23:55 sa02 Oct 3 23:55 sa03 Oct 4 23:55 sa04 Oct 5 23:55 sa05 Oct 6 23:55 sa06 Oct 7 23:55 sa07 Oct 8 18:45 sa08 Día actual Procesos, CPU y planificadores Memoria Planificación a largo plazo Ejecución Listo Exit Fin E/S Bloqueado Planificación a corto plazo Procesos Batch en espera Swap Entra al sistema Listo y suspendido Bloqueado y suspendido Planificación a medio plazo (reparto tiempo, tamaño cola, prio, nice, SMP: affinity, mpstat) Dependencia de los intervalos, en función del apartado en el que se está interesado (2 seg para CPU_info; 30-60seg disco) #vmstat <-fsi> <interval> <count> NP: BSD, SysV, OSF, etc diferencias significativas) Suministrar RSS o VSZ; planificadores?? time • Mide el tiempo de ejecución de un programa – Refleja la percepción de las prestaciones del sistema por parte del usuario • real: tiempo total usado por el sistema (tiempo de respuesta) • user: tiempo de CPU ejecutando en modo usuario (user-state CPU time) • sys: tiempo de CPU en modo supervisor (system-state CPU time) ejecutando código del núcleo %time quicksort real 6m 23s user 3m 50s sys 2m 10s Tiempo de respuesta = real = 383 s Tiempo de CPU = user+sys = 360 s (94% del total) Tiempo de espera = real-(user+sys) = 23 s (6% del total) consumido en espera de I/O o en la ejecución de otros programas Utilización de la UCP Manejo de memoria Dirección lógica Página Byte tasa de fallos de página grado de multiprogramación Registro base de la TP límite superior límite inferior número de marcos (mem_proc, pf, free_mem, cache) Marco de página .. . Recurso de Red (send/rec packets, collision, switches&routers, cards, org_subnet) /proc #sysctl kernel.shmmax Kernel.shmmax=33554432 #sysctl –w kernel.shmmax=33554430 Kernel.shmmax=33554430 ______________________ /etc/sysctl.conf Kernel.shmmax=33554430 - R_H kernel tuning - YaST Tema 3: Evaluación de prestaciones 3.2.a Evaluación de prestaciones 3.2.b Recursos del Sistema y consideraciones de diseño 3.2.c Herramientas de medida 3.2.d Metodología 3.2.d.- Metodología Sintonización de las variables de sintonización del S.O. 1.- Carga (estable) Sistema 3.- Rendimiento 2.a.-h/W(CPU, M, I/O, Red) 2b.- Variables de sintonitzación (buffer cache,taules del nucli, ...)