epelpad

El post que buscas se encuentra eliminado, pero este también te puede interesar

ClusterKnoppix, convertir una red de PCs en una superPC

Aunque parezca sencillo de responder no lo es en absoluto. Podría incluirse alguna definición de algún libro, pero el problema es que ni los expertos en clusters ni la gente que los implementa se ponen de acuerdo en que es aquello en lo que trabajan.

Un cluster podemos entenderlo como:
Un conjunto de máquinas unidas por una red de comunicación trabajando por un servicio conjunto. Según el servicio puede ser: Dar alta disponibilidad, alto rendimiento, etc...

Por supuesto esta definición no es estricta, de hecho uno de los problemas que tiene es que es demasiado vaga porque por ejemplo dos consolas de videojuegos conectadas para jugar en red ¿se consideran cluster? Pero si en vez de estar jugando se está usando el kit de GNU/Linux haciendo procesamiento paralelo ¿entonces se podría considerar cluster?
Realmente el cambio de ambiente es mínimo, desde luego a nadie se le ocurriría definir cluster en base al contenido de los programas que se ejecuten y de hecho es posible que los juegos tengan más capacidades de procesamiento distribuido que los propios programas, entonces ¿qué es un cluster?
Hay definiciones que distinguen entre cluster de máquinas SMP y clusters formados por nodos monoprocesadores.
Hay arquitecturas clusters que se denominan constelaciones1 y se caracterizan por que cada nodo contiene más procesadores que el número de nodos. A pesar de todo, las constelaciones siguen siendo clusters de componentes o nodos aventajados y caros. De hecho entre las máquinas que aparecen en el top500 existen unos pocos clusters que pertenecen a organizaciones que no son gigantes de la informática, lo cual indica el precio que pueden llegar a tener estos sistemas.
Por poner unos ejemplos de la disparidad de opiniones que existen, se adjuntan las definiciones que dan ciertas autoridades de esta materia:

Un cluster consiste en un conjunto de maquinas y un servidor de cluster dedicado, para realizar los relativamente infrecuentes accesos a los recursos de otros procesos, se accede al servidor de cluster de cada grupo. Del libro Operating System Concepts de Silberschatz Galvin.

Es una clase de arquitectura de computador paralelo que se basa en unir maquinas independientes cooperativas integradas por medio de redes de interconexión para proveer un sistema coordinado, capaz de procesar una carga. Del autor Dr. Thomas Sterling.

ClusterKnoppix, convertir una red de PCs en una superPC


Sabían que...google es un cluster?
:: Cada clúster de Google se compone de 359 racks, 31.654 servidores, 63.184 CPUs, 126.368 GHz de potencia de procesamiento, 63.184 Gbytes de RAM y 2.527 Tbytes de espacio en Disco Duro. Cada uno de estos clústers puede atender hasta 40 millones de búsquedas por día. Si en cada uno de los más de 20 datacentes que Google tiene repartidos por diversas regiones del mundo (Norteamérica, Asia y Europa) hay al menos un clúster, estaríamos hablando de un total de más de 600.000 servidores.

:: Cada uno de los clústers tiene una arquitectura muy similar (servidores web, servidores donde se almacenan los índices y servidores donde se almacenan los documentos), que se describe bastante bien en este documento.

:: Los ingenieros de Google son capaces de construir y hacer funcionar un clúster de Google en tres días.

:: La información está replicada más de tres veces para garantizar la fiabilidad a base de redundancia.

Características de un cluster
Para crear un cluster se necesitan al menos dos nodos. Una de las características principales de estas arquitecturas es que exista un medio de comunicación (red) donde los procesos puedan migrar para computarse en diferentes estaciones paralelamente. Un solo nodo no cumple este requerimiento por su condición de aislamiento para poder compartir información. Las arquitecturas con varios procesadores en placa tampoco son consideradas clusters, bien sean máquinas SMP o mainframes, debido a que el bus de comunicación no suele ser de red, sino interno.
Por esta razón se deduce la primera característica de un cluster:

1- Un cluster consta de 2 o más nodos.
Los nodos necesitan estar conectados para llevar a cabo su misión. Por tanto:

