Sistemas de alto rendimiento

Introducción a Windows Compute Cluster Server

John Kelbley and Doug Lindsey

 

Resumen:

  • Usar clústeres para resolver problemas complejos
  • Requisitos generales para clústeres de cálculo
  • Configurar un clúster de cálculo basado en Windows
  • Ejecutar comandos de forma remota

Los sistemas de alto rendimiento (HPC, High Performance Computing) hacen referencia a una rama de la computación aplicada que se centra fundamentalmente en la solución de problemas que hacen un uso intensivo del cálculo. Hace unos años, los sistemas de alto rendimiento (a los que se hacía referencia habitualmente como "supercomputación") estaban dominados por

sistemas grandes y especializados (costosos) que se encontraban principalmente en centros de investigación. No obstante, a medida que la capacidad de cálculo de los sistemas pequeños ha aumentado, ha cambiado la relación costo-rendimiento y las cargas de cálculo se han desplazado a los sistemas de PC.

Muchos problemas de cálculo intensivo se pueden solucionar mediante la realización de cálculos en paralelo, es decir, un cálculo o proceso concreto no puede depender del resultado de otro para completarse. En casos como éste, los problemas grandes pueden sacar partido de múltiples sistemas de menor tamaño (nodos) agrupados en clústeres de cálculo. A continuación se indican algunos ejemplos de los tipos de aplicaciones que aprovechan los clústeres de cálculo:

  • Modelos financieros: un algoritmo o una fórmula se ejecutan miles de veces cada una de ella con datos distintos.
  • Ingeniería: simulación de los efectos en piezas individuales, aplicación de texturas a modelos.
  • Animación informática: aplicación de efectos de textura e iluminación a cada fotograma de una película.

Los clústeres de cálculo proporcionan una forma económica de solucionar problemas complejos en un breve período de tiempo. Como verá, Microsoft proporciona funcionalidad y asistencia claves para los clústeres de cálculo con Windows® Compute Cluster Server 2003.

Es importante entender que un clúster de cálculo es distinto de un clúster de disponibilidad (conmutación por error). Puede que ya esté familiarizado con los clústeres de disponibilidad para Exchange, SQL Server® u otras aplicaciones en Windows Server® 2003. Normalmente aprovechan el almacenamiento compartido para maximizar el tiempo de actividad de las aplicaciones. La finalidad de los clústeres de cálculo no es reanudar el trabajo de otro sistema si se produce una interrupción, sino permitir que todos los nodos funcionen de un modo coordinado.

Requisitos generales para un clúster de cálculo

Recursos de HPC

Los sistemas modernos de HPC comparten algunos elementos clave que facilitan el procesamiento de cargas de trabajo. Para comenzar, se necesitan varios sistemas. También se necesita un programador que coordine las asignaciones de trabajo en los nodos. El programador se ejecuta en el nodo encargado (el nodo principal) e identifica los recursos disponibles, asigna y distribuye tareas y realiza el seguimiento del estado general de los trabajos. Es el coordinador de recursos en el clúster de sistemas así como el punto al que los usuarios y administradores envían los trabajos para su procesamiento.

Los clústeres requieren un medio de comunicación entre los nodos. Según el tipo del trabajo, los nodos pueden necesitar interconexiones de alta velocidad y latencia baja para pasarse mensajes entre sí con el fin de coordinar el procesamiento. Como mínimo, cada nodo de cálculo y el nodo principal deben estar conectados a una red común.

Una gran cantidad de sistemas interconectados que trabajan juntos para solucionar problemas complejos también necesita atención. Se necesitan procesos y herramientas dirigidos al aprovisionamiento, la supervisión, la administración y el mantenimiento de decenas a centenares o miles de sistemas para garantizar un entorno coherente y estable.

Finalmente, y más importante, se debe disponer de aplicaciones que puedan aprovechar las capacidades de procesamiento en paralelo de un clúster de cálculo. Sin aplicaciones que puedan dividir los trabajos para que se puedan procesar en varios equipos o herramientas de desarrollo que incluyan compatibilidad con un "depurador en paralelo", poco puede hacer un clúster aparte de calentar la sala de equipos.

Agrupación en clústeres basada en Windows Server

