Anda di halaman 1dari 49

Clúster Solution

Integrantes

Carlos Mario Zabala Sánchez

John Edison Sepúlveda Cataño

Janer Norbey González Gamero

Andrés Felipe López Guiral

Andrés Felipe Gallego

Weimar Yepez

Profesor

Mauricio Ortiz

SENA

(Antioquia)

Medellín

2009
Contenido

Introducción

1. Objetivo general
2. Objetivos especificos
3. Introducción al cluster-knoppix
4. Historias de los cluster
5. Historia de openmoxis
6. Como instalar cluster-knppix en el disco
7. Como configurar tarjeta de red en cluster-knoppix
8. Como montar el sistema de archivos mfs
9. Creando las llaves SSH
10. Archivos de configuración del SSH
11. Herramientas de monitoreo
11.1. OpenMosixView
11.2. OpenMosixprocs
11.3. OpenMosixanalyzer
11.4. OpenMosixmigmon
11.5. OpenMosixhistory
11.6. Mosmon

12. Como probar clustes-knoppix


13. Conceptos básicos
14. CONCLUSIONES
Introducción

El desarrollo de este proyecto consiste en la implementación de un clúster que permita la


reutilización de los que quipos de computo de bajos recursos del SENA.

La característica principal de estos sistemas “clusters” es permitir que las tareas sean
repartidas de forma balanceada entre cada uno de los nodos que hagan parte del clúster,
permitiendo así procesar grandes cantidades de datos de una forma más rápida.

Analizando la problemática que se presentan algunas empresas que requieran de la


utilización de grandes servidores y que por motivos económicos es difícil tener acceso a
estos, los clúster aparecen como una buena solución a esta necesidad con un bajo costo.
Objetivos

1. Objetivo General

Implementar un clúster de alta disponibilidad el cual brindara un alto rendimiento para


los servicios que vaya a prestar; permitiendo reutilizar equipos que por sus bajos recursos
ya no cumple con el rendimiento exigido por la empresa.

2. Objetivos Específicos:

- Hacer que el clúster ya formado preste servicios ya sea DHCP, DNS. HTTP, etc.
- Prestar un servicio de administrador de hardware y/o usuarios por medio de este.
- Explotar el rendimiento de equipos de bajos recursos.
3. Introducción al clúster knoppix

Que es un clúster

Es un conjunto de computadoras que trabajan en paralelo, conectándose entre si de una


forma coordinada y además centralizada para así poder procesar cargas más grandes que
las que normalmente sería capaz de soportar un nodo solo.

Que es un nodo

Un nodo hace referencia a todos los equipos que hacen parte en los procesos y que
adicional a esto son capaces de migrar procesos a otros, por eso un switch, router, hub, etc.
No entran en esta definición.

Características de un clúster

Un clúster es una aglomeración de varios computadores trabajando como uno solo, lo cual
significa que un solo computador no puede ser un clúster, tiene que estar conformado por
dos o más computadores.

Todos los nodos de un clúster deben estar interconectados entre si para formar una red.

Que es un clúster homogéneo

Es un clúster en el cual todos sus nodos cuentan con el mismo hardware y el mismo
software es decir, son computadores idénticos y ninguno tiene más capacidad de
procesamiento ni de almacenamiento que los demás.

Que es un clúster heterogéneo

Este tipo de clúster no se ligan ni al hardware ni al software especifico, es decir no todos


los equipos deben de tener los mismos procesadores ni las mismas capacidades, lo que lo
hace mas maniobrable puesto que sería fácil conseguir 4 o 5 computadoras con las mismas
especificaciones pero imaginasen para conseguir más de 20 y fuera de eso si en el futuro
quisieras agregarle otro equipo a tu clúster pero ya no consiguieras un PC igual a los que
tienes, sería un problema complicado, afortunadamente están las soluciones a la mano.
Que necesito

Lo primero es un parche para el kernel, pero como ya sabemos hay distribuciones que
vienen con el kernel ya parchado y solo es instalarlo y configurarlo, como lo es knoppix.

