Hola :) Como todo en esta vida ... depende. Hay que distinguir entre: 1.- high availability clustering 2.- number crunching 2a) problema no divisible 2b) problema divisible 3.- Mainframes En el caso 1, generalmente se habla en Linux de LVS (Linux Virtual Server), pero no es la única forma, depende del número de servidores, el tipo de tolerancia a fallo, ... Por ejemplo, aquí podemos incluir CODA si lo que estamos es sirviendo ficheros. Lo importante del caso 1 es que el servicio no se puede detener, por ejemplo, servidores web de empresas y servidores de correo. Para ello, lo que se suele hacer es poner una serie de máquinas idénticas (a nivel lógico, no físico) y si cae una, la otra toma el relevo. A veces interesa tener LVS + CODA. Por ejemplo: los servidores web utilizan LVS para alta disponibilidad de servcio web. Pero la alta disponibilidad de los ficheros HTML se obtiene con un segundo clúster CODA. El caso 1 lo suelen usar empresas para servicios Internet: web, ftp, corroe y DNS. En el caso 2 lo que se intenta es resolver un problema matemático de una forma más rápida. Los problemas matemáticos (a grandes rasgos) pueden ser de 2 tipos: divisibles en pequeñas ecuaciones o no divisibles en pequeñas ecuaciones (hay una única ecuación grande que hay que resolver). En el caso 2 2a.- problemas no divisibles. Lo que se hace para aumentar la capacidad de cálculo es: 1.- máquinas SMP con varios procesadores (si a la hora de programar se han utilizado threads) 2.- OpenMOSIX: clúster que simula una máquina MUY potente 2b.- problemas divisibles: aquí existe un nodo central, maestro o como se quiera llamar y otros generalmente diskless (sin disco). El primero guarda la imagen de sistema operativo que van a utilizar los diskless y además se encarga de dividir la ecuación que queremos resolver en otras más pequeñas. Estas ecuaciones pequeñas se las entregará a cada diskless y cuando la resulevan, se encarga de juntar toda la información y dar un resultado final. Esto es típico en granjas de renderizado y un ejemplo histórico sería el proyecto Beowulf. En el último caso, los mainframes o zSeries de IBM, lo que interesa es una máquina cuyos buses sean como autopistas alemanas, los discos sean lo más rápido posible, ... Es decir, que las operaciones de I/O sean lo más rápido posible. Se suelen usar para grandes bases de datos (bancos, administración pública, ...). Estos bichos se suelen virtualizar (algo pareido a VMWare, UML, ...) y podemos montar en un mismo HW diferentes servidores. Inconvenientes comunes: 1.- peso, esto hay qu montarlo en un sótano si el número de máquinas es muy elevado 2.- refrigeración: no veas el calor que desprende esto 3.- consumo eléctrico 4.- coste del hardware, hay que tener en cuenta que algo se puede estropear por lo que hace falta HW de repuesto 5.- políticas de mantenimiento, seguridad, ... Inconvenientes por separado * caso 1: - mantener los datos sincronizados en cada servidor (suele haber SW que hace esto, como es el caso de CODA) - HW se queda obsoleto: no consigo piezas de repuesto, al cabo de los años sale HW nuevo que da más rendimiento, ... * caso 2: - la conexión entre los equipos DEBE ser usando Myrinet si el número de nodos es elevado (muy caro) - todos los equipos deberían ser iguales en cuanto a HW para evitar esperas * caso 3: - hardware propietario de IBM - contratos de soporte caros - si quieres (des)activar procesadores, tienes que llamar a IBM Por si esto fuera poco, viene otro problema: ¿qué procesador utilizo? 32 ó 64 bits. En el caso de que vayamos a 64 bits: Itanium, AMD64, PowerPC, ... Cada uno es bueno para una cosa. Los 32 bits por ejemplo, para servidores web van sobrados, pero ¿y si queremos bases de datos? El SW que vamos a utilizar, ¿está todo pasado a 64 bits? ¿Nos interesa más el coma flotante? Si lo vamos a usar para temas de desarrollo: ¿qué compilador vamos a usar? ¿usaremos threads? ¿qué lenguaje de programación? Para continuar con los problemas ... ¿qué me ofrece el fabricante de HW? No me refiero a lo que cuesta el HW sino a los contratos de mantenimiento, los de soporte, cada cuánto sca modeos nuevos de HW, ... Y en el aspecto económico, como siempre, nos iteresa el TCO y el ROI. De todas maneras, al igual que todo en la informática, la decisión de ir a por una solución u otra no es tarea sencilla ya que están en juego nuestros datos y/o los de otra(s) persona(s) Otro dato MUY importante a tener en cuenta es ... backups y SAIs. Por mucho cluster que haya, si no hay backups y SAIs ... como el que tose y se rasca las orejas ;) Un saludo, Rafa -- rgriman@suse.it http://www.suse.de/es http://www.suse.com rafael.griman@hispalinux.es http://www.hispalinux.es rafa@artenet-cb.es registered Linux user 286102 http://counter.li.org/ "One of the joys of being a kid is that experiences are new and therefore more intense."