En 2006, Microsoft presentó Windows Server 2003 Compute Cluster Edition (CCE) y Windows Compute Cluster Server 2003 (WCCS) para satisfacer las necesidades de una amplia gama de aplicaciones HPC. CCE y WCCS se basan en el mismo Windows Server 2003 con que el que ya está familiarizado. CCE es una versión de Windows Server 2003 con licencia para su uso con aplicaciones HPC. WCCS es idéntico a CCE con la adición de Microsoft® Compute Cluster Pack (CCP). Esto significa que puede implementar, administrar, supervisar y mantener un clúster basado en Windows Server con las mismas herramientas que ya usa para administrar sistemas Windows Server 2003 existentes.

Un punto clave que se debe tener en cuenta es que CCE y WCCS sólo están disponibles en versión x64. No hay versión de 32 bits (x86) de estos productos. Los requisitos de hardware para CCE y WCCS son idénticos a los de Windows Server 2003 Standard x64 Edition. Además de admitir hardware de alto rendimiento (arquitectura de 64 bits), los productos incluyen compatibilidad con el acceso remoto directo a memoria (RDMA, Remote Direct Memory Access) para las interconexiones de alto rendimiento (Gigabit Ethernet, InfiniBand, Myrinet y otros).

Compute Cluster Pack

Tal como se ha mencionado anteriormente, los clústeres de cálculo tienen algunos requisitos básicos que se pueden cumplir con la instalación de Compute Cluster Pack. CCP es un paquete independiente de instalación que incluye:

  • Programador de trabajos integrado
  • Compatibilidad con Interfaz de transferencia de mensajes (MPI, Messaging Passing Interface) para el estándar MPICH2
  • Administración de recursos de clúster y herramientas de usuario

CCP es el diferenciador clave entre CCE y WCCS. Tal vez se pregunte el motivo de que, si los clústeres de cálculo necesitan estos componentes, sólo estén incluidos en WCCS y no en CCE. La respuesta es que algunas soluciones HPC aprovechan distintos programadores de trabajos o MIP especializadas (o no requieren compatibilidad con MPI) y simplemente requieren una plataforma excepcional en la que se puedan ejecutar, como Windows Server 2003. Como CCP es un paquete estándar, se puede instalar en otras versiones x64 de Windows Server 2003 (CCE, Standard, Standard R2, Enterprise y Enterprise R2).

Datos básicos

WCCS aprovecha los elementos fundamentales y clave de Windows para simplificar la administración y el funcionamiento de los clústeres basados en Windows, incluido Active Directory® y Servicios de instalación remota (RIS, Remote Installation Services). Compute Cluster Server usa Active Directory para administrar la seguridad de un modo transparente. Con Active Directory, un usuario puede enviar un trabajo al nodo principal (con un único conjunto de credenciales) que se puede ejecutar en centenares de nodos de servidor. Cuando los trabajos se ejecutan en uno o varios nodos de cálculo, se ejecutan en el contexto de las credenciales de usuario proporcionadas al enviar el trabajo y, en lo sucesivo, se almacenan en caché de forma segura. WCCS se basa en Active Directory para proporcionar esta funcionalidad de "punto único de inicio de sesión". Una ventaja adicional de que Active Directory se encuentre en el entorno reside en el hecho de que la directiva de servidor y configuración se puede administrar de forma centralizada mediante la directiva de grupo.

Si su organización de TI ya tiene Active Directory implementado, puede ahorrar un tiempo considerable y esfuerzos administrativos si crea el clúster en el dominio existente. Es el escenario recomendado.

Si necesita implementar un clúster de cálculo en un entorno donde no existe Active Directory, una práctica recomendada es implementar uno o varios controladores de dominio dedicados para hospedar Active Directory para el clúster. Es muy habitual convertir el nodo principal en un controlador de dominio de Active Directory, ya que todos los nodos ya tienen conectividad de red al sistema, independientemente de la topología de red. No obstante, no se recomienda convertir el nodo principal en controlador de dominio para clústeres a gran escala debido a la mayor carga en dicho nodo. Se deben seguir las prácticas habituales para la implementación y la administración de Active Directory (instalación de controladores de dominio redundantes, copias de seguridad adecuadas, buenas prácticas de seguridad, etc.).

Servicio de instalación remota