Para que este parche para poder que el sistema reconozca los computadores como parte
del clúster, pueda llevar a cabo la migración de los procesos llevando a cabo una
monitorización de los diferentes procesos que realiza el sistema y así sabe cuánta es la
carga y lograr el balanceo.

Que es la escalabilidad

La escalabilidad es la capacidad de un sistema de crecer o también de acomodarse a las


exigencias del usuario o del administrador del mismo.

Se puede hablar de escalabilidad hacia arriba o también hacia abajo, los clúster pueden
crecer mucho hacia arriba sin elevar el tanto el costo como crezcamos en ordenadores ya
que podemos utilizar computadores que no estén en uso son ventajas imprescindibles, en
openmosix se pueden tener 65536 nodos trabajando a la vez esto tiene que tener un
rendimiento enorme hasta con computadores de bajos recursos conectados a él.

Tipos de clúster “Existen tres tipos”

Alta disponibilidad (high availability)

En este clúster todos los PCs se comparten los discos duros (hard disc) y se monitorean
constantemente entre ellos, este es tolerante a fallos por que cuando un nodo cae los
demás se cogen los procesos de este o los migran entre ellos mismos para que no se caiga
el proceso pero además los demás nodos intentan restablecer el funcionamiento del nodo
caído, cuando logran tener arriba y listo para procesar ese nodo vuelven a migrar los
procesos que el mismo estaba realizando, para lograr estabilidad al clúster.

Alto rendimiento

Estos son varias, una aglomeración de maquinas que están diseñadas para lograr hacer
cálculos al máximo con muchísima complejidad, esto se logra repartiendo la carga e una
forma estratégica por así decirlo, logrando mas rendimiento en la solución de un
problema.

Balanceo de carga

Este es una mezcla de los anteriores por que tiene características de ambos. Su tarea
esencial es evitar que las aplicaciones se caigan.
Existen dos tipos de transparencias de clúster

Los no transparentes

Estos deben de tener una configuración paralela previamente predeterminada, y también


conocer previamente la topología con la cual funcionara el clúster (beowulf) y además la
utilización de una librerías para el paso de los mensajes entre las diferentes tareas como lo
pueden ser (PVM y MPI).

Los transparentes

En los transparentes tenemos el mosix y el openmosix, mosix es un clúster SSI en los


niveles de sistemas trasparentes se utiliza principalmente para el aumento de
procesamiento del sistema y permite la utilización de antiguos programas hechos para
mono procesadores.

Que es Beowulf

Se trata de una arquitectura multicomputador utilizada para procesamiento paralelo que


opera sobre un clúster, cuya jerarquía se basa en un nodo servidor y uno o más nodos
cliente en red. Este sistema se apoya en un sistema distribuido y utiliza mecanismos de
paso de mensajes.

El procesamiento paralelo

Es tipo de procesamiento tiene la capacidad de utilizar varios procesadores al mismo


tiempo para ejecutar en cada uno una parte de ese mismo programa, la carga no se
reclinara en uno solo si no que serán varios a la vez mejorando el rendimiento por razones
obvias.

Sistemas distribuidos

Son computadoras conectadas en red los cuales logran por medio de mensajes el
hardware y software coordinen sus acciones para lograr un objetivo.

Sistemas operativos distribuidos

Estos hacen lo mismo que los sistemas operativos normales, pero la diferencia es que
trabajan de forma distribuida o en entornos distribuidos, para facilitar los accesos y la
gestión a los recursos de la red.
SSI (Server Side Include, inclusiones laterales del servidor)

Estas son las directivas que permiten que el HTML estático sea reconocido para
determinados output al navegador del que lo solicite.

Esto fue pensado en los administradores de servidores web ya que facilita la creación y el
mantenimiento de las webs.

Que es openmosix

Es un parche para el sistema operativo Linux que lo que hace es darle al computador una
funcionalidad como nodo que hace parte del clúster.