2- Los nodos de un cluster están conectados entre sí por al menos un canal de comunicación.
Por ahora se ha referenciado a las características físicas de un cluster, que son las características sobre las que más consenso hay. Pero existen más problemas sobre las características del programario de control que se ejecuta, pues es el software el que normalmente dotará al conjunto de máquinas de capacidad para migrar procesos, balancear la carga en cada nodo, etc.

3- Los clusters necesitan software de control especializado.
El problema también se plantea por los distintos tipos de clusters, cada uno de ellos requiere un modelado y diseño del software distinto.
Como es obvio las características del cluster son completamente dependientes del software, por lo que no se tratarán las funcionalidades del software sino el modelo general de software que compone un cluster. Para empezar, parte de este software se debe dedicar a la comunicación entre los nodos. Existen varios tipos de software que pueden conformar un cluster:

Software a nivel de aplicación.
Este tipo de software se sitúa a nivel de aplicación, se utilizan generalmente bibliotecas de carácter general que permiten la abstracción de un nodo a un sistema conjunto, permitiendo crear aplicaciones en un entorno distribuido de manera lo mas abstracta posible. Este tipo de software suele generar elementos de proceso del tipo rutinas, procesos o tareas, que se ejecutan en cada nodo del cluster y se comunican entre sí a través de la red.

Software a nivel de sistema.
Este tipo de software se sitúa a nivel de sistema, suele estar implementado como parte del sistema operativo de cada nodo, o ser la totalidad de éste.
Es más crítico y complejo, por otro lado suele resolver problemas de carácter mas general que los anteriores y su esencia, por norma general, es mayor.
A pesar de esta división existen casos en los cuales se hace uso de un conjunto de piezas de software de cada tipo para conformar un sistema cluster completo. Son implementaciones híbridas donde un cluster puede tener implementado a nivel de kernel parte del sistema y otra parte estar preparada a nivel de usuario.

Esquema y otras características
Las características básicas de un cluster de carácter general podrán resumirse en el siguiente esquema:

1. Un cluster consta de 2 o mas nodos conectados entre sí por un canal de comunicación funcional.
2. En cada nodo es imprescindible un elemento de proceso, memoria y un interfaz para comunicarse con la red del cluster.
3. Los clusters necesitan software especializado. Este software y las máquinas conforman el cluster. El software puede ser:
a) aplicación
b) sistema
4. Se define acoplamiento de un cluster como nivel de colaboración que une los elementos del cluster. De este modo se categorizan en:
a) Acoplamiento fuerte
b) Acoplamiento medio o moderado
c) Acoplamiento débil
5. Todos los elementos del cluster trabajan para cumplir una funcionalidad conjunta, sea esta la que sea. Es la funcionalidad la que caracteriza el sistema.
o Mejora sobre la disponibilidad
o Mejora del rendimiento
En general la catalogación de los clusters se hace en base a cuatro factores de diseño bastante ortogonales entre sí:
o Acoplamiento
o Control
o Homogeneidad
o Seguridad

Clasificación según el servicio prioritario

Generalmente el diseño de un cluster se realiza para solucionar problemas de tipo:
o Mejora de rendimiento
o Abaratamiento del coste
o Distribución de factores de riesgo del sistema
o Escalabilidad

El punto inicial ha sido explicado anteriormente: el coste para doblar las prestaciones de un equipo no suele ser habitualmente a costa de pagar el doble, sino unas cuantas veces m´as. El modelo de los clusters permite que la mejora de rendimiento sea evidente respecto a grandes mainframes a un precio realmente asequible. Lo que explica a su vez el segundo punto, acerca del coste de los clusters, que permite relaciones rendimiento precio que se acercan a un margen lineal dependiendo del cluster implementado.
Por otro lado esta la distribución de riesgos. La mayoría de los usuarios tienen sus servicios, aplicaciones, bases de datos o recursos en un solo ordenador, o dependientes de un solo ordenador. Otro paso mas adelante es colocar las bases de datos replicadas sobre sistemas de archivos distribuidos de manera que estos no se pierdan por que los datos son un recurso importante. Actualmente el mercado de la informática exige no solo que los datos sean críticos sino que los servicios estén activos constantemente. Esto exige medios y técnicas que permitan que el tiempo en el que una máquina esté inactiva sea el menor posible. La distribución de factores de riesgo a lo largo de un cluster (o la distribución de funcionalidades en casos más generales) permite de una forma única obtener la funcionalidad de una manera más confiable: si una máquina cae otras podrían dar el servicio.
Por último está el factor de escalabilidad, del cual se habló en el tema de introducción. Cuanto más escalable es un sistema menos costaría mejorar el rendimiento, lo cual abarata el coste, y en el caso de que el cluster lo implemente distribuye más el riesgo de cada de un sistema.
En cualquier caso, todas estas características dan pie a los tipos de clusters que se van a ver.