WCCS proporciona un front-end integrado para la plataforma de implementación de imágenes del servicio de instalación remota de Microsoft. RIS se usa para implementar imágenes de sistema operativo desde el nodo principal a cada uno de los nodos de cálculo, lo que significa que puede usar RIS para instalar nuevos nodos de clúster rápidamente. No tiene que hacerlo de esta forma, ya que, por comodidad, RIS está integrado en WCSS. También se pueden usar otras tecnologías de implementación de Windows Server habituales, como Windows Server 2003 Automated Deployment Services (ADS) o una instalación manual de Windows Server 2003.

Si desea usar RIS, antes de instalar CCP en el nodo principal, asegúrese de que tiene definidos dos discos lógicos como mínimo. RIS requiere un disco independiente del sistema operativo para el almacenamiento de las imágenes de servidor. La partición de RIS debe disponer de suficiente espacio libre en disco para almacenar una o varias copias completas de una imagen de Windows Server.

El hardware de servidor más reciente, en concreto el destinado a redes y almacenamiento, puede requerir controladores Plug and Play que no se incluyen en las imágenes de Windows Server 2003 predeterminadas. En este caso, necesitará agregar estos controladores a la imagen manualmente. El procedimiento para hacerlo está documentado en línea en support.microsoft.com/kb/254078.

Instalación del clúster

El primer paso es configurar el cerebro del clúster: el nodo principal. Empiece con la instalación de una de las versiones x64 de Windows Server 2003 indicadas anteriormente. Durante la instalación del sistema operativo, elija si unirá el servidor a un dominio existente (recomendado) o si instalará Active Directory en el servidor (no recomendado para clústeres a gran escala).

Después instalar el sistema operativo, asegúrese de que también ha descargado e instalado todas las correcciones recomendadas desde Microsoft Update. Si planea usar RIS para la creación de imágenes de nodo de cálculo, deberá usar la herramienta administrativa Administración de equipos | Administración de discos para asegurarse de que tiene definidos dos discos lógicos como mínimo. Por cuestiones de espacio, no trataremos la instalación basada en RIS en este artículo.

Después de haber iniciado la sesión correctamente y haber actualizado el servidor, se ejecuta el programa de instalación de CCP. El programa de instalación de CCP instalará o le guiará por la descarga e instalación de los siguientes archivos y actualizaciones de requisitos previos:

El programa de instalación de CCP lleva a cabo un trabajo excepcional al evaluar la preparación del sistema para la instalación. Le indicará los componentes que son necesarios y que se instalan como parte del proceso, y los instalará, tal como se muestra en la Figura 1.

Figura 1 Componentes requeridos para la instalación de CCP

Figura 1** Componentes requeridos para la instalación de CCP **(Hacer clic en la imagen para ampliarla)

Lista de tareas pendientes

Cuando termina la instalación de CCP, se iniciará la consola del administrador, con el enfoque en la lista de tareas pendientes. Tal como se muestra en la Figura 2, la lista de tareas pendientes incluye varios paneles, cada uno para un área distinta y en el que se enumeran las tareas para completar la configuración del clúster.

Figura 2 La lista de tareas pendientes muestra lo que se debe hacer para configurar el clúster

Figura 2** La lista de tareas pendientes muestra lo que se debe hacer para configurar el clúster **(Hacer clic en la imagen para ampliarla)

La lista de tareas pendientes permite implementar fácilmente la arquitectura de clúster que ha diseñado, incluida la selección y configuración de la topología de red, el proceso de instalación de nodos y el modelo de administración de usuarios. Las tareas de cada uno de los paneles se enumeran en la parte derecha y cada tarea inicia un asistente. Complete cada tarea en secuencia para configurar totalmente un nodo principal que esté preparado para implementar imágenes RIS en un conjunto conocido de nodos de cálculo y que un conjunto definido de usuarios pueda administrarlo y tener acceso a él.

Topología de red WCCS es compatible con las cinco topologías de red más habituales que se usan en HPC. Como mínimo, todos los nodos de cálculo y el nodo principal deben compartir una red común. Las topologías incluyen compatibilidad con varios tipos de interconexiones entre los nodos y tienen distintas ventajas y costos.