Cuneta con un algoritmo interno de balanceo de carga de migrar de forma tranparente los
procesos a los demás nodos que hacen parte del clúster, la migración se hace dependiendo
de varios factores como lo son la velocidad de la CPU de los nodos individualmente
hablando, a la carga que tengan actualmente cuando se vallan a migrar los otros y la
conexión de red que se tenga.

Ventajas al utilizar openmosix

No tienes que preocuparte por agregarle librerías


No es necesario programar las aplicaciones
Utiliza un sistema de ficheros oMFS
Cuenta con un daemon para descubrir los nodos automáticamente “omdiscd”

Desventajas al utilizar openmosix

La migración de los procesos que usan memoria no está totalmente desarrolla esta en fase
beta.
Tiene un núcleo dependiente

Que es omdiscd

Este demonio lo que se encarga de hacer es crear automáticamente una lista con las
maquinas existentes en la red, cuando se tiene otro demonio de auto detección de nodos
valido y funcional, así que este le estará informando al kernel openmosix de los nodos para
que este posteriormente los tenga en cuenta a la hora de migrar procesos.
4. Historia de los clústers

De estas tecnologías se desconoce el origen, lo único que se puede aproximar es que


empezaron terminando los años 50 y principiando los 60.

La persona que hizo posible el trabajo paralelo fue Gene Amdahl de IBM, con la
publicación en 1967 la ley de Amdahl describiendo matemáticamente el aceleramiento
que se puede dar cuando paralelizamos cualquier tipo de tareas en arquitecturas
paralelas.

Este articulo seria la base para la ingeniera de la computación de multiprocesador y de


clúster.

Mas o menos la historia que tienen los grupos de computadoras está ligada a la historia del
principio de las redes. Las redes de conmutación de paquetes fue inventado por RAND en
1962.

Utilizando un concepto de una red basada en conmutación de paquetes, ARPANET que en


ese momento venía siendo un proyecto, creo en 1969, la primera red de computadoras
básica soportada en clúster. Pero vale aclarar que no era un clúster cómodo o (comodity
clúster) como lo es ahora.

Con el crecimiento desmesurado de ARPANET llego a convertirse en lo que hoy


conocemos como internet “la madre de los clusters”.

5. Corta historia de openmosix

OpenMosix es un proyecto que surgió de la separación de los dos principales


desarrolladores de Mosix: – Amnon Barak: actual desarrollador principal de Mosix. –
Moshe Bar: quien empezó OpenMosix bajo licencia GPL. Openmosix funciona simulando
un sistema multiprocesador. Reparte procesos entre los nodos según su carga de forma
automática, transparente y dinámica.
6. Como instalar clúster-knoppix en el disco duro utilizando un live Cd
1. Abrimos una consola como usuario root y ejecutamos el siguiente comando
knoppix-installer.

2. Nos aparece un cuadro que cual nos indica que el disco aun no se encuentra
particionado y no sugiere que el espacio recomendado que debemos utilizar, al
cual le debemos dar OK.
3. Acá nos pregunta que deseamos hacer si particionar o salir, el caso le damos
particionar el disco y luego OK.

4. Al darle en particionar el disco nos aparece un programa el cual no permitirá hacer


las particiones del disco.
5. Seleccionamos el disco queremos formatear, damos click derecho el disco y
seleccionamos crear nueva tabla de particiones, y le damos que sí.

6. En él la venta que nos aparece en la opción crear como primary partición, tipo de
partición Linux-swap el tamaño lo definimos al el doble del tamaño de memoria
RAM que tengamos en nuestro equipo pero sin exceder 512mb, ejemplo si
tenemos 128 Mb de RAM la partición del swap debe de ser de 256mb, pero si
tenemos una memoria de 512mb la memoria RAM debe de ser de 512mb como
máximo, porque si ponemos más seria una perdida espacio. En la posición
seleccionamos final del espacio no utilizado, y aceptamos.
7. En esta ventana utilizaremos la siguientes opciones
- Crear como primary particion
- Tipo de partición ext3
- Etiqueta como lo queramos llamar
- Tamaño define el tamaño de la partición del disco
- Posición inicio del espacio no utilizado

