Uso de Ambientes Cluster Multicore para Visualización en Gran Formato Universidad de Los Andes Bogotá, Colombia Departamento de Ingeniería y Computación 15.05.08 Contenidos Uso de Ambientes Cluster Multicore para Visualización en Gran Formato ................................................. 1 Estado actual de visualización en clusters .................................................................................................... 3 Motivación .................................................................................................................................................... 3 Taxonomía..................................................................................................................................................... 3 Infraestructura .............................................................................................................................................. 3 Herramientas de visualización .................................................................................................................. 3 # Chromium.......................................................................................................................................... 3 # Equalizer ............................................................................................................................................. 3 # OpenSG .............................................................................................................................................. 3 # Xdmx................................................................................................................................................... 3 # Paraview ............................................................................................................................................. 3 Comparación de funcionalidad ................................................................................................................. 4 Herramientas de medición de rendimiento ............................................................................................. 4 # Ganglia ............................................................................................................................................... 4 # Nagios................................................................................................................................................. 5 # Wireshark ........................................................................................................................................... 6 Comparación de funcionalidad ................................................................................................................. 7 Pruebas Comparativas .................................................................................................................................. 8 Bibliografía .................................................................................................................................................... 9 Guía de Instalación Chromium................................................................................................................ 10 Demo ................................................................................................................................................... 10 Guía de Instalación Equalizer .................................................................................................................. 10 Demo ................................................................................................................................................... 10 Guía de Instalación OpenSG.................................................................................................................... 10 Demo ................................................................................................................................................... 10 Guía de Instalación DMX ......................................................................................................................... 10 Demo ................................................................................................................................................... 10 Guía de Instalación Paraview .................................................................................................................. 10 Demo ................................................................................................................................................... 10 Guía de Instalación Ganglia..................................................................................................................... 10 Guía de Instalación Nagios ...................................................................................................................... 10 Guía de Instalación Wireshark ................................................................................................................ 10 Estado actual de visualización en clusters Motivación Taxonomía Infraestructura Herramientas de visualización # Chromium # Equalizer # OpenSG # Xdmx Xdmx (Distributed Multihead X), es un servidor proxy que permite distribuir un una sesión del X-Server sobre varias pantallas conectadas a diferentes máquinas. Un servidor X tradicional únicamente permite distribuir contenido a través de pantallas conectadas a un mismo equipo lo cual lleva a una restricción a partir del hardware ya que el número de pantallas que se pueden usar depende directamente de los dispositivos de display que se tengan, por ende limitándose al número de puertos AGP/PCI que se tengan. Xdmx permite sobreponerse a esta limitante al hacer esta distribución a través de una red. Una configuración básica permite simplemente correr una instancia dividida en dos pantallas lado a lado (por ejemplo, dos monitores con resoluciones de 1024x768 pixeles presentando un manejador de ventanas continuo de 2048x768 pixeles), como se vería con un servidor X convencional en una maquina con dos pantallas, no obstante, se pueden realizar configuraciones más complejas, como por ejemplo una cuadrícula de 4x4 con resolución total de 4096x3072 pixeles. Una guía detallada, al igual de ejemplos y el manual de Xdmx se pueden encontrar en el sitio web oficial del proyecto: http://dmx.sourceforge.net. <<Imágenes de ejemplos>> Figura 1 a) Configuración simple de dos monitores. b) Configuración en forma de cuadrícula 2x2. # Paraview Comparación de funcionalidad Herramientas de medición de rendimiento Existen varias opciones a la hora de monitorear el rendimiento de un grid de computadores. Cada alternativa ofrece distintas funcionalidades con sus respectivas ventajas y desventajas (Gerndt & Wismuller, 2004). A la hora de definir que herramientas se utilizarían para el monitoreo del cluster, se busco principalmente poder monitorear recursos básicos del sistema (porcentaje del procesador usado, memoria disponible, cache utilizado, etc.), al igual que recursos de red (cantidad de paquetes entrantes/salientes, protocolos usados, etc.). # Ganglia Ganglia es un sistema distribuido de monitoreo orientado a clusters y grids. Está basado en tecnologías ampliamente usadas para generar un muy bajo impacto sobre cada uno de los nodos que monitorea. Utiliza XML para manejar datos, XDR para transporte y una base de datos Round Robin (RRDtool http://oss.oetiker.ch/rrdtool/) para almacenar los datos. Adicionalmente posee una interfaz web amigable que permite monitorear fácilmente en tiempo real el estado de uno o varios clusters por medio de graficas automáticamente generadas. En su instalación básica, ganglia permite monitorear un amplio número de parámetros para tanto el grid/cluster como los nodos individuales, estos incluyen carga sobre el procesador, porcentaje de utilización del cada procesador, consumo de memoria (principal y cache), entrada y salida de bytes y paquetes. Igualmente, también es posible crear métricas propias y desplegarlas a través de la interfaz web ofrecida. Ganglia está compuesto por 3 componentes: GMOND (Ganglia Monitor Daemon), GMETAD (Ganglia Meta Daemon) y la interfaz web. GMOND, como su nombre lo indica, es un componente de monitoreo que recoge los diferentes datos en cada nodo y los prepara para GMETAD, quien es el encargado de obtener la información de cada nodo y almacenarla usando rddtool. Por último, la interfaz web utiliza un servidor http y PHP para desplegar la información y generar gráficas dinámicamente. Mientras que el servicio GMOND debe estar activo en cada uno de los nodos existentes, GMETAD y la interfaz web solo necesitan están en el nodo de control, el cual inclusive no tiene que hacer parte del cluster. Ganglia se originó en la Universidad de Berkeley, California, y hoy en día es usado por un gran número de instituciones importantes, entre los cuales se encuentran el CERN, Cisco, Harvard, MIT, National Institute of Health, Boeing, Lockheed-Martin, nVidia, Microsoft y Sun, entre otros (Ganglia, 2008). Se pueden encontrar demos funcionales de grids, incluyendo una lista más completa de instituciones y compañías que utilizan ganglia, en el sitio web oficial del proyecto en http://ganglia.info. Figura 2 - Página inicial de la interfaz web de Ganglia # Nagios Nagios, al igual que Ganglia, es un software gratuito usado principalmente para el monitoreo de hosts y servicios dentro de una red. Está diseñado para correr en un ambiente Linux, pero ha sido adaptado para la mayoría de ambientes UNIX. El servicio de monitoreo se encarga de revisar paulatinamente el estado de cada nodo y reporta cambios en servicios suscritos. Esta información puede ser mostrada a través de la interfaz web, al igual que puede ser enviada a través de correo, mensaje instantáneo o inclusive mensajes SMS. Algunas de sus funcionalidades principales son las siguientes (Nagios, 2008): Monitoreo de servicios y protocoles de red (SMTP, POP3, HTTP, NNTP, Ping, etc.) Monitoreo de recursos (carga en procesador, memoria disponible, número de procesos en ejecución, etc.) Monitoreo de ambiente (ej. temperatura) Habilidad para determinar nodos inaccesibles o caídos Notificaciones cuando ocurren problemas con un nodo (vía correo electrónico, SMS, IM, etc.) Habilidad para definir manejadores de evento propios Programación de mantenimiento para nodos Interfaz web para ver el estado actual de la red, historiales, etc. Esquema de autorizaciones para restringir operaciones a través de la interfaz web. Nuevamente, es posible encontrar información detallada en el sitio web oficial, incluyendo documentación y soporte: http://www.nagios.org. Figura 3 - Monitoreo de servicios a través de la interfaz web de Nagios # Wireshark Wireshark, previamente conocido como Ethereal, es un sniffer de paquetes reconocido mundialmente y comúnmente considerado el estándar de facto entre industrias e instituciones de educación (Wireshark). Inicialmente un proyecto iniciado por Gerald Combs en 1998, hoy en día cuenta con cientos de contribuciones por parte de expertos en el área a nivel mundial. Wireshark es software gratuito disponible como fuente abierta distribuido bajo la licencia pública GNU. Wireshark se encuentra disponible para una variedad de plataformas, las cuales incluyen Windows, Linux, OS X, Solaris, FreeBSD y otros. Funciona como un programa independiente y tiene una gran versatilidad a la hora de exportar y filtrar resultados. Entre sus múltiples capacidades se encuentra la posibilidad de inspeccionar cientos de protocolos, captura en vivo de paquetes, poderosos filtros de resultados, análisis de VoIP, lectura/escritura de múltiples formatos (tcpdump, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network General Sniffer®, Novell LANalyzer, etc.) y la capacidad de captura de datos a través de Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring, Frame Relay, FDDI y otros (Wireshark). Figura 4 - Muestra de captura de paquetes usando Wireshark Comparación de funcionalidad Aunque inicialmente se tenía pensado utilizar una combinación de herramientas para poder medir rendimiento y trafico en red igualmente, se decidió optar por utilizar únicamente Ganglia debido a su facilidad de uso. Aunque Nagios es más robusto y a la larga posee una funcionalidad más extensa, resulta más complicado obtener métricas del sistema rápidamente. De igual manera, el front end de Ganglia resulta mucho más fácil de usar y navegable que su contraparte en Nagios. Adicionalmente, Ganglia posee la ventaja de manejar RRDtool para almacenar sus datos, lo cual ofrece la facilidad de obtener métricas específicas fácilmente por medio de comandos básicos, al igual que la posibilidad de crear métricas personalizadas utilizando GMETRICS. Aunque Wireshark posee le mejor funcionalidad en cuestión de redes, posee una gran desventaja ya que debe ser ejecutado individualmente en cada uno de los nodos del cluster. A diferencia de Ganglia y Nagios que están diseñados precisamente para su uso en ambientes distribuidos, Wireshark analiza el tráfico de red perteneciente al adaptador de red presente en la máquina. Si dicho nodo se encuentra detrás de un enrutador o dispositivo que filtre paquetes con base a direcciones físicas, solo se podrán capturar paquetes destinados a ese equipo. Como resultado, un análisis de trafico de red sería necesario correr en simultaneo una captura en todos los nodos. Aunque Ganglia solo posee datos básico sobre tráfico en la red (numero de bytes y paquetes entrantes y salientes) basta para tener una aproximación a la carga que se está efectuando. Pruebas Comparativas Bibliografía Ganglia. (18 de Febrero de 2008). Recuperado el 15 de Mayo de 2008, de Ganglia Monitoring System: http://ganglia.info Gerndt, M., & Wismuller, R. (7 de Enero de 2004). Performance Tools for the Grid: State of the Art and Future. Munich, Germany. Nagios. (18 de March de 2008). About Nagios. Recuperado el 15 de Mayo de 2008, de Sitio Web de Nagios: http://www.nagios.org Wireshark. (s.f.). About Wireshark. Recuperado el 15 de Mayo de 2008, de Wireshark: http://www.wireshark.org Anexo Guía de Instalación Chromium Demo Guía de Instalación Equalizer Demo Guía de Instalación OpenSG Demo Guía de Instalación DMX Demo Guía de Instalación Paraview Demo Guía de Instalación Ganglia Guía de Instalación Nagios Guía de Instalación Wireshark