La topología de red dependerá de los requisitos de rendimiento, seguridad e implementación para el clúster. Por ejemplo, puede que la aplicación requiera una interconexión de alta velocidad para la transmisión de mensajes que no desea exponer en la red corporativa. Tal vez desea aprovechar las capacidades de implementación integrada, basada en RIS y automatizada. Quizás el software que ha elegido sólo puede aceptar una sola NIC o, posiblemente, desea que el nodo principal ejecute Conexión compartida a Internet (ICS, Internet Connection Sharing) para administrar la resolución de nombres y el direccionamiento de los nodos de cálculo. El asistente "Configurar la topología de red de clúster" invocado desde la lista de tareas pendientes presentará las cinco topologías normalmente compatibles con las implementaciones de HPC y le ayudará a configurar las conexiones de red, incluidas las configuraciones de Firewall de Windows en el nodo principal y en los nodos de cálculo. En la Figura 3 se muestra una de las topologías de red admitidas.

Figura 3 Una de las topologías de red WCCS admitidas

Figura 3** Una de las topologías de red WCCS admitidas **(Hacer clic en la imagen para ampliarla)

Servicio de instalación remota Tal como se ha indicado anteriormente, RIS permite la implementación automática de los nodos de clúster.

Administración de nodos Tiene la capacidad de especificar los nombres de equipo de los servidores que serán nodos de cálculo en este clúster. Cuando CCP se ejecuta en un nodo, en este momento se especifica el nodo principal del clúster al que se unirá dicho nodo.

Administración de usuarios Aquí puede especificar las cuentas de usuario o grupos de Active Directory que se designarán como usuarios del clúster.

Instalación de nodos

La implementación de nodos de cálculo se puede realizar automáticamente mediante la utilidad de administración RIS u otros métodos de implementación admitidos. Al igual que sucede con el nodo principal, el CCP se debe instalar en cada nodo de cálculo. Tal como muestra la Figura 4, las opciones de configuración de la instalación de CCP son mucho más simples para un nodo de cálculo y son las siguientes:

Figura 4 Instalación de Compute Cluster Pack

Figura 4** Instalación de Compute Cluster Pack **(Hacer clic en la imagen para ampliarla)

  • Especificación de que el servidor debe ser un nodo de cálculo (y no un nodo principal).
  • Especificación del nombre del nodo principal del clúster al que debe unirse el servidor.
  • Especificación de si se instalarán las herramientas administrativas y de usuario en el nodo de cálculo.

Consola de administrador

Después de que los nodos estén en comunicación con el nodo principal, la mayoría de las tareas de administración de todos los sistemas se pueden llevar a cabo mediante la consola del administrador, que se muestra en la Figura 5. La consola proporciona una vista central del clúster entero, incluida una lista de todos los nodos asociados, acceso a acciones administrativas clave y otros detalles. El panel situado más a la izquierda proporciona navegación de alto nivel por la consola, incluido el acceso al "Administrador de clústeres" que, cuando está resaltado, proporciona una página de resumen que muestra el estado de clúster y las estadísticas de trabajo. El acceso a todas las sesiones de escritorio remoto y de monitor de sistema se puede administrar desde aquí, pero la mayor parte del tiempo de administración del clúster se realizará con "Administración de nodos".

Figura 5 La consola del administrador ofrece una vista de todo el clúster

Figura 5** La consola del administrador ofrece una vista de todo el clúster **(Hacer clic en la imagen para ampliarla)

Debe explorar la consola del administrador por su cuenta, ya que proporciona acceso a herramientas y funciones clave necesarias para administrar Windows y los nodos de clúster de forma centralizada. Al hacer clic una vez en un nodo de clúster del panel central superior se rellenarán otras ventanas y podrá empezar a explorar las funciones específicas del nodo.

Las funciones admitidas del menú contextual permiten administrar fácilmente nodos de cálculo de forma centralizada desde Administración de nodos. Puede usar Administración de nodos para pausar y reanudar nodos, aprobar nodos para el clúster o quitarlos de él, iniciar escritorios remotos, el monitor de sistema o el visor de eventos, o bien expulsar la bandeja del CD (lo que puede resultar muy útil cuando se intenta identificar físicamente un equipo individual en un clúster grande).

ClusRun, una herramienta interesante