Y por ultimo le damos aceptar.


8. En la ventana que nos aparece, en la parte superior izquierda hay un disquete le
damos allí y le damos que en yes para que inicie el proceso de formateo. Y al
finalizar el proceso de formateo cerramos la ventana.
9. Luego de haber cerrado la ventana nos aparece la ventana no encontramos varias
opciones, le damos en la primero opción configurar la instalación y damos en OK
y le damos posterior.

10. En esta ventana seleccionamos la última opción debían: sistemas cono debían
(método del antiguo instalador).
11. Acá seleccionamos el disco y le damos en posterior.

12. En esta ventana seleccionamos el sistema de ficheros para la instalación,


seleccionamos ext3 y le damos en posterior.
13. En esta venta ingresamos nuestro nombre o el que quemos.

14. En esta ventana introducimos el nombre que le queremos dar a el usuario.


15. Acá introducimos la clave que de usuario.
16. Acá introducimos el nombre que le queremos dar al equipo.

17. En esta venta seleccionamos el gestor de arranque, seleccionamos mbr: sector de


arranque primario y le damos posterior.
18. Luego en el menú que nos sale seleccionamos la opción 2 comenzar instalación y
click en ok.
19. Acá nos muestra una ventana con toda la configuración que hicimos verificamos y
le damos en posterior.

20. Al haber dado en posterior inicia el proceso de instalación el disco duro.


21. Al haber terminado con el proceso de copia nos aparece un aviso el cual nos pide
un disquete, no es necesario insertarlo solo le damos que no y listo

22. Y por ultimo le damos que no, y reiniciamos el equipo y solo sacamos el cd cuando
el sistema lo indique.
Cuando lo hayamos prendido si utilizar el Cd nos aparece una pantalla como la siguiente.
7. Como configurar tarjeta de red en cluster-knoppix
1. En la consola de comandos ejecutamos como usuario root el siguiente comando
netcardconfig.

2. Acá nos aparéese una ventana donde nos pregunta si queremos hacer la
configuración con un DHCP o si lo queremos hacer manualmente en el caso lo
haremos manual, por lo tanto le daremos que no.
3. En este espacio agregamos la dirección ip queremos utilizar para nuestra tarjeta
de red.
4. Acá agregamos la máscara de red que pertenezca a la dirección ip que ingresamos
anteriormente.

5. Acá se pone la dirección de broadcast.


6. En esta pantalla se pone la puerta de enlace o Gateway por defecto.

7. Y por ultimo obtendremos la siguiente información la cual nos dice que la interface
se encuentra arriba y la configuración que ingresamos anteriormente.
8. Como montar el sistema de archivos mfs

Acá procedemos a abrir este archivo de configuración. “fstab”

Montamos el sistema de archivos MFS. Pero para poder agregar cambios presionamos la
letra “ i ” y luego agregamos la línea que esta subrayada en rojo, (mfs /mfs mfs
dfsa=1 0 0)
Para salirnos y guardar los cambios realizados presionamos Esc : x y enter y así se
guardaran los cambios.

Después creamos un directorio dentro de la raíz que se llame mfs.


Montamos el directorio “mount mfs” y ya esta listo nuestro mfs.

Y probamos reiniciando el openmosix para ver que si este funcionando bien el sistema de
archivos ya agregado anteriormente.
9. Creando las llaves SSH

En el interprete de comandos colocamos el comando (ssh-keygen -t rsa) esta es para


crear las llaves para la conexión ssh, para hacerla más segura. Tecleamos enter.

Después de dar enter nos sale el primer dialogo hay damos enter solamente sin copiar
nada puesta opción lo que nos está diciendo es como donde se van a guardar las claves,
después de dar enter a mi me pidió una comprobación le damos y que significa que si y
damos enter de ahí nos pide como que especifiquemos la contraseña y después que la
comprobemos, en este caso mi llave no me va a pedir ninguna contraseña puesto que yo
les di enter sin colocar ninguna contraseña, y también podemos ver que nos muestra la
ruta de las clave privada y también de la pública.
En este momento solo voy a verificar si los archivos correspondientes si fueron creados,
hay podemos ver los archivos que están encerrados en azul.