Alto rendimiento (HP, high performance)
Los clusters de alto rendimiento han sido creados para compartir el recurso más valioso de un ordenador, es decir, el tiempo de proceso. Cualquier operación que necesite altos tiempos de CPU puede ser utilizada en un cluster de alto rendimiento, siempre que se encuentre un algoritmo que sea paralelizable.
Existen clusters que pueden ser denominados de alto rendimiento tanto a nivel de sistema como a nivel de aplicación. A nivel de sistema tenemos openMosix, mientras que a nivel de aplicación se encuentran otros como MPI, PVM, Beowulf y otros muchos. En cualquier caso, estos clusters hacen uso de la capacidad de procesamiento que pueden tener varias máquinas.

Alta disponibilidad (HA, high availability)
Los clusters de alta disponibilidad son bastante ortogonales en lo que se refieren a funcionalidad a un cluster de alto rendimiento. Los clusters de alta disponibilidad pretenden dar servicios 7/24 de cualquier tipo, 90 Capítulo 4. Clusters son clusters donde la principal funcionalidad es estar controlando y actuando para que un servicio o varios se encuentren activos durante el máximo periodo de tiempo posible. En estos casos se puede comprobar como la monitorización de otros es parte de la colaboración entre los nodos del cluster.

Alta confiabilidad (HR, high reliability)
Por ultimo, están los clusters de alta confiabilidad. Estos clusters tratan de aportar la máxima contabilidad en un entorno, en la cual se necesite saber que el sistema se va a comportar de una manera determinada. Puede tratarse por ejemplo de sistemas de respuesta a tiempo real.
Pueden existir otras catalogaciones en lo que se refiere a tipos de clusters, en nuestro caso, solamente hemos considerado las tres que más clusters implementados engloban, si bien existe alguno de ellos que puede ser considerar o como cluster de varios tipos a la vez.

Requerimientos hardware
Para la instalación básica de un cluster necesitaremos al menos dos computadoras conectadas en red. Podremos conectarlas mediante un cable cruzado entre las respectivas tarjetas de red, con un hub o con un switch.
Evidentemente cuanto más rápida sea la conexión entre máquinas, más eficaz será nuestro sistema global.
Actualmente Fast Ethernet es un estándar, permitiendo múltiples puertos en una máquina. Gigabit Ethernet es más cara y no es recomendable probar con ella sin antes haberse asegurado un correcto funcionamiento con
Fast Ethernet y comprobar que realmente se necesita este extra en la velocidad de transferencia de datos entre nodos.
Siempre podremos hacer funcionar varias tarjetas Fast en cada nodo para asignarles luego la misma dirección (IP) y de esta forma poder obtener múltiples en la velocidad.
El resto del hardware necesario dependerá de las decisiones que se hayan hecho con el sistema de ficheros (en red o no), la instalación de monitores gráficos en todos o solo algunos nodos, etc.
Algunas disposiciones hardware especiales pueden encontrarse en la sección Nodos sin discos del capítulo Tutórales para casos especiales.