La característica más interesante de esta lista es "Comando Ejecutar", es decir, la capacidad de ejecutar un comando arbitrario de forma remota, como si se estuviera delante del símbolo del sistema del equipo de destino. WCCS incluye una versión de la línea de comandos de la característica Comando Ejecutar denominada Clusrun.exe y "ClusRun" se usa para describir tanto la versión GUI como la de la línea de comandos.

No se puede poner demasiado énfasis en las ventajas de la utilidad ClusRun, en concreto en un clúster grande. Ahorra mucho tiempo al ejecutar tareas repetitivas de la línea de comandos y normalmente puede eliminar la necesidad de escribir scripts administrativos complejos.

Para usar esta característica, resalte una lista de equipos en los que desee ejecutar un comando, haga clic con el botón secundario del mouse y seleccione Comando Ejecutar. Se muestra el cuadro de diálogo de la Figura 6. Ahora escriba el comando que desee, haga clic en Ejecutar y espere a que el resultado se muestre en la ventana de resultados. Se le pedirán las credenciales la primera vez que use ClusRun, pero puede optar por almacenarlas en caché para su uso posterior.

Figura 6 Puede ejecutar un comando en múltiples nodos

Figura 6** Puede ejecutar un comando en múltiples nodos **(Hacer clic en la imagen para ampliarla)

Una forma habitual de aplicar revisiones a los clústeres o de instalar programas que incluyan rutinas de instalación automatizadas consiste en colocarlos en un recurso compartido de red y, a continuación, usar ClusRun para que todos los nodos de cálculo invoquen el comando. El reinicio de todos los nodos de cálculo del clúster entero se puede realizar mediante un solo comando:

CLUSRUN SHUTDOWN –R –F –T 0 

Paquete de herramientas

En mayo de 2007, el equipo de HPC lanzó Compute Cluster Pack Tool Pack (se puede obtener en línea en windowshpc.net/resources/Pages/default.aspx). El paquete de herramientas incluye compatibilidad con Windows PowerShellTM, una herramienta MPIPingPong para diagnosticar el estado de conectividad y un monitor de clúster gráfico muy simple pero muy útil.

Tal como se muestra en la Figura 7, Simple Cluster Monitor puede mostrar en una pantalla cada uno de los nodos del clúster, el número de núcleos que tiene cada uno, el uso de cada CPU (verde brillante), el uso de memoria (amarillo), el porcentaje de tiempo de disco (rojo) y el uso del ancho de banda (naranja). Es una excepcional herramienta rápida que los administradores pueden ejecutar para ver el funcionamiento del clúster.

Figura 7 Supervisión de varios nodos con Simple Cluster Monitor

Figura 7** Supervisión de varios nodos con Simple Cluster Monitor **(Hacer clic en la imagen para ampliarla)

El monitor de clúster también incluye la funcionalidad de "uso remoto". Debe ejecutar la primera instancia del monitor de clúster en el nodo principal. No obstante, si ejecuta una instancia del monitor de clúster en una sesión de consola en el nodo principal, tendrá la oportunidad de iniciar instancias del monitor de clúster desde una estación de trabajo, dirigirlas al nodo principal y obtener la misma presentación.

¿A qué está esperando?

Ahora ya dispone de conocimientos de HPC y Windows Server 2003 Compute Cluster Server. Sabe cómo instalar CCP, ha visto la excepcional consola integral y dispone de nuevos comandos y herramientas gráficas con los que puede impresionar a sus colegas y usuarios. Encontrará fuentes de información adicional acerca de los sistemas de alto rendimiento en la barra lateral "Recursos de HPC".

John Kelbley es director de productos técnicos de Microsoft en el equipo de tecnología de soluciones globales en el noroeste de EE.UU. Puede ponerse en contacto con John en la dirección Johnkel@microsoft.com

Doug Lindsey es director de programas en el equipo de Microsoft HPC. También es administrador de clústeres de cálculo de producción (incluido en el número 116 de la lista de noviembre de 2007 en www.top500.org). Puede ponerse en contacto con Doug en la dirección Dougli@microsoft.com.

© 2008 Microsoft Corporation and CMP Media, LLC. Reservados todos los derechos; queda prohibida la reproducción parcial o total sin previa autorización.