Ahora tenemos que crear un archivo vacio el cual se debe de llamar authorized_keys,
utilizo el comando “touch” para crearlo, y después para verificar si esta creado “LS” para
ver si quedo creado, lo vemos seleccionado de color azul.
Ahora con el comando CAT solamente voy a ver el contenido de la clave privada.

Ahora visualizo la clave pública con el mismo comando CAT.


Ahora vamos a colocar el contenido del archivo “id_rsa.pub” al archivo “authorized_keys”
para autorizar la conexión ssh de ese nodo y así igualmente con las claves de los nodos a
los cuales quieres que se conecten.

Además también lo mostramos por la salida estándar con el comando CAT para ver si
quedo direccionado.

Vamos a publicar en nuestro servidor web nuestra clave pública para mantenerla a la
mano en caso de que la necesitemos para ingresarla en otros nodos o en el máster.

Vemos que al final le coloque el nombre de clave con la dirección IP del nodo y al final ese
nombre podemos ver la clave, de esta forma. 192.168.0.100/clave, esto se hace en un
navegador web.
Restauramos el servidor para que coja los cambios .

Verificamos en nuestro navegador si la clave queda en el servidor, hay podemos ver que
esta correcta y de esta forma queda lista nuestra conexión ssh.
10. Archivos de configuración del SSH

Entramos a configurar el archivo del servidor SSHD con el siguiente


comando en la consola del knoppix.

Luego de estar en archivo agregamos las siguientes líneas donde

*RSAAauthentication NO: no realiza autentificación de llaves RSA

*PasswordAuthetication YES: requiere autentificación de claves

*PubkeyAuthetication YES: realiza autenticación de claves públicas

*PermitEmptyPasswords YES: permite el ingreso de claves vacías es


decir sin caracteres.

*AuthorizedKeysFile; lo demás es la ruta del archivo ya previamente


creado para las claves tanto publicas como privadas.
La siguiente línea es comprobar que se puede realizar login remotos
sin tener que introducir ninguna clave.
Esta es la ruta del archivo del servidor SSH que veremos más abajo

El siguiente archivo el del servidor SSH donde se debe dejar tal y como
está pero es bueno mirarlo para ver la diferencia entre el archivo SSHD y
este.
11. Herramientas de monitoreo

11.1. OpenMosixView

OpenMosixView no está en las herramientas de área de usuario de OpenMosix por defecto.


Y la razón es muy simple: las herramientas de área de usuario son lo mínimo que necesita
cualquier administrador o usuario de OpenMosix para poder trabajar. En la mayoría de las
instalaciones de OpenMosix, los nodos son cajas sin monitor, ratón o teclado con una
instalación mínima de Linux, por lo que en principio OpenMosixView sólo será un
problema para el administrador, que puede no tener interés en instalar las librerías QT y
KDE en una máquina que sólo va a servir procesos.

La suite OpenMosixView contiene siete aplicaciones altamente útiles y eficaces tanto para
la administración como para la monitorización del clúster.

 OpenMosixView: principal aplicación de monitorización y administración.


 OpenMosixprocs: aplicación para la administración de procesos.
 OpenMosixcollector: captura la información del clúster proporcionada por los
demonios.
 OpenMosixanalyzer: analizador de la información capturada por
OpenMosixcollector.
 OpenMosixhistory: historial de monitorización de procesos del clúster.
 OpenMosixmigmon: visor que representa la migración de procesos.
 3dmosmon: visor para monitorización de datos en 3D.

Todos los componentes son accesibles desde la ventana de la aplicación principal. Este
entorno facilita la interacción con el usuario puesto que le permite ejecutar los comandos
de consola más comunes con unos pocos clic de ratón.
La figura muestra la ventana de la aplicación. El usuario podrá interactuar con OpenMosix
a través de sus controles. Para cada nodo del clúster (cada fila): una luz, una barra de
velocidad, un número que indica la velocidad de procesamiento, dos barras de progreso
porcentual que indican la eficiencia de balanceo de carga y de uso de memoria, también un
par de etiquetas que indican la cantidad de memoria y el número de procesadores por
nodo.