Planteamientos del cluster
Para configurar tu cluster openMosix en un pool de nodos, o conjunto de estaciones de trabajo, tendremos diferentes opciones, cada una con sus ventajas e inconvenientes.
En una single-pool todos los servidores y estaciones de trabajo son utilizadas como un cluster único: cada máquina forma parte del cluster y puede migrar procesos hacia cada uno de los otros nodos existentes.
Esta configuración hace que tu propia máquina forme parte del pool.
En un entorno llamado server-pool los servidores son parte del cluster mientras que las estaciones de trabajo no lo son. Si quisiéramos ejecutar aplicaciones en el cluster necesitaremos entrar en él de forma específica. De este modo las estaciones de trabajo permanecerán libres de procesos remotos que les pudieran llegar.
Existe una tercera alternativa llamada adaptive-pool, donde los servidores son compartidos mientras que las estaciones de trabajo podrán entrar y salir del cluster. Podemos imaginar que las estaciones deban ser usadas durante un cierto intervalo de tiempo diario, y que fuera de este horario puedan ser aprovechadas para las tareas del cluster.

Que es un Superordenador?
Una supercomputadora es un término genérico que se aplica a una computadora que puede funcionar mucho mejor que una computadora ordinaria.
Un superordenador se utiliza típicamente para los usos científicos y de la ingeniería que realizan grandes cantidades de cómputos, grandes bases de datos por ejemplo.
El superordenador puede también aplicarse a los sistemas que son mucho más lentos pero aún impresionantemente rápidos.
En realidad, la mayor parte de sistemas supercomputacionales son múltiples ordenadores entrelazados que realizan procesamientos paralelos después de uno de los dos accesos de procesamientos paralelos generales:
• SMP, o multiprocesamiento simétrico
• MPP, o Proceso masivo paralelo

