Clúster : un grupo de computadoras unidas por canales de comunicación de alta velocidad, que representan un solo recurso de hardware desde el punto de vista del usuario. Un clúster es una colección débilmente acoplada de varios sistemas informáticos que trabajan juntos para realizar aplicaciones comunes y aparecen para el usuario como un solo sistema. Uno de los primeros arquitectos de la tecnología de clústeres, Gregory Pfister , definió un clúster de la siguiente manera: “ Un clúster es un tipo de sistema paralelo o distribuido que:
Por lo general, se distinguen los siguientes tipos principales de clústeres:
Se abrevian como HA ( alta disponibilidad ) . Creado para garantizar una alta disponibilidad del servicio proporcionado por el clúster. El número redundante de nodos incluidos en el clúster garantiza la prestación del servicio en caso de fallo de uno o varios servidores. El número típico de nodos es dos, que es el número mínimo que da como resultado una mayor disponibilidad. Se han creado muchas soluciones de software para construir dichos clústeres.
Los clústeres y sistemas de conmutación por error se dividen en 3 tipos principales:
Una tecnología particular puede combinar estos principios en cualquier combinación. Por ejemplo, Linux-HA admite un modo de configuración de adquisición , en el que todos los nodos procesan las solicitudes críticas juntas, mientras que otras se distribuyen uniformemente entre ellos. [una]
El principio de su funcionamiento se basa en la distribución de solicitudes a través de uno o más nodos de entrada, que las redirigen para su procesamiento a otros nodos informáticos. El objetivo inicial de un clúster de este tipo es el rendimiento; sin embargo, a menudo también utilizan métodos que aumentan la confiabilidad. Los diseños similares se denominan granjas de servidores . El software (software) puede ser comercial ( OpenVMS , MOSIX , Platform LSF HPC, Solaris Cluster , Moab Cluster Suite, Maui Cluster Scheduler) o gratuito ( OpenMosix , Sun Grid Engine , Linux Virtual Server ).
Los clústeres se utilizan con fines computacionales, en particular en la investigación científica. Para los clústeres de computación, los indicadores significativos son el alto rendimiento del procesador en las operaciones con números de coma flotante ( flops ) y la baja latencia de la red unificadora, y menos significativos: la velocidad de las operaciones de E/S, que es más importante para las bases de datos y los servicios web . Los clústeres de computación permiten reducir el tiempo de cálculo, en comparación con una sola computadora, al dividir la tarea en ramas de ejecución paralelas que intercambian datos a través de una red de conexión. Una configuración típica es un conjunto de computadoras construidas a partir de componentes disponibles públicamente, que ejecutan el sistema operativo Linux y están conectadas por Ethernet , Myrinet , InfiniBand u otras redes relativamente económicas. Tal sistema se conoce comúnmente como un grupo de Beowulf . Se distinguen especialmente los clústeres de alto rendimiento (Denotados por la abreviatura en inglés HPC Cluster - Clúster de computación de alto rendimiento ). En el ranking mundial TOP500 se puede encontrar una lista de las computadoras de alto rendimiento más poderosas (también pueden denominarse por la abreviatura en inglés HPC ) . En Rusia, hay una clasificación de las computadoras más poderosas de la CEI. [2]
Dichos sistemas generalmente no se consideran clústeres, pero sus principios son en gran medida similares a la tecnología de clústeres. También se les llama sistemas de rejilla . La principal diferencia es la baja disponibilidad de cada nodo, es decir, la incapacidad de garantizar su funcionamiento en un momento dado (los nodos se conectan y desconectan durante la operación), por lo que la tarea debe dividirse en una serie de procesos independientes. Dicho sistema, a diferencia de los clústeres, no parece una sola computadora, sino que sirve como un medio simplificado para distribuir los cálculos. La inestabilidad de la configuración, en este caso, se compensa con una gran cantidad de nodos.
Clúster de servidores (en tecnología de la información ): un grupo de servidores que se combinan lógicamente, capaces de procesar solicitudes idénticas y se utilizan como un solo recurso. La mayoría de las veces, los servidores se agrupan a través de una red local. Un grupo de servidores es más confiable y funciona mejor que un solo servidor. La fusión de servidores en un recurso se produce a nivel de protocolos de software.
A diferencia de un clúster de hardware de computadoras, los clústeres organizados por software requieren:
En la mayoría de los casos, los clústeres de servidores funcionan en equipos independientes. Esto le permite mejorar el rendimiento mediante la distribución de la carga en los recursos de hardware y proporciona tolerancia a fallas a nivel de hardware.
Sin embargo, el principio de organizar un grupo de servidores (a nivel de un protocolo de software) le permite ejecutar varios servidores de software en un servidor de hardware. Tal uso puede ser requerido:
Dos veces al año, la organización TOP500 publica una lista de los quinientos sistemas informáticos más productivos del mundo, entre los que suelen predominar los clústeres en los últimos años. El clúster más rápido es IBM Roadrunner ( Laboratorio Nacional de Los Alamos , EE . UU ., creado en 2008), su rendimiento máximo (a julio de 2008) es de 1.026 Petaflops . El sistema más rápido de Europa (a partir de julio de 2008 ) es una supercomputadora, BlueGene /P está ubicada en Alemania , en el centro de investigación de la ciudad de Jülich , Renania del Norte-Westfalia , el rendimiento máximo alcanzado es de 167,3 Teraflops .
Los sistemas de clúster ocupan un lugar digno en la lista de los más rápidos, mientras que superan significativamente a las supercomputadoras en precio. A partir de julio de 2008, el 7º lugar en la clasificación TOP500 es el grupo SGI Altix ICE 8200 ( Chippewa Falls , Wisconsin , EE. UU.).
Una alternativa relativamente barata a las supercomputadoras son los clústeres basados en el concepto Beowulf , que se construyen a partir de computadoras comunes y económicas basadas en software libre. Un ejemplo práctico de tal sistema es el Stone Soupercomputer del Laboratorio Nacional de Oak Ridge ( Tennessee , EE. UU., 1997).
El clúster de propiedad privada más grande (de 1000 procesadores ) fue construido por John Koza.
La historia de la creación de clústeres está indisolublemente ligada a los primeros desarrollos en el campo de las redes informáticas. Una de las razones del surgimiento de la comunicación de alta velocidad entre computadoras fue la esperanza de agrupar los recursos informáticos. A principios de la década de 1970, el grupo de protocolos TCP/IP y el laboratorio Xerox PARC establecieron estándares para redes. También apareció el sistema operativo Hydra para computadoras DEC PDP-11 , el clúster creado sobre esta base se denominó C.mpp ( Pittsburgh , Pensilvania , EE. UU., 1971). Sin embargo, no fue hasta alrededor de 1983 que se desarrollaron mecanismos para compartir fácilmente tareas y archivos a través de una red, principalmente desde SunOS (el sistema operativo basado en BSD de Sun Microsystems ).
El primer proyecto de clúster comercial fue ARCNet , creado por Datapoint en 1977. No se volvió rentable y, por lo tanto, la creación de clústeres no se desarrolló hasta 1984, cuando DEC construyó su VAXcluster basado en el sistema operativo VAX/VMS . ARCNet y VAXcluster se diseñaron no solo para la computación conjunta, sino también para compartir el sistema de archivos y los periféricos, teniendo en cuenta la preservación de la integridad y la ausencia de ambigüedades de los datos . VAXCluster (ahora llamado VMSCluster ) es un componente integral del sistema operativo HP OpenVMS que utiliza procesadores DEC Alpha e Itanium .
Otros dos primeros productos de clúster aclamados incluyen el Tandem Hymalaya (1994, clase HA ) y el IBM S/390 Parallel Sysplex (1994).
La historia de la creación de clústeres a partir de computadoras personales ordinarias debe mucho al proyecto Parallel Virtual Machine . En 1989, este software para conectar computadoras a una supercomputadora virtual abrió la posibilidad de crear clústeres instantáneos. Como resultado, el rendimiento total de todos los clústeres baratos creados en ese momento superó la suma de las capacidades de los sistemas comerciales "serios".
La creación de clústeres basados en computadoras personales baratas conectadas por una red de transmisión de datos continuó en 1993 por la Agencia Aeroespacial Estadounidense NASA , luego en 1995 se desarrollaron los clústeres Beowulf , especialmente diseñados en base a este principio. El éxito de estos sistemas impulsó el desarrollo de las redes grid , que han existido desde el inicio de UNIX .
Una herramienta ampliamente utilizada para organizar la interacción entre servidores es la biblioteca MPI que admite lenguajes C y Fortran . Se utiliza, por ejemplo, en el programa de simulación meteorológica MM5 .
El sistema operativo Solaris proporciona el software Solaris Cluster , que se utiliza para proporcionar alta disponibilidad y conmutación por error para servidores que ejecutan Solaris. Hay una implementación de código abierto para OpenSolaris llamada OpenSolaris HA Cluster .
Varios programas son populares entre los usuarios de GNU/Linux :
Está previsto que los mecanismos de clúster se integren en el núcleo DragonFly BSD , que se bifurcó en 2003 a partir de FreeBSD 4.8. En el futuro, también hay planes para convertirlo en un entorno de sistema operativo único .
Microsoft lanza el clúster HA para el sistema operativo Windows . Existe la opinión de que fue creado sobre la base de la tecnología de Digital Equipment Corporation , admite hasta 16 (desde 2010) nodos en un clúster, así como operación en una SAN (Storage Area Network). Se utiliza un conjunto de API para admitir aplicaciones distribuidas, hay espacios en blanco para trabajar con programas que no implican trabajar en un clúster.
Windows Compute Cluster Server 2003 (CCS), lanzado en junio de 2006, está diseñado para aplicaciones de gama alta que requieren computación en clúster. La edición está diseñada para implementarse en varias computadoras que están agrupadas para lograr el poder de la supercomputación. Cada clúster en Windows Compute Cluster Server consta de una o más máquinas maestras que distribuyen trabajos y varias máquinas esclavas que realizan el trabajo principal. En noviembre de 2008, se introdujo Windows HPC Server 2008 para reemplazar Windows Compute Cluster Server 2003.
Novell Open Enterprise Server (OES) - sistema operativo de red, " fusión " de Novell NetWare y SUSE Linux Enterprise Server ; capaz de crear clústeres mixtos, entre otras cosas, en los que los recursos pueden pasar de un servidor NetWare a un servidor Linux y viceversa.