11.2. OpenMosixprocs

El processlist ofrece una visión general de lo que se está ejecutando. La segunda


columna muestra el nodo openMosix ID de cada proceso. 0 medios locales, todos los
demás valores son los nodos remotos. Los procesos migrados están marcados con
un icono verde y procesos nonmoveable tener una cerradura.
11.3. OpenMosixanalyzer

La siguiente figura nos muestra de forma gráfica la carga en el openMosixanalyzer.

Con el openMosixanalyzer tendremos un historial continuo de nuestro clúster. Los


historiales generados por openMosixcollector se mostrarán ahora de forma gráfica, de
forma continua, lo que nos permitirá ver la evolución del rendimiento y demás parámetros
de nuestro clúster a través del tiempo. OpenMosixanalyzer puede analizar los historiales a
tiempo real (datos generados a tiempo real) y evidentemente también puede abrir
antiguos backups con el menú File.

Los historiales serán guardados en /tmp/openMosixcollector/* (y los backups los


tendremos en
/tmp/openMosixcollector [date]/*) y sólo tendremos que abrir el historial principal del
clúster para visualizar antiguos historiales de informaciones de carga. (el campo [date] en
los ficheros de backup se refiere a la fecha en que han sido guardados)
11.4. OpenMosixmigmon

El es un monitor para las Migraciones en su openMosix-cluster. Muestra todos los nodos


como pequeños pingüinos sentados en un círculo.

-> Nodos de círculo. -> Nodos de Círculo.

El pingüino principal es el nodo en el que se ejecuta openMosixmigmon y alrededor de


este nodo se muestra también en sus procesos de un círculo de pequeños cuadrados de
color negro. El principal pingüino es el nodo en el que se Ejecuta openMosixmigmon y
Alrededor de este nodo se muestra También en sus procesos de un círculo de pequeños
cuadrados de color negro.

-> El proceso principal círculo -> El proceso principal círculo de

Si un proceso migra a uno de los nodos del nodo recibe un proceso propio círculo y el
proceso se trasladó del proceso principal de círculo para el proceso remoto círculo.
Entonces, el proceso está marcado en verde y traza una línea desde su origen hasta su
ubicación remota para visualizar la migración. Si Un proceso migra A Uno de los nodos del
nodo Recibe Un proceso propio Círculo y El proceso pasó en el Proceso principal de círculo
para el Proceso remoto Círculo. Entonces, El proceso está marcado en verde y traza una
línea desde su origen hasta su mando a distancia para visualizar la ubicación de la
migración.
10.8.2. 10.8.2. Información sobre herramientas: herramientas información sobre:

Si mantiene el ratón sobre un proceso que le mostrará su PID y de línea de comandos en


un texto de ayuda en pequeña ventana. Si Mantiene el ratón sobre un Proceso que le
mostrara su PID y de línea de comandos en un texto de ayuda en pequeña ventana.
10.8.3. 10.8.3. Función de arrastrar y soltar! Función de arrastrar y soltar!

El openMosixmigmon función de arrastrar y soltar está completamente activado. Usted


puede asir (arrastre) cualquier proceso y colocar a cualquiera de los nodos (los pingüinos)
y el proceso se trasladará allí. Si hace doble clic en un proceso en un nodo remoto será
enviada a casa inmediatamente. El openMosixmigmon Función de arrastrar y soltar está
completamente activado. Usted Proceso Cualquier Puede Asir (arrastre) y colocar una
cualquiera de los nodos (los pingüinos) y El proceso se trasladará allí. Si hace doble clic en
Un proceso en un nodo remoto, se le se envían a casa inmediatamente.

11.5. OpenMosixhistory

Con openMosixhistory podremos acceder a la lista de procesos ejecutados en el pasado.


Conseguiremos una lista de los procesos que se ejecutaron en cada nodo.
OpenMosixcollector guarda la lista de procesos de cada nodo cuando lo iniciamos y con el
openMosixhistory podremos navegar en dicha información para ver el comportamiento
que desarrolló nuestro clúster
11.6. Mosmon

Esta herramienta monitorea la carga en el Clúster, 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.
12. Como probar clustes-knoppix

a. Prueba simple: los de OpenMosix dicen que la manera más sencilla de probarlo es
crear el script test_mosix, cuyo contenido es:

awk 'BEGIN {for(i=0;i<10000;i++)for(j=0;j<10000;j++);}' &

Y lanzarlo con el comando:

$ for i in `ls /etc/` ; do ./test_mosix ; done

Para matar todos los procesos awk:

$ pkill awk
$killall awk

b. Prueba de stress OpenMosixTest (openmosixview.com/omtest/, paquete


openmosixtest): sirve para determinar si el clúster funciona correctamente y cómo
responde bajo carga, generando al finalizar un informe con los resultados. Para
ejecutarlo:

$ ./start_openMosix_test.sh

c. Ejemplo con Blender: veamos cómo renderizar una escena de Blender


aprovechando OpenMosix. Blender corre como un único proceso por lo que
OpenMosix poco puede hacer, como mucho migrarlo a otra máquina. Pero si
dividimos el trabajo en varios procesos (tantos como nodos) sí podremos
aprovechar nuestro clúster openMosix.

- Descargamos la escena de Blender blacksmith.tgz y la descomprimimos.


- Abrimos /blacksmith/blacksmith.blend, seleccionamos la escena 04_06 y
configuramos el render a 640×480 y formato .jpg.
- Descargamos el script de Marc O. Gloor render.gz que será el encargado de dividir
el trabajo en tantos procesos como nodos. Lo descomprimimos en el directorio
/blacksmith y le damos permisos de ejecución. Para ejecutarlo (4 nodos, 230
imágenes):

$ ./render blacksmith.blend 1 231 4


13. Conceptos básicos

Alto rendimiento: Gran demanda de procesamiento de datos en procesadores, memoria y


otros recursos de hardware, donde la comunicación entre ellos es rápida.

Balanceo de carga: Lo ideal en el procesamiento paralelo es que cada procesador realice


la misma cantidad de trabajo, donde además se espera que los procesadores trabajen al
mismo tiempo. La meta del balanceo de carga es minimizar el tiempo de espera de los
procesadores en los puntos de sincronización.

Compilador: Un compilador es un programa que traduce otro programa escrito en un


lenguaje de programación llamado código fuente, en un programa equivalente al lenguaje
de computadora llamado ejecutable ó binario.

Computadora vectorial: Posee un conjunto de unidades funcionales utilizados para


procesar vectores eficientemente. Contiene registros vectoriales para operar sobre ellos
en un solo ciclo de reloj.

Computadora paralela: Máquina con dos o más procesadores que pueden trabajar
simultánea y/o coordinadamente.

Estas son de dos tipos: las MIMD donde cada procesador puede ejecutar diferentes
instrucciones sobre diferentes datos, y las SIMD donde los procesadores ejecutan las
mismas instrucciones pero con diferentes datos, como se explicara en la siguiente sección.

Eficiencia: Es la relación entre el costo computacional y el funcionamiento del cluster; y lo


que indica es qué tan eficiente se está utilizando el hardware y se expresa de la siguiente
forma:

; donde es la eficiencia, es el numero de procesadores,

es el tiempo en que tarda en procesar un programa en particular en un procesador,

es el tiempo en que tarda en procesar un programa en particular en n


procesadores.

Escalabilidad: Generalmente se mide la eficiencia de un problema, utilizando un tamaño y


un número de procesadores fijo, pero esto es insuficiente, pues los resultados serán
diferentes cuando se aumente o disminuya el tamaño del problema y el número de
procesadores. Esto es, existe un problema de escalabilidad.

Cuando se aumenta el número de procesadores para el mismo tamaño del problema, la


sobrecarga debido al paralelismo (comunicaciones, desbalanceo de carga), aumenta y
similarmente podemos tener casos en donde el tamaño del problema es muy pequeño
para tener una evaluación real del problema sobre cierta máquina.

Flops: Un flop es utilizado para medir operaciones de punto flotante por segundo. Es una
medida de la velocidad del procesamiento numérico del procesador. Se utilizan en
unidades de millones de flops (MegaFlops), Miles de Millones de flops (GigaFlops), etc.
Kernel: El kernel, también conocido como núcleo; es la parte fundamental de un sistema
operativo. Es el software responsable de facilitar a los distintos programas acceso seguro
al hardware de la computadora.

Memoria compartida: En una máquina paralela existe una sola memoria que puede ser
accedida por todos los procesadores.

Memoria distribuida: Cada uno de los procesadores de un multiprocesador tiene


asociado a él una unidad de memoria.

MFS: Este es el sistema de _cheros que se desarrolló para openMosix en espera de alguno
mejor para poder hacer uso de una de sus técnicas de balanceo, DFSA. Este sistema
funciona sobre los sistemas de ficheros.

Nodo: Se refiere a una computadora sola que contiene recursos específicos, tales como
memoria, interfaces de red, uno o más CPU, etc.

NFS: es un protocolo de nivel de aplicación, según el Modelo OSI. Es utilizado para


sistemas de archivos distribuido en un entorno de red de computadoras de área local.
Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos
como si se tratara de locales. Originalmente fue desarrollado en 1984 por Sun
Microsystems, con el objetivo de que sea independiente de la máquina, el sistema
operativo y el protocolo de transporte, esto fue posible gracias a que está implementado
sobre los protocolos XDR (presentación) y ONC RPC (sesión) .El protocolo NFS está
incluido por defecto en los Sistemas Operativos UNIX y la mayoría de distribuciones Linux.

Paralelismo: Consiste en el procesamiento de una serie de instrucciones de programa que


son ejecutables por múltiples procesadores que trabajan de manera independiente
.

Existen dos formas conocidas de hacer paralelismo: una es en hardware y otra en


software. Por hardware depende de la tecnología de cómputo y la de software se refiere a
la habilidad del usuario para encontrar áreas bien definidas del problema que se desea
resolver, de tal forma que éste pueda ser dividido en partes que serán distribuidas entre
los nodos del clúster.

Proceso: Un proceso es básicamente un programa en ejecución. Cada proceso tiene


asociado un espacio de direcciones, es decir una lista de posiciones de memoria desde
algún mínimo hasta algún máximo que el proceso puede leer y escribir.

Rendimiento: Es la efectividad del desempeño de una computadora sobre una aplicación


o prueba de rendimiento (benchmark) en particular. En las mediciones de rendimiento
están involucrados velocidad, costo y eficiencia.

Speedup(velocidad): Se define como el tiempo que tarda en ejecutarse el mismo


programa en un solo procesador, dividido entre el tiempo que toma ejecutarse el mismo
programa en procesadores.

.
Donde es el speedup, es el tiempo de ejecución en un procesador y el
tiempo de ejecución en procesadores.

En un problema que es completamente paralelo, el valor del speedup debe ir


incrementando linealmente con el valor de , sin embargo en muchos problemas donde
el balanceo de carga no es perfecto y la comunicación entre procesos sobrepasa el tiempo

de cómputo, el valor del speedup es menor que el valor de . La mejor solución es la

que se acerque más al valor de


14. CONCLUSIONES

Esta es una alternativa a la hora de escases de recursos o de dinero para la adquisición de


los nuevos equipos más potentes.

Es un parche para el SO basado en software libre, que se encarga de darle la funcionalidad


al PC de nodo dentro del clúster.

El distribuimiento de la carga entre los nodos del clusters hace que los procesos que se
ejecuten se lleven a cabo de forma más eficiente.

Cuanta con una buena seguridad en la parte de la conexión remota con SSH, ya que se
generan unas claves para impedir que intrusos o nodos no autorizados entren al máster.

Anda mungkin juga menyukai