En el SMP (también conocido como " fuertemente conectado" o como un sistema "Todo compartido ", la memoria de la parte de los procesadores, el bus de la entrada/salida, y una sola copia del sistema operativo controla los procesadores. Dieciséis procesadores son el límite superior generalmente en la mayoría de los sistemas de SMP. Los sistemas de SMP tienen una ventaja sobre los de MPP al realizar el tratamiento transaccional en línea (OLTP) en el cual muchos usuarios emplean un sistema simple de transacciones para tener acceso a la misma base de datos. El equilibrio dinámico de la carga de trabajo es la facilidad que permite que SMP brille para esta tarea.
Los sistemas de MPP (también conocidos como “débilmente conectado” o como un sistema “Nada compartido”) son caracterizados por un número de procesadores, cada uno con su propio sistema operativo y la memoria, que procesan diversas partes de un solo programa al mismo tiempo.
El sistema utiliza un interfaz de la mensajería y un sistema de trayectoria de datos que permite que los procesadores se comuniquen el uno con el otro. Hasta 200 procesadores se pueden centrar en una sola tarea. Implantar un sistema de MPP puede ser complicado, puesto que esto requiere mucha planificación, cuando esto viene a recursos de sistema y asignaciones del trabajo entre procesadores. Los sistemas de MPP tienen una ventaja en las aplicaciones, cuando los usuarios necesitan buscar un enorme número de bases de datos al mismo tiempo.
Implementación de un pequeño Cluster

Las Herramientas: ClusterKnoppix y OpenMosix
cluster
La distribución principal utilizada es ClusterKnoppix, y el núcleo openMosix.
---> Descarga ClusterKnoppix 3.3 con Núcleo openMosix vía FTP (533 MB.)
---> Alternativa por si no descarga el ftp anterior
Como el nombre insinúa, ClusterKnoppix es una derivada de Knoppix. ClusterKnoppix provee a los usuarios todas las prestaciones de Knoppix (la abundancia de aplicaciones, booteo desde el CD, auto detección del hardware, y el soporte para muchos periféricos y dispositivos) junto con las capacidades del agrupamiento de estrellas del openMosix.
ParallelKnoppix, PlumpOS, Quantian, y CHAOS son algunas de las distribuciones de linux para hacer un Cluster, pero ClusterKnoppix es probablemente la más popular porque esta:
o Proporciona un verdadero servidor KDE (entre otros tableros del escritorio)
o Ofrece varias aplicaciones (tales como GIMP)
o Ha adoptado realces de la seguridad de la distribución CHAOS.

Linux

Programa de manejo a través de nodos: OpenMosix
Aparte del hardware y el enlace entre las máquinas, se necesita el software que puede manejar los programas separados a través de los nodos del cluster.
En una computadora sin un cluster corriendo, el sistema operativo permite que una aplicación sea ejecutada del medio de almacenamiento (tales como discos duros y CDs) a la memoria. El SO se ocupa que la aplicación sea ejecutada para su terminación.
OpenMosix proporciona la capacidad para el Sistema Operativo (el núcleo de Linux, en nuestro caso) para ejecutar una aplicación de cualquier nodo del grupo a la memoria. Cualquier uso dado se emigra al nodo con la capacidad o los recursos más disponibles.
Una vez que openMosix está instalado, los nodos del Cluster comienzan a comunicarse adaptándose continuamente a la carga de trabajo, optimizando la asignación de recursos. Una característica del openMosix, es el descubrimiento automático de nodos, permite que los nuevos nodos sean agregados mientras que el cluster está funcionando.
Según el proyecto del openMosix, este puede capturar más de 1.000 nodos.

Construcción de un Cluster con ClusterKnoppix
Se necesita una red instalada con dos (o más) computadoras conectadas en red, y cada una con unidades de CD-ROM
También dos (o mas) CDs de ClusterKnoppix, que tiene la capacidad de divisar los nodos mientras existan en la red, y por ultimo se necesita una Placa de red LAN y una BIOS que soporte el booteo sobre la red.

Inicialización del nodo principal
OpenMosix no requiere del primer nodo inicial para ser un nodo principal, pero para mantener una forma prudente, se instala primero el nodo principal.
1. Poner el CD de ClusterKnoppix en la unidad de CD-ROM para su autoarranque.
2. En el booteo: presionar enter.
Dar el tiempo suficiente a ClusterKnoppix para que detecte el hardware y arranque. Por defecto empieza en KDE.
3. Una vez adentro, abrir una consola y registrarse como usuario “root”.
- Para esto debemos escribir “su” y presionar enter.
4. Configurar la interfaz local de la red: ifconfig eth0 192.168.1.10
5. Después, iniciar el sistema del openMosix: tyd –f init.
6. Anunciar este nodo como el nodo principal en el cluster: tyd.

tyd: Demonio de autodescubrimiento. Es una pequeña aplicación que esta en constante ejecución para detectar un nuevo nodo al conectarse.

Inicialización de un nodo esclavo
Establecer un nodo esclavo no es muy diferente de establecer un nodo principal. Se deben repetir los primeros tres pasos de arriba para inicializar el nodo principal. Configurar la tarjeta de red con los valores mencionados previamente.
8. Configurar la interfaz local de la red: ifconfig eth0 192.168.1.20.
9. Inicializar el sistema del openMosix.: tyd –f init.
10. Por último, inserta este nodo en el Cluster: tyd -m 192.168.1.10.


Familia de Herramientas
Knoppix
Si el estado del Cluster es el adecuado; ClusterKnoppix nos permitirá usar las siguientes herramientas:

OpenMosixview
openMosix
Detectará el número de nodos en el Cluster con una interfaz agradable. Se puede ver la eficacia, la carga, y la memoria disponible para el Cluster, el porcentaje de la memoria usado, y otra información. No se verá mucha actividad a este punto, puesto que el grupo apenas se está utilizando. Pasa un cierto tiempo hasta que se familiariza con esta aplicación.

OpenMosixmigmon
ClusterKnoppix, convertir una red de PCs en una superPC
Esta aplicación muestra los procesos que se han emigrado del nodo principal al Cluster. Moviendo el Mouse sobre el nodo, brindará el nombre del proceso y su identificación. Se puede “Emigrar” un proceso particular del nodo principal.

OpenMosixAnalyzer
Esta aplicación simple escribe una crónica de la carga del Cluster así como también los nodos individuales de su inicialización hasta el tiempo que el Cluster esté activo.

El Mosmon
cluster
Esta herramienta monitorea la carga en el Cluster, la memoria disponible, memoria que fue utilizada, y otras cosas en tiempo real.

El Mtop
Esta herramienta es de interés para las personas que están familiarizadas con “top”. Los mantenimientos de “top” rastrean todos y cada uno de los procesos andando en la computadora. El mtop, también exterioriza a cada proceso, con la información adicional del nodo en el cual el proceso echa a andar.

...Bueno Taringueros, ese fue un trabajo para la facu que quiero compartir con ustedes. Exitos!

28 comentarios - ClusterKnoppix, convertir una red de PCs en una superPC

spacecowboy5555
Zarpado....



Si realmente le encontrara una utilidad para poner a andar mi MMX con mi P4 me bajaria el ClusterKnoppix....
CBAGALE
muy bueno 10 muy merecidos
Forobardo
muy bueno si tubiera puntos te daria!!
TavoT
Muy buena info, otros 10
gefarion
Yo lo hice hace un par de años en la escuela con 7 maquinas, es muy bueno para intentarlo, encima dentro del cd hay herramientar para ver como se va repartiendo todo. Recomendado para experimentarlo algun dia xD
Juno
10+



Muy util y bien elaborado.
AGSmith
el winchoto del 2003 tb permite trabajar con clusters de servidores la unica gadorcha es que necesita equipos identicos. Solo pa sumar data. Lo ++ pa esto son las arq. de IBM.
Santiagopc
muy bueno !!! yo me los tengo que leer, estoy estudiando licenciado en sistemas
axelsantafe
Muy buen aporte y te ayudo con +10
carlax
Imprecionante trabajo ari, no te puedo dar puntos porque soy novata, sino te daria para cumplas tu sueño.
Rastro23
Te di 5 ayer (no tenía más). Hoy te quise dar otros 5 y no me deja (me dice todo el tiempo: \"hubo un error al votar).



Esperemos que alguien se cope y te haga full, vi varios post que con 2 imágenes de paisajes o 1 video on-line se hicieron full, y vos que posteas algo con sentido no sos full...



Saludos.
Roderick
Arielex buena info! seguro conoces a clusty.com



Linux



http://taringa.net/posts/info/1178839/Clusty_com---otra-que-google.html





salu3.





--roderick--
hatm1
+10 compañero creo que me acabas de sacar de un apuro muchas gracias
metrakyller
Hace dos años que nadie se replantea estas tontunas???, realmente seguire investigando para hacerlo con debian, o mejor aun con ubuntu, en este caso no creo que tenga limitaciones por el hardware, y puesto que no lo quiero para juegos, si no mas bien para crear un server 100% intumbable, no creo que puedan colapsar un multiprocesamiento con distintos buses de datos, forma parte de mi alquiler de cloud computer, o sistemas en nube 24 horas al dia operativos ofreciendo servicio en tiempo real, no soy multimillonario ni mucho menos, soy demasiado pajero y me gusta sacar dinero reciclando equipos y artilugios aparentemente desfasados, pero no reinstalando sistemas operativos y revendiendo equipos como muchos boludos piensan, hay formas mas sofisticadas de ofrecer un servicio tecnologico a nivel empresarial con lo que las propias companias desechan, el dia que me paguen por dar ideas me hago de oro, eso o me aniquilan antes.

Pero mientras tanto seguire investigando lo que otros hacen o mejor dicho comienzan y no terminan, por falta de conocimientos, de capital, de equipos o por que simplemente no le sacan la cuantia capitalista que especularon al iniciar el prollecto, yo soy uno y me sobra mucho tiempo, en horarios un tanto nocturnos, lo suficiente como para hacer lo que las grandes companias no pueden, yo no tengo nada que perder, buena info y un saludoooo.
dark_cradle
+10! Es uno de los post más completos que he visto sobre clustering en mucho tiempo! No necesitaba la info, pero te has merecido estos puntos. TÚ SI QUE VALES. m/
josejuanreyes +1
Hola, alguien tendrá el link para descargar clusterKnoppix, lo he buscado en la web pero todos los links estan caídos, yo se que ya esta descontinuado pero lo necesito para hacer unas pruebas, agradeceria mucho su ayuda.
gutic
Hola podrías re subir los links de descarga?
5cristo
me motiva a intentar armar uno ...
fagchino
excelente data, gracias.