Download diseño de un clúster con computadoras dadas de baja, como

Document related concepts

Clúster (informática) wikipedia , lookup

Computación distribuida wikipedia , lookup

Computación paralela wikipedia , lookup

Cluster Beowulf wikipedia , lookup

MySQL Cluster wikipedia , lookup

Transcript
DISEÑO DE UN CLÚSTER CON COMPUTADORAS DADAS DE
BAJA, COMO ALTERNATIVA DE BAJO COSTO FRENTE A
ORDENADORES DE ALTO RENDIMIENTO, PARA EMPRESAS DEL
EJE CAFETERO
GERMÁN ANDRÉS OLANO TREJOS
UNIVERSIDAD TECNOLÓGICA DE PEREIRA
FACULTAD DE INGENIERÍAS
PROGRAMA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN
PEREIRA
2010
DISEÑO DE UN CLÚSTER CON COMPUTADORAS DADAS DE
BAJA, COMO ALTERNATIVA DE BAJO COSTO FRENTE A
ORDENADORES DE ALTO RENDIMIENTO, PARA EMPRESAS DEL
EJE CAFETERO
Trabajo de Grado
para optar el titulo de
Ingeniero de Sistemas y Computación
GERMÁN ANDRÉS OLANO TREJOS
Asesor:
Ingeniero Cesar Cabrera
UNIVERSIDAD TECNOLÓGICA DE PEREIRA
FACULTAD DE INGENIERÍAS
PROGRAMA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN
PEREIRA
2010
Nota de Aceptación
______________________________
______________________________
______________________________
______________________________
______________________________
______________________________
_____________________________
Presidente del Jurado
_____________________________
Jurado
_____________________________
Jurado
_____________________________
Asesor
Pereira, 25 de Febrero de 2010
DEDICATORIA
A Dios que me ha brindado las oportunidades para crecer
como persona, como profesional, como hijo, hermano y
pareja, que siempre me ha acompañado y me ha otorgado
los más grandes tesoros de la vida.
A mi madre y mi hermana, cuyos grandes esfuerzos,
paciencia, consejos y cuidado me han permitido llegar
tan lejos.
A Marcela, la mujer que en los últimos años se ha
convertido en mi gran apoyo, y me ha enseñado mucho.
AGRADECIMIENTOS
Quiero agradecer a Dios por permitirme vivir estos momentos,
acompañado de las personas que quiero y tienen un gran significado
en mi vida. Agradezco a mi familia, quienes con su esfuerzo y
dedicación me ayudaron a cumplir mis metas y a iniciar mi camino
como profesional.
Mi agradecimiento a Marcela, quien me ha acompañado y apoyado en
muchos momentos de mi vida, especialmente en mi etapa
universitaria, que me ha brindado su amor, sus consejos, sus
opiniones, que me ha acompañado en este camino, que me ha
enseñado a como ser mejor persona, hijo, hermano, profesional,
pareja, etc.
Deseo también agradecer a mis compañeros y amigos, a quienes han
creído en mí, y me han ayudado de diversas formas, no solo en la
realización de este proyecto, también en otros en los que he tenido la
oportunidad de participar durante mi carrera. Y al Ingeniero Cesar
Cabrera, quien me brindo su apoyo, asesoría y buenos consejos para
la culminación de este proyecto.
CONTENIDO
pág.
RESUMEN
15
INTRODUCCIÓN
16
1 PLANTEAMIENTO DEL PROBLEMA
20
1.1 DESECHOS TECNOLÓGICOS
21
1.2 REQUERIMIENTOS EN CAPACIDAD DE PROCESAMIENTO
22
2 ANÁLISIS DEL ENTORNO
24
2.1 DISEÑO DE LA ENCUESTA
24
2.2 RESULTADOS OBTENIDOS
31
2.2.1 Cantidad de computadores en la empresa
31
2.2.2 Clasificación de los equipos
32
2.2.3 Servidores
32
2.2.4 Nivel de rotación de los computadores en la empresa
33
2.2.5 Motivos para la rotación de los equipos
34
2.2.6 Convenios o preferencias con marcas
35
2.2.7 Manejo de residuos tecnológicos y políticas de reciclaje
de residuos tecnológicos.
36
2.2.8 Estado de los equipos dados de baja
37
3 JUSTIFICACIÓN
44
4 ESTADO DEL ARTE
46
4.1 CONCEPTOS BÁSICOS
46
4.1.1 Supercomputación
46
4.1.2 Computación paralela
46
4.1.3 Ley de Amdahl
47
4.1.4 Ley de Gustafson
48
4.1.5 Speedup
48
4.1.6 Sistemas distribuidos
49
4.2 CLÚSTER
51
4.2.1 Tipos de clúster
52
4.3 SOFTWARE PARA CLÚSTER
58
4.3.1 Sistema operativo
58
4.3.2 Middleware
67
4.4 SSI
83
4.4.1 Pilares
84
4.4.2 Ventajas
85
4.4.3 Desventajas
86
4.4.4 Características ofrecidas por SSI
87
4.4.5 Niveles en SSI
89
4.5 KERRIGHED
91
4.5.1 Objetivos e historia del proyecto
91
4.5.2 Características de kerrighed
92
4.5.3 Requisitos para la implementación
93
4.5.4 Otra información sobre kerrighed
94
5 CARACTERÍSTICAS DEL PROYECTO
97
5.1 CONSIDERACIONES GENERALES
97
5.2 TIPO DE INVESTIGACIÓN
97
5.3 DISEÑO DE LA INVESTIGACIÓN
98
5.4 POBLACIÓN
98
5.5 SELECCIÓN DE LA SOLUCIÓN CLÚSTER
99
5.6 ANÁLISIS DE DATOS
99
5.7 VARIABLES
100
5.8 FACTIBILIDAD DEL PROYECTO
100
5.9 CONSIDERACIONES ÉTICAS
101
6 DISEÑO DE UN CLÚSTER CON EQUIPOS NO USADOS
102
6.1 EQUIPOS
102
6.1.1 Elementos básicos
102
6.2 REDES
116
6.2.1 Clasificación
117
6.2.2 Diseño de la red
119
6.3 SELECCIÓN DE HARDWARE Y DISEÑO FÍSICO
DEL CLÚSTER
120
6.4 SISTEMA OPERATIVO
123
6.4.1 Instalación del sistema operativo
123
6.5 INSTALACIÓN DE KERRIGHED
155
6.5.1 Instalación en un nodo
155
6.5.2 Instalación de otros nodos
158
6.6 CONFIGURACIÓN
158
6.7 ADMINISTRACIÓN
159
7 RESULTADOS OBTENIDOS
161
7.1 DISEÑO DE UN CLÚSTER CON EQUIPOS DADOS DE
BAJA
161
7.2 INSTALACIÓN Y CONFIGURACIÓN DEL
SISTEMA OPERATIVO
162
7.3 INSTALACIÓN DE KERRIGHED
163
7.4 ADMINISTRACIÓN DE KERRIGHED
165
7.5 RENDIMIENTO
167
7.5.1 Enfoque lineal
168
7.5.2 Enfoque mediante benchmarking
169
7.6 COSTOS GENERADOS POR LA IMPLEMENTACIÓN
DEL CLÚSTER
172
7.6.1 Adquisición de equipos
172
7.6.2 Espacio físico y adecuación
174
7.6.3 Instalación, configuración y administración
175
7.6.4 Consumo de energía
177
7.6.5 Resumen
177
8 RECOMENDACIONES
179
9 CONCLUSIONES
181
BIBLIOGRAFÍA
184
LISTADO DE FIGURAS
pág.
Figura 1. Ventas de Computadores
20
Figura 2. Desechos tecnológicos
21
Figura 3. Cantidad de computadores en la empresa
31
Figura 4. Clasificación de los equipos de computo
32
Figura 5. Existencia de servidores
33
Figura 6. Nivel de rotación y reemplazo de equipos
34
Figura 7. Motivos para rotación o reemplazo de equipos.
35
Figura 8. Preferencia por marca o convenio
36
Figura 9. Manejo de residuos tecnológicos
37
Figura 10. Políticas de reciclaje y programas de donación
37
Figura 11. Equipos que pueden ser usados
38
Figura 12. Procesadores promedio
38
Figura 13. Capacidad de memoria RAM
39
Figura 14. Capacidad en disco duro
39
Figura 15. Existencia de tarjetas de red
40
Figura 16. Sistemas operativos
40
Figura 17. Clúster Beowulf
72
Figura 18. Logo de Rocks Cluster
75
Figura 19. Cantidad de nodos por clúster con Kerrighed
95
Figura 20. Cantidad de núcleos o cores por clúster
con Kerrighed
95
Figura 21. Tipo de redes usados en clúster con Kerrighed
95
Figura 22. MSI K8 Master3-133-FA4R
103
Figura 23. Memoria Kingston KVR533D2E4/1G
103
Figura 24. Procesador Thurion
105
Figura 25. Disco Duro
105
Figura 26. Raid Nivel 0
110
Figura 27. Raid Nivel 1
111
Figura 28. Raid Nivel 2
111
Figura 29. Raid Nivel 3.
112
Figura 30. Raid Nivel 4.
113
Figura 31. Raid Nivel 5.
114
Figura 32. Raid Nivel 6
114
Figura 33. Tarjeta de Red.
116
Figura 34. Estructura física sin redundancia de red
ni nodo maestro
122
Figura 35. Estructura física sin redundancia de red
con nodo maestro
122
Figura 36. Estructura física con redundancia de red
sin nodo maestro
123
Figura 37. Estructura física con redundancia de red
sin nodo maestro
123
Figura 38. Pantalla de bienvenida instalación de
Debian Gnu/Linux.
129
Figura 39. Selección de Idioma.
130
Figura 40. Selección de País.
130
Figura 41. Selección de localización.
131
Figura 42. Soporte para otros idiomas.
131
Figura 43. Selección de teclado
132
Figura 44. Seleccionar interfaz de red
133
Figura 45. Selección de método de configuración de red
134
Figura 46. Dar nombre a la máquina.
135
Figura 47. Determinar nombre de dominio
135
Figura 48.Selección del método de particionado.
137
Figura 40. Particionado de discos
(Ejemplo para un Disco Duro de 160 GBytes).
137
Figura 50. Particionado de discos (Resumen y confirmación)
138
Figura 51. Asignar clave al superusuario
139
Figura 52. Nombre para el nuevo usuario
139
Figura 53. Configuración de usuario y clave
140
Figura 54. Selección de opción de replica.
141
Figura 55. Selección de país de replica
141
Figura 56. Selección del servidor replica de Debian Gnu/Linux
142
Figura 57. Configuración de proxy
142
Figura 58. Selección de paquetes
143
Figura 59. Instalación de grub
144
Figura 60. Finalización de la instalación
144
Figura 61. Modificar el sources.list
145
Figura 62. Configuración de SSH
148
Figura 63. Diseño físico del clúster
162
Figura 64. Comparativa entre sistemas
170
Figura 65. Comparativa entre sistemas
(sin supercomputador)
171
LISTADO DE TABLAS
pág.
Tabla 1. Cuadro de ponderación de calificación
para el middleware
81
Tabla 2. Calificaciones para los sistemas evaluados
82
Tabla 3. Ejemplos de clúster implementados
con Kerrighed
96
Tabla 4. Variables
100
Tabla 5. Características básicas de los nodos
121
Tabla 6. Motivos de selección
124
Tabla 7. Distribución de particiones recomendada
125
Tabla 8. Tabla de particiones de ejemplo
para un sistema de Gnu\Linux
136
Tabla 9. Diseño del sistema clúster
161
Tabla 10. Costos de adquisición para nodos de clúster
173
Tabla 11. Costos de adquisición para servidor
173
Tabla 12. Comparativa de espacio físico
174
Tabla 13. Comparativa en instalación y configuración
175
Tabla 14. Comparativa en administración de los sistemas
175
Tabla 15. Parafiscales
176
Tabla 16. Prestaciones Sociales
176
Tabla 17. Comparativa consumo de energía
177
Tabla 18. Resumen de comparaciones entre clúster y
servidor
178
RESUMEN
El aporte a las empresas de la región se puede realizar en diferentes
formas, pero cuando se pueden reunir diferentes aspectos como la
reutilización de elementos que han sido descartados, el alivio en los
gastos de la organización, el apoyo al medio ambiente mediante la
disminución de desechos de equipos tecnológicos y la posibilidad de
contar con un sistema fruto de la unión de hardware y software que
pueda generar unas capacidades aceptables, la propuesta es más
atractiva, no solo desde el punto de vista empresarial, sino también
desde el ambiental y social.
En el presente documento se presenta una propuesta basada en el
diseño de un clúster con equipos no activos en la empresa y se
estudia su viabilidad, de tal forma que se tenga un sistema que
pueda brindar beneficios como:
•
Ayudar a reducir la contaminación generada por los desechos
tecnológicos.
•
Hacer uso eficiente de los recursos tecnológicos que puede
poseer una empresa.
•
Contar con un sistema de buenas prestaciones para la ejecución
de aplicaciones que necesitan ordenadores de medio o alto
rendimiento.
En la metodología para el desarrollo del proyecto se encuentran el
estudio teórico en lo relacionado a sistemas de clúster, conocer a
partir de un grupo de empresas el escenario en el cual se puede
desarrollar un proyecto como el propuesto, el diseño de un sistema
clúster y los resultados obtenidos de la investigación que permita
conocer la viabilidad de un proyecto de esta naturaleza.
Palabras Claves: sistemas
distribuidos,
clústers,
tecnológicos, infraestructura tecnológica, kerrighed,
operativos, SSI.
15
residuos
sistemas
INTRODUCCIÓN
Los sistemas clúster son actualmente una de las alternativas en busca
de emular lo que los supercomputadores pueden realizar usando
ordenadores comunes, organizados de forma tal que brinden
capacidades muy altas. Algunos proyectos previos ya han tratado
este problema con éxito y han generado aplicativos en busca de
facilitar la implantación de estas soluciones de la forma más rápida y
simple posible.
Una de esas soluciones son los sistemas clúster, base de este
proyecto; este enfoque que ya ha dado sus resultados en proyectos,
como el Beowulf, ha demostrado ser muy exitosos, y aún cuando
otros sistemas han nacido y crecido en los últimos años, sigue
estando vigente y aplicable a los problemas de hoy.
En los clúster tipo Beowulf1 se busca que programas cuyo código ha
sido paralelizado de forma óptima puedan aprovechar los recursos
disponibles en todos los nodos del sistema, es decir que cada sección
de código pueda ser ejecutado por cada máquina del clúster,
procesando la información de forma más ágil y efectiva.
Otro enfoque, precisamente el que se trata en este proyecto, busca
que todas las máquinas se vean como una sola para las aplicaciones
que se ejecutan, sin importar si estas últimas han sido modificadas
en su código de forma que sean consideradas como paralelas o no.
Esto se conoce como SSI (Imagen Única del Sistema) y al respecto se
encuentran trabajos o sistemas clúster ya desarrollados y disponibles
como2:
•
Mosix
•
OpenMosix
•
OpenSSI
•
Kerrighed.
1 BEOWULF.ORG What makes a cluster a Beowulf?. http://www.beowulf.org/overview/index.html
2
COLABORADORES DE WIKIPEDIA. Clúster(Informática) http://es.wikipedia.org/wiki/Cluster_(inform
%C3%A1tica)
16
La importancia del trabajo actual no se basa en desarrollar un nuevo
sistema para clúster, lo cual ya ha sido tratado por otras personas y
grupos, sino en diseñar un sistema tipo cluster mediante alguna de
las soluciones ya existentes y disponibles, con equipos que ya no
estan activos en las empresas de la región, ofreciendo una alternativa
de bajo costo para las organizaciones frente a equipos de alto
rendimiento, de tal forma que tendrán un sistema de alta capacidad,
con máquinas que ya tienen en sus instalaciones, y que además ya
no están en uso activo en la empresa, permitiendo su reciclaje, reuso, y disminuir los costos por el manejo de desechos tecnológicos y
el desperdicio de recursos que se pueden aprovechar de distintas
formas en la organización y por último, pero no menos importante, la
contaminación ambiental que puede conllevar el tener políticas y/o
prácticas erradas para el manejo de la basura que se genera de los
computadores que ya no se usan.
Lo que se busca entonces es desarrollar un clúster de la naturaleza
como el propuesto en este proyecto, aprovechando las diferentes
situaciones que se pueden encontrar alrededor de los centros de
computo de las empresas, como son:
•
Dado que la tecnología se renueva con una frecuencia alta, la
cantidad de partes y equipos que han dejado de ser usados son
altos, a los cuales se les ha considerado que han cumplido con
su ciclo de vida útil, pero que aún pueden funcionar o
reemplazar componentes defectuosos de otros.
•
En la mayoría de empresas con departamentos de sistemas se
cuenta con redes locales o extensas que pueden ser
aprovechadas de múltiples maneras.
•
Existen aplicativos para el manejo de información que requieren
de características o rendimientos especiales de hardware y
software (servicios web, bases de datos, correo electrónico).
Sin embargo es importante tener en cuenta que las empresas en las
cuales se podrían aplicar los resultados obtenidos de este proyecto
son de naturaleza muy diversa (incluyendo además la posibilidad del
aprovechamiento por partes de centros educativos), y que en su
mayoría no necesitan de este tipo de tecnología para aplicaciones
netamente científicas como ha sucedido con los proyectos de clúster
17
desarrollados por universidades o centros como la NASA, o
rendimientos de magnitudes tan grandes como Google. Lo que se
busca es un sistema de alto rendimiento capaz de ejecutar aplicativos
comunes a empresas de la región (como bases de datos, servicios
web, etcétera). Para lograrlo también es importante poder responder
a los siguientes interrogantes:
¿Cual es el nivel de renovación de equipos de computo en las
empresas?
¿Si existe renovación, cual es la cantidad de equipos operativos que
sobran en las empresas?
¿Cuales son las características de dichos equipos?
¿Cuales son las capacidades que ofrecen dichos equipos al trabajar en
un clúster?
¿Que impacto genera cambiar un equipo dentro de un clúster?
¿Cual es el nivel de conocimientos necesarios para administrar un
clúster?, entre otras.
Al final del proyecto se espera entonces conseguir como objetivo
general diseñar un sistema clúster con computadores dados de
baja que sirva como alternativa de bajo costo en comparación
a equipos de altas prestaciones para las empresas de la
región.
Lo anterior se consigue teniendo en cuenta los siguientes objetivos
específicos, que además constituyen las tareas que permitirán
conseguir el objetivo general del proyecto:
•
Analizar los sistemas clúster, sus características y condiciones y
comparativas con otros sistemas distribuidos.
18
•
Estudiar la situación actual de las organizaciones y empresas en
cuanto los equipos de computo dados de baja y sus
condiciones.
•
Analizar las diferentes opciones de software para
administración y funcionamiento de un sistema clúster.
•
Diseñar un sistema tipo clúster con equipos que no se
encuentran activos en una organzación y que pueda ser
presentado a las empresas como una alternativa de bajo costo
en comparación con ordenadores de alto rendimiento, de tal
forma que se pueda acceder a recursos de hardware y software
(como servidores web, correo, etcétera), con un bajo costo
para la organización y facilidad de administración.
•
Analizar las capacidades que un clúster de equipos no usados
puede brindar según el diseño realizado.
•
Desarrollar un documento en el cual se refleje la experiencia
adquirida durante el desarrollo del proyecto.
la
Es importante tener en cuenta que un proyecto de esta naturaleza
presenta las limitantes propias en cuanto a la disponibilidad de
recursos técnicos y económicos relacionados con proyectos que
incluyen una cantidad importante de ordenadores, infraestructura en
redes de datos, entre otros. Es por ello que el alcance del proyecto
llega hasta el diseño del clúster y la determinación de la viabilidad del
mismo3.
3 Para el desarrollo del presente proyecto y para poder contar con datos que permitan evaluar sobre la
viabilidad del clúster propuesto se trabaja sobre un prototipo muy básico, constituido por un número
límitado de ordenadores.
19
1. PLANTEAMIENTO DEL PROBLEMA
Durante los últimos años la venta de computadores en el país se ha
disparado de forma significativa, pasando de las casi 200.000
unidades registradas en 1996 a los casi 2'000.000 en 2007, cifra que
siguió incrementándose para el año 2008 y 20094, los cuales según
las tasas de crecimiento pudieron aumentar en 5% cada año según la
siguiente gráfica:
Figura 1. Ventas de computadores
Fuente: http://raee.org.co/ventas
Si el comportamiento se mantuvo, lo anterior implicaría que para el
año 2008 la venta aproximada de computadores fue de 2'100.000
unidades, y para 2009 se podría esperar un número cercano a los
2'205.000 ordenadores. Estas cifras muestran el increíble crecimiento
en la adquisición de computadores en el país, que aunque puede
traer importantes ventajas, como el acceso de la población a la
tecnología, también trae serios problemas como el de la generación
de desechos tecnológicos.
4 RESIDUOS DE APARATOS ELÉCTRICOS Y ELECTRÓNICOS. Ventas de Computadores en Colombia.
http://raee.org.co/ventas
Cifras según datos públicados en el sitio web raee.org.co (Residuos de aparatos eléctricos y
electrónicos), excepto para el año 2008 y 2009 de los cuales no se tienen cifras concretas.
20
1.1. DESECHOS TECNOLÓGICOS
Según la misma organización, raee.org.co, para el año 2007 se tenia
que aproximadamente se habían vendido unos 5'000.000 de
computadores, sin embargo tan solo 3.2 millones están en uso,
dejando 1.8 millones fuera de servicio5.
Esos 1.8 millones de computadores dados de baja implican una
cantidad importante de desechos tecnológicos que en su mayoría no
son tratados de forma adecuada y crean mayor nivel de
contaminación en el medio ambiente. La figura 26 deja ver como el
crecimiento de la cantidad de desechos generados crece con el
tiempo, llegando en el 2007 a las casi 9000 toneladas de
desperdicios, y se estima que para el 2013 se llegará a tener casi
unas 19000 toneladas.
Figura 2. Desechos tecnológicos
Fuente: http://raee.org.co/residuos-pc
Aunque no es el objetivo de este trabajo, es importante tener en
cuenta que la mayoría de los componentes de un ordenador están
fabricados de materiales no biodegradables, que pueden permanecer
5 Ibid
6 RESIDUOS DE APARATOS ELÉCTRICOS Y ELECTRÓNICOS. Residuos de computadores, monitores y
componentes. http://raee.org.co/residuos-pc
21
muchos años en el ambiente contaminando suelos, aguas y aire,
desde el plástico con el cual es hecho el monitor, hasta la soldadura
utilizada en las tarjetas.
Adicionalmente, la existencia de desechos tecnológicos también
representa una perdida económica para la empresa, que aunque
pueda parecer mínima dados los movimientos contables que se tienen
en una organización, existe y se ve reflejada en la imposibilidad de
seguir usando los mismos ordenadores que se compraron años atrás
para los procesos que lleva actualmente la empresa. Incluso, para
aquellas entidades que son responsables con el medio ambiente, el
manejo adecuado de los desechos tecnológicos también implica un
gasto adicional para sus finanzas. Incluso, dentro de estos desechos
existen elementos que podrían ser recuperados y con unos costos
importantes, como el cobre, del cual se calcula que por cada 45000
toneladas de residuos se tienen unas 3000 toneladas de cobre7.
1.2. REQUERIMIENTOS EN CAPACIDAD DE PROCESAMIENTO
Los cambios en cuanto a los requerimientos de hardware por parte
del software también han sido significativos. Aunque no se tienen
cifras concretas sobre este cambio, si se conoce que para el año
1997, con la entrada en funcionamiento de Microsoft Windows 98, se
requería de una máquina con un procesador de unos 400 Mhz y 64
Mbytes de memoria RAM, mientras que en la actualidad se tiene que
para la versión Vista del mismo sistema operativo se necesita un
procesador de mas de 2000 Mhz (entre más potente mayores
resultados, si es de 64 bits o doble núcleo, es todavía mejor) y una
capacidad en memoria RAM que no puede ser menor a 1 Gbytes
(incluso 1.5 Gbytes de memoria RAM serian lo recomendable).
Lo anterior da una imagen clara de los cambios en los requerimientos
de hardware actuales, en los cuales no se han contado las
aplicaciones adicionales al sistema operativo como son:
•
Motores de bases de datos, que generan un incremento
importante no solo por la manipulación de los datos, también
por la necesidad de atención a múltiples clientes que desean
conectarse a las bases de datos.
7 Ibid
22
•
Aplicaciones gráficas (juegos, sistemas CAD, etcétera) que
exigen cuando menos tarjetas aceleradores de gráficos con
características respetables.
•
La necesidad de estar conectado que implica la visita de cientos
de usuarios a paginas web, sistemas de correo electrónico,
sistemas de transferencia de archivos, entre otros, exigiendo
todavía más recursos.
Las empresas que hacen uso de alguna de las aplicaciones
anteriormente mencionadas o cuyas funciones dependan de los
computadores por diversas razones (uso de hojas de calculo,
Internet, etcétera) se ven en la necesidad de estar actualizando su
infraestructura tecnológica, a nivel tanto lógico (programas) como
físico (partes o máquinas completas).
23
2. ANÁLISIS DE ENTORNO
Para el desarrollo del proyecto se propone construir un escenario base
tomando la información de 5 caso, 5 empresas que han permitido
conocer en mayor o menor medida su parte de su capacidad tecnica,
ya sea por medio de visitas de forma personal o conversaciones por
medio telefónico o electrónico. Las encuestas realizadas con este fin,
débido a la limitada cantidad de empresas a las cuales fueron
dirigidas, no constituyen una muestra suficiente para análisis
estadisticos.
Dichas empresas, de las cuales no se publican sus nombres o
ubicación, respetando la privacidad de su información y su
infraestructura tecnológica8, han sido seleccionadas debido a
relaciones de diferente naturaleza en el pasado y aprovechando que
se encuentran en diferentes sectores económicos.
Para conseguir la información se uso como parte fundamental,
además del método de observación, una encuesta o cuestionario, con
16 preguntas ,que permitían tener datos exactos y fundamentales
para el proyecto, y adicionalmente,
en conversaciones con las
personas encargadas de las áreas de informática de cada empresa, se
complementaba y aclaraban las dudas que se presentaban sobre lo
recopilado para el proyecto.
2.1. DISEÑO DE LA ENCUESTA
La encuesta que se realizó a las empresas se compone de 169
preguntas, de las cuales no existe ninguna relacionada con su
identificación o ubicación con el fin de evitar divulgar datos que para
las empresas puede ser sensible, respetando sus políticas internas y
la reserva de información de su estructura tecnológica.
8 Es importante señalar que muchas empresas en la región consideran como una información sensible
dar a conocer su infraestructura tecnológica, convenios o preferencias, políticas internas, entre otras,
por lo cual se encontraban bastantes negativas a la hora de solicitar información relacionada con lo
mencionado anteriormente. Las 5 empresas que de las cuales se presentan los datos han dado su
voto de confianza en el presente proyecto teniendo en cuenta el deseo de respetar su privacidad
manteniendo sus nombres y otros datos de identificación al margen del presente documento.
9 Las dos primeras preguntas hacen referencia a características de la empresa relacionadas con el
sector económico en el cual se desempeñan y la cantidad de empleados. Débido a que no son
relevantes para los fines de este proyecto no se incluyen las respuesta dentro de este capítulo.
24
El objetivo de esta encuesta es conocer caracteristicas relacionadas
con el desarrollo de este proyecto, de tal forma que se pueda
construir un escenario base para el diseño del clúster, poder conocer
el tipo de nodos basicos con los cuales se puede contar y además
información que permita identificar posibles problemas en cuanto a la
forma en la cual se manejan los equipos que ya no estan activos en la
organización. Es una encuesta dirigida a los directores o jefes de
sistema de las empresas encuestadas y ha sido realizada como un
cuestionario electrónico que puede ser consultado a través del sitio
web encuesta facil.com10.
Las siguientes son las preguntas que componen la encuesta:
•
Tercera Pregunta: Cual es, aproximadamente, la cantidad de
computadores existentes en su empresa u organización?
La tercera pregunta pretende conocer aproximadamente la
cantidad de computadores que se pueden encontrar en la
empresa, lo cual también puede influir en la cantidad de
computadores que pueden estar inactivos, la rotación de los
equipos, etcétera.
La tercera pregunta ofrece las siguientes opciones:
•
•
Entre 1 y 5 computadores.
•
Entre 6 y 10 computadores.
•
Entre 11 y 20 computadores.
•
Entre 21 y 50 computadores.
•
Entre 51 y 100 computadores.
•
Entre 100 y 500 computadores.
•
Mayor a 500 computadores.
Cuarta pregunta: En su empresa la mayoría de los equipos de
computo se pueden clasificar como.
Se busca conocer u obtener más detalles sobre el tipo de
equipos con los cuales cuenta la empresa. Es importante tener
10 http://www.encuestafacil.com/RespWeb/Cuestionarios.aspx?EID=582953&MSJ=NO#Inicio
25
en cuenta que el diseño de un clúster con equipos portatiles
puede generar inconvenientes, por ejemplo la configuración o
cambio de hardware. La cuarta pregunta ofrece dos opciones:
•
•
Equipos de Escritorio o Desktop.
•
Portátiles.
Quinta pregunta: Existen en su empresa computadores que
puedan ser clasificados como servidores (con Hardware de alto
desempeño, múltiples procesadores, alta capacidad en
memoria primaria y secundaria, etcétera)
La quinta pregunta es de falso o verdadero (ofrece las opciones
Si y No) y permite conocer si en la empresa actualmente se
usan servidores como parte de su infraestructura tecnológica.
La razón es que en el momento de ofrecer la implementación
de un clúster los servidores se podrían convertir en un punto de
comparación de rendimiento con el clúster, o también podrían
ser parte del clúster y aumentar su capacidad.
•
Sexta pregunta: ¿Cual es el nivel de rotación o reemplazo de
equipos de computo en su empresa?
La sexta pregunta presenta las siguientes opciones:
•
No existe rotación o reemplazo de equipos
•
Rotación en un período de tiempo menor a 6 meses
•
Rotación cada 6 meses aproximadamente
•
Rotación cada 12 meses (1 año) aproximadamente
•
Rotación cada 2 años aproximadamente
•
Rotación cada 3 años aproximadamente
•
Rotación cada 5 años aproximadamente
•
Rotación en un período de tiempo mayor a 5 años
•
Rotación dada según necesidades de la empresa
•
Otro (Por favor especifique)
26
Esta pregunta permite conocer con que frecuencia se
reemplazan los computadores en la empresa brindando
información sobre la clase de ordenadores que no se
encuentran activos y que se pueden encontrar en la
organización, el tiempo aproximado de uso, etcétera.
•
Séptima pregunta: De los siguientes, cuales son los motivos
que pueden provocar la rotación o reemplazo de equipos en su
empresa
La séptima pregunta permite conocer el estado aproximado de
los computadores que han sido dados de baja en las empresas.
Las opciones son las siguientes:
•
•
Bajas prestaciones de los equipos actuales
•
Daño en componentes no fundamentales
•
Daño en componentes fundamentales
•
Políticas de actualización de tecnología
•
Acuerdos con empresas de tecnología (Leasing)
•
Otro (Por favor especifique)
Octava pregunta: ¿Tienen en su empresa preferencia o
convenio con una marca especifica al momento de adquirir sus
computadores y equipos similares?
Nuevamente se presenta una pregunta que permite tener una
idea más clara de la sobre el tiempo de computadores que se
tienen en la empresa.
•
Novena pregunta: El manejo de residuos tecnológicos es
realizado por?
Uno de los mayores problemas en las empresas es el manejo
de residuos tecnológicos, teniendo en cuenta que una gran
cantidad de organizaciones no cuentan con unas políticas claras
en cuanto al manejo de dichos residuos, lo cual conlleva a
problemas no solo al departamento encargado de almacenarlos
o eliminarlos, también al medio ambiente que se ve afectado
por sustancias que son contaminantes y cuya degradación es a
muy largo plazo.
27
El proyecto que se presenta podría ofrecer una solución a dicho
problema de manejo de residuos, razón por la cual es
importante la novena pregunta. Las opciones son:
•
Por un departamento interno especializado en el manejo de
residuos tecnológicos
•
Por una entidad externa especializada en el manejo de
residuos tecnológicos
•
No existe un manejo diferente (Se procede como con los
otros tipos de residuos)
Otro (Por favor especifique)
•
•
Décima pregunta: En su empresa existen políticas de reciclaje
de residuos tecnológicos o participan en programas de donación
de equipos de computo (p.e. computadores para educar)
Esta pregunta complemente la anterior, teniendo dos opciones
para responder:
•
Si
•
No
Esta pregunta se ha agregado con el fin de conocer el manejo
que se da en las empresas a los equipos que ya no son usados
en la empresa, de tal forma que se puede identificar posibles
problemas relacionados con la forma como se procede con los
desechos tecnológicos. Tambien es posible saber si en la
empresa se pueden encontrar recursos para el diseño de un
clúster con equipos que no se usen, o si por el contrario los
computadores que pueden ser usados para este tipo de
proyecto ya son destinados a otros fines como Computadores
para Educar u otros similares.
Entre la décimo primera y décimo sexta pregunta se busca
información específica sobre los computadores dados de baja de la
empresa, su características, lo cual permite generar una idea
aproximada del tipo de equipos disponibles para el montaje de un
clúster como el que se propone en el presente proyecto.
•
Décimo primera pregunta: ¿Considera que todos o algunos
28
de los equipos dados de baja aún pueden ser utilizados, es
decir, aún encienden y cumplen funciones básicas?
Presenta dos opciones al ser una pregunta de falso y verdadero.
A partir de esta información se puede conocer si existen
recursos (ordenadores) con los que se pueda contar para el
desarrollo de un proyecto como el que se propone en este
documento.
•
Décimo segunda pregunta: En promedio, los equipos dados
de baja cuentan con procesadores de velocidades entre...
Se busca clasificar los procesadores según sus velocidades que
van en rangos de la siguiente manera:
•
•
Menor a 400 Mhz
•
Entre 400 Mhz y 799 Mhz
•
Entre 800 Mhz y 1.19 Ghz
•
Entre 1.20 Ghz y 1.50 Ghz
•
Mayores a 1.5 Ghz
Décimo tercera pregunta: En promedio, los equipos dados de
baja cuentan con memoria RAM …
Se busca clasificar la memoria principal según su capacidad,
que va en rangos de la siguiente manera:
•
Menor a 64 Mb
•
Entre 64 Mb y127 Mb
•
Entre 128 Mb y 255 Mb
•
Entre 256 Mb y 511 Mb
•
Entre 512 Mb y 1023 Mb
•
Entre 1024 Mb/1 Gb y 2048 Mb/2 Gb
•
Mayor a 2048 Mb/2 Gb
29
•
Décimo cuarta pregunta: En promedio11, los equipos dados
de baja cuentan con discos duros de capacidades …
Aunque en algunos casos el disco duro puede no ser tenido en
cuenta en los nodos de un clúster, resulta importante conocer la
capacidad de almacenamiento que tienen los computadores
para la planificación de las funciones del clúster, capacidades
para algunas tareas, etcétera. Las opciones son:
•
•
Menores a 20 Gb
•
Entre 20 Gb y 39 Gb
•
Entre 40 Gb y 79 Gb
•
Entre 80 Gb y 119 Gb
•
Entre 120 Gb y 150 Gb
•
Mayores a 150 Gb
Décimo quinta pregunta: ¿La mayoría o todos los equipos
dados de baja cuentan con tarjeta de Red?
La existencia de tarjeta de red en los equipos es importante al
momento de integrarlos a un clúster. Al ser una pregunta tipo
falso-verdadero las opciones son dos: Si o No.
•
Décimo sexta pregunta: En general, los equipos de su
empresa, tanto los activos como los dados de baja, cuentan
con sistemas operativos …
Aunque el hecho de implementar un proyecto clúster con
Kerrighed implica la necesidad de trabajar con un sistema
operativo Gnu\Linux, es importante conocer con que S.O
cuentan los equipos dados de baja actualmente para saber
entre otras cosas el nivel de conocimientos que se pueda tener
en la empresa acerca de un sistema especifico, además los
posibles cambios y adecuaciones para que interactuen en la red
los equipos que se usan normalmente y el clúster. Las opciones
son las siguientes:
11 La palabra promedio en esta pregunta no se refiere a la suma de las capacidades de los discos en los
computadores, sino a la capacidad de disco que más se repite o más se encuentra en los
ordenadores.
30
•
Microsoft (Windows Vista, XP, 98, etcétera).
•
GNU/Linux (Debian, Red Hat, etcétera).
•
BSD (Free, Open)
•
MacOS
•
Otro
2.2. RESULTADOS OBTENIDOS
Los resultados que se muestran a continuación se han obtenido de 5
empresas de la región (se encuentran en las ciudades de Pereira y
Dosquebradas), y en algunos casos son organizaciones con presencia
nacional o sedes en otras regiones del país. A partir de estos
resultados se propone crear un escenario base que se pueda usar en
el proceso de diseño del clúster.
2.2.1. Cantidad de computadores en la empresa
Las
empresas tenidas en cuenta en este proyecto hacen uso de diferentes
recursos tecnológicos para sus actividades, algunos restringidos a la
parte administrativa, mientras que otros están presentes en todas las
áreas de la organización. Los resultados arrojados son los siguientes:
Figura 3. Cantidad de computadores en la empresa
Fuente: Propia
31
Es de notar que de las 5 empresas, 3 cuentan con mas de 20
computadores, lo que representa el 60%. Si esta información se
aplicara como representación aproximada del conjunto total de las
organizaciones en la región, dicho 60% representaría la población
objetivo a la cual se le podría presentar un proyecto de esta
naturaleza, ya que el porcentaje restante presenta un número de
ordenadores bajo como para pensar en una rotación de equipos muy
baja como para contar con los recursos suficientes para la
construcción de un clúster.
2.2.2. Clasificación de los equipos
Para
esta
pregunta
se
obtuvo que todas clasifican la mayoría de sus equipos como de
escritorio, por lo tanto estos son los equipos que en la gran mayoría
de los casos se podrán encontrar para la implementación de un
clúster.
Figura 4. Clasificación de los equipos de computo
Fuente: Propia
2.2.3. Servidores
Tal y como se ve en el gráfico tan solo 3 de las
empresas tienen servidores, lo cual puede indicar que además estas 3
entidades son las únicas que han detectado la necesidad de ejecutar
servicios de alto consumo y que además hagan uso de equipos de
32
altas prestaciones
relacionada.
para
el
procesamiento
de
la
información
Estas son las además el tipo de organizaciones que identifican con
mayor facilidad necesidades relacionadas con las prestaciones que
puede ofrecer un clúster, pero también las más problemáticas para
ofrecer este tipo de proyectos si se tiene en cuenta que ya cuentan
con hardware especializado para proceso de alto consumo, estabilidad
y disponibilidad.
Figura 5. Existencia de servidores
Existen en su empresa computadores que puedan ser
clasificados como servidores (con Hardware de alto
desempeño, múltiples procesadores, alta capacidad en
memoraia prinpipal y secundaria, etcétera)
3,5
3
2,5
2
1,5
1
0,5
0
Si
No
Fuente: Propia
2.2.4. Nivel de rotación de los computadores en la empresa Es
esta una de las preguntas más importantes para el proyecto toda vez
que se puede conocer cual es la cantidad de equipos que se podrían
esperar como dados de baja según la rotación de los mismos en la
empresa. Una rotación alta podría indicar un importante cantidad de
ordenadores que podrían ser usados para el proyecto, mientras que lo
contrario podría indicar que no se contará con una cantidad
interesante de recursos para el clúster.
33
Aunque lo anterior no implica necesariamente la viabilidad del
proyecto si puede guiar la forma como un clúster con computadores
dados de bajo puede ser presentado e implementado para las
empresas, el tamaño que puede tener, etcétera.
Figura 6. Nivel de rotación y reemplazo de equipos
Fuente: Propia
De la anterior gráfica se puede encontrar que en general el proyecto
se puede enfrentar a una rotación baja toda vez que dicha acción se
realiza según las necesidades de la empresa. Esto podría llevar a que
el uso de un computador se extienda por años, los suficientes como
para que el equipo sea dado de baja cuando el ordenador ya no
brinde ningún servicio para la empresa e incluso para el clúster, ya
sea por capacidades o por daño en componentes importantes.
2.2.5. Motivos para la rotación de los equipos La
séptima
pregunta sirve como complemento de la anterior ya que se puede
determinar las razones que provocan la baja de un computador en las
empresas estudiadas.
34
El hecho que en el 40% de los casos se realice debido a bajas
prestaciones de los equipos permite pensar en que se pueden contar
con recursos apropiados para el desarrollo de un clúster. Lo anterior
sumado a que existe un 30% restante que se ve reflejado en políticas
de renovación y acuerdos con empresas de tecnología, lo cual da un
resultado total del 70% permite una visión más optimista de este
aspecto.
Figura 7. Motivos para rotación o reemplazo de equipos.
Fuente: Propia
2.2.6. Convenios o preferencias con marcas
Los
resultados
permiten identificar que que existe una marcada preferencia en estas
5 empresas estudiadas por una marca comercial específica (40%)
pero también por una combinación de diferentes fabricantes y
equipos clónicos o clónes (40%).
Encontrar equipos de marca dados de baja para la construcción de un
clúster puede generar problemas derivados de la obtención de
repuestos o partes necesarias por el computador, elevando costos, o
imposibilitando la recuperación completa del ordenador. Encontrar
equipos clónes puede por el contrario facilitar este aspecto para la
implementación de un clúster con estos ordenadores.
35
Figura 8. Preferencia por marca o convenio
Fuente: Propia
2.2.7. Manejo de Residuos tecnológicos y políticas de reciclaje
de residuos tecnológicos Estas dos preguntas
han permitido
identificar una importante falencia en las empresas observadas al
encontrar que de las 5 empresas, 4 no tienen un manejo diferente
de los desechos tecnológicos y solo 1 tiene alguna política de reciclaje
de este tipo de residuos.
Si este mismo indicador se extiende al grupo general de empresas en
la región el panorama es preocupante, especialmente si se tiene en
cuenta el alto impacto que este tipo de basura puede provocar en el
medio ambiente, sin contar la perdida de dinero para una empresa
que podría estar desechando componentes que todavía podrían ser
útiles o podrían ser solución a problemas en la estructura tecnológica
de la empresa.
36
Figura 9. Manejo de residuos tecnológicos
Fuente: Propia
Figura 10. Políticas de reciclaje y programas de donación
Fuente: Propia
2.2.8. Estado de los equipos dados de baja
Las
siguientes
respuestas permiten conocer el estado y las características promedio
de los equipos dados de baja en las empresas:
37
Figura 11. Equipos que pueden ser usados
Fuente: Propia
Figura 12. Procesadores promedio
Fuente: Propia
38
Figura 13. Capacidad de memoria RAM
Fuente: Propia
Figura 14. Capacidad en disco duro
Fuente: Propia
39
Figura 15. Existencia de tarjetas de red
Fuente: Propia
Figura 16. Sistemas operativos
Fuente: Propia
Lo anterior permite construir una idea de la forma en que se maneja
el tema de desechos tecnológicos en una empresa, en las cuales,
para los casos observados, no se tienen políticas o metodologías
claras en cuanto al tema de los desperdicios de esta naturaleza. En
40
algunos casos ni siquiera se tiene un lineamiento claro relacionado
con el cambio o baja del inventario de los ordenadores existentes,
más allá de la simple necesidad creada por el daño de una máquina o
la necesidad de actualizarla o cambiarla.
Es importante tener en cuenta, que esta observación ha permitido
tener un conocimiento sobre lo que se puede esperar en cuanto a
equipos dados de baja y construir un escenario base para el
desarrollo de un proyecto de la naturaleza que se plantea en este
documento. En general las expectativas en relación a los equipos
dados de baja son buenas, si se tiene en cuenta que 3 de las 5
empresas consideran que dichos computadores aún pueden ser
usados o cumplen con funciones básicas. De las otras dos empresas
se puede decir que , aunque consideran lo contrario, después de
tener contacto con ellas se podría considerar que dichos ordenadores
podrían ser recuperados (algunos de ellos) mediante repuestos de
bajo costo, incluso algunas partes pueden ser reemplazadas por los
de otros ordenadores (fuentes de poder, memorias, discos, etcétera).
En relación a las características la mayoría de los equipos cuentan
con procesadores con velocidades entre los 400 y los 1200 MHz,
velocidades apropiadas e incluso superiores a lo que se esperaba. Un
dato importante obtenido de visitas a las empresas ha sido identificar
el uso de los dos tipos de procesadores representativos del mercado:
AMD e Intel, especialmente los Athlon XP y los Pentium IV
respectivamente.
En cuanto a la memoria RAM son pocos los equipos que cuentan con
memorias inferiores a 64 Mbytes, la mayoría se podrían encontrar con
memorias entre 256 y 511 (en base a las charlas con las empresas se
podría determinar que casi el 90% cuentan con memoria de 256
Mbytes). En algunos casos se ha encontrado memorias DDR2 y
DDR3, tipos de memoria bastante nuevas para equipos que han sido
dados de baja. En el caso de los discos duros sucede algo similar, y es
que aún cuando la tecnología SATA puede considerarse reciente,
algunos equipos dados de baja cuentan con esta interfaz de disco
duro. En cuanto a capacidades la mayoría de los discos están entre
20 y 80 Gbytes, siendo los de 40 Gbytes los más comunes.
Para el proyecto de un clúster con equipos dados de baja constituye
un elemento primordial la red de datos, y por ende las tarjetas de red
41
constituyen un elemento importante en todos los equipos. En el caso
de las NIC12 ,2 de cada 5 equipos no cuentan con este dispositivo, lo
cual podría llevar a pensar que para implementar un proyecto de esta
naturaleza sería necesario una inversión adicional en hardware para
que cada ordenador este en capacidad de hacer parte del clúster.
Un dato interesante es el hecho que en todas las empresas se tiene
como sistema operativo más usado cualquiera de las versiones de
Microsoft Windows. En las conversaciones con las empresas se ha
identificado a Microsoft Windows XP como la versión más usada en
los ordenadores de las organizaciones, algunas apenas si han hecho
uso de la versión Vista (en cualquiera de sus subversiones)
argumentando diferentes problemas de rendimiento. En cuanto a
sistemas operativos libres el uso es poco frecuente y se encuentra en
pocos equipos destinados a tareas específicas como un servidor o un
proxy.
En el caso de servidores se encuentran dos tipos de Sistemas
Operativos:
•
Microsoft Windows
•
•
Server 2003
Gnu\Linux
•
Debian
•
Red Hat
Dichos servidores ofrecen en su gran mayoría servicios relacionados
con bases de datos (MySQL, SQL Server), y en algunos casos
servicios web (Apache generalmente). Además los servidores, en
relación al hardware, son en algunos casos equipos de escritorio de
buenas características adaptados como servidores, aunque existen
excepciones como los Power Dell 2800 o los IBM que se encontraron
en algunos casos.
La anterior información resulta altamente útil, puesto que permite
conocer que en promedio los ordenadores dados de baja que se
12 Network Interface Card o Tarjeta de Interface de Red.
42
podrán encontrar en una empresa y que podrían ser usados para la
implementación de un clúster como el que se propone en el presente
proyecto son los siguientes:
•
La mayoria de equipos estan en capacidad de encender y
cumplir con sus funciones básicas.
•
Computadores de marcas Acer, Hewllet-Packard y Clones (en la
mayoría de los casos clones).
•
Los equipos cuentan con procesadores que no superan los 1200
Mhz, memoria RAM igual o menor a 256 MB y capacidad de
disco duro de 40 GB.
•
Equipos con tarjeta de red (generalmente 10/100 mbps)
•
Los ordenadores cuentan con Sistema Operativo de la familia
Microsoft Windows
43
3. JUSTIFICACIÓN
Bajo la premisa del crecimiento de las empresas y sus necesidades de
expandirse y mostrarse de diferentes formas, sumado a los
requerimientos que suelen presentarse en cuanto a la administración
de la información se refiere, se busca proponer una solución
técnicamente viable y económicamente sostenible.
Ya no es de extrañar que en la actualidad las organizaciones
necesiten mostrar y vender sus productos a través de sitios web,
llevar a cabo las comunicaciones entre sus empleados a través de
sistemas de correo electrónico, escritorio remoto, conferencia remota,
entre otros, administrar su información mediante motores de bases
de datos, y muchas otras necesidades que día a día se presentan. Por
otro lado existe la necesidad de dar solución al problema de los
desechos tecnológicos que se encuentran en la empresa, de forma
saludable para el ambiente, la empresa y la sociedad.
Para ello se busca ofrecer una solución mediante sistemas tipo clúster
que hagan uso de esos computadores dados de baja, de tal forma
que puedan ser recuperados y puestos a trabajar para la empresa,
teniendo en cuenta que:
1 A diferencia de los clúster que existen en las universidades y
empresas de gran envergadura, lo que se busca es un sistema
de aplicación general que pueda ser adaptado a las necesidades
de una pequeña y mediana empresa y administrado de una
forma más simple, en comparación con los requerimientos
ingenieriles y científicos de organizaciones como la NASA, o de
alcances tan elevados como Google, que requieren de un
esfuerzo mayor en diferentes aspectos.
2 Hacer uso de los equipos que se encuentran comúnmente en
las empresas de la región, específicamente los equipos que ya
no están en uso, lo cual brindara las siguientes ventajas:
2.1
Se alargaría la vida útil de los computadores de la
empresa, lo cual se notaria sobre el aspecto económico de la
organización.
2.2
En cierto modo se mejoraría el manejo de los desechos
44
tecnológicos en las empresas, toda vez que estos no son
descartados de forma inmediata sino que se aprovecharían.
2.3
Se dispondría de una solución de bajo costo, teniendo
en cuenta que el tipo de dispositivos a usar.
Por otro lado resulta de suma importancia analizar cuales son las
capacidades que un clúster de este tipo puede aportar organización,
estudiar sus capacidades de crecimiento y renovación, y plantear su
viabilidad para convertirse en una solución que pueda ser realmente
implementada.
45
4. ESTADO DEL ARTE
4.1. CONCEPTOS BÁSICOS
4.1.1. Supercomputación13
Cada vez la investigación llega a
puntos más altos en búsqueda de respuestas a problemas más,
retando no solo la mente humana, sino también los recursos técnicos
disponibles. Al responder a esta necesidad nace la supercomputación,
la cual da solución a muchos problemas de varias áreas como la
matemática, física, etcétera.
La supercomputación hace referencia al conjunto de los elementos de
software y hardware utilizados para solucionar problemas complejos,
simulaciones, e incluso procesos que son muy comunes para la gente
como las predicciones meteorológicas, animación por computadora
para películas; lo anterior convierte a la supercomputación en una
herramienta que se utiliza cada vez más a menudo.
Ahora bien, anteriormente los computadores se consideraban de alta
gamma (supercomputadores) según las características de hardware y
software que tuviesen, como la velocidad de los procesadores, la
cantidad de memoria principal, capacidad de disco duro, etcétera, sin
embargo, y aunque actualmente esa consideración es valida, la
velocidad de los computadores de escritorio es lo suficientemente alta
como la de los supercomputadores de hace ya varios años, lo que ha
llevado a que la solución a problemas complejos se tenga que llevar
de un solo ordenador a varios, es decir, al cálculo distribuido o
computación paralela, teniendo como base el hecho de poner a
trabajar varias máquinas juntas en un mismo problema.
4.1.2. Computación paralela
Los computadores convencionales,
tal como los de escritorio que se usan normalmente en hogares y
empresas, procesan la información de forma secuencial, es decir,
cada instrucción es resuelta de forma individual y una a la vez por el
procesador del ordenador. Esta es la forma en que lo ha venido
haciendo desde el comienzo de los computadores, sin embargo la
velocidad actual de las unidades centrales de procesamiento permiten
una ejecución tan rápida que aparenta que varios programas se están
13 MERAYA GARCIA, Félix. La supercomputación. Asociación ACTA. 17 pág.
46
ejecutando al mismo tiempo. Esa es la razón por la cual mientras se
escribe un documento se puede escuchar música, entablar
conversaciones, etcétera, lo cual se conoce como multitarea.
En la computación paralela se busca dividir los problemas en
segmentos
más
pequeños
que
pueden
ser
ejecutados
simultáneamente por diferentes procesadores, cada uno encargado
de una sección de código, razón por la cual la computación paralela
es aplicable a muchos problemas complejos, sin embargo también se
necesita de una programación paralela, un paradigma más complejo
por las diferentes variables que se introducen, como la sincronización,
el paso de mensajes, nuevos tipos de errores, entre otros.
Los siguientes son los tipos de computación paralela que se pueden
encontrar14:
•
Paralelismo a nivel de bit.
•
Paralelismo a nivel de instrucción.
•
Paralelismo a nivel de datos.
•
Paralelismo a nivel de tareas.
4.1.3. Ley de Amdahl 15
En el año de 1967, Eugene Amdahl
estudió el comportamiento de los sistemas cuando hay cooperación
entre tareas para la resolución de un problema, trabajo o proceso.
Aun cuando se pueda creer que por ejemplo a mayor numero de
procesadores, mayor será la velocidad de ejecución de un proceso
específico, la realidad es distinta, y existen factores importantes a
tener en cuenta.
Del análisis realizado se desprende la ley de Amdahl, que indica que
la mejora en rendimiento depende de la parte secuencial del proceso
que se esta ejecutando, el cual, independiente de los elementos de
procesamiento con los cuales se cuenta, solo puede ser ejecutado por
uno solo de ellos, y cuya finalización permitirá la ejecución del resto
14 COLABORADORES DE WIKIPEDIA. Computación Paralela. http://es.wikipedia.org/wiki/Computaci
%C3%B3n_paralela
15 COLABORADORES DE WAPEDIA. Ley de Amdahl. http://wapedia.mobi/es/Amdahl
47
del trabajo.
Tomando como uno(1) el valor que tarda un procesador en la
ejecución de una tarea, si el segmento secuencial se nombra como F,
entonces la parte paralelizable del proceso es igual a :
1 – F (1)
Ahora bien, si se tienen P elementos de procesamiento, entonces la
mejora en el tiempo para la sección paralelizable es:
(1 – F) / P
Teniendo en cuenta la sección no paralelizable se tiene:
F + ((1 – F) / P)
Y finalmente la fórmula de incremento de velocidad máxima con P
elementos de procesamiento (A) es :
A=
1
1− F 
F
P
4.1.4. Ley de Gustafson16 Esta ley de la ingeniería informática
también se enfoca en el procesamiento paralelo, al igual que lo hacia
la ley de Amdahl, estableciendo además que cualquier problema
grande puede ser paralelizado de forma eficiente. A diferencia de lo
concluido por Amdahl en 1967, que entregaba una visión pesimista
sobre el procesamiento paralelo, Gustafson en 1988 entregaba una
visión totalmente opuesta, expresada como:
S  P =P−α∗ P−1
Donde P es el número de procesadores, S el speedup y α la parte no
paralelizable del proceso.
16 COLABORADORES DE WAPEDIA. Ley de Gustafson. http://wapedia.mobi/es/Ley_de_Gustafson
48
4.1.5. Speedup 17
En la computación paralela el speedup
expresa que tan rápido es un algoritmo paralelo en comparación con
un algoritmo secuencial.
Dado p como el numero de procesadores, T1 como el tiempo de
ejecución del algoritmo secuencial y Tp el tiempo de ejecución del
algoritmo paralelo con p procesadores, entonces el SpeedUp se
define como :
S  p=
T1
Tp
A partir del concepto de SpeedUp se desprende el de eficiencia, una
medida de rendimiento, entre 0 y 1, que expresa que tan bien son
usados los procesadores para la solución de un problema comparado
con el esfuerzo usado en comunicación y sincronización
Ep=
Sp T1
=
p pTp
4.1.6. Sistemas distribuidos18 Los sistemas distribuidos hacen
parte de la supercomputación, trabajando en base al concepto de
dividir los problemas en porciones menores. Este tipo de sistemas se
constituyen por un grupo de nodos o computadores, comunicados
mediante una red y que además cuentan con el software adecuado,
de tal forma que todos se concentran en uno o varios programas de
considerable complejidad, alto consumo de recursos o necesidades
especificas, como si fueran una sola máquina.
Al contar actualmente con equipos personales de mayores
capacidades técnicas, las redes de alta velocidad y un marcado
aceleramiento en el desarrollo de software, se han dirigido muchos
esfuerzos a la construcción de sistemas distribuidos en reemplazo de
supercomputadores centralizados. El tamaño de este tipo de sistemas
es variable contando con pocos computadores, tres o cuatro en casos
simples, hasta miles de unidades como el caso de google.
17 COLABORADORES DE WIKIPEDIA. Speedup. http://en.wikipedia.org/wiki/Speedup
18 ROJO, Oscar. Introducción a los sistemas distribuidos. http://www.augcyl.org/?q=glol-intro-sistemasdistribuidos
COLABORADORES DE WIKIPEDIA. Computación Distribuida.http://es.wikipedia.org/wiki/Grid
49
Los sistemas distribuidos, para que sean considerados como tales y
además presenten unas condiciones mínimas adecuadas, deben tener
en cuenta las siguientes características:
• Compartir recursos: Al igual que los sistemas multiusuarios,
el concepto de compartir recursos se enfoca a la capacidad de
ofrecer el acceso a diferentes periféricos, software y datos, que
aunque se encuentren en ubicaciones diferentes, se verán de
forma local, como si del computador del usuario se tratara. Para
lograrlo se hace uso de gestores
•
Apertura: Un sistema abierto significa que puede ser
extendido, puede crecer al añadir hardware, o incluso software,
con interfaces públicas, mecanismos uniformes de comunicación
y sistemas heterogéneos que pueden interactuar entre si.
•
Concurrencia: El hecho de tener N procesadores lleva a
que se puedan ejecutar hasta N procesos de forma paralela, o
de forma concurrente (múltiples procesos al mismo tiempo), los
cuales a su vez pueden interactuar entre sí.
La concurrencia en sistemas distribuidos aplica también a los
recursos, en cuyo caso estos pueden ser usados de forma
simultanea por varios usuarios o procesos.
•
Escalabilidad:
Cuando se habla de escalar un sistema
se esta expresando su capacidad de crecimiento, la capacidad
de agregar mas estaciones o procesadores al conjunto, los
cuales también entrarán a compartir los recursos (los existentes
y los nuevos que van a aportar). Es necesario que el sistema no
cambie, al menos significativamente, cuando se este se escala,
y que siga siendo eficiente y útil sin importar el tamaño de la
red.
•
Tolerancia a fallos:
En un sistema es necesaria la
tolerancia a fallos, ya sea mediante la redundancia de hardware
o la recuperación del software. En un sistema distribuido implica
la disponibilidad de los servicios ofrecidos, de tal forma que el
fallo de una máquina solo afecte los procesos que eran llevados
por ella y no todo el sistema completo, pudiendo trasladarse
dichos procesos hacia otro nodo para ser completados.
•
Transparencia: Uno de los puntos más importantes en los
50
sistemas distribuidos es que el conjunto debe ser visto como
una sola máquina por el usuario final, independiente de la
cantidad de nodos que existan. Lo anterior aplica para los
recursos, es decir, si un usuario se encuentra en el ordenador X
del conjunto, y el archivo que necesita se encuentra en el
ordenador Y, el gestor encargado debe hacer el proceso
transparente de modo que para dicho usuario parezca que el
archivo realmente se encuentra en la máquina X.
4.2. CLÚSTER
Un clúster se puede definir, según lo expresado por Milone, Azar y
Rufiner en su laboratorio de cibérnetica “Desarrollo de una
supercomputadora basada en un clúster de PC's”19, como la
agrupación de ordenadores (generalmente computadoras personales)
conectadas mediante una red y trabajando en un problema de
tamaño considerable que ha sido dividido para ser procesado de
forma paralela (También pueden ser usados para aplicaciones
cotidianas pero que consumen altos recursos de máquina, un enfoque
que hace que varias máquinas se vean como una sola, no solo para el
usuario sino también para los programas).
No obstante no es una definición que puede ser considerada lo
bastante concreta, e incluso, se pueden encontrar otras más.
Catalán20 da una definición más corta, simple y general, que define
clúster como “Un conjunto de máquinas unidas por una red de
comunicación trabajando por un servicio en conjunto”, teniendo en
cuenta que el término máquina hace relación unicamente a los
computadores personales. Aunque esta es la definición que ha sido
aceptada para el desarrollo del presente proyecto, el mismo autor
entrega otras definiciones en comparación a otros sistemas, como la
mención que un clúster es “una variación de bajo precio de un
multiprocesador masivamente paralelo (miles de procesadores,
memoria distribuida, red de baja latencia), con las siguientes
diferencias: cada nodo es un máquina, quizás sin algo de hardware
(monitor, teclado, mouse, etc.)”21. Es importante mencionar que en
19 MILONE Diego H, AZAR Adrián A, RUFINER Leonardo. Desarrollo de una supercomputadora basada
en clúster de PC's. 2001,.pág. 7.
20 CATALÁN,MIQUEL, citado por CÁCERES VILCHES, Juan Esteban. MEDINA AMADOR, Cristian Alejandro.
Implementación de un servidor web apache sobre un clúster Linux. Seminario de Titulo Universidad
Católica del Maule. 2007. pág. 14.
21 Ibid, pág. 15
51
cualquiera de las definiciones dadas se tiene un elemento
fundamental, el computador personal que cumple el papel de nodo
dentro de este conjunto de máquinas (podría ser que un equipo de
prestaciones mayores también actuará como nodo).
Ahora bien, para que un conjunto de máquinas se pueda considerar
que un clúster debe cumplir una serie de condiciones, mencionadas
por Cacerés y Medina en su trabajo “Implementación de un servidor
web apache sobre un clúster Linux”22:
•
Un clúster debe estar conformado por mínimo por dos nodos o
computadores.
•
Los nodos no pueden estar aislados, deben estar comunicados
de alguna forma.
•
Para un clúster se necesita de un software de control
especializado, el cual además determinará el tipo de clúster que
se desarrolla.
4.2.1. Tipos de clúster
Cuando se diseña un clúster, se hace
con el fin de construir un sistema equivalente a un supercomputador
a través de la unión de diferentes ordenadores de condiciones mas
accesibles para las instituciones, como computadores personales o
servidores. De esta forma se pueden tener procesos de complejidad
importante o aplicaciones con características especiales que se
necesitan ejecutar de forma paralela o con condiciones que permitan
su mejor desempeño o mejor disponibilidad para los usuarios finales;
un clúster es diseñado entonces para solucionar alguno de los
siguientes problemas23:
•
Mejorar el rendimiento de un sistema: La ejecución de
programas en paralelo o la solución de un cuello de botella en el
uso de los discos duros o la red permitirán mejorar el
rendimiento de diferentes aplicaciones, ya sean bases de datos
o servidores de archivos.
•
Abaratamiento del coste:
Mejorar las capacidades de
22 CÁCERES VILCHES, Juan Esteban. MEDINA AMADOR, Cristian Alejandro. Implementación de un
servidor web apache sobre un clúster Linux. Seminario de Titulo Universidad Católica del Maule.
2007. pág. 16.
23 Ibid
52
un supercomputador, o incluso de un servidor, significa una
inversión considerable, contrario al objetivo de un servidor, que
busca una diferencia significativa cuando se busca mejorar el
rendimiento del sistema.
•
Distribución de factores de riesgo del sistema: El hecho
que las aplicaciones no se muevan en un solo computador sino
en todo o casi todo el conjunto que conforma el clúster, permite
tener un nivel de confiabilidad mayor, dado que la caída de un
solo ordenador no lleva a la caída de todo el sistema.
•
Escalabilidad:
Hacer crecer el sistema es importante,
por que además permite mejorar su rendimiento (en algunos
casos, no en todos, por lo que siempre es importante analizar
las características de los problemas que se desean resolver con
un clúster). En un clúster este punto puede ser llevado a cabo
agregando otro ordenador al conjunto, o más capacidad de
disco, y teniendo en cuenta que entre más escalable sea el
sistema, menor sera el costo para mejorar el rendimiento.
Con base en lo anterior, los clúster se dividen en tres tipos24: clúster
de alto rendimiento, clúster de alta disponibilidad y clúster de alta
confiabilidad.
4.2.1.1. Clúster de alto rendimiento (HP High Performance) En
este caso el conjunto de máquinas trabajan como un solo ordenador
para obtener mayor rendimiento y ejecutar tareas de gran tamaño.
Lo que se busca es utilizar al máximo el tiempo de proceso
disponible, sin embargo, para que cualquier aplicación que requiera
este nivel de recursos pueda ser implementada exitosamente es
necesario que el algoritmo sea paralelizable.
A nivel de sistema existen clúster de alto rendimiento como Mosix y
openMosix, proyectos que actúan sobre el sistema completo
presentando a las aplicaciones todo el conjunto como de si un solo
ordenador se tratara y encargándose del movimiento de los procesos
entre los nodos, las comunicaciones, etcétera. A nivel de aplicación
existen las librerías MPI, PVM, el clúster Beowulf y otros más.
24 Ibid
53
Algunos de los problemas que pueden ser solucionados con este tipo
de clúster son :
•
Cálculos matemáticos.
•
Renderizaciones de gráficos.
•
Compilación de programas.
•
Compresión de datos.
•
Descifrado de códigos.
•
Rendimiento del sistema operativo.
El objetivo de este tipo de clúster es aprovechar al máximo los nodos
que lo componen, y la de conseguir high performance migrando
procesos, dividiendo las aplicaciones grandes
en procesos, y
ejecutando esos procesos en diferentes máquinas. Para lo anterior se
pueden usar las siguientes técnicas:
•
Asignación estática En este caso el administrador se
encargará de ubicar la aplicación en el nodo donde se
ejecutará, y el cual además sera su ubicación definitiva. La
política de localización juega un papel importante en esta
técnica, evitando infrautilizar los recursos disponibles debido a
una mala decisión.
•
Asignación dinámica
Más allá de la política de
localización existe otra, la de migración, que juega aún un papel
más importante en esta técnica, debido a que en este caso el
mismo sistema se encarga de mover los procesos de un nodo a
otro de forma dinámica, llegando incluso a pasar por un tiempo
de estabilización a partir del comienzo de la ejecución de las
aplicaciones, en el cual los procesos se desplazan hasta llegar a
un punto en el cual se ubican de forma casi definitiva en alguno
de los nodos del clúster. Si en algún momento el sistema pierde
el balance, éste se encarga de volver a mover los procesos
hasta encontrar nuevamente la configuración óptima.
Debido a que el balanceo constituye un elemento importante en un
54
clúster de alto rendimiento, se hace uso de técnicas matemáticas y
estadísticas que permitan medir y sacar el máximo provecho de los
recursos disponibles. Sin embargo hay que tener en cuenta que
aunque la situación ideal seria realizar un balanceo en base a todo el
sistema, la realidad muestra que esto es prácticamente imposible de
llevar a cabo y se suelen tener en cuenta solo algunas de las
variables (procesador, disco duro o red, entre otras) según el caso
sobre el cual se esta realizando la implementación.
Los nodos son los elementos que componen el clúster, los cuales
pueden ser configurados en alguno de los siguientes modos:
•
Modo Dedicado
En el modo dedicado los nodos
funcionan exclusivamente en los trabajos que se llevan en el
sistema, y además existe un solo trabajo en el clúster en un
tiempo dado, de tal forma que todos los recursos están dirigidos
a una sola tarea, la cual no liberará el sistema hasta no haber
terminado completamente (aún cuando un alto porcentaje de
los nodos ya hayan terminado con los procesos asignados y
estén libres).
•
Modo de división en el espacio
Los
nodos
se
agrupan y diferentes trabajos se pueden ejecutar en el clúster,
cada uno a su vez se procesa en alguno de los grupos
conformados, teniendo en cuenta que cada grupo trabaja de
forma exclusiva para la tarea asignada (y cada nodo del grupo
solo tiene un proceso asignado, al igual que el modo dedicado)
mientras que los recursos de interconexión y entrada/salida se
comparten por todo el conjunto.
En este modo se debe tener cuidado con que las divisiones sean
adecuadas, de tal modo que no sean tan pequeñas que no
exista un grupo de nodos suficiente para una tarea, ni tan
grande como para que una tarea solo use una mínima cantidad
de las máquinas disponibles en la división.
•
Modo de división en el tiempo
Es el modo más
común, en el cual varios procesos se pueden estar ejecutando
en un nodo y se controla mediante el equilibrio de carga.
55
4.2.1.2. Clúster de alta disponibilidad (HA High Availability)
También llamado tolerante a fallos, busca que muchas maquinas
hagan el trabajo de una sola (o algunas), trabajando para cosas
distintas (servidores web, servidores de correo, de archivos, etcétera)
y cuyo objetivo principal es evitar problemas de caídas de los
servicios que se ejecutan, de tal forma que si existe el fallo de un
recurso no pase nada en el recurso.
Según el recurso que se busca sea tolerante, el clúster adquiere el
nombre de sistema tolerante a fallo de disco duro, sistema tolerante a
fallo de procesador, tolerante a fallo de red, etcétera.
En este tipo de clúster se puede dar solución a problemas como :
•
Tolerancia a fallos.
•
Sistemas de información redundante.
•
Balanceo de cargas entre servidores.
•
Balanceo de conexiones entre servidores.
Para contar con un clúster de alta disponibilidad se pueden usar
diferentes técnicas, como son:
•
Técnicas basadas en redundancia Cuando un dispositivo falla
se puede tener un segundo con los datos o aplicaciones, a
modo de backup, de tal forma que el primero se repara
mientras el segundo lo reemplaza
durante el tiempo que se
tarde el arreglo. Se puede tener redundancia de los siguientes
tipos:
•
Redundancia Aislada En este caso existe un dispositivo
principal y un dispositivo redundante, básicamente una
“copia” del primero.
•
N-Redundancia Existe un dispositivo principal y N
dispositivos de respaldo, listo para reemplazarlo en caso de
fallo.
Las técnicas de redundancia se pueden aplicar sobre
diferentes dispositivos, ya sean estos discos duros,
56
procesadores, puntos de red, etcétera, lo cual brinda
segundas opciones o caminos alternativos a un recurso
específico.
•
•
Para esta técnica de redundancia existe además una
segunda clasificación según la configuración de software y
hardware que se haya dispuesto para el clúster, teniendo los
siguientes tipos:
•
Hot Standby
Es la más común en la cual existe un nodo
principal y un nodo backup, y este último solo actuá
activamente cuando tiene que reemplazar al nodo maestro
por falla.
•
Toma de cargos mutua
Es similar a la clasificación
anterior, sin embargo el nodo backup puede trabajar en
otros procesos mientras no actúa como reemplazo del nodo
maestro. Cuando caiga el nodo principal, el secundario
puede actuar de dos maneras, ya sea ejecutando tanto sus
procesos como los que tenia como backup, presentando una
baja en el rendimiento, o posterga sus procesos y ejecuta
unicamente los que tenia el nodo primario.
•
Tolerancia a fallos
Actúa como N-Redundancia, teniendo
varios nodos de apoyo, de tal forma que si N-1 equipos falla
queda uno que permita seguir brindando el servicio. Además
se puede combinar con la toma de cargos mutua para
aprovechar el tiempo disponible de los nodos secundarios en
otras tareas.
Técnicas basadas en reparación
Se busca que cuando se
presenté un fallo, el tiempo de recuperación sea el mínimo
posible, en base a programas o scripts que se ponen en acción
inmediatamente se detecta un problema y sin necesidad de que
este presente una persona, un técnico, para proceder con una
solución. Las acciones que se pueden realizar se dividen en
dos:
•
Diagnóstico
Se busca localizar el error y las causas del
mismo mediante técnicas como el piggybacking.
•
Reparación
En la medida en que el sistema lo permita,
a través de sistemas expertos o de otra naturaleza, se
57
recupera del fallo mediante la restauración a partir de una
copia del sistema.
Un sistema que tenga capacidad de guardar en un punto de
restauración todos los aspectos presentes en el momento de fallo o
caída, tanto activos como inactivos, es prácticamente inviable debido
a los altos recursos necesarios para llevarlo a cabo, y se convertiría
en lo que se conoce como un clúster de alta confiabilidad.
4.2.1.3. Clúster de alta confiabilidad (HR High Reliability) Este
último tipo de clúster busca aportar un nivel determinado de
confiabilidad al sistema, de tal modo que este último se comporte de
una manera determinada, como un sistema en tiempo real, por
ejemplo. Son difíciles de implementar, usados en entornos de tipo
empresarial, y relacionados con hardware especializado, ya que a
diferencias de los clúster de alta disponibilidad, no basta con que el
sistema no caiga, sino que además el punto de restauración deber ser
lo suficientemente completo como para que el estado de las
aplicaciones se mantengan igual que al momento de la baja del
servicio.
Según lo anterior, un sistema de alto rendimiento hará que un
servicio sea lo más rápido posible, lo cual exige además una
investigación previa de ese proceso que se desea “acelerar” para
conocer sus características e identificar las razones por las cuales no
es tan rápido como se desea y saber sobre que recursos se
procederá. En contraste un sistema de alta disponibilidad se
concentrará en que el servicio nunca pare, sin tener en cuenta la
rapidez del mismo.
De todas maneras, también es posible combinar los diferentes tipos o
conceptos de clúster, según el caso o tipo de aplicación sobre la que
se esta actuando.
4.3. SOFTWARE PARA CLÚSTER
4.3.1. Sistema operativo El sistema operativo constituye uno de
los elementos más importantes al momento de tratar sobre
soluciones basados en elementos computacionales, siendo este el
58
elemento que permite administrar y usar los recursos disponibles, ya
sea un computador, un servidor, etcétera, permitiendo además contar
con una serie de cualidades, servicios ofrecidos, etcétera.
Es por ello que se encuentran diferentes versiones de sistemas
operativos, algunos de los cuales pueden ser usados para el
desarrollo de un clúster y que tienen unas características específicas,
de tal forma que se optimiza el consumo de recursos de una forma
muy diferente a como se hace en un equipo de escritorio, por
ejemplo, además de ser sistemas multiusuario y multiproceso,
características necesarias para el trabajo con clúster.
Aunque en la práctica, sistemas operativos libres como Gnu\Linux son
considerados como los más apropiados para el diseño de clúster
debido a sus características, es importante conocer las otras
alternativas existentes en el mercado, razón por la cual a
continuación se complementa este capítulo con información general
sobre este tema.
4.3.1.1. Sistemas operativos propietarios
Los
sistemas
operativos propietarios cobijan a un grupo de software bajo una serie
de licencias en las cuales el fabricante del aplicativo o el sistema
operativo es, legalmente, el dueño de dicho producto y el usuario
adquiere una autorización para su uso. Dicho tipo de licencia
entonces define, según las disposiciones del propietario del software,
la forma en que puede ser usado y las condiciones para hacerlo,
distribuirlo y redistribuirlo, copiarlo, entre otras cosas. Generalmente
este tipo de licencia no permite la modificación del código y en
muchos casos esta asociada al pago de una suma de dinero
dependiendo de la cantidad de equipos sobre los cuales se ejecutara
el programa o los fines con que se haga. Sin embargo, este tipo de
sistemas operativos (y de aplicativos también) son los más usados en
el mundo debido a su facilidad de uso, el soporte que ofrecen las
empresas que los fabrican y/o distribuyen, incluso a que son los más
enseñados en diferenes centros de eduación.
Dado lo anterior, la construcción de un clúster basado en sistemas
operativos propietarios puede presentar las siguientes situaciones:
•
Tiempo de aprendizaje e interacción menor debido a que para
59
la mayoria de la gente es un S.O. muy familiar, muy usado en
su entorno.
•
Soporte empresarial para su implementación y administración.
•
La administración, incluso la instalación, del sistema operativo y
las aplicaciones suelen ser bastante intuitivas y simples.
En contra tiene que casi el 100%25 de los programas (Middleware
como se verá más adelante) que permiten convertir un conjunto de
computadores en un clúster han sido construidos para ser
implementados sobres sistemas operativos con licencias de código
abierto, además, los costos pueden ser altos teniendo en cuenta que
se debe contar con la licencia para la instalación del sistema
operativo propietario en un número determinado de ordenadores.
•
Sistemas operativos de la familia Microsoft Microsoft es la
empresa líder en sistemas operativos, especialmente en
computadores personales, dado que un alto porcentaje (90% o
más) usa alguna de sus versiones del S.O. Windows. Hace uso
de la licencia tipo EULA (End User License Agreement o
Contrato de Licencia para Usuario Final) en la cual el fabricante
del software define los derechos su producto en relación al uso,
distribución y redistribución, copia, modificación, entre otras.
En el caso de los sistemas operativos de la familia Microsoft
este tipo de licencia no permite la modificación del programa,
tampoco la copia y distribución en formas diferentes a las
específicadas por ellos (inclumplirlo se considera como
piratería) y específica un numero concreto de computadores
sobre los cuales se puede instalar el S.O, dependiendo de las
condiciones en que se adquiera el software y teniendo en
cuenta el uso del producto solo esta permitido para el
comprador (el cual no es dueño del software, solamente de la
licencia para usarlo).
Microsoft Corporation nació en 1975 por Bill Gates y Paul Allen,
dedicada a la producción de software y equipos electrónicos, y
destacada por el sistema operativo Microsoft Windows y la
25 Al momento de realizar el presente proyecto no se conoce de una alternativa propietaria de
middleware para la implementación de un clúster; las que se mencionan aún no tienen el desarrollo
suficiente o estan en desarrollo.
60
suite ofimática Microsoft Office. Su dominio en el mercado inició
con el sistema operativo MS-DOS, y ha continuado hasta contar
con su versión actual de Windows Vista, aunque ya se esta
probando Windows 7, el nuevo S.O, que ya se puede probar
descargándolo desde el sitio web de la empresa.
•
Windows NT: Familia de Sistemas operativos de Microsoft
que incluía versiones para servidores y que ha sido la base para
otros productos de la empresa, incluido Windows 7. Fue
diseñado inicialmente para ser un sistema multiusuario, basado
en lenguaje de alto nivel, independiente del procesador,
comparable a Unix. Sus características son las siguientes:
•
Tienen multitarea apropiativa, es decir que los procesos
no tienen el control del procesador de forma exclusiva; en
cambio el sistema operativa lo gestiona, asignando a un
proceso un intervalo de tiempo en el procesador, al final
del cual le quita el control y lo cede a otro proceso que lo
necesita.
•
Diseñados para trabajar con equipos de un solo
procesador u ordenadores de multiprocesamiento
simétrico (varios microprocesadores compartiendo el
acceso a la memoria en igualdad de condiciones.
Adicionalmente en el multiproceso simétrico varias CPU
pueden trabajar en el mismo proceso ejecutandose en
paralelo).
•
Soporte para 32 bits y 64 bits a partir de la versión
Windows XP.
•
Núcleo híbrido, es decir usa un
estructurado como un micro núcleo.
•
Basado en dos capas:
núcleo
monolítico
•
Modo usuario: Limitado al uso de aplicaciones y
recursos a los cuales tiene acceso un usuario.
•
Modo Núcleo: Acceso total a los recursos.
En la familia Windows NT, las siguientes son las versiones aptas
61
para el uso en servidores
•
•
Windows NT 3.1: lanzado en julio de 1993.
•
Windows NT 3.5: lanzado en septiembre de 1994.
•
Windows NT 3.51: Lanzado en mayo de 1995.
•
Windows NT 4.0: Lanzado en julio de 1996.
•
Windows 2000: Lanzado en febrero del 2000.
•
Windows Server 2003 (NT 5.2): liberada en abril de 2003.
•
Windows Server 2008 (NT 6.0): liberada en febrero de
2008.
Sistema Operativo MacOS Macintosh Operating System es un
sistema operativo desarrollado por Apple para los ordenadores
Macintosh desarrollados por esta misma empresa. Apple es
una empresa nacida en Estados Unidos fundada en 1976 de la
mano de Steve Jobs y Stephen Wozniak, que se ha destacado
no solo por su sistema operativo, enfocado desde sus inicios en
una interacción simple y agradable entre el usuario y la
máquina, sino también por sus computadores, reproductores de
audio, y en los últimos meses por su celular Iphone.
En la rama de sistemas operativos para servidores esta
representado por el MacOS X Server, conocida también como
Leopard. Es un sistema operativo basado en BSD, del cual
hereda muchas de sus características como la seguridad,
sistemas de archivos, etcétera, lo cual lo convierte en una
interesante opción para máquinas que ofrecen servicios de
diferente naturaleza. Consta con una variedad de prestaciones
como iCal Server, Wiki Server, Spotlight Server, iChat Server,
Servicios de correo, alojamiento web, entre otros.
•
Sistema Operativo Unix
Sistema operativo desarrollado en
1969 por los laboratorios Bell de AT&T y que aún es
considerado como el mejor a nivel de servidores. Ha sido la
62
fuente de inspiración para el desarrollo de otros sistemas
operativos, contando con “descendientes” como las diferentes
distribuciones de GNU/Linux y BSD.
Unix se caracteriza por ser un sistema operativo portable,
multitarea y multiusuario, condiciones que heredan aquellos
S.O. basados en él. Además sus excelentes prestaciones en
seguridad y la estabilidad que presenta le han hecho ganar
importante en el mundo informático.
Del proyecto UNIX original o puro (la familia AT&T cuyos
miembros más representativos son Unix System III y Unix
System V) se han desprendido un conjunto de familias:
•
Familia BSD26.
•
Familia AIX: Familia de sistemas operativos propiedad de
IBM, surgida del licenciamiento de Unix a esta empresa.
Es usado en los servidores IBM con procesadores IBM
Power de 32 y 64 bits, presentando además las siguientes
características:
•
•
Soporte máximo de 64 procesadores.
•
2 TBytes en memoria principal.
•
16 TBytes
soportados.
•
16 TBytes de tamaño máximo de archivos.
•
La última versión estable de esta familia es 5.3,
liberada en agosto de 2004, con
soporte para las
arquitecturas PowerPC y Power, interfaz gráfica
(CDE, KDE y
Gnome) e interfaz
basada en
texto (SMIT).
Familia Xenix:
de
sistema
de
archivos
máximo
Es una familia de sistemas operativos
26 Para más información sobre esta familia puede revisar el capítulo 3, subcapítulo 3.3.2.2. Sistemas
operativos BSD
63
•
desarrollado por Microsoft en base a Unix pero que no
tuvo mayor éxito y ahora es considerada como obsoleta.
Familia GNU y Familia Unix27.
Se destacan de esta familia de sistemas operativos los
siguientes:
•
Sistema Operativo Solaris
•
Unix System V
•
Sistema Operativo HP-UX
4.3.1.2. Sistemas operativos libres Los sistemas operativos libre
tiene un rica historia en cuanto a su desarrollo y evolución y su
crecimiento ha sido notable en los últimos años; si bien es cierto que
su uso en equipos de escritorio aún es mínimo en un mundo
informático dominado por Microsoft, en el caso de servidores ha sido
diferente y es donde se ha notado la aceptación de este tipo de S.O.
A diferencia de los sistemas operativos propietarios, los sistemas
operativos libres hacen uso de licencias de código abierto, ya sean
permisivas o robustas:
•
Licencias de código abierto permisivas: El software no tiene
obligación de protección de ningún tipo (BSD License, PHP
License). Entre otras cosas, este tipo de licencia permite el uso
del código fuente en software no libre, además de redistribuirlo
como no libre.
•
Licencias de código abierto robustas: En este clase de licencia
se imponen algunas restricciones, dependiendo de la siguiente
clasificación:
•
Robustas fuertes: productos derivados del sotware original o
modificaciones de éste último deben mantener los terminos
y condiciones de la licencia original (un producto derivado de
un aplicativo con licencia de código abierto robusto no puede
pasar a un tipo propietario, como EULA). Ejemplos de este
27 Para más información sobre esta familia puede revisar el capítulo 3, subcapítulo 3.3.2.1. Sistemas
operativos GNU/Linux
64
tipo de licencias son la GNU General Public License (GNU
GPL), OpenSSL, entre otras.
•
•
Robustas débiles: En este caso, aunque las modificaciones
hechas al software deben mantener las condiciones de la
licencia original, los productos derivados pueden si pueden
estar licenciados bajo condiciones diferentes. Ejemplos de
este caso son Mozilla Public License, Apple Source License,
etcétera.
Sistemas operativos GNU\Linux
GNU\Linux28 es uno de
los sistemas operativos más conocidos dentro del rango del
software libre, compuesto por una gran cantidad de
distribuciones y el apoyo de un considerable número de
usuarios y desarrolladores en todo el mundo.
La historia de este sistema operativo inicia con la idea de
Richard Stallman y la FSF29 de crear un sistema operativo libre
tipo UNIX , un núcleo nombrado como HURD, el cual hasta la
fecha aún se encuentra en desarrollo y no es considerado como
un sistema lo suficientemente estable para su producción. Sin
embargo para el año 1990 esta fundación, aún cuando no
contaba con el núcleo del sistema operativo, ya tenia listas
varias aplicaciones que podían trabajar en un S.O. similar a
Unix, y de hecho muchas de ellas se basaban en el sistema
original, tanto que sus nombres eran iguales, lo mismo que la
forma en que funcionaban.
Para el año 1991 un estudiante de la Universidad de Helsinki,
Linus Torvalds, comenzó a desarrollar un kernel libre similar a
Unix para máquinas 386 como herramientas de la FSF. Este
desarrollo recibió el apoyo de personas en todo el mundo lo que
permitió su crecimiento y evolución, además de convertirse en
la opción perfecta para llenar el vacío que dejaba el núcleo
HURD de la FSF, tomar su lugar y conformar un sistema
operativo completo con el nombre constituido por las
28 Aunque comúnmente se refieran a ellos como Linux, el nombre real y completo es GNU/Linux,
puesto que ambos, GNU y Linux son proyectos diferentes que se complementan en este sistema
operativo.
29 Free Software Foundation
65
aplicaciones libres GNU30 y el núcleo desarrollado por Torvalds
denominado Linux.
A partir de ese punto se han generado múltiples versiones de
GNU\Linux, con diferentes aplicaciones y características,
dirigidas a diferentes áreas como la ciencia, el desarrollo de
software, aplicación de servidores, música, video, etcétera.
Algunas de las características más importantes de este sistema
operativo31:
•
Uso del estándar POSIX32 .
•
Licencia libre. No se debe confundir con el concepto de
gratuidad del software, puesto que este tipo de licencia no
implica la ausencia de algún costo por su adquisición.
•
Uso de núcleo similar al implementado en sistemas UNIX.
•
Acceso al código fuente y posibilidades de realizar
modificaciones siguiendo lo establecido por la General
Public License o GPL, la cual cubre a los sistemas
operativos GNU\Linux.
•
Multitarea, multiusuario y multiplataforma.
•
Protección de memoria entre procesos.
•
Carga de ejecutables por demanda.
•
Uso de memoria virtual mediante paginación a disco.
•
Librerías estáticas y de carga dinámica.
•
Uso de pseudo-terminales y consolas virtuales múltiples.
•
Soporte para diversos sistemas de archivos.
30 GNU es el acrónimo recursivo de GNU's Not Unix, o GNU no es Unix.
31 LAURENTE SAENZ, Simon. Aprenda Linux. Comandos Básicos – Características gnu/linux. Simon .
http://www.wikilearning.com/tutorial/aprenda_linux_comandos_basicoscaracteristicas_gnu_linux/7809-3
32 Portable Operating System Interface .
66
•
Arquitectura monolítica híbrida y uso de módulos para
carga y descarga de dispositivos y extensiones del S.O.
Algunas de las distribuciones más conocidas de esta familia de
sistemas operativos son:
•
•
Debian Gnu\Linux
•
Red Hat Linux, y sus variantes como CentOS y Fedora.
•
Suse
•
Mandriva
Sistemas operativos BSD
El
sistema
operativo
BSD(Berkeley Software Distribution) es un S.O derivado de
Unix cuyos orígenes se remontan a la época en la cual los
dueños de Unix otorgaron a varias universidades licencias sobre
su sistema, además del código fuente con el fin de que fuera
adaptado a sus necesidades.
Para cuando estas licencias fueran retiradas la Universidad de
California en Berkeley ya había hecho muchos aportes al
sistema operativo, razón por la cual impulso la creación de un
nuevo S.O, el cual sería distribuido con fines académicos,
aunque con el paso del tiempo las restricciones sobre su
distribución,
copia
o
modificación
han
cambiado
significativamente. BSD se distribuye con la licencia que lleva el
mismo nombre, la cual difiera en algunas cosas con la licencia
GPL que rige las distribuciones GNU/Linux , especialmente en
permitir el uso de código no libre en el software.
Varias son las distribuciones que se han generado a partir de
BSD, entre las más conocidas se encuentran OpenBSD, NetBSD
y FreeBSD como versiones libres y SunOS y MacOS como
versiones comerciales.
4.3.2.
Middleware
Como
se
67
mencionó
anteriormente,
el
middleware es la capa intermedia entre el sistema operativo y las
aplicaciones y el usuario. Entre las funciones que posee están las
siguientes:
•
Proveer una única interfaz de acceso al sistema, conocida como
SSI o “ Single System Image”.
•
Optimizar el sistema.
•
Proveer herramientas de mantenimiento de procesos pesados.
•
Detección de nuevas máquinas y su respectiva inclusión en el
clúster (escalabilidad)
En un clúster el middleware se puede tratar de dos formas, a nivel del
sistema operativo, o de la aplicación, en el primer caso se actúa con
el kernel, lo cual hace todo el proceso transparente para las
aplicaciones en el sistema, en el segundo caso se trata de librerías
que deben ser implementadas en cada programa que se va a ejecutar
en el clúster.
Es importante tener en cuenta que el hecho que se usen librerías, es
decir, que se trabaje a nivel de aplicación y no del sistema operativo,
no significa que no se deban configurar los equipos, pues igual sigue
siendo un clúster, el cual necesita de unos parámetros y
configuraciones específicas.
4.3.2.1. MPI
La librería MPI (Interface de Paso de Mensajes o
Message Passing Interface por sus siglas en inglés) constituye un
conjunto de funciones y macros que pueden ser implementados en
lenguaje C y Fortran con el fin de desarrollar programas en sistemas
con múltiples procesadores, como los clúster. Para lograrlo también
define una sintaxis para el paso de mensajes necesario para la
ejecución de procesos en un sistema distribuido.
Existen varias implementaciones de MPI, sin embargo las más
conocidas y usadas son:
•
LAM/MPI
Se utiliza un demonio activo en cada nodo y
proporciona herramientas de monitorización. Actualmente se
encuentra en la versión 7.1.3, que puede ser descargada desde
68
el sitio oficial33. Este proyecto de código libre es una
implementación del MPI estándar, y su investigación, desarrollo
y mantenimiento se encuentra a cargo del Open Lab Systems
en la Universidad de Indiana.
LAM/MPI soporta todo el estándar de MPI1 y gran parte del
MPI2, además constituye todo un entorno con diferentes
componentes o módulos.
•
OpenMPI Implementación de código libre, descendiente
directo de LAM/MPI que empieza a ocupar un lugar importante
entre las librerías de este tipo. El desarrollo y mantenimiento de
esta librería esta a cargo de un grupo de organizaciones de
investigación, academia e de la industria, entre los cuales se
destacan Los Alamos National Laboratory, Cisco Systems, IBM,
Myricom, Sandia National Laboratories y Sun Microsystems.
La última versión disponible desde el sitio oficial34 es la 1.3.3, la
cual ofrece, entre otras características, el soporte completo
para el estándar MPI2 y para arquitecturas de 32 bits y 64 bits.
•
MPICH
Librería independiente de la arquitectura utilizada,
portable y de distribución libre, distribuida como código para
Unix y Microsoft Windows. La versión actual es la 1.2.7p1, la
cual fue lanzada el 4 de noviembre de 2005 y puede ser
descargada desde el sitio oficial35.
El siguiente es un ejemplo de un programa en C con la librería MPI36:
#include <stdio.h>
#include “mpi.h”
int main (argc, argv)
int argc;
char **argv;
{
int rank, size;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
33
34
35
36
LAM/MPI ORG. LAM/MPI Parallel Computing. http://www.lam-mpi.org/
OPENMPI ORG. OpenMPI Open Source High Performance Computing. http://www.open-mpi.org/
MPICH-A portable implementation of MPI. http://www.mcs.anl.gov/research/projects/mpi/mpich1/
SANCHEZ TESTAL, JJ. Cluster Sencillo con MPI. En Linux-Magazine. Nro 38
69
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
printf(“Prueba de MPI: Proceso %d en rango %d \n”,
rank, size);
MPI_Finalize();
return 0;
}
Este programa hace uso de la librería y funciones estándar de MPI
(mpi.h) inicializando el entorno a través de MPI_Init con los
parámetros entregados por la función main, mientras que
MPI_comm_size y MPI_Comm_rank permiten obtener el numero de
procesos que se ejecutan y el identificador del proceso que se esta
ejecutando, respectivamente. Para terminar se usa MPI_Finalize.
4.3.2.2. PVM
Al igual que MPI, PVM o Máquina Virtual Paralela
(Parallel Virtual Machine), es una biblioteca o librería, un paquete de
software que permite a un conjunto heterogéneo de equipos (a nivel
de hardware y software, incluyendo el sistema operativo) trabajar a
través de una red y comportarse como una sola máquina.
Actualmente se encuentra en la versión PVM 3.4.6 que puede ser
descargada desde el sitio oficial37.
Esta librería fue desarrollada en la Universidad de Tenesee, el
Laboratorio Nacional Oak Ridge y la Universidad Emory.
Un programa realizado en base a PVM (en lenguaje C o fortran) hace
uso de una librería,llamada pvm3.h y de las siguientes funciones:
•
pvm_mytid()
•
pvm_exit()
•
pvm_spawn(), entre otras.
El siguiente es un programa similar al mostrado con MPI realizado con
la librería PVM, a modo de ejemplo, en lenguaje C:
37 PVM. Parallel Virtual Machine. http://www.csm.ornl.gov/pvm/
70
#include “stdio.h”
#include <pvm3.h>
int mytid; //Identificador de tarea
int tids[numero_procesos]; //Vector con id de procesos
int task_index; //indice de tarea
int main (argc, argv)
int argc;
char **argv;
{
int ret;
mytid = pvm_mytid();
tids[0] = pvm_parent();
...
tids[0] = mytid;
task_index = 0;
ret = pvm_spawn(argv[0],
argv,
PvmTaskDefault,
“”,
numero_procesos -1,
&tids[1]);
printf(“Prueba de pvm: Proceso %d en rango %d \n”,
tids[0],ret);
pvm_exit();
return 0;
}
Mediante pvm_mytid() obtengo el identificador, mientras que con
pvm_parent() se obtiene el listado de identificadores de procesos.
Asumiendo que se trata del proceso padre, tids[0] será menor que
cero, por lo cual tomara el valor de mytid, y task_index el valor de
cero que corresponde al proceso padre. A continuación, mediante
pvm_spawn(), se inicializan el resto de los procesos
para terminar
con pvm_exit().
4.3.2.3. Beowulf
El proyecto Beowulf es quizás el mas
conocido dentro del tema de clústers o clústeres, y prácticamente se
ha convertido en un estándar, al punto que cualquier sistema que se
parezca a él se considera de tipo Beowulf.
71
Este proyecto, nacido en 1994, a cargo de Donald Becker y Thomas
Sterling, se diseñó como una alternativa en costo y rendimiento
frente a los supercomputadores de la época. El prototipo inicial
estaba conformado por 16 computadores personales que hacían uso
de procesadores Intel DX4 y conectados a través de una red
Ethernet, con un rendimiento teórico de 3.2 GFlops38.
Figura 17. Clúster Beowulf
Fuente:
http://www.cs.mtu.edu/~merk/Public/Websitedir/Common/cluster_s
m.jpg
El proyecto se basó en el uso de MPI y PVM, mas otros tipos de
software de monitoreo y administración. Las características de este
clúster incluyen la capacidad que algunos de los equipos no incluyan
disco duro, permitiendo introducir nodos heterogéneos.
Un clúster beowulf presenta las siguientes características:
•
Esta compuesto por computadoras personales o componentes
comerciales, lo cual lo ubicaría entre los clúster de categoría I39.
38 El término Flop es una medida que hace referencia a la cantidad de operaciones de coma flotante por
segundo (Floating points Operations Per Second), la cual sirve como medida del rendimiento de una
computadora. Al igual que los Bytes o los Hertz, la unidad Flop se acompaña de los términos Mega,
Giga, Tera, etcétera, con los significados ya conocidos para ellos. En el caso de GFlops se trata 109
operaciones de coma flotante por segundo.
39 Existe un tipo de clasificación adicional de clúster, que se encuentran relacionados frecuentemente
72
•
La mayoría de los nodos son de la arquitectura x86 y red
Ethernet (Sin embargo podrían usar cualquier otro tipo).
•
El sistema esta compuesto de nodos (computadoras
personales) completos e independientes, cada uno con su
procesador, memoria y almacenamiento secundario.
•
Cada nodo funciona de manera independiente bajo un sistema
operativo que en la mayoría de los casos es alguna versión
derivada de Unix (generalmente Gnu\Linux, esto debido a sus
características de software libre, evolución, etcétera).
•
El mecanismo usado por las aplicaciones para la comunicación y
cooperación entre nodos son las librerías PVM y MPI.
•
Los
Beowulf
unicamente
directamente al clúster.
•
Es necesario contar con una red dedicada a la comunicación en
el nodo clúster.
•
Existe una alta compatibilidad con equipos futuros debido a que
el cambio en el hardware por el surgimiento de nuevas
tecnologías o capacidades no cambian el modelo de
programación que se este usando.
•
Un clúster beowulf se puede catalogar como
intermedio entre los sistemas MPP40 y NOW41.
•
Un clúster beowulf es fácil de mantener y presenta un bajo
costo inicial.
4.3.2.4. Oscar
realizan
tareas
encargadas
un
punto
Oscar es un proyecto realizado con el fin que
con el clúster beowulf, la categoría I aplica a sistemas con componentes comerciales, fáciles de
conseguir, de tal forma que el sistema no esta construido con un fin especifico o especializado,
mientras que en la categoría II se usan partes mas especializadas, mas difíciles de encontrar en el
mercado, y que además han sido pensadas para solucionar un problema de características
determinadas o más complejas.
40 MPP (Massively Parallel Procesors o Procesadores Masivamente Paralelos) es un sistema de
procesamiento con arquitectura no compartida, consistente de varios procesadores y comunicados
por redes de alta velocidad específicamente diseñadas.
41 NOW (Network of Workstation o redes de computadores) también conocidos como mallas es un tipo
de sistema en el cual se integran recursos distribuidos en diferentes redes, cada una con su propio
administrador de recursos y políticas de asignación.
73
cualquier usuario, independiente de su nivel de conocimientos con
cualquier derivado de Unix,
pueda instalar un clúster Beowulf,
además de un conjunto de herramientas para administrarlo y
configurarlo. Oscar significa, en inglés, Open Source Cluster
Applicaton Resources, y su última versión es la 6.0.3, publicada el 27
de mayo del 2009, la cual no se puede considerar como de
producción debido a que aún presenta algunos problemas.
La instalación de Oscar se hace sobre un sistema Gnu\Linux mediante
el paquete del servidor Oscar que se puede obtener desde el sitio en
sourceforge.net42. Después de instalado se puede proceder a la
configuración mediante una sistema gráfico que permite seleccionar
además los paquetes que se desean instalar. Finalmente se pueden
generar las imágenes para los clientes (nodos), proceder a su
instalación, configuración y puesta en marcha del clúster, en un
proceso más sencillo que si se intentara la instalación de paquetes
como MPI y PVM de forma manual.
Oscar puede ser implementado sobre las siguientes distribuciones de
Gnu\Linux :
•
Red Hat Enterprise Linux 5 \ Centos 5 en arquitecturas x86 y
x86_64, con soporte completo y ningún problema reportado.
•
Debian 4, también soportado en arquitecturas x86 y x86_64,
sin embargo no todos los paquetes de esta distribución son
aceptados y soportados.
•
Debian 5 x86_64 se encuentra en etapa experimental y es
necesario que sea probado.
•
Ubuntu 8.04 (x86 y x86_64), presenta las mismas condiciones
que Debian.
•
•
Fedora Core 9 x86 también en etapa experimental y pruebas.
Open Suse 10 x86, en iguales condiciones que Fedora Core.
Los requerimientos mínimos son:
42 OSCAR PROJECT. Open Source Cluster Application Resources. What is Oscar?.
http://oscar.sourceforge.net/
74
•
CPU i586 o mayor.
•
NIC o tarjeta de red con soporte para TCP/IP stack (en caso
que el nodo maestro también actúe como rowter o punto de
acceso a Internet para el clúster, es necesaria una segunda
tarjeta).
•
Para el nodo servidor mínimo 4 Gbytes libres en disco duro, 2
en la raíz y 2 en var. Para los nodos clientes mínimo 2 Gbytes,
además cada nodo debe tener disco duro.
•
Como se mencionó anteriormente, una distribución Gnu\Linux
instalada (preferiblemente alguna de las soportadas).
•
Los nodos cliente deben contar con unidad lectora de CD.
4.3.2.5. NPACI Rocks
También conocido actualmente como
Rocks Clusters es una distribución de Gnu\Linux basada inicialmente
en Red Hat Linux, sin embargo luego paso a basarse en CentOS;
incluye muchas herramientas necesarias para desarrollar un clúster, y
se basa en una filosofía determinada por los siguientes puntos:
•
Facilidad en la administración y mantenimiento del clúster,
además de ahorro evitando el alto costo de un administrador
del sistema.
•
Configuración automática del clúster.
•
Instalación sobre conjunto heterogéneo y amplio de
computadores. además que dicha instalación sea óptima, de
una fácil re-instalación
y bajo tiempo en la solución de
problemas, especialmente de consistencia.
Figura 18. Logo de Rocks Cluster
Fuente : http://www.rocksclusters.org/wordpress/
75
Rocks Cluster se encuentra actualmente en su versión 5.2
(Chimichanga), con soporte para x86, Opteron/EM64T e Itanium, con
un sistema de instalación basado en tres CD's: Instalación del
servidor (frontend) con la instalación base (obligatoria) y los Roll
CD's (componentes opcionales), instalación de los nodos y la creación
de los usuarios. Los requerimientos mínimos para llevar a cabo la
instalación son:
•
•
Para el Frontend (Servidor):
•
2 puertos Ethernet.
•
Unidad de CD-Rom.
•
18 Gbytes de espacio en disco.
•
512 Mbytes de memoria RAM.
Para los nodos:
•
1 puerto Ethernet.
•
18 Gbytes de espacio en disco.
•
512 Mbytes de memoria RAM
•
Instalación completa del sistema operativo en todos los nodos.
•
Todo el hardware debe estar soportado por Red Hat Enterprise
Linux.
4.3.2.6. MOSIX MOSIX constituye una solución a nivel del sistema
operativo para la implementación de sistemas clúster, con lo cual se
obtiene que el conjunto de máquinas actúen como un único sistema
multiprocesador con la inmensa ventaja de poder seguir usando las
aplicaciones sin necesidad de volverlas a programar, de tal forma que
para los procesos es totalmente transparente la forma como se
distribuyen y ejecutan en los nodos del clúster. Otra ventaja es que la
asignación de los procesos de los nodos es dinámica y realizado por
Mosix directamente, siempre buscando ubicarlo en el nodo adecuado
buscando el máximo aprovechamiento de los recursos disponibles.
76
Adicionalmente el sistema MOSIX es descentralizado, razón por la
cual cualquiera de los nodos puede tomar el papel de maestro en los
proceso que esta ejecutando localmente y servidor de los procesos
remotos, y además permite que se puedan agregar y remover nodos
del conjunto en cualquier momento.
El tipo de aplicaciones que pueden aprovechar las características de
MOSIX son las siguientes :
•
Procesos que necesitan bastante
científicas, ingenieriles, etcétera.
CPU
como
aplicaciones
•
Procesos paralelos.
•
Clústeres heterogéneos, con nodos de diferentes velocidades y
capacidades de memoria.
•
Entornos multiusuario y de tiempo compartido.
•
Servidores Web escalables.
Para usar MOSIX se deben cumplir las siguientes condiciones:
•
Los nodos deben tener instalada una distribución GNU\Linux
(MOSIX es compatible con los diferentes sabores de Gnu\Linux
existentes, sin embargo la instalación automática esta
soportada para Red Hat en sus versiones 5.1, 6.0, 6.2, 7.0 y
7.1, y para Suse 6.0 – 6.3 y 7.0).
•
Para una instalación manual se necesita del paquete make, gcc
y binutils (las versiones mínimas dependen de MOSIX).
•
Se debe tener el código fuente del kernel y el parche MOSIX,
con especial énfasis en que todos los nodos tengan la misma
versión MOSIX.
El problema que presenta MOSIX es que no es un proyecto que pueda
ser usado comercialmente sin un costo por hacerlo, sin embargo
existen versiones de prueba y de uso en investigación. La última
versión de este software es la 2.27.0.1 para el kernel 2.6.30.3 en
arquitecturas de 32 y 64 bits.
77
4.3.2.7. OpenMosix openMosix es la implementación libre de
Mosix, presentando casi las mismas características que el software
origen, sin embargo el proyecto llegó a su fin el 1 de marzo de 2008
tal como se informa en la pagina oficial43, sin embargo el código
fuente para usar con el kernel 2.4 se encuentra disponible
(openMosix-2.4.26-1) y en algunos sistemas clúster aún se emplea,
sin embargo presenta el problema de la compatibilidad con algunos
componentes de hardware que si son soportados por los núcleos
nuevos.
OpenMosix presentaba ventajas como el no necesitar paquetes extras
ni modificaciones en el código. En contra tenía era dependiente del
kernel, tenia limitaciones en cuanto a la migración de los procesos,
por lo cual no siempre lo hacia, y problemas con la memoria
compartida.
Debido a que el proyecto se cerró se ha descartado como una opción
para el presente proyecto, razón por la cual tampoco se extiende más
sobre este tema en el documento. Sin embargo aún se encuentran
bastantes manuales en Internet sobre el proyecto, la instalación y
administración del mismo.
4.3.2.8. Condor Es un proyecto de la Universidad de Wisconsin y
Madison, desarrollado por el Departamento de Ciencias de la
Computación como software de código libre, que busca aprovechar al
máximo la capacidad computacional de una red de computadores
utilizando los recursos que están siendo desaprovechados en los
ordenadores que conforman la red.
Condor es considerado como un sistema especialmente adecuado
para las tareas computacionales intensas, pudiendo ser usada en un
clúster con nodos dedicados, usando un sistema de colas en los
cuales se encuentran las tareas que el ira ejecutando conforme se
pueden ir usando los recursos. Al final Condor informara el final de
los procesos y retornará los resultados.
4.3.2.9. OpenSSI
Este
es
un
proyecto
43 SOURCEFORGE.NET. The open mosix project. http://openmosix.sourceforge.net/
78
que
busca
igualmente convertir un conjunto heterogéneo de computadores en
una sola máquina, virtualmente hablando, corriendo procesos en
cualquier de los nodos y utilizando los recursos disponibles en todo el
conjunto. Trabaja en distribuciones Gnu\Linux y su última versión es
la 1.9.2, disponible bajo la licencia GPL.
Como la mayoría de los sistemas SSI, en los cuales se busca que
múltiples máquinas aparezcan como un solo ordenador, openSSI se
implementa a nivel del kernel, presentándose como una solución SSI
de código abierto, actuando de forma similar a openMosix y Mosix.
Algunas de las características de OpenSSI son:
•
Monitoreo constante de la carga en los nodos del clúster.
•
Migración automática de los procesos entre nodos.
•
Capacidad de migración de aplicaciones multi-hebra, pero no de
hebras individuales.
•
Se pueden ejecutar aplicaciones en OpenSSI sin realizar
modificaciones sobre ellas.
•
Proporciona librerías que pueden ser usadas por los programas
para controlar el clúster.
Para realizar la instalación de OpenSSI se necesitan como mínimo dos
computadores (cumpliendo con las condiciones de un clúster) y una
red que permita la interconexión entre los nodos. Adicionalmente se
necesita que solo una de las máquinas tenga disco duro, aunque en
una instalación basada en un liveCD no se necesita almacenamiento
secundario en ninguno de los nodos. Al iniciar el nodo principal desde
el Disco Duro o el liveCD, el resto de las máquinas iniciarán por red
desde un CD, disquete, etcétera.
No se considera como un sistema simple de instalar, razón por la cual
se necesita un conocimiento suficiente de la distribución sobre la cual
se instalara OpenSSI; una opción más simple es el uso de liveCD, sin
embargo es importante tener en cuenta la compatibilidad de
hardware, especialmente de la tarjeta de red.
79
4.3.2.10. Kerrighed Este es un proyecto similar a openMosix, con
tres diferencias específicas:
• A diferencia de otros proyectos, Kerrighed permite migrar
procesos multi-hilo.
• No tiene herramientas de usuario gráficas, lo cual es una
desventaja para el usuario, ya que hace más complicada la
administración.
• Este proyecto SSI se mantiene activo y trabaja sobre kernel
2.6, lo cual es una gran ventaja no solo sobre openMosix, sino
también sobre otras soluciones que han sido congeladas y se
quedaron sobre el kernel 2.4. Además es importante tener en
cuenta que Kerrighed se considera prácticamente como el único
proyecto SSI libre activo, dado que LinuxPMI, el llamado
sucesor de openMosix, no tiene activo su sitio web y se
desconoce su estado.
4.3.2.11. Selección del middleware A pesar de la existencia de
diferentes paquetes de software para la implementación de un
clúster, todos tienen características que los hacen mas o menos
favorables para el desarrollo del presente proyecto. Para realizar la
selección de alguno de ellos se debe considerar lo siguiente:
•
Vigencia: el aplicativo debe estar vigente, actualizado y
soportado (de forma gratuita o paga), de tal forma que se
pueda instalar en diferentes tipos de equipos y sistemas
operativos44
•
Costos:
La licencia debe ser asequible para que pueda
convertirse en una alternativa viable para las empresas.
•
Instalación: La forma de instalación debe ser lo más simple
posible, evitando complejidades innecesarias.
•
Administración: Debe ser posible administrar el clúster,
controlar su comportamiento, entre otras características.
44 En general los clústeres se implementan sobre sistemas operativos libres como Gnu\Linux o BSD,
dado que el desarrollo para sistemas como Microsoft Windows es aún muy pobre y limitado. Por otro
lado sistemas como MacOS no son muy usados y las licencias tienen altos costos, además que el
hardware es muy específico.
80
•
Tipo: Se necesita un sistema que sea tipo SSI para que pueda
aceptar la instalación de aplicaciones corrientes en las cuales no
se tenga que realizar modificaciones para su ejecución.
Para lo anterior se considera el siguiente cuadro de ponderación
según las características a analizar:
Tabla 1. Cuadro de ponderación de calificación para el middleware
Variable
Rango45
Ponderación
Vigencia
1–5
25,00%
Costos
1–5
25,00%
Instalación
1–5
15,00%
Administración
1–5
15,00%
Tipo
1–5
20,00%
Fuente: Propia
La ponderación anterior ha sido seleccionada por los desarrolladores
del proyecto teniendo como criterio las características, exigencias o
preferencias que puede tener una empresa frente a un sistema de
esta naturaleza. Es así como se ha considerado que un producto
actual y de costos accesibles será visto como una buena opción para
una organización (se debe tener en cuenta que muchas decisiones en
una empresa se basan en su presupuesto, especialmente en
organizaciones pequeñas y medianas).
Por otro lado, para empresas de sectores no relacionados con la
investigación y la educación, sino con actividades cotidianas
enfocadas en las ventas y prestación de servicios, contar con
sistemas informáticos que no generen grandes traumas al momento
de su aplicación en la organización es realmente importante, por ello
se debe contar con un middleware que haga lo más transparente
posible su implementación, la ejecución de programas y su uso.
45 1 aplica para la nota más baja o característica menos adecuada y 5 para la nota más alta.
81
Finalmente, los dos últimos items a evaluar y que tienen una menor
calificación de ponderación, han sido la instalación y administración
del sistemas, los cuales aunque son importantes también dependen
de factores como el sistema operativo sobre el cual se apoyen y del
conocimiento que sobre estos mismos tengan los encargados de la
parte informática en la organización. Igualmente, dada la naturaleza
de un clúster, la instalación y administración del mismo no es un
proceso simple, sea cual sea el middleware seleccionado, por lo que
aunque existen diferencias, tambien comparten niveles de
complejidad.
Para los sistemas que se tuvieron en cuenta en la etapa de análisis se
tiene la siguiente calificación expresada en la tabla número 3,
teniendo en cuenta que para obtener una nota total se ha usado la
sumatoria del producto de cada característica por su respectivo valor
de ponderación:
Total=∑ Cararacterística∗Ponderación
Tabla 2. Calificaciones para los sistemas evaluados
Sistema
Vigencia
%
Costos
%
Instalació
n
%
Administració
n
%
Tipo
%
Total
MPI
5
1.25
5
1.25
2
0.3
2
0.3
1
0.2
3.3
PVM
5
1.25
5
1.25
2
0.3
2
0.3
1
0.2
3.3
Beowulf
5
1.25
5
1.25
2
0.3
3
0.45
1
0.2
3.45
Oscar
5
1.25
5
1.25
4
0.6
4
0.6
1
0.2
3.9
Rocks
4
1
5
1.25
5
0.75
4
0.6
1
0.2
3.8
Mosix
5
1.25
1
0.25
4
0.6
4
0.6
5
1
3.7
OpenMosix
1
0.25
5
1.25
4
0.6
4
0.6
5
1
3.7
Condor
4
1
5
1.25
5
0.75
4
0.6
1
0.2
3.8
OpenSSI
1
0.25
5
1.25
4
0.6
4
0.6
5
1
3.7
Kerrighed
5
1.25
5
1.25
2
0.3
2
0.3
5
1
4.1
Fuente: Propia
De la tabla anterior se puede identificar a kerrighed como la mejor
opción debido a lo siguiente:
82
•
Es un sistema soportado y vigente, que trabaja sobre uno de
los últimos kernel o núcleos disponibles para el sistema
operativo Gnu\Linux.
•
Kerrighed es un paquete para clúster gratuito (el paquete en si
no genera costos para la empresas por su utilización y además
se instala sobre Gnu\Linux en versiones o distribuciones
gratuitas).
•
Tiene en contra que la instalación y administración no es
simple.
•
Cumple con el requisito de actuar como un sistema SSI (Single
System Image).
Son los tres puntos fuertes de kerrighed (Tipo de clúster, costo y
vigencia) los que le otorgan su mayor puntaje sobre el resto,
superando
incluso
los
puntos
negativos
(Instalación
y
administración).
4.4. SSI
SSI son las siglas para Single System Image o Imagen Única del
Sistema, siendo un modelo de clúster que busca que varios
computadores o nodos aparezcan como una sola máquina ante el
usuario y las aplicaciones, de tal forma que resulte transparente su
funcionamiento y el montaje de los nodos, además del acceso a los
recursos disponibles, independiente del grado de heterogeneidad que
pueda presentar el conjunto, tanto a nivel de hardware como de
software.
Algunos ejemplos de sistemas SSI son:
•
Amoeba
•
Bproc
•
DragonFly BSD
•
Genesis
83
•
Kerrighed
•
Mosix/OpenMosix
•
Nomad
•
OpenSSI
•
Plurix
•
Sprite
•
TruCluster
4.4.1. Pilares Idear un sistema SSI obedece a un conjunto de
pilares buscan la simplicidad en la administración de un grupo de
máquinas y de las aplicaciones que se corren en ellas. Dichos pilares
son:
•
Transparencia
Tanto para el usuario como para la aplicación
debe ser transparente lo que esta detrás del sistema que se
presenta, es decir, no importa la cantidad de nodos, ni la
ubicación de los recursos. Más aún, trasladar un proceso de un
nodo a otro no debe generar ningún “trauma” a los procesos
en general, los cuales no necesitan saber exactamente en que
nodo se encuentra, simplemente tener el acceso a los recursos
que se necesitan.
•
Escalabilidad
Al tener un sistema que actúa de forma
transparente, aumentar la cantidad de nodos tampoco supone
un trauma para el conjunto; dicho equipo adicional debe ser
fácil de agregar al grupo o clúster, y al existir un modo
dinámico de balancear la carga, al PC nuevo se le asignarán los
procesos de forma simple.
•
Soporte a aplicaciones de usuario -Un punto importante, que
también influye de forma significativa en el desarrollo del
presente proyecto, es el hecho de poder ejecutar aplicaciones
de usuario de forma simple en el clúster. Lo anterior significa
que cualquier software puede ser llevado al sistema SSI sin
necesidad de ser re-programado como puede ocurrir en otros
casos en los que se necesita usar librerías especificas (MPI por
84
ejemplo).
•
Des-centralización y Auto-gobierno
Es
un
concepto
importante, y es que aunque físicamente pueda existir un nodo
que se considere como maestro, la verdad es que el sistema
debe ser des-centralizado, es decir que ninguno es
específicamente el maestro, cualquier puede tomar ese papel,
razón por la cual uno otro pilar relacionado es el auto-gobierno,
determinando esa capacidad para cada nodo de asumir un
comportamiento tanto de recepción como de envío de procesos,
según lo vaya necesitando el clúster.
•
Imagen Única Es el principal pilar de un sistema SSI, el
conjunto de nodos se debe ver como una sola máquina para el
usuario y las aplicaciones.
4.4.2. Ventajas
Tener un sistema tipo SSI conlleva algunas
ventajas bastante relacionadas con los pilares anteriormente
mencionados, sin embargo se muestran y explican a continuación:
•
Facilidad de Administración Tener un único sistema permitirá
una administración más simple del clúster en comparación con
un sistema en el cual, por ejemplo, sea necesario administrar y
tratar cada nodo de forma individual. Si el conjunto esta
compuesto por pocos nodos, por ejemplo 10, administrar cada
uno puede resultar relativamente simple, pero una cantidad
mayor a 30 puede resultar tedioso, complejo y costoso.
•
Escalabilidad
Hacer crecer el sistema es de suma
importancia en un clúster, por ello la escalabilidad es
importante. Un sistema SSI resulta mas simple al momento de
agregar nodos debido a sus características de única imagen.
•
Ocultamiento de complejidad
De igual forma que la
ventaja anterior, un sistema que hace ver un conjunto como
una sola máquina permite que para el usuario e incluso el
administrador quede oculta la parte compleja del sistema.
Ocultar este nivel de complejidad hace más fácil para el usuario
usar el clúster y ejecutar las aplicaciones.
•
No re-programación
Las aplicaciones que se ejecutan en un
sistema SSI no necesitan ser re-programadas, de esta forma se
85
pueden usar casi cualquier aplicación de usuario normal. El
hecho de no aceptar todas las aplicaciones es que dependiendo
de la aplicaciones se podrán usar de mejor o peor forma las
características y capacidades ofrecidas por un clúster de este
tipo. Esto implica que pueden darse casos en que el software
que se esta corriendo no pueda ser trasladado a otro nodo por
ejemplo, haga un alto consumo de procesador en nodos
específicos, consumos de memoria, etcétera.
•
Facilidad para implementación de balanceo de carga en cada
nodo
Un sistema SSI al ser descentralizado y autogobernable puede llevar a cabo el balanceo de carga, estando
en capacidad de recibir y enviar procesos según lo vaya
necesitando. En caso que el nodo que estaba haciendo el
balanceo deje de funcionar cualquier otro podrá tomar su lugar
y seguir con el balanceo.
•
Aplicaciones instaladas en un nodo y funcionando en otro Un
sistema transparente y con un balanceo dinámico de carga
permite que una aplicación que se encuentra en uno de los
nodos del grupo de computadores en el clúster pueda ser
trasladado y ejecutado en otra de las máquinas, según lo
necesite, y además que este movimiento no sea traumático ni
para el usuario ni para los procesos que se ejecutan.
•
Tolerancia a fallos
Debido a sus características, un sistema
SSI esta en capacidad de continuar trabajando toda vez que se
presenten la caída de N-1 nodos (N es el total de nodos).
4.4.3. Desventajas
SSI presenta las siguientes desventajas:
•
Dependencia del kernel
Al ser una solución a nivel de
software, SSI generalmente funciona como un parche a ser
aplicado al kernel del sistema operativo, casi siempre alguna
variante de Unix (Gnu\Linux o BSD), lo cual provoca que
dependa de las características del núcleo para su
funcionamiento.
•
Resulta incluso normal que algunas versiones de un parche
sean compiladas para un núcleo especifico, por ejemplo, la
última versión estable de openMosix se puede aplicar para
kernel con versión 2.4.26, si embargo la última versión del
86
kernel es la 2.6.30 -5.
•
Madurez
Los sistemas SSI aún no se consideran lo bastante
maduros y se cree que no brindan lo suficiente que pueden dar
por lo cual se necesita de proyecto que continúen realizando
investigación
y
desarrollo
alrededor
de
este
tema,
especialmente proyectos de código abierto o libres.
•
Congelamiento y cierre de proyectos
Con la aparición
de los procesadores con múltiples núcleos las tendencias
actuales apuntan a otras soluciones como los LVS o Linux
Virtual Servers, debido a que se va haciendo innecesario utilizar
varias maquinas que funcionen como una sola cuando en un
solo computador se puede tener el poder de computo de varias
CPU. Lo anterior a provocado que muchos proyectos,
especialmente aquellos de software libre como openMosix y
openSSI, hayan sido cerrados y congelados desde hace ya unos
años46.
•
La razón por la cual aún se hace uso de este tipo de sistemas, y
la causa especifica para ser tenida en cuenta para este
proyecto, es que se busca aplicar en equipos que han sido
dados de baja, los cuales generalmente presentan unas
características entre las cuales no destacan precisamente el uso
de procesadores multi-núcleo en la mayoría de los casos,
computadores que ya no son usados y que pueden ser
agrupados para conformar una única máquina con mejores
características y/o capacidad.
4.4.4. Características ofrecidas por SSI
Dependiendo
del
sistema SSI, se pueden obtener algunas de las
siguientes
características:
•
Migración de procesos
Un proceso puede iniciar en un
nodo y durante el transcurso de su ejecución ser llevado hacia
otro nodo según las necesidades que presente, ya sea por
balanceo de carga o decisiones administrativas.
•
Puntos de control de procesos
En algunos casos un sistema
SSI puede ofrecer puntos de control de los procesos que
46 OpenMosix fué cerrado oficialmente el 1 de marzo de 2008 y su ultima versión fue la 2.4.26-1,
mientras que openSSI fue congelada en su versión 1.9.2 del 2 de Agosto de 2006.
87
ejecuta, de tal forma que en caso de la caída de una aplicación
esta pueda ser reiniciada y continuar su ejecución en el mismo
punto o uno muy cercano al que ocurrió el fallo. También puede
ser usado para detener el proceso e iniciarlo en otro punto, o
para llevarlo a otro nodo y saber desde donde re-iniciar la
ejecución de la tarea que se ha migrado.
•
Espacio único de proceso
El sistema SSI puede ofrecer en
algunos casos la sensación que todos los procesos corren en la
misma máquina, de tal forma que, por ejemplo, algunos
comandos tipo Unix se ejecutaran para todo el conjunto de
máquinas como si de una sola se tratara. Esto es diferente a
que las aplicaciones piensen que se están ejecutando sobre una
única máquina.
•
Espacio único de memoria
Aún cuando la memoria principal
puede estar repartida entre los diferentes nodos, para el
usuario y las aplicaciones esta aparece como una única
memoria, centralizada y de tamaño considerable.
•
Raíz única
SSI ofrece una visión única del sistema de
ficheros, logrado a partir de un servidor NFS, replicación de
archivos o compartir los dispositivos de almacenamiento
secundario.
•
Espacio único de entrada/salida
Al igual que el sistema de
archivos, en un sistema SSI se puede ofrecer un servicio similar
que permita a un nodo acceder a los recursos I/O de otro nodo.
•
Espacio único de IPC47 Esta característica permite que procesos
en diferentes nodos puedan comunicarse por medio de IPC
como si se encontraran en la misma máquina.
•
Dirección IP de clúster
En algunos casos el sistema SSI
puede ofrecer una única dirección para el clúster, de tal forma
que pueda ser accedido desde fuera del grupo como si se
tratara de otro ordenador conectado a la red.
•
Único punto de acceso
El usuario se puede conectar
desde cualquiera de los nodos que componen el clúster como si
de se tratara de un host virtual y de la misma máquina se
47 IPC Inter-process comunications, es un termino por el cual se conoce a una serie de técnicas por
medio de las cuales se da un intercambio de información entre uno o más procesos.
88
tratara.
•
Interface única de usuario
Sin importar la cantidad de nodos
que compongan el clúster, la interfaz o GUI es la misma sin
importar desde que nodo acceda el usuario.
4.4.5. Niveles en SSI
SSI puede ser aplicado a diferentes
niveles, incluso se considera que un SSI optimo será resultado de la
cooperación entre los diferentes niveles.
4.4.5.1. Nivel de Hardware
En este caso se aprovechan
las características de algunos componentes de hardware, como
memoria principal distribuida, para ofrecer una visión de memoria
local única que permite un mejor desempeño en un clúster. Es
importante tener mecanismos de control o detección de fallos y
bloqueos para el hardware sobre el cual se aplica este nivel, por
ejemplo mediante control de flujo de información o de señales como
las ofrecidas por Heartbeat (latidos).
No obstante es importante tener en cuenta que el software debe
estar en capacidad de hacer uso de este nivel de SSI en hardware de
tal forma que se comunique la comunicación entre los dispositivos, la
lectura de información, por ejemplo en la memoria principal, etcétera.
4.4.5.2. Nivel de Sistema Operativo Es quizás uno de los niveles
más conocidos y usados , de tal forma que en el clúster se puede dar
la ejecución no solo de de procesos paralelos sino también de
aplicaciones secuenciales, buscando el mejor desempeño posible para
ambos.
Para que el sistema operativo pueda soportar este nivel de SSI debe
estar en capacidad de realizar las siguientes operaciones sin
necesidad de agregar nuevas llamadas al sistema o comandos:
•
Soportar la programación(scheduling) de grupos de programas
paralelos.
•
Identificar los diferentes recursos disponibles en el sistema.
•
Ofrecer acceso global a los recursos.
89
•
En lo posible ofrecer migración de procesos.
Generalmente el último punto (migración de procesos) es ofrecido por
un parche que se aplica al kernel y que le permite dar este tipo de
soporte. Mosix, junto con SCO UnixWare Non Stop Clusters, Sun
Solaris-MC y GLUnix ofrecen esta característica.
4.4.5.3. Nivel de middleware
el middleware es un software de
conectividad que se encuentra entre el sistema operativo y las
aplicaciones y que permite agregar algunas características al sistema.
Este es uno de los mecanismos mas comunes no solo para la
aplicaciones de SSI sino de clústers en general, e incluye, entre otras,
las siguientes posibilidades o recursos:
•
Sistemas de archivos para clúster.
•
Ambientes de programación (PVM, MPI).
•
Administración de tareas y programación (scheduling) como
Condor.
•
Aplicaciones especificas para clúster (Cluster-enabled Java
Virtual Machine).
4.4.5.4. Nivel de aplicación
Aun cuando un sistema SSI
esta destinado a trabajar con aplicaciones sin modificaciones, el
poder aplicar SSI a este nivel mejorara aún más las prestaciones del
clúster puesto que es lo que finalmente se mostrará al usuario.
Este tipo de nivel suele venir aplicado en las herramientas
administrativas, como aquellas usados para el monitoreo y
administración de los servicios y recursos y que se presentan
mediante una GUI o interfaz gráfica de usuario; PARMON es un
ejemplo de este tipo de herramientas. También existen diferentes
API's que ocultan la complejidad del sistema y se presentan como si
se ejecutaran sobre una única máquina.
90
4.5. KERRIGHED
Kerrighed es un proyecto nacido en el año el año 1999 en el Grupo
de Investigación Instituto Nacional Francés para la Investigación en
Ciencias de la Computación y Control, en París. Este proyecto, junto a
LinuxPMI, se ha convertido en la respuesta a las necesidades que se
crearon después del cierre de openMosix y el congelamiento del
proyecto openSSI. Sin embargo, Kerrighed se ha mantenido más
activo que LinuxPMI, lo cual lo convierte en la solución SSI mas
conveniente para la implementación de clústeres en la actualidad.
La documentación del proyecto Kerrighed aún es muy corta y poco
precisa en algunos aspectos, sin embargo en este capítulo se
intentará dar una idea clara del mismo.
4.5.1. Objetivos e historia del proyecto Los objetivos del proyecto
Kerrighed son brindar facilidad de uso al usuario, algo desempeño
para las aplicaciones, presentar un clúster de alta disponibilidad, que
tenga un uso eficiente de los recursos y una alta personalización del
sistema operativo.
Con esos objetivos se inicio el proyecto a cargo de Christine Morin en
el año de 1999 en INRIA48, Instituto Nacional Francés para la
Investigación en Ciencias de la Computación y Control. Hasta el año
2006 el proyecto fue desarrollado por IRISA49, Unidad de
investigación a la vanguardia de la información y la comunicación de
la ciencia y tecnología, como un prototipo en el cual trabajaron
personas provenientes de INRIA, EDF50(Electricité de France
o
Electricidad de Francia) y la Universidad de Rennes.
Después de 2006, Kerrighed paso a ser un proyecto comunitario a
cargo de Kerlabs51, INRIA, socios del consorcio XtreemeOS52 y un
importante numero de colaboradores.
48 INSTITUTO NACIONAL DE INVESTIGACIÓN EN INFORMATICA Y CONTROL http://www.inria.fr/
49 UNIDAD DE INVESTIGACIÓN A LA VANGUARDIA DE LA INFORMACIÓN Y LA COMUNICACIÓN DE LA
CIENCIA Y TECNOLOGÍA. http://www.irisa.fr/home_html-en
50 ELECTRICIDAD DE FRANCIA. http://www.edf.fr/the-edf-offers/edf-fr-home-200420.html
51 KERLABS. http://www.kerlabs.com/-Home-.html
52 http://www.xtreemos.eu/
91
A la fecha el proyecto kerrighed presenta como su versión más
reciente y estable la 2.4.0, publicada el 9 de Julio del presente año,
basada en linux 2.6.20 y descargable desde la página oficial 53 , bien
sea como módulo para agregar al kernel o como un liveCD.
4.5.2. Características de kerrighed El proyecto Kerrighed es un
sistema de tipo SSI (Single System Image) que ofrece la visión que
un clúster es una única máquina para el usuario y las aplicaciones.
Este sistema ha sido construido de tal forma que sea implementado
como una extensión del sistema operativo Gnu\Linux (una extensión
o parche del kernel y una colección de módulos).
Un clúster con el sistema Kerrighed puede ser aprovechado para
aplicaciones de tipo científicas o para aplicaciones tradicionales sin
necesidad de ser modificadas.
Las siguientes son otras características de este sistema54:
•
Posee la capacidad de realizar migración de procesos, balanceo
de carga dinámica, además sin restricciones en la programación
global (Scheduling), la cual puede ser modificada en caliente.
•
Tiene un sistema de migración de alto rendimiento de procesos
que hagan uso de sockets, tuberías, etcétera.
•
Punto de control de procesos y raíz única (características
compartidas con sistemas como MOSIX y openMosix)
•
Espacio único de proceso y de IPC (Constituye una de las
diferencias con un sistema MOSIX
y openMosix, que no
contaban con estas características)
•
Kerrighed implementa un sistema de archivos distribuido en el
cual se puede configurar la redundancia de datos e implementa
un único árbol de directorios o ficheros.
•
La principal desventaja de Kerrighed frente a sistemas como
Mosix es que no cuenta con herramientas de usuario gráficas,
lo cual puede hacer más complicada su administración.
53 XTREEME OS. Welcome to Xtreem OS. http://www.kerrighed.org/wiki/index.php/Main_Page
54 Para una mayor explicación de las características remítase al presente capítulo, subcapítulo 3.4, SSI
92
•
Un punto muy importante de Kerrighed en oposición a MOSIX,
es que se distribuye bajo licencia GPL.
•
Trabaja con kernel versión 2.6, posicionándose básicamente
como el único sistema SSI libre con esta capacidad.
•
Brinda soporte para maquinas SMP/Multi-cores, ordenadores
x86 y x86-64 (32 y 64 bits).
El proyecto Kerrighed
componentes:
esta
compuesto
por
los
siguientes
•
Un parche para el kernel.
•
Modulo kerrighed.
•
Herramientas de linea de comando para el usuario.
•
Script de inicio (/etc/init.d/kerrighed).
•
Archivos de configuración (kerrighed_nodes, kerrighed).
•
Librería libkerrighed.
4.5.3. Requisitos para la implementación Para instalar Kerrighed
en un sistema Gnu\Linux (también se puede implementar mediante el
liveCD que se provee en el sitio oficial) se debe tener en cuenta una
serie de pre-requisitos en el sistema operativo:
•
Se debe saber o tener conocimientos sobre como compilar,
configurar e instalar un kernel Linux desde el código fuente55.
•
Conocer acerca del proceso de arranque del sistema operativo y
en especial de la distribución sobre la cual se realiza la
implementación.
•
Se debe contar con los siguientes paquetes de software:
•
Automake, versión 1.10 o mayor.
55 Detalles sobre este proceso se explicarán en un capítulo posterior.
93
•
Autoconf, versión 2.59 o mayor.
•
Libtool.
•
Rsync.
•
Bzip2.
•
Gcc (la versión 3.3.x es la recomendada para compilar el
kernel).
•
lsb_release y xsltproc son opcionales y permiten instalar los
scripts de arranque de kerrighed en /etc/init.d y crear las
páginas de ayuda o manpages desde los dockbook,
respectivamente.
4.5.4. Otra información sobre kerrighed Kerrighed se ha
convertido en un proyecto bastante usado en los sistemas clúster en
el mundo, y a partir de los registros obtenidos en el proyecto gracias
a las personas que registran sus sistemas en la página web se puede
obtener la siguiente información:
En la actualidad se encuentran registrados oficialmente 36 clústeres
implementados con Kerrighed, los cuales brindan los siguientes
datos:
•
El mayor número de nodos en un clúster registrado es de 110.
•
El mayor número de núcleos es de 440.
•
La mayor cantidad de memoria principal (RAM) registrada es de
440 Gbytes.
•
El sistema de red más usado en los clústeres registrados es la
Ethernet de 100 Mbps.
•
Las siguientes gráficas obtenidas de la página oficial del
proyecto pueden ayudar a comprender el nivel alcanzado por
Kerrighed:
94
Figura 19. Cantidad de nodos por clúster con Kerrighed.
Fuente: http://kerrighed.org/php/clusterstats.php
Figura 20. Cantidad de núcleos o cores por clúster con Kerrighed.
Fuente: http://kerrighed.org/php/clusterstats.php
Figura 21. Tipo de redes usados en clúster con Kerrighed.
Fuente: http://kerrighed.org/php/clusterstats.php
Entre los clúster registrados se encuentran los siguientes:
95
Tabla 3. Ejemplos de clúster implementados con Kerrighed.
Nombre
Dueño
Nodos
CPU
Mordred 2
Kerlabs
110
Mordred
Kerlabs
64
Tinman
Departamento
4
de Electrónica
de la U. de
Nueva York.
AMD
XP
Compaq
Portable
Cluster
Home
Sol
Núcleos
Totales
Interconexión
Aplicación
440
440
Ethernet
Giga-bit
256
256
Ethernet
Giga-bit
2840
Ethernet
100 Mbps
AMD
Athlon 8
64 X2
8
Ethernet
Giga-bit
Universidad de 8
Barcelona
y
Clínica Hospital
BCN
Intel Xeon
32
16
Ethernet
Giga-bit.
Phg, Bioinformática
Aurora
PowerDower
AMD
64
Athlon 16
16
Inifiniband
Melanox
40G
VmWare, VirtualBox,
vkcm, virtuozzo
Jacob
Escuela
de 6
Patologia
Sir
William Dunn
Intel Core
Extreme
2 24
24
Ethernet
Giga-bit.
Diferentes
aplicaciones
Bioinformáticas
VinBlanc
Telecom
Tech
Intel Xeon
32
8
Ethernet
100 Mbps
Simulación.
4
1
Paris 4
AMD Opteron
RAM
Total56
Athlon 4
Fuente: http://kerrighed.org/php/clusterslist.php
56 Medida en Gbytes.
96
Compilación.
GCC,
Java,
Simmulación.
Spice
5. CARACTERÍSTICAS DEL PROYECTO
5.1. CONSIDERACIONES GENERALES
A partir de las necesidades de las empresas en cuanto a la
problemática que representa la existencia de computadores y partes
dados de baja, los cuales en algunos casos aún presentan un
funcionamiento mínimo, y la ausencia de equipos que puedan brindar
capacidades apropiadas para la ejecución de ciertos procesos, se ha
encontrado la posibilidad de estudiar la viabilidad de aplicación de
una tecnología usada y enfocada en el aprovechamiento de los
recursos de múltiples ordenadores de tal forma que actúen como una
sola máquina, tomando como elemento diferenciador el hecho de
usar los equipos dados de baja como los nodos que alimentan el
clúster.
Para llevar adelante el proyecto, se ha revisado la teoría relacionada
con los sistemas clúster, teniendo en cuenta las diferentes opciones
existentes para su implementación, abarcando desde lo general hasta
llegar a lo específico: el paquete de software de clúster apropiado
para las necesidades del proyecto. A partir de este punto se busca
generar un diseño apropiado que permitan además tener una idea de
lo que se puede obtener, además de los costos que implica su
montaje, administración y uso.
5.2. TIPO DE INVESTIGACIÓN
Para la presente investigación, el objetivo se ha centrado en el diseño
de un clúster con equipos dados de baja que pueda servir como
alternativa de bajo costo para las empresas, encontrando un punto
fundamental además en identificar si esto es viable tanto desde el
punto de vista técnico como económico. Para lograrlo se ha
desarrollado un tipo de investigación de campo, la cual es definida
como:
“Se trata de la investigación aplicada para comprender y resolver
alguna situación, necesidad o problema en un contexto determinado.
El investigador trabaja en el ambiente natural en que conviven las
personas y las fuentes consultadas, de las que obtendrán los datos
más relevantes a ser analizados son individuos, grupos y
representaciones de las organizaciones científicas, no experimentales
97
dirigidas a descubrir relaciones e interacciones entre variables
sociológicas, psicológicas y educativas en estructuras sociales reales
y cotidianas.”57
5.3. DISEÑO DE LA INVESTIGACIÓN
El presente proyecto se ha enfocado en diseñar una solución para una
población específica de acuerdo a unas necesidades y a unos
lineamientos establecidos en cuanto a recursos y objetivos. Además,
el diseño se revisa de tal forma que se encuentre su viabilidad en los
aspectos técnicos y económicos para las empresas.
Dado lo anterior, la investigación realizada es de tipo documental,
teniendo en cuenta que se ha realizado la revisión de las diferentes
propuestas existentes para llegar una solución del problema
planteado, además de generar una descripción del proceso que se
debe llevar para la implementación de dicha solución. Los resultados
que se obtienen no son considerados como puramente
experimentales debido a que se toman como base cálculos
aproximados derivados de la observación del comportamiento de
algunos de los elementos del clúster propuesto. La razón de realizarlo
de dicha manera y no sobre un clúster completo es que no se cuentan
con los recursos técnicos y materiales suficientes para poder generar
la información necesaria y completa con la rigurosidad del método
experimental puro.
Además la naturaleza del clúster (heterogéneo con computadores
dados de baja) involucra una gran cantidad de variables que resultan
más que complicadas y difíciles de medir en el alcance del presente
proyecto.
5.4. POBLACIÓN
Para realizar el presente proyecto se construido un escenario base a
partír de la observación de 5 casos específicos (5 empresas), de las
cuales se ha podido obtener información importante sobre parte de
su infraestructura tecnológica (la que aplica para los fines de este
57 COLABORADORES DE WIKIPEDIA. Investigacion. Wikipedia. http://es.wikipedia.org/wiki/Investigaci
%C3%B3n#Tipos_de_investigaci.C3.B3n
98
proyecto), el manejo que le dan a los computadores que no estan
activos dentro de la organización, etcétera.
Aunque dichas empresas no representan una muestra significativa
que permita trabajar de forma estadística, si han entregado un
escenario báse para el proyecto, el cual puede aportar a futuros
trabajos y
puede ser complementando mediante estudios
posteriores.
5.5. SELECCIÓN DE LA SOLUCIÓN CLÚSTER
A partir del análisis teórico de las diferentes opciones disponibles para
realizar el diseño de un clúster se ha llegado a la selección de un
paquete de software tomando como base los siguientes criterios:
1. Tipo de clúster: Dado que se busca trabajar con un sistema que
actué como una sola máquina frente a aplicaciones cotidianas,
es necesario que la solución actué como un sistema de tipo SSI
(Imagen Única del Sistema o Imagen Simple del Sistema).
2. Tipo de Licenciamiento: En busca de ofrecer una solución
razonable para las empresas se debe encontrar un paquete de
software con licencias asequibles para las organizaciones
(económica y técnicamente posibles).
3. Vigencia: Se necesita de una opción que continué vigente y
actualizada, que haga uso de características recientes de los
recursos de software y hardware que se pueden encontrar en
este momento.
5.6. ANÁLISIS DE DATOS
Los datos que se recopilan se obtienen del análisis teórico a partir del
diseño propuesto como solución para las empresas y de la revisión de
los siguientes aspectos:
•
Medidas tomadas
(Servidor).
a
partir
•
Medidas tomadas a partir de la mínima unidad que compone un
clúster (en este caso un nodo representado por un computador
99
de
un
sistema
convencional
de características acordes a las de una máquina dada de baja).
•
•
•
Medidas a partir de un ordenador convencional y actual.
Datos teóricos
funcional58.
a
partir
de
un
clúster
implementado
y
5.7. VARIABLES
Existen dos variables básicas a analizar en el presente proyecto:
•
Capacidad de procesamiento calculada del clúster.
•
Costo de la implementación del clúster.
Tabla 4. Variables
Variable
Capacidad
procesamiento
Costo
Dimensiones
Indicador
de Capacidad
teórica
y Medida
en
Mflops
calculada de procesamiento (Millones de cálculos de
del sistema a evaluar.
coma flotante por segundo)
Cálculo de los gastos Valor en pesos.
generados
por
la
implementación
del
sistema.
Fuente: Propia
Para tener una visión más adecuada sobre lo que puede ofrecer una
solución clúster, las anteriores variables son comparadas con una
solución convencional (servidor).
5.8. FACTIBILIDAD DEL PROYECTO
El presente trabajo se considera factible toda vez que se esta
generando una solución que aportaría a los aspectos económicos de
58 Este tipo de clúster se encuentran en centros de investigaciones y universidades en diferentes partes
del mundo. Los datos que se muestran son los revelados por los propietarios de dichos sistemas.
100
la empresa, ambientales (manejo de residuos tecnológicos) y sociales
de la región. Además la información recopilada se obtiene de los
diferentes proyectos y estudios realizados previamente por
Universidades, grupos y empresas de software, entre otros, además
del análisis realizado a partir de los elementos disponibles en el
desarrollo de este proyecto.
Además, aunque algunos de los datos son calculados y estimados a
partir de otros obtenidos por diferentes fuentes, la información
tomada como base se considera apropiada y seria para los fines del
proyecto, tanto de la investigación propia como la de otras personas y
organizaciones relacionadas con el tema.
5.9. CONSIDERACIONES ÉTICAS
Los autores del presente proyecto se han comprometido a no hacer
de conocimiento público la información suministrada por las empresas
y que es considerada como sensible para sus intereses particulares.
Igualmente, y en el caso que sea requerido, se garantizó el acceso a
los resultados obtenidos de la investigación a las entidades que
aportaron su información para el desarrollo de este proyecto.
En general se buscó respetar en su totalidad los derechos de autor al
momento de presentar información obtenida a partir de otros autores
y organizaciones, citándolos y/o referenciandolos cuando fue
necesario.
101
6. DISEÑO DE CLÚSTER CON EQUIPOS NO USADOS
6.1. EQUIPOS
Teniendo en cuenta el propósito del presente proyecto, el diseño de
un clúster se dirige a un conjunto heterogéneo de equipos, la mayor
parte de ellos con un tiempo de uso relativamente alto y que en la
actualidad pueden haber sido descartados o reemplazados por
computadores de mayores prestaciones. No obstante una empresa
puede destinar algunos ordenadores “actuales” para que cumplan
tareas como aquellas relacionadas con la administración del sistema,
para agregar mayor poder al mismo, o en casos en los que dichas
máquinas venían cumpliendo un papel como servidores de archivos u
otro tipo y se desea integrar al clúster por diferentes motivos.
El tener un grupo heterogéneo implica que los equipos tendrán
diferentes características, desde el tipo de procesador que usan hasta
la cantidad de disco duro o memoria de la cual disponen, y en
algunos casos la versión del kernel e incluso del sistema operativo
Gnu\Linux con el cual cuentan.
6.1.1. Elementos Básicos59
6.1.1.1 Tarjeta Madre
En que todo ordenador, incluyendo
los servidores que comparten prácticamente todos los componentes,
una de las partes básicas es la tarjeta madre o main-board,
dispositivo que conecta todos los otros elementos de la máquina,
sirviendo además de puente de comunicación entre ellos.
La main-board puede ser clasificada según la disposición de los
componentes, ya sea integrada, en la cual las diferentes tarjetas,
como la de sonido, video o red están integradas a la tarjeta, o la no
integrada en la cual esos elementos se conectaban mediante slots .
59 Esta es una visión general de un ordenador, algunos de los componentes son fundamentales en un
clúster, mientras otros no, lo cual depende de factores como el fin con el cual se construye el clúster,
el tipo de clúster a implementar, etcétera. La información publicada en este capítulo proviene de
diversas fuentes, desde las de fabricantes de componentes hasta diferentes enciclopedias.
102
Figura 22. MSI K8 Master3-133-FA4R
Fuente: www.msicomputer.com
6.1.1.2. Memoria RAM
La memoria RAM (Random Access
Memory o Memoria de Acceso Aleatorio) o memoria principal es una
parte fundamental en el ordenador, la cual contiene los datos sobre
los cuales trabaja u opera el procesador, donde se guardan los
resultados y se cargan las aplicaciones que se están ejecutando. Es
además una memoria rápida, de acceso aleatorio pero volátil, es
decir, en cuanto se desconecta de la fuente de energía se pierde la
información contenida en ella.
Figura 23. Memoria Kingston KVR533D2E4/1G
Fuente: http://www.ec.kingston.com
103
•
SDR SDRAM
(Single Data Rate Synchronous Dynamic
RAM) Es una memoria síncrona presentada en módulos DIMM
de 168 contactos y con velocidad de acceso entre 10 y 25 ns.
Usada en Pentium II y III, AMD K6, Ahtlon K7 y Durón.
•
DDR SDRAM
(Double Data Rate SDRAM) Al igual que la
SDR se trata de una memoria sincrona presentada en módulos
DIMM de 184 contactos. Trabaja a doble velocidad de del bus
del sistema.
•
DDR2 SDRAM Es una mejora a las memoria DDR,
presentada en módulos DIMM de 240 contactos y con el doble
de frecuencia del buffer de entrada/salida con respecto al
núcleo.
•
RDRAM
(Rambus DRAM) Es
un tipo de memoria
desarrollada bajo protocolo propietario, de alta gama pero poco
uso debido a las regalías que deben ser pagadas por su uso.
En algunos tipos de memoria se hace uso de módulos ECC ()
diseñados para la corrección de errores, razón por la cual son una
alternativa muy usada en memoria RAM para servidores.
6.1.1.3. Procesador El procesador al cumplir el papel de cerebro
del ordenador constituye un elemento muy importante en el conjunto,
encargándose de ejecutar las instrucciones y procesar los datos que
se usan. Desde hace ya un tiempo se vienen viviendo una serie de
cambios en los procesadores, lo cual les ha permitido mejorar
notablemente; dichos cambios no están reflejados en la velocidad o la
cache del componente, sino en la cantidad de núcleos que posee. Es
importante tener en cuenta que hablar de un procesador de múltiples
núcleos no es igual a un sistema multiprocesador, dado que en el
primero cada uno de los núcleos o cerebros se encuentra en el mismo
chip, compartiendo recursos, mientras que en el segundo caso cada
elemento es independiente físicamente y en el uso de sus recursos.
104
Figura 24. Procesador Thurion
Fuente:
http://64-bit-computers.com/wpcontent/amd_turion_64_x2_image.jpg
6.1.1.4. Disco Duro El disco duro o almacenamiento secundario (el
primario es la memoria RAM como se explico anteriormente)
constituye el lugar donde se almacenan los datos de forma
permanente. El acceso a los datos en ellos no es tan rápido como en
las memorias RAM, sin embargo la relación entre capacidad-precio es
mucho mejor teniendo capacidades mayores incluso a 1 TeraByte.
Figura 25. Disco Duro
Fuente: http://dragonsystem-web.com/catalog/images/DISCO.jpg
105
•
Clasificación según tipo de conexión
•
IDE
(Integrated Device Electronics) y
ATA
(Advanced Technology Attachment) es la forma como se
definen los puertos encargados de controlar los
dispositivos de almacenamiento en un ordenador, como
discos duros, unidades de CD-ROM, etcétera. En este
sistema el controlador del dispositivo se encuentra
integrado en el mismo.
Aunque inicialmente se encontraba en los computadores
como una tarjeta de expansión, con el transcurrir del
tiempo se ha integrado a la main-board, formando dos
conectores por medio de los cuales un número máximo de
4 dispositivos eran conectados en dos configuraciones:
•
Maestro Era la configuración de los discos por
defecto, es decir, en una máquina con un solo disco
duro, este era configurado como máster. Además el
disco que ocupaba esta posición en el IDE 0 o
conexión primaria es el que contiene el sistema
operativo y la secuencia de arranque.
•
Esclavo
Configuración usada cuando existían dos
discos duros en el equipo (o 4 discos, repitiéndose
la configuración en la conexión secundaria o IDE 1).
Adicionalmente
características:
se
pueden
mencionar
las
siguientes
•
No admite conexión en caliente .
•
Presenta 40 pines, además de usar un cable plano
de 40 lineas.
•
Disco Interno de Tipo Masivo.
•
Las versiones varían desde ATA 1 hasta ATA 7
(conocido como ATA Ultra/133) que soporta
velocidades de transferencia de 133 Mb/s.
106
•
•
Solo puede ser usado uno de los dispositivos
conectados a un puerto IDE a la vez..En algunos
casos ni un disco del otro IDE puede ser usado.
•
Su costo es más bajo que los discos SCSI, aunque
sus prestaciones son menores.
SCSI (Small Computers System Interface) Esta interfaz
se usa para la transferencia de datos entre los
dispositivos del bus de la computadora. Sin embargo no
es exclusivo de los discos duros, sino que también puede
encontrarse unidades de CD, DVD y scanners. siendo muy
popular además en estaciones de alto desempeño,
servidores y dispositivo de gamma alta.
Entre sus características se encuentra:
•
•
Uso de CCS
o Command Comon Set. Esto le
permite tener a disposición una serie de comandos
y/o acciones en las cuales no tiene que participar el
procesador.
•
Conexión de dispositivos en paralelo (SCSI 1,2 y
3.1), y en serie (SCSI 3.2, 3.3, 3.4).
•
Alcanza velocidades de transferencia de hasta 320
MB/s.
•
Se presentan en bus de 8 bits (Cable de 50 pines) y
de 16 bits (Cable de 68 pines).
•
Un cable de 8 bits admite hasta 7 dispositivos físicos
(8 con el propio adaptador SCSI), mientras que uno
de 16 bits permite conectar 16 dispositivos .
SATA(Serial ATA) El SATA es un tipo de interfaz que ha
reemplazado IDE o ATA, permitiendo la transferencia de
datos entre un dispositivo y la placa madre, ofreciendo
mayores velocidades de transferencia y otras capacidades
que la hacen la más usada en los equipos actuales. A
107
continuación se señalan las características de este tipo de
interfaz:
•
•
Mayor Velocidad de Trasferencia, y mayor ancho de
banda.
•
Capacidad de conexión de dispositivos en caliente.
•
Velocidades de 150 MB/s y 300 MB/s (Para el
presenta año se espera un nuevo desarrollo SATA
con velocidades cercanas a los 600 MB/s).
•
Conexión punto a punto (conexión directa entre el
dispositivo y el controlador).
•
Controladores con 4 u 8 salidas.
•
Uso de cables para discos de 3.5 y 2.5 pulgadas. Se
tiene un cable de alimentación de 15 pines y uno de
señal
de 7 pines, con presentaciones más
compactas que los usados en IDE y SCSI.
•
Permite la escalabilidad RAID.
SAS (Serial Attached SCSI) Esta interfaz puede ser
considerada como la sucesora de SCSI, con una mejora
en la velocidad de transferencia, capacidad de conexión y
desconexión de dispositivos en caliente y mayor cantidad
de dispositivos conectados. Presentan las siguiente
características:
•
Manipulación en Caliente de los dispositivos.
•
Uso del conector de la interfaz SATA. Se pueden
usar discos SATA en controladores SAS, pero no al
contrario.
•
Ancho de banda de 3.0 GB/s
•
Admite 128 dispositivos, sin embargo con
expansores de puerto podría admitir más de
16.000.
108
•
•
Soportan comandos etiquetados en cola.
•
Soporte para discos duros, impresoras, scanners,
entre otros.
•
Usado en servidores de aplicaciones críticas.
•
Mejor recuperación de errores y generación de
reportes en comparación con SATA.
•
Cables de hasta 8 metros de largo.
•
Capacidad máxima de almacenamiento de 450 GB.
•
Se realizan operaciones por hardware, generando
menos carga para la CPU.
Concepto de Redundancia En informática el concepto de
redundancia a aquellos sistemas capaces de repetir
información, datos e incluso hardware involucrados en procesos
críticos, de tal forma que se tenga una alternativa viable antes
un posible fallo de algún componente. Es así como se habla de
discos redundantes, sistemas de disipación de calor, sistemas
eléctricos,etcétera.
En el caso de los discos duros se conoce como sistemas RAID ,
sistema en el cual un conjunto de discos se comportan como
uno solo de forma lógica, sobre los cuales se distribuyen y
replican los datos, con las siguientes ventajas:
•
Alta disponibilidad: debido a la dedicación de parte de los
recursos de una unidad de disco a la redundancia de
datos,
•
Mayor Tolerancia a Fallos: el fallo de uno de los discos no
significara la caída del servidor completo, como sucedería
si se usara un solo dispositivo.
•
Altas Prestaciones:
Permite una mayor cantidad de
operaciones debido a la posibilidad de peticiones
simultaneas de recuperación/almacenamiento de los
109
datos.
•
Bajo Costo: Usa discos convencionales o estándar del
mercado.
•
Al momento de sustituir un disco defectuoso el sistema es
realizada la reconstrucción de los datos a partir de la
información almacenada.
Existen diferentes niveles de redundancia que permiten
aprovechar determinadas características en cuanto a la
disposición de los discos duros; esta son:
•
Nivel 0: Es el primer nivel del sistema RAID, el cual no
incorpora redundancia de datos, pero si mejora el
rendimiento al hacer uso de la distribución equitativa de
los datos en segmentos transferidos a diferentes unidades
de disco. Sin embargo la fiabilidad en este sistema no es
buena, dado que al faltar la redundancia de datos, si uno
de los discos falla se perderá un segmento de información
importante.
Figura 26. Raid Nivel 0
Fuente: http://www.broadberry.co.uk
Por sus características es
servidores NFS y de juegos.
110
ampliamente
usado
en
•
Nivel 1: Configuración de discos espejo, en el cual los
datos son copiados de forma exacta en dos o más discos.
Esta configuración mejora la fiabilidad de los datos,
aunque los costos son mayores debido a la duplicación de
los discos que permita tener uno de datos y otro de
réplica.
Figura 27. Raid Nivel 1
Fuente: http://www.broadberry.co.uk
•
Nivel 2: En el Raid 2 los datos son divididos a nivel de
bits y no de bloques , usando código de Hamming para la
corrección de errores. Sin embargo la cantidad de discos
necesarios para su implementación ha hecho que sea muy
poco usado, dado que para un grupo de 10 discos se
necesita de 4 discos extra, para uno de 25 serian 5
extras, y así sucesivamente.
Figura 28. Raid Nivel 2
Fuente: http://www.broadberry.co.uk
111
•
Nivel 3: En este nivel la división de datos se hace a nivel
de datos y la redundancia se asegura guardando la
información de paridad en una única unidad dedicada.
Para almacenar la información esta es dividida en
fragmentos y enviada a los discos en paralelo, mejorando
la velocidad de transferencia, y haciéndolos útiles para
servidores que necesitan de transferencia de ficheros
grandes, pero no para aquellos en los cuales existe una
gran cantidad de operaciones de lectura y escritura, dado
que esta acción obliga a la activación a todos los discos
del conjunto.
Figura 29. Raid Nivel 3.
Fuente: http://www.broadberry.co.uk
•
Nivel 4: Usa división de datos en bloques distribuidos en
un grupo de discos y un disco de paridad dedicado,
necesitando un mínimo de 3 discos y se presenta como
una mejor alternativa para los el nivel 2 para pequeños
bloques de datos.
Raid 4 tiene acceso paralelo al array de discos (no
simultaneo), las operaciones de escritura es secuencial y
la de lectura en paralelo.
112
Figura 30. Raid Nivel 4.
Fuente: http://www.broadberry.co.uk
•
Nivel 5: En este nivel las unidades de disco actúan de
forma independiente, con una mejora del tiempo de
acceso debido a que cada unidad esta en capacidad de
atender sus propias operaciones de lectura y escritura.
Sin embargo, en este caso, no existe una unidad de
paridad puesto que información se distribuye entre todos
los discos, además de realizar la división de datos a nivel
de bloques.
Su bajo coste en redundancia ha provocado que su uso
sea muy popular, además de mejorar el rendimiento en
aplicaciones en las cuales se realizan búsquedas
aleatorias de ficheros pequeños (transaccionales).
También ofrece la posibilidad de soportar múltiples
operaciones de escritura, lo cual representa un
inconveniente para este sistema debido a que ante una
gran cantidad de operaciones escritura el rendimiento se
vera bastante afectado. En compensación las operaciones
de lectura pueden seguir ejecutándose mientras se
realizan las de escritura, lo cual hace a Raid 5 un sistema
apropiado cuando el número de operaciones de lectura es
mayor al de escritura.
113
Figura 31. Raid Nivel 5.
Fuente: http://www.broadberry.co.uk
•
Nivel 6: Constituye una ampliación del nivel 5 con un
nivel más de discos (bloque de paridad), dividiendo los
datos a nivel de bloque y distribuyéndolos
(los dos
bloques) entre todos los discos.
Figura 32. Raid Nivel 6
Fuente: Fuente: http://www.broadberry.co.uk
Igual que en el nivel 5, las operaciones de escritura
representan un inconveniente que no es posible ignorar
debido a la gran cantidad de operaciones de
sincronización entre las unidades y los cálculos de
paridad. No es bueno usarlo con una cantidad pequeña de
114
discos.
•
Niveles 5E y 6E: Variantes de Raid5 y 6 que incluyen
discos de reserva, ya sea en hot spare (conectados y
preparados) o en standby spare (espera). Permiten una
mejora en cuanto al tiempo de reconstrucción o en
administración cuando se produce un fallo.
•
Nivel 7: Similar al nivel 4, excepto que la lectura y
escritura se realizan de forma asíncrona y esta
centralizada sobre un cache vía bus de alta velocidad. Sin
embargo aunque su velocidad de transferencia es alta, la
fiabilidad no lo es.
•
Nivel 10: Los niveles adicionales que se explican se
consideran como anidados, en el cual un nivel sirve como
elemento básico de otro. El primero de ellos es el Raid 10
(Raid 1 + 0), considerado como una división de espejos,
en el cual primero se organizan los datos con sus espejos
(Nivel 1) para luego realizar la división de la información
tal como se hace en el nivel 0. Usado para bases de datos
de altas prestaciones.
•
Nivel 01: Este nivel (Raid 0+1) considerado como un
espejo de divisiones es usado para replicar y compartir
datos entre varios discos. De esta forma los datos se
dividen entre dos discos (Raid 0), a partir de los cuales se
generan los espejos (Raid 1). Es una de las
configuraciones más habituales en las empresas, sin
embargo se buscan otras opciones.
•
Nivel 30: Combinación del nivel 3 y el 0, es decir, se usa
un disco de paridad y los datos son distribuidos según el
nivel 0.
•
Nivel 100: Consiste en la agrupación del nivel 10 más un
nivel 0 adicional, de tal manera que se da una nueva
división de los conjuntos existentes en el nivel 10. Usado
en bases de datos de gran tamaño.
•
Nivel 50: Combinación de la la paridad distribuida del
nivel 5 con la división a nivel de bloques del nivel 0.
Usado en sistemas que necesitan una alta tolerancia a
115
fallos, capacidad y
búsqueda aleatoria.
rendimiento
en
operaciones
de
6.1.1.5. Tarjeta de Red: Una tarjeta de red es el componente que
comunica el servidor con los clientes, ofreciendo velocidades
10/100/1000 Mbps . Las NIC como también se conocen a estos
dispositivos, se incluyen dentro del concepto de redundancia,
mencionado anteriormente en los discos duros. Por ello es normal
que los servidores cuenten con dos de estos elementos, ya sea para
evitar problemas en caso de fallo o para usar varias como un solo
dispositivo cuya capacidad sera la suma de los componentes.
Figura 33. Tarjeta de Red.
Fuente:
http://www.teknologia.cl/tienda/images/subcategoriastarjetasdered.jpg
6.2. REDES
Para los sistemas clúster reviste gran importancia el tema de las
redes puesto que es el medio por el cual los nodos podrán
comunicarse, intercambiar información, etcétera. También hay que
tener en cuenta que si falla la red entonces el clúster deja de existir,
pues no se cumple con una de las condiciones : “Los nodos no
pueden estar aislados, deben estar comunicados de alguna forma.”60.
Por otro lado, si no se pueden comunicar, tampoco pueden cooperar
entre si, lo cual es uno de los objetivos de un sistema clúster.
Una red puede ser definida, en términos informáticos, como un
conjunto de equipos conectados por diferentes medios que comparten
información y recursos. Los equipos son muy variados e incluyen
computadores (personales, portátiles), servidores, impresoras, entre
60 Para mas información remitirse al capítulo número dos (2)
116
otros; los medios de conexión tambien varian, e incluyen los físicos
como cables UTP hasta los inalámbricos.
6.2.1. Clasificación Las redes pueden ser clasificadas de
diferentes formas según las características por medio de las cuales se
desean agrupar, como el medio que usan, el alcance, etc.
6.2.1.1. Alcance
Implica el área geográfica en el cual se
encuentra implementada la red, la cual puede ser muy pequeña
(PAN) o muy grande (WAN)
•
Red de Área Personal (PAN)
•
Red de Área Local (LAN)
•
Red de Área de Campus (CAN)
•
Red de Área Metropolitana (MAN)
•
Red de Área Amplia (WAN)
6.2.1.2. Método de conexión
Existen diversos
conexión enmarcados en dos clases específicas:
•
Guiados
•
No guiados
métodos
de
6.2.1.3. Relación funcional
De acuerdo a la forma en que se
comuniquen o se relacionen los nodos de la red, se pueden encontrar
dos tipos:
•
Cliente-servidor
•
P2P
6.2.1.4. Topología
La topología indica la forma física en la cual se
ha construido la red estudiada, la cantidad de conexiones o la forma
117
de las mismas.
•
•
Estáticas
•
Bus
•
Estrella
•
Anillo
•
Malla
•
Árbol
•
Sistólica
•
Totalmente conectada
•
Hipercubo
Dinámicas
•
Mono-etapa
•
Múlti-etapa
6.2.1.5. Direccionalidad
•
Simplex
•
Half-Duplex
•
Full-Duplex
6.2.1.6. Acceso
•
Red Pública
•
Red Privada
118
6.2.1.7. Jerarquía
•
Red Centralizada
•
Red Distribuida
6.2.2. Diseño de la Red 61
Como se ha mencionado uno de
los elementos más importantes en un clúster es la red, y claro, su
diseño, de tal manera que entregue las mejores prestaciones al
sistema en general. Además un buen diseño de la red permitirá que:
•
El coste de la instalación y ampliación del sistema no sea
excesivamente costoso debido a malos diseños y modificaciones
futuras.
•
Mejor control de colisiones y/o congestión de la red.
•
Mejor comunicación entre el sistema, que sea el adecuado para
el nivel de acoplamiento que se presente en el clúster.
Para lograr un buen diseño se deben tener en cuenta varios factores
que permitan tomar las decisiones adecuadas,que además es por eso
que se presentan a continuación algunas de los más importantes,
señalados en la documentación de instalación del sistema openMosix;
esto no significa que sean los únicos ni que sean inmodificables en
cuanto a prioridad o importancia, sin embargo por el “parentesco”
entre openMosix y MOSIX, se consideran aplicables para los fines de
este proyecto:
1. Funcionalidad del Sistema
La
funcionalidad
del
sistema
implica conocer la idea general de lo que el clúster hará, que servicios
deberá correr y que factores externos lo pueden afectar. Por ejemplo
es importante saber cuanto va a ser el uso que hará cada aplicación
de la red, que tantas solicitudes se harán a los servicios, entre otros.
2. Factores técnicos de cada servicio
Al conocer al sistema
en general es necesario entrar en detalle para cada servicio y su
funcionalidad con respecto a la red, saber cual es la prioridad que
tiene el servicio tanto en el sistema como en la red, cuales son sus
funciones, cuanto carga el sistema y la red y como es la
61 CATALAN, Miquel. El manual para el clustering con openMosix.
119
comunicación.
Definir los factores anteriores, especialmente los que provienen de
cada servicio, puede resultar un trabajo complicado, especialmente si
no se tiene una experiencia amplia en la implementación tanto de un
clúster o cualquier otro sistema distribuido como de los servicios que
se desean usar, es por ello que se es importante realizar pruebas en
entornos adecuados para la simulación, lo cual permitirá tener una
idea más clara acerca del comportamiento que se puede esperar en
un entorno de producción.
3.Recursos disponibles Al conocer las necesidades de los servicios y la
carga que van a generar sobre el sistema, el siguiente paso es saber
con que recursos se cuenta para responder a dichas necesidades,
cómo se deben separar o agrupar los recursos, según los casos
específicos, que recursos se destinan a determinado servicio,
etcétera. Dado lo anterior es importante tener en cuenta:
• Que recursos hay disponibles, como ordenadores o nodos,
enrutadores, impresoras, etcétera.
• Hasta cuanta carga puede llegar cada servicio con los recursos
disponibles.
• Equilibrar la carga según la prioridad, los servicios y los recursos
disponibles.
6.3. SELECCIÓN
CLÚSTER
DE
HARDWARE
Y
DISEÑO
FÍSICO
DEL
La selección de hardware para el diseño de un clúster con equipos
dados de baja esta ligada a la disponibilidad de las empresas de la
región, según la información recopilada de las empresas y mostrada
en capítulos anteriores. Otro aspecto importante es el hecho que el
clúster se plantea con equipos heterogéneos, lo cual no permite dar
un concepto general sobre el tipo de ordenadores a usar, a excepción
de las características básicas para cada nodo:
120
Tabla 5. Características básicas de los nodos
Elemento
Capacidad mínima
Cantidad
Procesador
400 Mhz
1 o más
Memoria RAM
64 MB
1 o más
Monitor
NA
162
Tarjeta de Red
10 Mbps
1 o más
Disco Duro
20 Gbytes
1 o más63
Unidad de CD
NA
164
Dispositivos de entrada NA
(Ratón y Teclado)
165
Fuente: Propia
Al contar con la únidad básica de un clúster (nodo) definida bajo
unas características mínimas66 establecidas a partir de las
necesidades técnicas o requerimientos mínimos necesarios para la
instalación del sistema operativo, los aplicativos básicos y el software
Kerrighed, el siguiente paso esta en definir la forma en que los nodos
se conectaran entre si.
Para el presente proyecto se propone un enfoque simple y básico
mediante una topología tipo estrella, la cual es la más común y
además utiliza la tecnología básica de red que se puede encontrar en
los computadores (Ethernet por lo general).
Algunas variantes aplicadas a una red tipo estrella permiten agregar
ciertas características, como la redundancia en la conexión o la
inclusión de un nodo maestro, con lo cual se obtienen resultados
distintos en la forma en que se conectan y administran los nodos. Las
62 Para el nodo maestro para la instalación.
63 La cantidad de discos duros depende de factores como el método de instalación, el tipo de servicios a
ofrecer, etcétera. Sin embargo, para el nodo maestro (aquel sobre el que se instala el sistema
operativo y kerrighed) se necesita al menos un disco duro sobre el cual realizar la instalación de los
paquetes básicos (a excepeción de un diseño mediane LiveCD).
64 Para la instalación del sistema operativo
65 Para la instalación del sistema operativo y aplicaciones, además de la configuración.
66 En una implementación real dichas características variaran dependiendo de los recursos disponibles,
contituyendo un sistema clúster heterogeneo.
121
figuras 40 a 43 muestran diferentes configuraciones de red, desde la
más simple (Estructura física sin redundancia de red ni nodo maestro,
la cual es usada en el presente proyecto con el fin de probar el
proceso de instalación del software kerrighed y validar su
funcionamiento) hasta una en que se hace uso de redundancia y la
selección de un nodo maestro.
Figura 34. Estructura física sin redundancia de red ni nodo maestro
Fuente: Propia
Figura 35. Estructura física sin redundancia de red con nodo maestro
Fuente: Propia
122
Figura 36. Estructura física con redundancia de red sin nodo maestro
Fuente: Propia
Figura 37. Estructura física con redundancia de red con nodo maestro
Fuente: Propia
6.4. SISTEMA OPERATIVO
6.4.1. Instalación del Sistema Operativo Debian Gnu/Linux es
un sistema operativo libre y gratuito, que puede ser descargado
123
desde la página www.debian.org, con soporte para múltiples
plataformas y una gran cantidad de paquetes disponibles, además del
soporte de miles de usuarios a nivel mundial.
Aunque cualquier distribución Gnu\Linux puede ser usada para la
implementación del clúster, las razones de selección de esta
distribución en particular son las siguientes:
Tabla 6. Motivos de selección
Motivo
Descripción
Estabilidad
Debian Gnu\Linux es una de las
distribuciones
más
estables
debido al nivel de pruebas que se
hace a sus paquetes antes de la
publicación final.
Instalación
El método de instalación permite
tener un sistema operativo básico
según
las
necesidades,
eliminando
elementos
innecesarios
como
interfaces
gráficas de usuario y otros.
Soporte
Existe
una
gran
comunidad
alrededor
de
este
sistema
operativo, una gran cantidad de
documentación y un número
importante de paquetes para
instalar.
Además
Debian
Gnu\Linux
provee
un
gran
soporte
para
hardware
y
software.
Configuración
Otra
característica
de
esta
distribución es su alta capacidad
de
configuración
y
personalización.
Experiencia
Para los integrantes del proyecto
es familiar esta distribución, lo
cual hace más sencillo el proceso
de instalación y configuración.
Fuente: Propia
124
No obstante, y como se menciono anteriormente, cualquier otra
distribución puede ser usada y configurada según las necesidades
específicas de la organización en la cual se implementa el clúster.
Para este proceso de instalación se ha descargado la versión Debian
Gnu/Linux 5.0 (conocida con el nombre Lenny) para procesadores
AMD 64, sin embargo el proceso es básicamente el mismo para otros
tipos de procesadores, igualmente se necesita una configuración
previa en caso de usar sistemas RAID.
6.4.1.1. Consideraciones previas
Antes de iniciar con la
instalación se deben tener en cuenta algunas consideraciones que
permitirán preparar el computador para recibir el sistema operativo y
evitar algunos inconvenientes que se puedan presentar durante el
proceso.
•
Preparación del disco duro: Para Debian Gnu/Linux se debe
tener como mínimo una capacidad de 1 GigaByte en
instalaciones sin escritorio (como la que se realiza comúnmente
en servidores) o de 5 GigaByte si se hace uso de sistemas de
escritorio, como el caso de equipos personales.
Es además necesario tener un sistema de particiones67 en los
cuales se distribuirá el sistema operativo, generalmente hecho
de la siguiente forma:
Tabla 7. Distribución de particiones recomendada
Partición
Sistema
Archivos
Espacio
mínimo
Espacio
Recomendado
Raíz (/)
Ext 3
200 MBytes
2 GBytes
67 Particiones: Las particiones consisten en la división lógica de uno o más discos duros en porciones
debidamente identificadas y preparadas con su correspondiente formato. Las razones por las cuales
se realizan particiones en un disco duro son las siguientes:
•Especificar donde se guardara la información.
•Evitar daño total en caso de corrupción de unidad.
•Mejorar desempeño de disco duro.
•Limitar tamaño de carpetas de usuarios y servicios, evitando la saturación.
125
Partición
Sistema
Archivos
Espacio
mínimo
Espacio
Recomendado
Intercambio
Swap
512 MBytes
Doble
de
la
capacidad de la
memoria
RAM
hasta 1 o 2
Gbytes
Usr
Ext 3
1.5 GBytes
5 Gbytes o más
Var
Ext 3
500 MBytes
2 Gbytes
Tmp
Ext 3
100 Mbytes
Hasta 4 GBytes
Home
Ext 3
Espacio
Sobrante
Espacio
Sobrante
Boot
Ext 3
16 MBytes
100 MBytes
Var\Log68
Ext 3
Fuente: Propia
•
Sistema de Ficheros: Aunque en la tabla anterior se ha hecho
elección del sistema ext3 por ser el más usado y más
recomendado, existen muchos otros sistemas incluyendo Fat32
(vFat) o NTFS que pueden ser usados. Sin embargo para el
área de intercambio o swap solo se permite un sistema de
archivos especial para este tipo de partición, el cual en Debian
es llamado como zona de intercambio, en otros como swap.
•
Detección de Discos: Es importante tener en cuenta que el
reconocimiento de discos duros por cualquier distribución de
Gnu/Linux es diferente a la de los sistemas Microsoft u otros.
En Debian los discos se identifican por un conjunto de 3 letras
y números, siendo las dos primeras letras el identificador del
tipo de controladora o disco (hd para ide, sd para SATA y otros
tipos), la tercera letra corresponde a la controladora (a para la
primera controladora o conexión, b para la segunda, etcétera),
y los números definen la partición. Así por ejemplo un disco
duro IDE en la controladora 0 (Master en IDE 0) se conoce
como hda, si es como esclavo en la controladora 0 se tendrá
como hdb, y así sucesivamente, mientras que para un disco
68 Aún cuando existe una partición para Var, es recomendable crear una partición para var\log, que es
el lugar donde se almacenan los archivos log de los programas en el sistema.
126
SATA será sda, sdb, etcétera. Si se habla de la quinta partición
del disco máster se tendría hda5, para la segunda del disco
esclavo hdb5. También se ha determinado que las particiones
primarias estarán numeradas desde 1 hasta 4, mientras que las
lógicas o extendidas irán desde 5 en adelante.
•
Soporte de Hardware:
Aunque actualmente el soporte de
Debian Gnu/Linux en cuanto a hardware es bastante amplio, es
importante revisar las compatibilidades de hardware (se puede
revisar
en
www.debian.org),
además
del
correcto
funcionamiento de las tarjetas, revisar el estado del disco duro,
y si es el caso, revisar problemas que se puedan presentar si
existen otros S.O. instalados en la misma máquina.
•
Respaldo de Información:
Si es el caso, y existe información
importante en el ordenador sobre el cual se realizará la
instalación, es debido crear una copia de respaldo de los datos.
6.4.1.2. Instalación69 A continuación se dan los pasos en la
instalación del sistema operativo Debian Gnu/Linux en un ordenador
que operará como nodo del clúster. El tipo de instalación que se
muestra es básico, solo se instala el sistema base para que de ahi en
adelante se agregue lo que el sistema necesita, de esta forma se
consigue un Sistema Operativo más liviano y rápido sin estar cargado
de servicios y aplicaciones innecesarias, algo importante si se tiene
en cuenta que se instalar sobre equipos de prestaciones bajas.
Primer paso: Descargar la imagen .ISO correspondiente a la versión
de Debian Gnu/Linux que se desea instalar. Para el caso de la última
versión estable (5.0) se puede usar el link http://gensho.acc.umu.se/
debian-cd/5.0.0/i386/iso-cd/debian-500-amd64-netinst.iso70, donde
amd64 puede ser reemplazado por la arquitectura71 sobre la cual se
desee instalar. Se debe tener en cuenta que la grabación del archivo
descargado debe ser hecho como copia de imagen a CD y no intentar
descomprimirlo y grabarlo como CD de datos, con lo cual su
funcionamiento no será correcto y no se podrá llevar a cabo la
instalación. También es importante señalar que la imagen que se
69 En base al método de instalación para Debian Gnu\Linux presentado en Instalación de Debian en
uLibertad. http://ulibertad.wordpress.com/instalacion-de-debian/
70 La versión varia según las preferencias y el hardware existente, incluso el tipo de instalación podria
ser diferente y más simple según el nivel de experiencia con sistemas operativos Gnu\Linux.
71 Arquitecturas soportadas: alpha, amd64, arm, arme, hppa, i386, ia64, mips, mipsel, powerpc, sparc.
127
descarga mediante el enlace anterior es para una versión mínima
para instalación por red, de aproximadamente 180 MB, sin embargo
el sistema completo (con todos los paquetes) esta contenido en
aproximadamente 14 CD's, y la elección de cuales descargar depende
de las necesidades o tipo de conexión que se tienen para llevar a
cabo esta tarea.
Segundo paso: Configurar el arranque del ordenador por CD, esto
se hace modificando el setup de la máquina y seleccionando como
primera opción de arranque la unidad de CD; para acceder a esta
opción existen varias formas según la máquina en la cual se haga,
siendo las más comunes pulsar la tecla Supr, F10 o F11 en cuanto se
enciende la computadora.
Tercer paso:
Después de la configuración del arranque del
sistema, haber insertado el medio en la unidad de CD y reiniciar la
máquina se tendrá una pantalla de bienvenida en la cual se podrá
ingresar alguna de las siguientes opciones:
•
F1: Para mostrar opciones de arranque y menú de ayuda.
•
<Enter>: Se teclea Enter para iniciar la instalación en modo
textual.
•
Installgui: Se digita dicho comando y se oprime Enter para
iniciar la instalación en modo gráfico.
De los anteriores se recomienda la opción de instalación en modo
gráfico, especialmente para las personas que no tienen experiencia
en sistemas Gnu/Linux.
128
Figura 38. Pantalla de bienvenida instalación de Debian Gnu/Linux.
Fuente: Propia
Cuarto paso:
El cuarto paso corresponde a la instalación del
sistema base, el cual viene dado por los siguientes procesos:
•
Seleccionar el Idioma: Se puede seleccionar el idioma entre la
lista de los soportados por Gnu/Linux. En este caso se elige
Español.
129
Figura 39. Selección de Idioma.
Fuente: Propia
•
Seleccionar País o Región: Se selecciona el país en el cual se
esta realizando la acción, esto es importante para formatos de
números, moneda, fechas, etcétera.
Figura 40. Selección de País.
Fuente: Propia.
130
•
Selección de localización:
configuración de idioma.
Corresponde
a
parámetros
de
Figura 41. Selección de localización.
Fuente: Propia
•
Soporte a otros idiomas:
En caso de ser necesario es
posible ofrecer soporte para otros idiomas. En este caso no se
ha seleccionado ninguno adicional.
Figura 42. Soporte para otros idiomas.
Fuente : Propia
131
•
Elegir distribución de teclado: Se procede a seleccionar la mejor
distribución para el teclado del ordenador; para este región se
usa el “latinoamericano”.
Figura 43. Selección de teclado
Fuente: Propia
•
Detección y montaje del CD: Se realizan acciones automáticas
encargadas de detectar el CD y montarlo adecuadamente para
continuar con el proceso de instalación. El sistema mostrará
una barra de progreso relacionada con la acción que se esta
llevando a cabo.
•
Carga de componentes del instalador:
Otro
proceso
automático en el cual como su nombre lo indica procede a
realizar la carga de los componentes necesarios para el proceso
de instalación.
•
Detección de hardware de red: En este proceso automático el
instalador detectará todas las tarjetas de red que se encuentran
en el ordenador (excepto las inalámbricas en la mayoría de los
casos).
132
•
Seleccionar Interfaz de Red:
De la lista que despliega
Debian Gnu/Linux de las tarjetas que el detecta como interfaces
de red (incluso puede detectar otras que no los son como
FireWire y listarlas) se selecciona la que se va a configurar para
la instalación. Si existen varias tarjetas, las demás serán
configuradas después.
Figura 44. Seleccionar interfaz de red
Fuente: Propia
•
Configuración de la red:
Dependiendo si la dirección ip se
asigna al ordenador mediante DHCP o no, este proceso se
ejecutará automáticamente
o manualmente. Aunque
generalmente se recomienda que la asignación de IP sea
manual (IP estática) para que la dirección del ordenador no
cambie con el reinicio de la máquina o el enrutador, también es
posible configurar el router para que siempre asigne la misma
dirección IP al computador basándose en su MAC, y así seguir
haciendo uso del sistema de IPs dinámicas.
En el caso de implementar direcciones fijas, entonces el instalador
solicitará la IP, la mascara de red y otro tipo de información que se
133
necesite para llevar a cabo el proceso.
Figura 45. Selección de método de configuración de red
Fuente: Propia
•
Colocar nombre a la máquina:
Cada ordenador puede ser
identificado por un nombre, que puede ser ingresado en esta
opción.
134
Figura 46. Dar nombre a la máquina.
Fuente: Propia
•
Colocar nombre de dominio:
Si se
dominio, entonces podrá ser ingresado
sistema lo guardara y lo utilizará
configuración. En caso contrario se deja
se continua con la instalación.
Figura 47. Determinar nombre de dominio
Fuente: Propia
135
tiene un nombre de
en esta opción y el
como parte de su
el campo en blanco y
•
Detección de discos: En este paso automático Debian
Gnu/Linux intentará detectar todos los discos que existan en la
máquina.
•
Particiones del disco: Este proceso es uno de los más
importantes, y más delicado si se tiene información en el disco
que no puede ser borrada, o se comparte el ordenador con otro
sistema operativo. Existen diferentes opciones, desde realizar
las particiones de forma automática (Debian configura el disco
según ha sido programado el instalador) o manual. En este
caso se usa el sistema manual usando el siguiente esquema
como ejemplo:
Tabla 8. Tabla de particiones de ejemplo para un sistema de
Gnu\Linux
Partición
Punto de
Montaje
Tipo
Sistema de
Archivos
Tamaño
sda1
boot
Primaria
ext3
100 MBytes
sda2
usr
Primaria
ext3
5 GB
sda3
/
Primaria
ext3
2.5 GB
sda4
swap
Lógica
Zona
de 512 MBytes
Intercambio
sda5
var
Lógica
ext3
2.5 GB
sda6
var/log
Lógica
ext3
2.5 GB
sda7
tmp
Lógica
ext3
4.5 GB
Sda8
home
Lógica
ext3
Restante
Fuente: Propia
136
Figura 48.Selección del método de particionado.
Fuente: Propia
Figura 49. Particionado de discos (Ejemplo para un Disco Duro de 160
GBytes).
Fuente: Propia
•
Al terminar el proceso se seleccionara la opción de “finalizar el
137
particionado y escribir los cambios en discos”, que nos llevará a
una ventana donde se resume los cambios realizados y se
confirmaran, para después continuar de forma automática con
el formateo de las particiones. Después de avanzar en este
punto los cambios se han realizado en el disco y no se podrá
retroceder.
Figura 50. Particionado de discos (Resumen y confirmación)
Fuente: Propia
•
Asignar clave de superusuario:
la cuenta de superusuario (o
root como también se le conoce) es la más importante del
sistema, puesto que tiene acceso a todo y puede realizar
cualquier acción, que incluso pueden llevar a problemas serios
si no se tiene cuidado con lo que se modifica. Nunca debe ser
usada para realizar tareas cotidianas, solo para acciones
administrativas. Debe tenerse en cuenta que en Debian
Gnu/Linux nunca se admitirá el ingreso al sistema de forma
gráfica como superusuario.
138
Figura 51. Asignar clave al superusuario
Fuente: Propia
•
Creación de nuevo usuario: En este punto se creará un nuevo
usuario, con
permisos normales, por medio del cual se
ingresará al sistema.
Figura 52. Nombre para el nuevo usuario
Fuente: Propia
139
Figura 53. Configuración de usuario y clave
Fuente: Propia
•
Instalación del sistema base:
En esta opción se podrán
configurar varias características, como el uso de una replica en
red si se tiene una buena configuración a Internet (esto es
obligatorio si se ha descargado una imagen mínima del
sistema), seleccionar el país y servidor de replica y la
configuración del proxy en caso de usar uno. Esta opción es
importante puesto que permite instalar Debian Gnu/Linux con
el software más actualizado posible. No obstante en pasos
posteriores se tendrá que realizar una actualización completa
del sistema.
140
Figura 54. Selección de opción de replica.
Fuente: Propia
Figura 55. Selección de país de replica
Fuente: Propia
141
Figura 56. Selección del servidor replica de Debian Gnu/Linux
Fuente: Propia
Figura 57. Configuración de proxy
Fuente: Propia
142
Configurada la replica y el proxy el instalador de Debian Gnu/
Linux permitirá la selección de programas a instalar en el
computador ofreciendo varias opciones, entre ellas el sistema
base, entorno de escritorio, servidor web, servidor de
impresoras, servidor de DNS, servidor de ficheros, base de
datos SQL, ordenador portátil y sistema estándar. Solo se
selecciona el sistema estándar, el resto de paquetes que se
necesiten se instalarán y configurarán manualmente; esto tiene
la ventaja de instalar en el ordenador solo lo necesario y no una
cantidad a veces numerosa de software que no se usa.
Después de seleccionar los paquetes el instalador de Debian
Gnu/Linux se encarga de descargar, instalar y configurar el
software solicitado de forma automática, incluyendo
dependencias.
Figura 58. Selección de paquetes
Fuente: Propia
•
Instalación del cargador de arranque:
El gestor de arranque
es el programa que permitirá que el computador inicie en
Debian Gnu/Linux u otro sistema operativo si existe en el
ordenador. En Gnu/Linux se habla de dos gestores, el lilo y el
grub, siendo este último el más usado, y el que se instala en
este punto.
143
Figura 59. Instalación de grub
Fuente: Propia
•
Fin de instalación:
En este punto el sistema estándar esta
instalado y listo para ser usado, por lo tanto el instalador abrirá
la bandeja de CD para extraer el medio de instalación y
reiniciará el sistema.
Figura 60. Finalización de la instalación
Fuente: Propia
144
6.4.1.3. Configuración del sistema Después
de
instalar
el
sistema base es necesario realizar la configuración y actualización del
mismo. Para ello se procede de la siguiente forma:
•
Modificar sources.list: el archivo sources.list es el que contiene
los servidores desde los cuales se obtienen los paquetes
actualizados del sistema, desde allí se obtienen todos los
paquetes que se encuentran para Debian Gnu/Linux y que se
han incluido en los repositorios.
Allí se modificarán las lineas necesarias de tal forma que se
tenga acceso a diferentes tipos de paquetes (main, contrib y
non-free), según se necesiten. También se puede modificar el
nombre de la versión, o colocarlo en “stable” para que siempre
tome paquetes de la versión estable de Debian, aún cuando
esta cambie.
Figura 61. Modificar el sources.list
Fuente: Propia
•
Actualizar el sistema: Mediante los siguientes comandos se
actualiza el sistema operativo.
•
Apt-get update.
145
•
•
•
•
Apt-get upgrade.
Apt-get dist-upgrade.
Module-assistant:
el programa module-assistant es un
software que ayuda en la instalación de software para el
sistema operativo. Por ello es necesario instalarlo y preparar el
sistema para llevar algunas operaciones relacionadas.
•
Apt-get install module-assistant
•
m-a update
•
m-a prepare
Configuración de la red:
En el caso que no se use DHCP
para asignar las direcciones IP, se debe hacer una configuración
manual de la red para que funcione correctamente. Para ello se
tiene lo siguiente:
•
ipconfig:
El comando ipconfig muestra la configuración
actual de la red.
•
Ifdown eth0: desactiva la red o interfaz identificada con
eth0.
•
Modificación:
Mediante el fichero /etc/network/interfaces
se pueden realizar las modificaciones necesarias en la red,
como asignar la ip fija, mascara de red, entre otras cosas.
•
Ifup eth0: activa la red o tarjeta identificada con eth0.
6.4.1.4. Instalación de SSH
El ssh es un software que
permite la administración del sistema de forma remota, a través de
una red local o el servicio de Internet. Es una excelente alternativa a
Telnet, además de una importante herramienta para la administración
de los nodos, y su instalación es simple. A continuación se describe el
proceso.
•
Instalación:
mediante el comando “apt-get install ssh” se
instala el software, el cual es configurado automáticamente por
el gestor de paquetes de Debian Gnu/Linux.
146
•
Configuración:
Debido a que SSH usa un puerto por defecto,
es una buena medida de seguridad cambiarlo por otro (y
bloquear el que usa normalmente el programa), además de
otros cambios:
•
Editar el archivo como superusuario: /etc/ssh/sshd_config.
•
Modificar las lineas:
•
Port : cambiar el puerto por defecto por otro diferente,
como 1023.
•
Permit root login: colocar esta opción en no para no
permitir un ingresar de forma remota y directamente
como superusuario.
•
X11Forwarding: Esta opción impide iniciar una sesión
gráfica en el sistema (importar la sesión).
•
AllowUsers: En esta opción se definirán los usuarios que
podrán hacer uso de ssh para ingresar al sistema de
forma remota.
Existen otras opciones que pueden ser modificadas para mejorar la
seguridad; después de modificar el archivo y guardar los cambios se
procede a reiniciar el sistema para que tome la nueva configuración.
147
Figura 62. Configuración de SSH
Fuente: Propia
6.4.1.5. Compilación del kernel (núcleo) de Gnu\Linux72
Debido a que se proyecta la instalación del sistema operativo en
equipos con características diferentes a un ordenador actual, es
importante tener en cuenta la necesidad de realizar la compilación del
núcleo, de tal forma que se adecue a las características del hardware
sobre el cual se ejecutará, haciendo que la distribución que se
utilizará, Debian Gnu\Linux, resulte mas liviana para el computador,
además que pueda ser optimizado para Kerrighed.
El núcleo o kernel de un sistema operativo es el corazón del mismo,
es el componente que provee los servicios básicos al sistema ya sean
nivel físico (Hardware) o lógico(Software), gestionando los recursos
en el computador de tal forma que el acceso a los mismos sea
ordenado y seguro, además de ofrecer una visión abstracta del
72 Debido a la gran cantidad de comandos que existen en Gnu\Linux que pueden ser usados para llevar
a cabo este proceso, y con el fin de no extender el documento explicando cada uno, se recomienda
que en caso de no conocer el comando que se esta aplicando se remita a las paginas man que se
encuentran en las distribuciones Gnu\Linux, utilizándolo de la siguiente manera: man
<nombre_comando>, por ejemplo, man cd, man tar. En caso de no contar con esta alternativa puede
remitirse a www.google.com.co/linux.
148
hardware para que reducir la complejidad y facilitar el uso para los
diferentes actores que necesitan de algún tipo de interacción con el,
por ejemplo los programadores.
Entre las funciones que tiene el kernel se encuentran:
•
Garantizar la carga y ejecución de los procesos.
•
Asignar tiempo de procesador a las aplicaciones o procesos que
lo requieren.
•
Proponer una interfaz entre el núcleo y las aplicaciones del
usuario.
•
Administrar el espacio en el sistema de archivos, la
comunicación entre usuarios y entre procesos, de periféricos y
de dispositivos de Entrada/Salida.
La compilación del kernel no es un procedimiento que resulte simple
y se debe prestar atención en la configuración del núcleo de tal forma
que sea la adecuada para el ordenador sobre el cual se ejecutará. Sin
embargo tomar las decisiones adecuadas permitirá tener un núcleo
personalizado que brindará mejores características para el hardware
existente en el computador, con un tamaño menor y una velocidad
mejorada.
Existen diferentes maneras de realizar la compilación, dependiendo
de factores como la distribución sobre la cual se realizará dicho
proceso, hasta los gustos de los usuarios para realizar esta tarea. A
continuación se presenta uno de los métodos, seleccionado por su
simplicidad y aplicación a casi todos los sabores Gnu\Linux73:
•
Obtener los fuentes del kernel
Los fuentes o código fuente
son los elementos indispensables para realizar la compilación y
puder obtenidos desde el sitio web www.kernel.org, donde se
podrán encontrar diversas versiones del núcleo, identificadas
mediante un conjunto de números separados por puntos y
guiones de la forma x.x.xx-x-xxx (Ejemplo: 2.6.20-21-386).
73 El procedimiento ha sido tomado de El howto del kernel 2.6
http://www.estrellateyarde.es/so/kernel-linux. Howto es el modo como se conocen a manuales y
explicaciones para llevar a cabo algunas tareas o procesos.
149
Dicho número permite conocer la versión, y tomando el ejemplo
se puede reconocer lo siguiente:
•
2: Versión, un cambio en este número implica grandes
cambios en el núcleo.
•
6: Actualización, si es par es una versión estable, de lo
contrario es una versión de desarrollo.
•
20: Revisión.
•
21: Revisión para el sistema operativo Debian Gnu\Linux.
•
386: Arquitectura.
Generalmente al descargar el fuente la versión solo muestra
hasta la revisión para el sistema operativo y se descartá la
arquitectura, además de encontrarse con extensión .tar.gz,
indicando que esta empaquetado y comprimido. Para Kerrighed
es necesaria la versión 2.6.20, por tal razón se descargará los
fuentes linux-2.6.20.tar.gz.
•
Desempaquetar el kernel mediante los comandos74 :
#cd /usr/src75
#tar -xvjf linux-2.6.20.tar.gz
•
Parchear el kernel76
Un parche es una adición al código
fuente del kernel de tal forma que se le pueda agregar alguna
funcionalidad específica, y debe ser aplicado solo a los núcleos
descargados desde www.kernel.org, conocidos como Vanilla, y
no a los proporcionados por las distribuciones puesto que ya
contienen otros parches.
Para este paso se descarga el parche desde el sitio web del
proyecto teniendo cuidado que sea el adecuado para la versión
del núcleo sobre la cual se instalará, se descomprime en el
directorio de las fuentes del kernel y se aplican:
#cd /usr/src/linux-2.6.20
74 Un comando antecedido del símbolo numeral (#) indica que debe ser ejecutado por la cuenta del
superusuario (root).
75 Este comando permite cambiar al directorio /usr/src.
76 Este proceso es opcional.
150
#gunzip patch-2.6.20.gz
#cat patch-2.6.20 | patch -Np1
•
Configuración del Kernel
Es quizás uno de los pasos más
críticos a la hora de compilar el kernel, ya que una buena
configuración permitirá tener un núcleo personalizado y
adecuado para el ordenador, pero si se toman malas decisiones
se puede llegar incluso a un kernel panic que no permita
siquiera iniciar el sistema operativo. Por esta razón se
recomienda no eliminar los núcleos que se hayan instalado por
defecto en el sistema operativo, y mantenerlos en el arranque
del sistema para tener alternativas si la compilación falla.
A la hora de configurar un núcleo se pueden plantear dos
alternativas: compilarlo para una máquina en particular, de tal
forma que se obtendrá un kernel pequeño y rápido, o un núcleo
para varias máquinas, lo cual tendrá el efecto contrario debido
a que se tendrán que incluir más módulos. Los módulos 77
además podrán ser cargados de dos formas, la primera es
incluirlos en el módulo para que inicien al arrancar el sistema
(built-in) o que actúen bajo demanda, es decir que estará en el
núcleo pero solo se iniciara cuando sea solicitado.
Para la configuración del kernel se deben seguir estos pasos:
•
Entrar en el directorio /usr/src/linux-2.6.20:
#cd /usr/src/linux-2.6.20
•
Limpiar las compilaciones anteriores
#make clean
#make mrproper
•
Generar menuconfig para configurar el kernel
#make menuconfig78
77 Los módulos son los equivalentes a los drivers o controladores de Microsoft Windows y es el
software que permite que un dispositivo funcione correctamente en el sistema operativo.
78 Si existe un archivo .config en el sistema, menuconfig lo cargará, si se desea tomar una compilación
previa de un kernel que ya ha sido probado como base para la compilación del nuevo entonces se
toma el archivo .config del directorio /boot/config-x-x-xx-x, se copia al directorio donde están las
fuentes del nuevo núcleo con el nombre .config.old y se carga mediante la opción Load an Alternate
Configuration File.
151
•
Se exploraran todas los menús disponibles, teniendo tres
opciones al momento de configurar:
•
•
•
•
•
[*] Incluirlo en la parte monolítica (built-in)
[M] Incluirlo como módulo por demanda
[] No incluirlo.
Al terminar se guardará la configuración en el archivo .config
o en un fichero alternativo mediante la opción Save
configuration to an alternate file.
Compilación
Para el proceso de compilación se siguen los
siguientes pasos:
•
Crear el enlace simbólico linux
#rm /usr/src/linux
#ln -s /usr/src/linux-2.6.20 /usr/src/linux
•
Si se hacen varias compilaciones del kernel y se desea evitar
conflictos se edita el archivo /usr/src/linux-2.6.20/Makefile
modificando la línea:
•
•
EXTRAVERSION = .1 por EXTRAVERSION=.1-r179
compilar:
#make
•
Este proceso generará los siguientes archivos:
•
•
•
•
Instalación El proceso de instalación del nuevo núcleo es el
siguiente:
•
79
80
81
82
/usr/src/linux-2.6.20/arch/i386/boot/bzImage80
/usr/src/linux-2.6.20/System.map81
/usr/src/linux-2.6.20/...82
Instalar vmlinuz
R1 es la versión de compilación, que aparecerá como parte de la identificación del kernel.
Núcleo o Kernel comprimido
Archivo de Simbolos
Diversos subdirectorios y archivos .o y .ko correspondientes a los módulos.
152
#cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.20
•
Instalar archivo de símbolos System.map
#cp System.map /boot/System.map-2.6.20
•
Instalar archivo de configuración del kernel
#cp .config /boot/config-2.6.20
•
Instalar los nuevos módulos:
#make modules_install
•
Crear la imagen de arranque para el nuevo núcleo
#mkinitramfs
/lib/modules/2.6.20
•
-o
/boot/initrd.img-2.6.20
Actualizar el enlace simbólico vmlinuz
#rm /vmlinux
#ln -s /boot/vmlinuz-2.6.20 /vmlinuz
•
Actualizar el enlace simbólico initrd.img
#rm /initrd.img
#ln -s /boot/initrd.img-2.6.20 /initrd.img
•
Crear el enlace /boot/System.map
#ln -s /boot/System.map-2.6.20 /boot/System.map
•
Editar el archivo /boot/grub/menu.lst para configurar el
gestor de arranque de tal modo que se pueda iniciar con el
nuevo kernel, agregando las siguientes lineas83:
title Debian Gnu\Linux, kernel 2.6.20
root(hd0,1)
kernel /boot/vmlinuz-2.6.20 root=/dev/hda2 ro
initrd /boot/initrd.img-2.6.20
83 Algunas opciones podrían cambiar de acuerdo al sistema donde se configura el nuevo kernel, por eso
es importante revisar las otras entradas en el archivo para tomarlas como base.
153
savedefault
boot
•
Finalmente, si el kernel arranca bien, se crean los archivos de
dependencias entre módulos mediante el comando:
#depmod -a
Al compilar el kernel para un clúster existen algunas opciones a tener
en cuenta de tal forma que el núcleo ofrezca las mejores condiciones
para el sistema:
•
•
Sistema de archivos
Es importante tener correctamente
configurado en el núcleo el sistema de archivos NFS (Sistema
de archivos de red), el cual permitirá compartir ficheros de
forma rápida y eficaz. La siguiente es la configuración requerida
por el núcleo para NFS:
•
CONFIG_NFS_FS=y
•
CONFIG_NFSD=y
•
CONFIG_SUNRPC=y
•
CONFIG_LOCKD=y
•
CONFIG_NFSD_V3=y
•
CONFIG_LOCKD_V4=y
Configuración del cortafuego con Iptables
•
CONFIG_NETFILTER=y
•
CONFIG_IP_NF_CONNTRACK=y
•
CONFIG_IP_NF_IPTABLES=y
•
CONFIG_IP_NF_MATCH_STATE=y
•
CONFIG_IP_NF_FILTER=y
154
•
CONFIG_IP_NF_TARGET_REJECT=y
•
CONFIG_IP_NF_NAT=y
•
CONFIG_IP_NF_NAT_NEEDED=y
•
CONFIG_IP_NF_TARGET_MASQUERADE=y
•
CONFIG_IP_NF_TARGET_LOG=y
6.5. INSTALACIÓN DE KERRIGHED
El proceso de instalación del software Kerrighed se lleva a cabo a
partir del código fuente de la aplicación, dado que no existen
actualmente binarios para Debian Gnu/Linux.
6.5.1. Instalación en un nodo84 Este tipo en la instalación esta
enfocado en un primer nodo, dado que para el resto de nodos se
puede utilizar métodos diferentes.
Para instalar kerrighed en el computador se necesita:
•
Conocer acerca del proceso de arranque del sistema operativo.
•
Saber configurar, compilar e instalar el núcleo del sistema
operativo.
•
Tener el siguiente software85:
•
Automake 1.10 o mayor.
•
Autoconf 2.59 o mayor.
84 KERRIGHED. Installing kerrighed 2.4.0.
http://www.kerrighed.org/wiki/index.php/Installing_Kerrighed_2.4.0
85 En Debian Gnu\Linux el proceso de instalación de una aplicación o paquete se lleva a cabo mediante
el comando apt. Por ejemplo para instalar automake se digita:
#apt-get install automake
Si se desea saber el nombre de un paquete o si se encuentra disponible para la distribución:
#apt-cache search automake
Finalmente, si se desea conocer la versión del paquete instalado:
$automake -version
155
•
•
Libtool
•
Rsync
•
Bzip2
•
gcc (Se recomienda la versión 3.3, aunque con mayores
también se lleva a cabo el proceso).
Se sugiere los siguientes paquetes:
•
lsb_release
•
xsltproc
Debido a que Kerrighed trabaja con kernel 2.6.20 y Debian Gnu\Linux
puede estar con una versión diferente (actualmente con 2.6.27) es
altamente recomendable descargar las fuentes del núcleo 2.6.20,
compilarlo y probar su correcto funcionamiento en el computador de
modo que al momento de la instalación de Kerrighed se puedan
tomar las opciones de configuración correctas y el hardware funcione
completamente, especialmente el relacionado con la red.
A continuación se procede con la instalación de Kerrighed, a partir de
los códigos fuentes tanto de la aplicación como del núcleo, mediante
los siguientes pasos:
•
Descarga de los fuentes mediante wget o directamente del sitio
web:
#wget -O usr/src/kerrighed-latest.tar.gz
http://kerrighed.gforge.inria.fr/kerrighed-latest.tar.gz
#wget
-O
/usr/src/linux-2.6.20.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/linux2.6.20.tar.bz2
•
Cambiar a la carpeta /usr/src y descomprimir los archivos:
cd /usr/src
#tar zxf kerrighed-2.4.0.tar.gz
#tar jxf linux-2.6.20.tar.bz2
156
•
Configurar el fuente de kerrighed. Después de este paso, los
fuentes del kernel con el parche se encuentran en el directorio
_kernel y el directorio kernel build es kernel.
cd kerrighed-2.4.0
#./configure
•
Configurar el fuente del kernel.
cd ../linux-2.6.20
#./configure
•
Compilar los fuentes e instalar la aplicación
cd ../kerrighed-2.4.0
#make
#make install
Los pasos anteriores deben generar los siguientes archivos y
directorios:
•
/boot/vmlinuz-2.6.20-krg: kernel con Kerrighed.
•
/boot/System.map: Tabla de símbolos para el kernel con
Kerrighed.
•
/lib/modules/2.6.20-krg: módulos de Kerrighed.
•
/etc/init.d/kerrighed: script del servicio Kerrighed.
•
/etc/default/kerrighed: configuración del servicio Kerrighed.
•
/usr/local/share/man: Páginas de ayuda.
•
/usr/local/bin/krgadm: Herramienta
clúster.
•
/usr/local/bin/krgcapset:
procesos.
•
/usr/local/bin/krgcr-run: Ayudante para puntos de restauración
y reinicio de los procesos.
de
Herramientas
157
administración
de
capacidades
del
de
•
/usr/local/bin/migrate:
procesos.
Herramienta
•
/usr/local/lib/libkerrighed-*: Conjunto de librerías de kerrighed.
•
/usr/local/include/kerrighed:
kerrighed.
6.5.2. Instalación en otros nodos
otros nodos se tienen dos alternativas:
de
migración
de
Cabeceras de las librerías
Para tener kerrighed en los
•
Exportar el filesystem mediante NFSROOT y que los demás
nodos arranquen desde el NFSROOT.
•
Instalar exactamente los mismos paquetes en cada nodo
(replicando un nodo en los demás) y exportar mediante NFS
únicamente el /home.
6.6. CONFIGURACIÓN
La configuración de Kerrighed se realiza en varios archivos, y se
realiza de la siguiente forma:
•
Configuración
de
sesión
y
nodo:
(/boot/grub/menu.lst) se agrega lo siguiente:
en
el
grub
cd /boot/grub
#nano menu.lst
kernel
(hd0,0)
/boot/vmlinuz
BOOT_IMAGE=linux
root=/dev/sda1
acpi=ht
resume=/dev/sda5
vga=788
86
node_id=xx .
•
Configuración del listado de nodos: en el archivo
/etc/kerrighed_nodes se listan los nodos que componen el
clúster, agregando las siguientes lineas:
session_id=xx87
86 El id de nodo es un número entre 0 y 254.
87 La id de sesión es un número entre 1 y 254.
158
•
nbmin=x88
192.168.0.2:0:eth089
192.168.0.3:1:eth0
…
6.7. ADMINISTRACIÓN
En kerrighed no existe una herramienta gráfica de administración del
clúster, por lo cual todo se debe realizar mediante la consola de
comandos:
•
•
La administración del módulo kerrighed se realizar mediante el
comando /etc/init.d/kerrighed, el cual presenta las siguientes
opciones:
•
/etc/init.d/kerrighed start
carga el módulo90.
•
/etc/init.d/kerrighed stop
Desmonta el módulo.
•
/etc/init.d/kerrighed restart Recarga el módulo.
•
/etc/init.d/kerrighed status
Muestra el estado del módulo.
Debido a que cargar el módulo no implica que se arranque
kerrighed, existen dos métodos que permiten iniciar el sistema:
•
Automático:
mediante
/etc/kerrighed_nodes.
el
parametro
nbmin
•
Manual: mediante el comando #krgadm cluster start
en
Otros comandos relacionados con la administración de kerrighed son
88 nbmin indica cuantos nodos son necesarios, como mínimo, para que el clúster arranque
automáticamente.
89 Cada línea hace referencia a la dirección ip del nodo que se esta listando (192.168.0.x), seguido del
identificador del nodo (:x) y de la tarjeta de red por medio de la cual se conecta al clúster (:ethx).
90 Para que se cargue el módulo se debe tener configurado el script (/etc/default/kerrighed) de la
siguiente forma:
# If true, enable Kerrighed module loading
ENABLE=true
#ENABLE=false
159
los siguientes:
•
krgadm: las opciones start/stop sirven para administrar el
clúster.
•
Krgcapset: modifica las opciones de migración de un proceso.
•
Migrate: migra un proceso a un nodo concreto.
160
7. RESULTADOS OBTENIDOS
7.1. DISEÑO DE UN CLÚSTER CON EQUIPOS DADOS NO
ACTIVOS
A continuación se presenta el diseño básico y recomendado para la
implementación de un clúster con equipos dados de baja según la
información que se presento en capítulos previos:
Tabla 9. Diseño del sistema clúster
Item
Decisión
Observaciones
Red
Red topología estrella sin Es el diseño de red más
redundancia
simple pero que a la vez
puede ser mejorado. Es
suficiente para un sistema
clúster básico.
Cantidad de nodos
Dependiente
de
prestaciones buscadas
Instalación en nodos
Nodo maestro con servidor Es la recomendación de
TFTP y DHCP
kerrighed
pues permite
una instalación más simple
y el consumo de menos
recursos en cuanto a
almacenamiento
secundario. También se
recomienda
que
los
servidores TFTP y DHCP
estén en un equipo por
fuera
del
clúster
(especialmente el último
servidor).
Kerrighed
La versión
posible
Sistema operativo
Debian Gnu\Linux
más
161
las A mayor número de nodos
mejores
prestaciones
(teóricamente)
actual Ninguna
Puede
usarse
otra
distribución
según
las
preferencias
de
quien
implementa el clúster o de
Item
Decisión
Observaciones
la organización en la cual se
desarrolla el proyecto.
Configuración de hardware Configuración normal de Depende
de
las
y software
equipos. Uso de kernel necesidades
en
la
2.6.20 según las exigencias implementación del clúster.
de kerrighed y las versiones
más actuales para el
servidor DHCP y FTP
Fuente: Propia
Figura 63. Diseño físico del clúster
Fuente: Propia
No obstante, el anterior diseño puede ser modificado y configurado
según las necesidades y requerimientos que se presenten.
7.2.
INSTALACIÓN
OPERATIVO
Y
CONFIGURACIÓN
DEL
SISTEMA
Es importante señalar que la selección de Gnu\Linux Debian se debe
principalmente a razones prácticas como la experiencia en la
instalación y uso de dicho sistema operativo, sin embargo la
instalación de kerrighed puede ser realizada sobre prácticamente
cualquier distribución, debido principalmente a que el paquete con el
que se construye el clúster se compila y no se instala como un
162
binario.
La instalación del sistema operativo puede resultar tan simple como
la experiencia del usuario lo permita, además depende también de la
distribución, sin embargo el hecho de trabajar con equipos dados de
baja con distribuciones recientemente descargadas puede generar
problemas de rendimiento que llevan a un funcionamiento lento del
ordenador. Para solucionar este problema existen dos alternativas:
•
Instalar un sistema base, sin aplicativos ni entornos de
escritorio innecesarios.
•
Compilar un kernel antiguo para el sistema operativo (La
versión 2.6.20 es la ideal toda vez que kerrighed lo exige para
su funcionamiento).
La compilación del kernel no resulta trivial, exige conocimiento tanto
del núcleo como del hardware sobre el cual se pretende hacer
funcionar. El tiempo y los recursos también son factores críticos, dado
que la compilación del núcleo Linux exige al máximo la máquina
sobre la que se ejecuta esta operación. Por otro lado, un ordenador
con 256 Mbytes de memoria RAM y un procesador de 945 Mhz se
tarda entre 3 y 4 horas para llevar a cabo la compilación del kernel.
7.3. INSTALACIÓN DE KERRIGHED
Aunque a simple vista, si se toma como base la documentación por el
proyecto kerrighed, la instalación del paquete pueda parecer simple,
la realidad muestra que puede resultar algo más compleja. En la
instalación se identificó lo siguiente:
•
Tiempo de instalación:
el tiempo que se tarda en compilar
el paquete kerrighed depende, al igual que el kernel, del
procesador y la memoria del ordenador. Para un computador
con 256 Mbytes y procesador de 945 Mhz el proceso de
compilación tarda entre 1 hora y 1 hora y 30 minutos. El
proceso de instalación entre 30 y 60 minutos adicionales.
Finalmente la configuración o instalación del kernel generado
por el paquete kerrighed puede consumir aproximadamente 20
163
minutos adicionales. Todo lo anterior eliminando factores como
errores de configuración, de compilación, entre otros, que
podrían provocar tiempos mayores.
•
•
El kernel: La selección del núcleo es algo que no esta en
manos del usuario, puesto que la última versión del paquete
kerrighed exige descargar, compilar e instalar el núcleo 2.6.20.
Esta situación provoca lo siguiente:
•
Es indispensable tener conocimientos sobre la compilación
del kernel, dado que aunque la configuración de kerrighed
genera un núcleo básico, el resultado obtenido puede no ser
suficiente y puede que algunos dispositivos del ordenador no
funcionen total o parcialmente (esto es especialmente
importante para la tarjeta de red).
•
Aun cuando el núcleo 2.6.20 puede ser considerado como un
kernel “antiguo”, en algunos equipos dados de baja puede
ser aún considerado como “pesado” para su funcionamiento.
En contraste, con equipos más nuevos podría no tener
soporte para algunos componentes.
Modo de implementación:
Kerrighed
recomienda
su
instalación en un único nodo que actuara como maestro y del
cual el resto de nodos tomaran toda la información necesaria
arrancando por medio de la tarjeta de red. Este es el enfoque
utilizado al hacer uso del live CD ofrecido por el proyecto
Kerrighed para realizar las pruebas.
El hecho de realizar la instalación por este medio genera,
además de un mayor tiempo en la implementación, un nivel de
complejidad más alto, toda vez que es necesaria la instalación
de servidores tftp y dhcp que permitan a los otros nodos
conectarse al principal y obtener la información que necesitan91.
Por otro lado este tipo de implementación ha presentado un
problema adicional: la capacidad de las tarjetas de red en
equipos usados para arrancar por red de datos. Las pruebas
realizadas en este proyecto han permitido detectar que son
muy pocos los equipos dados de baja los que cuentan con
tarjetas de red con capacidad para arrancar por red, lo cual no
91 Existe además la recomendación de tener un ordenador por fuera del clúster que actué como
servidor tfpt y dhcp, lo cual por problemas de recursos se ha convertido en una alternativa no viable
a la hora de realizar pruebas.
164
les permite interactuar con el clúster.
Teniendo en cuenta lo anterior, el tipo de implementación
recomendado por el proyecto kerrighed (y aplicado en el
proyecto para el prototipo) presenta las siguientes dificultades:
•
El clúster, al arrancar sus nodos por red, puede estar
desaprovechando la capacidad de los discos duros. Estos
deberán ser instalados en nodos específicos que permitan su
uso en el clúster, teniendo en cuenta eso si, las limitaciones
que equipos dados de baja puedan tener.
•
Es necesario realizar una inversión adicional en los equipos
con el fin de adquirir tarjetas de red capaces de iniciar el
ordenador por medio de la red de datos. Esto sin tener en
cuenta además que es posible que también se deriven
problemas si la BIOS de la tarjeta madre no admite este tipo
de arranque.
En contraste, la implementación por red presenta como
ventajas las siguientes:
•
No se necesita instalar todo el sistema (tanto el operativo,
como el paquete kerrighed) en cada nodo, lo cual lleva a un
ahorro significativo en tiempo, además de disminuir
considerablemente la complejidad de la implementación
derivada de la necesidad de compilar el núcleo cada vez que
se instala el paquete kerrighed. Una disminución de tiempo
puede implicar una disminución de costos para la
implementación.
•
El tener un nodo maestro al cual se conectan los otros nodos
por medio de la red implica que la perdida de uno de los
miembros del clúster no generará mayor traumatismo si se
tiene en cuenta que basta con retirar el ordenador
defectuoso del conjunto e ingresar uno que arranque por red
para poder disponer de su poder de procesamiento.
7.4. ADMINISTRACIÓN DE KERRIGHED
La administración de un clúster implementado mediante el paquete
kerrighed ha sido quizás uno de los puntos más complicados al
165
momento de generar un proyecto de esta naturaleza.
La dificultad deriva del hecho que para kerrighed no existe ninguna
herramienta gráfica que permita interactuar con el sistema, obligando
al uso de la consola para poder efectuar tareas de monitorización y
administración del clúster, lo cual incrementa la complejidad para
implementar este sistema en las empresas de la región.
La apreciación anterior se apoya en el hecho, que tal como se
observó en el estudio de las empresas que se tuvieron como “casos
prácticos” para el presente proyecto, el 100% afirmaron tener sus
sistemas bajo sistemas operativos Microsoft Windows, el cual tiene un
modelo de administración de los sistemas muy contrario a lo que
sucede con kerrighed: en general todo se hace por medio de
interfaces gráficas, es decir, botones y ventanas. Por otro lado, de las
entidades estudiadas, dos no cuentan con un departamento de
sistemas que administre sus infraestructura tecnológica, son
organizaciones que se podrían catalogar como medianas y pequeñas
empresas, y tampoco cuentan con personal dedicado a labores
informáticas.
Con base en lo anterior se puede concluir que:
•
Teniendo en cuenta la complejidad en la administración del
sistema kerrighed y de los sistemas operativos libres debido a
de la falta de conocimiento aún existente en cuanto a S.O.
como Gnu\Linux y BSD, la curva de aprendizaje para que la
organización pueda adaptarse e implementar un sistema clúster
como el que se propone en este proyecto puede resultar
bastante lenta.
Lo anterior puede constituir un elemento bastante fuerte en
contra del proyecto, debido a que generalmente, ante todo
cambio siempre existirá un cierto nivel de resistencia, más aún
cuando se tiene que intervenir en un enfoque y una educación
tecnológica sesgada y arraigada desde hace muchos años atrás.
•
La implementación de un clúster con kerrighed, con las
características,
ventajas
y
desventajas
mencionadas
anteriormente, llevará a contar con una persona con las
capacidades técnicas y conceptuales suficientes para su
166
implementación. Esto en una empresa que cuenta con un
departamento de sistemas bien organizado puede no suponer
un problema mayor, sin embargo en el caso contrario llevaría a
la contratación de personal adicional encargado de la
instalación, configuración y administración del clúster.
La anterior es una inversión, que en grandes e incluso,
medianas empresas, puede ser factible, fácilmente aceptada.
Incluso, si ya existe uno o varios empleados encargados de la
infraestructura tecnológica de la empresa, pero que no cuentan
con los conocimientos necesarios para llevar a cabo la
implementación del clúster con kerrighed, la misma
organización podría gestionar su capacitación para adaptarse a
las nuevas circunstancias. Sin embargo para empresas más
pequeñas esto no resultará realmente viable, puesto que los
costos podrían superar los beneficios (Es importante en este
punto tener en cuenta la gran cantidad de pequeñas y
medianas empresas que existen en la región, toda vez que un
gran porcentaje de las grandes empresas tienen sus sedes
principales en ciudades como Calí, Bogotá y Medellín).
7.5. RENDIMIENTO
En un clúster los parámetros de rendimiento dependen de la cantidad
de nodos lo conforman y sus características, además del tipo de
clúster y las tareas para las que ha sido destinado. En un clúster de
alta disponibilidad el rendimiento no es un factor importante, al
contrario de un clúster de alto rendimiento.
El caso del proyecto kerrighed responde a un clúster de alto
rendimiento, en el cual el conjunto de máquinas aparece como un
solo ordenador para las aplicaciones que se instalan y ejecutan en el
sistema. En este caso se combinan las capacidades de cada elemento
(nodo) obedeciendo a unas políticas de migración establecidas por el
sistema (generalmente se busca el nodo disponible que pueda
aceptar el proceso).
Lo anterior implica una seria dificultad para el cálculo de la capacidad
de procesamiento de un clúster, toda vez que este factor siempre va
a depender de elementos como:
•
Capacidad de cada nodo:
En el clúster propuesto mediante
kerrighed (heterogéneo) cada nodo presenta características
167
diferentes que brindaran capacidades distintas, además de
verse afectados por diferentes condiciones. Estas condiciones,
dado que los nodos son equipos dados de baja, van desde el
tiempo de uso hasta los posibles daños ocasionados durante su
vida activa por motivo de variaciones de voltaje, cambios en el
hardware, golpes, etcétera.
•
Capacidad de la red: Un elemento importante para un clúster
es la red de datos que conecta cada elemento en el grupo.
•
Software: El uso de la capacidad de un clúster depende en
gran medida de las aplicaciones que se ejecuten sobre el
mismo. A mayor posibilidad de dividir la aplicación en partes
que puedan ser ejecutadas por diferentes procesadores, mayor
será el rendimiento del programa en el clúster. Sin embargo,
para un programa escrito totalmente secuencial la posibilidad
de ejecutarlo de forma paralelo baja considerablemente,
desaprovechando recursos.
7.5.1. Enfoque Lineal
Bajo este enfoque, la capacidad de un
clúster se puede medir de forma lineal sumando la capacidad de cada
CPU de los nodos del conjunto. Aun cuando no es la medida más
fiable en cuento al poder de procesamiento de un sistema de esta
naturaleza, si permite hacer un cálculo aproximado de lo que se
puede esperar del clúster.
Para realizar la medición se debe tener en cuenta además que:
•
El sistema operativo base genera un consumo inicial en
capacidad de procesamiento entre el 0.3% y 0.7%. Además en
cuanto a memoria se consumen aproximadamente 24368
Kbytes.
•
Adicionalmente el sistema kerrighed
aproximado de entre 3% y 7%.
hará
un
consumo
Lo anterior implicaría una capacidad total aproximada igual a la
sumatoria de la capacidad de cada nodo por el 0.92:
C=∑ N ∗0.92
i
168
Donde C representa el poder total (aproximado) del clúster, N es la
capacidad de procesamiento del Nodo, i identifica el nodo en
cuestión.
Este enfoque presenta el problema de no dar una medida clara de la
capacidad de procesamiento, se basa en un supuesto de la velocidad
de cada procesador, sin tener en cuenta otras características, como la
memoria principal, características de la tarjeta madre, memoria cache
del procesador, entre otras.
7.5.2. Enfoque Mediante Benchmarking
El
benchmarking
consiste en una serie de métodos que
permiten
medir
las
capacidades de un sistema según ciertos factores. Esto quiere decir
que las medidas variaran según lo que se desee analizar. En general
se busca la cantidad de operaciones de coma flotante por segundo
que puede llevar a cabo el procesador (lo anterior se conoce como
Flops).
Sin embargo existe una fuerte dependencia de la aplicación que se
quiera usar en el sistema para poder saber que es lo que se necesita
calcular, que tipos de datos se van a procesar, la cantidad de clientes
que cargarán el sistema, etcétera.
Lo anterior implica que los resultados obtenidos no puedan ser
considerados como 100% exactos y confiables, debido a todos los
factores que influyen, más aún cuando se compararían sistemas tan
heterogéneos como el clúster que propone en el presente proyecto.
Una muestra de lo mencionado se obtiene mediante el benchmarking
realizado con el software Linpack92 en el cual en múltiples medidas
ofrece diferentes valores para el mismo sistema93:
•
Medida 1: 216.624 Mflops
•
Medida 2: 212.775 Mflops
•
Medida 3: 214.408 Mflops
92 Linkpack Benchmark – Java Version. http://www.netlib.org/benchmark/linpackjava/
93 AMD Turion de 64 Bits 2.20 GHz, 1.50 GByte de memoria RAM
169
Es de anotar que un supercomputador (Supercomputador de
Canarias) con una infraestructura formada por 336 núcleos sobre
servidores blade JS21 de IBM, en el que cada “cuchilla” cuenta con
dos procesadores de 2.3 Ghz, 8 Gbytes de memoria Ram y 75 Gbytes
de Disco Duro, puede ofrecer una capacidad de procesamiento de
3.36 Tflops (más de tres billones de operaciones por minuto)94.
Por otro lado, un servidor Dell Poweredge 2800 con dos procesadores
Intel Xeon de 3.2 Ghz y 2 Gbytes de memoria RAM puede ofrecer 298
Mflops según la misma prueba.
Finalmente un ordenador con las características de una máquina dada
de baja, como las que se pueden encontrar en las empresas objeto
de este proyecto (Procesador de 945 Mhz y 256 Mbytes de RAM)
entrega una capacidad de procesamiento de 20.4 Mflops. Este último
resultado deja ver las grandes diferencias entre un equipo con
características tan bajas como el usado y un computador
relativamente nuevo como el empleado para pruebas anteriores (AMD
Turion 64 bits a 2.2 Ghz) que arrojo una capacidad calculada de
216.624 Mflops (Casí 10 veces más).
Figura 64. Comparativa entre sistemas
Fuente: Propia
94 COMPUTING.ES. Canarias inagura oficialmente su nuevo supercomputador. En Computing.es http://
www.computing.es/Noticias/200902170012/Canarias-inaugura-oficialmente-su-nuevoSupercomputador.aspx
170
La gráfica muestra la comparación entre diferentes sistemas en
relación a los Mflops que ofrecen; respectivamente los sistemas son:
•
AMD Thurion de 64 bits , 2.2 Ghz, 1,5 Gbytes RAM
•
Amd Duron 945 Mhz, 256 Mbytes de RAM
•
PowerEdge 2800 Intel Xeon 3.2 Ghzx2 , 2 Gbytes RAM
•
SComputador Canarias (30000 ordenadores aprox)
Figura 65. Comparativa entre sistemas (sin supercomputador)
Fuente: Propia
La gráfica muestra la comparación entre diferentes sistemas en
relación a los Mflops que ofrecen; respectivamente los sistemas son:
•
AMD Thurion de 64 bits , 2.2 Ghz, 1,5 Gbytes RAM
•
Amd Duron 945 Mhz, 256 Mbytes de RAM
•
PowerEdge 2800 Intel Xeon 3.2 Ghzx2 , 2 Gbytes RAM
Lo anterior podría significar que para igualar la capacidad de un
computador actual mediante la unión de diferentes ordenadores
171
dados de baja mediante un clúster se necesitarían aproximadamente
de 10 nodos (cada uno con procesador de 945 Mhz y 256 Mbytes de
memoria RAM).
El problema del enfoque del benchmarking reside en que al momento
de medir la capacidad del clúster se corre el peligro de no obtener la
respuesta para todo el conjunto, sino solo la capacidad del nodo o
nodos que ejecutan el proceso solicitado por la prueba. Nuevamente
el benchmarking no es una prueba fiable, y su aplicación no
entregará resultado concluyentes para el conjunto, excepto una
posible cantidad necesaria de nodos para igualar la capacidad de un
computador actual o de un servidor.
7.6. COSTOS GENERADOS PARA LA IMPLEMENTACIÓN DEL
CLÚSTER
Este último punto del presente capítulo se hace comparando con lo
presentado por un servidor (en este caso un Dell PowerEdge 2800
con dos procesadores Intel Xeon de 3.2 Ghz y 2 Gbytes de memoria
RAM) con el fin de tener un punto de comparación que más adelante
permita evaluar la viabilidad para el montaje de un clúster.
Para lo anterior, y teniendo en cuenta las pruebas previas sobre la
capacidad de procesamiento de los nodos, se asume que para igualar
las
capacidades
del
servidor
seleccionado
se
necesitan
aproximadamente 15 nodos con procesadores de 945 Mhz y 256
Mbytes de memoria RAM (es importante tener en cuenta que un
clúster heterogéneo puede tener tanta diversidad de características
en sus equipos como nodos pueda disponer la empresa o empresas
en las cuales se implementa).
7.6.1. Adquisición de equipos95 Este parámetro resulta complicado
de evaluar, teniendo en cuenta que las empresas visitadas tenían a lo
sumo entre 5 y 10 computadores dados de baja que podrían estar
disponibles para la implementación de un clúster.
En el caso de los ordenadores dados de baja (asumiendo la
95 Según los costos en el mercado (tomados de diferentes empresas como compugreiff en la ciudad de
Bogotá, Dell Colombia, entre otras)
172
disponibilidad de todos los nodos) los costos bajan a cero. Sin
embargo, los costos de reparación y adquisición de las tarjetas de red
para cada equipos si pueden generar gastos adicionales. Asumiendo
los siguientes costos relacionados con los ordenadores dados de baja
se tiene lo siguiente:
Tabla 10. Costos de adquisición para nodos de clúster
Concepto
Mantenimiento
Reparación
Tarjetas de Red
y
96
Switch98
Cantidad
Valor
Promedio
(Pesos)
Total
15
30000
450000
1597
23000
345000
1
135000
135000
100000
100000
Cableado99
Total
1030000
Fuente: Propia
Para un servidor se tendrían los siguientes costos aproximados:
Tabla 11. Costos de adquisición para servidor
Concepto
Cantidad
Valor
promedio
(Pesos)
Total
Servidor
Dell
PowerEdge 2800
1
3000000
3000000
Switch100
1
45000
45000
Total
3045000
Fuente: Propia
96 TARJETA RED TRENDNET TE100 NW10/100 PCI (10810)
97 Se asumen todas para los casos que no exista tarjeta en el nodo, o la tarjeta no admita arranque por
red.
98 SWITCH TRENDNET 16 PTOS TE100S16
99 Valor aproximado del cableado de red para el conjunto de nodos
100 SWITCH TRENDNET 8 PTOS TE-100-S8
173
7.6.2. Espacio físico y adecuación
Este es un punto en el cual
las diferencias son significativas en cuanto al espacio físico que ocupa
cada sistema, teniendo en cuenta que un servidor Dell PowerEdge
2800 ocupa menos del doble de espacio que ocupara un nodo del
clúster.
Un nodo normal tiene en promedio 39 cm de alto, 45 cm de largo y
18 cm de ancho, para una volumen total de 0.03159 m3. Para un
servidor con medidas aproximadas de 39 cm de alto, 60 cm de largo
y 20 cm de ancho el volumen es igual a 0.0468 m3.
Para lo anterior la siguiente tabla el espacio físico necesario para cada
sistema:
Tabla 12. Comparativa de espacio físico
Sistema
Cant. Equipos
Total
Servidor
1
0.0468 m3
Clúster
25
0.47385 m3
Fuente: Propia
Las cifras muestran lo que ya era claro a simple vista, y es que el
consumo de espacio físico de los nodos para el clúster será superior al
del servidor. Por otro lado las adecuaciones para cada sistema son
similares (Sistemas de refrigeración, respaldo de energía, etcétera)
por lo cual son ignoradas para el presente estudio. Sin embargo
también es importante señalar que el calor producido por 25 equipos
activos de forma simultanea frente a una sola máquina (el servidor)
podría implicar la necesidad de tener mejores sistemas de
refrigeración, e igualmente el respaldo energético para los 25 nodos
implica gastos mayores.
7.6.3. Instalación, Configuración y administración La
instalación es uno de los pasos cruciales para la implementación de
un sistema clúster. Dejando de lado el tipo de sistema operativo a
usar entre el servidor y el clúster, los siguientes conceptos se toman
de forma aproximada y general para cada uno:
174
Tabla 13. Comparativa en instalación y configuración
Sistema
Instalación y
Configuración
(Costo aproximado
en pesos)
Servidor
1500000101
Clúster
1500000
Fuente: Propia
En cuanto a la administración, todo puede variar dependiendo de la
experiencia que tenga la persona encargada de la administración de
los sistemas informáticos de la empresa. Actualmente, en el eje
cafetero, un administrador de sistemas con conocimientos básicos y
suficientes como para la administración y mantenimiento de
servidores relativamente simples devenga un salario mensual
aproximado de $1'500.000 mensuales mas prestaciones de ley y
para-fiscales (aproximadamente un 50% adicional), mientras que uno
con mayor experiencia, especialmente en redes y administración de
servicios, recibe un canon mensual aproximado de $2'800.000,
igualmente con prestaciones y para-fiscales.
Tabla 14. Comparativa en administración de los sistemas
Sistema
Administración
(Costo mensual
aproximado en pesos
Sin prestaciones y
para-fiscales102)
Servidor
1500000
Clúster
2800000
Fuente: Propia
101Según el valor de servicios pagados a terceros para configuración de servidores y un aproximado
para sistemas complejos como un clúster.
102Según las empresas consultadas en el proyecto.
175
Para los conceptos de para-fiscales y seguridad social se deben tener
en cuenta los siguientes conceptos:
Tabla 15. Parafiscales103
Parafiscales
Descripción
%
Sena
2
Caja de compensación familiar
4
ICBF
3
Total
Fuente: Propia
9
Tabla 16. Prestaciones Sociales104
Prestaciones Sociales
Descripción
%
Cesantias
8,33
Intereses de Cesantias
1
Salud
8,5
Pensiones
11,625
ARP
1
Total
Fuente: Propia
30,455
Es importante señalar que no se ha tenido en cuenta la cantidad de
tiempo que se puede consumir en la instalación de uno y otro sistema
debido a que dicha variable depende de muchos factores que van
desde el objetivo con el cual se instala el sistema hasta las
características de hardware que harán mas lento o rápido el proceso
de instalación de configuración e instalación del software, por
ejemplo, el sistema operativo.
7.6.4. Consumo de Energía
El consumo de energía es otro
103GERENCIE.COM. Aportes parafiscales. http://www.gerencie.com/aportes-parafiscales.html
104 FIERRO MARTINEZ, Angel Maria. Prestaciones sociales. En Contabilidad y Finanzas – Apoyo a
Docentes y Estudiantes. http://www.contabilidadyfinanzas.com/prestaciones-sociales.html
176
elemento a evaluar para el sistema propuesto. Para esto se identifica
el consumo aproximado para cada nodo y para un servidor, lo cual
según la organización EnergyStar105, puede calcularse como sigue:
•
Servidor pequeño: 62 W
•
PC económico: 37 W
Teniendo en cuenta que tanto el clúster como el servidor estarían
activos los 24 horas al día, los 7 días de la semana, 365 día al año, el
consumo de energía aproximado sería:
Tabla 17. Comparativa consumo de energía
Sistema
Valor
kW/Hora106
(Pesos)
Consumo
Diario
(W)
Consumo
Mensual
(W)
Consumo
Anual
(W)
Total Anual
(Pesos)
Servidor
278
1488
44640
535680
148899
Cluster
278
13320
399600
4795200
1333066
Fuente: Propia
7.6.5. Resumen A modo de comparación se muestra a continuación
el resumen para los dos sistemas:
Tabla 18. Resumen de comparaciones entre clúster y servidor
Concepto
Servidor
Clúster
Adquisición
3045000
1030000
1500000
1500000
Administración (Costo
Anual en Pesos)
23481900
43832880
Consumo de Energía
(Costo
Anual
en
148899
1333066
Instalación (Costo)
105 ENERGY STAR. Etiquetado de equipos ofimáticos con eficiencia energética. http://www.euenergystar.org/es/index.html
106Promedio para el servicio comercial
177
Concepto
Servidor
Clúster
28175799
47695946
0.0468
0.47385
Pesos)
Total
Espacio físico (m )
3
Fuente: Propia
En general, la implementación de un clúster frente a la de un servidor
genera mayores costos anuales si lo que se desea es tener un
sistema con equipos dados de baja que se aproxime a las
capacidades de uno de los servidores más comunes en las empresas
de la región.
178
8. RECOMENDACIONES
Teniendo en cuenta las experiencias recogidas durante el desarrollo
del presente proyecto, se formulan las siguientes recomendaciones en
cuanto a la implementación de un clúster mediante kerrighed (o
cualquier otro sistema) y para trabajos posteriores:
•
La implementación de un sistema como kerrighed o cualquier
otro que surja de diferentes proyectos debe guiarse por la
facilidad para su instalación y administración, además de la
vigencia actual del mismo. El hecho de contar con aplicativos
para clúster actualizados, o que usen los núcleos de Linux más
recientes permite, entre otras cosas, contar con la capacidad de
reconocimiento de mas hardware de los ordenadores que se
utilizan como nodos.
•
El conocimiento necesario del sistema operativo Gnu\Linux para
la implementación de un clúster no debe ser básico, toda vez
que se necesita realizar operaciones diversas y complejas,
especialmente aquellas relacionadas con el núcleo del sistema
operativo. En kerrighed es especialmente importante para la
administración debido a la falta de herramientas gráficas que
permitan realizar estas tareas.
•
La instalación recomendada por kerrighed indica que se debe
tener un nodo maestro con el sistema operativo y el paquete
para el clúster, además de una máquina que actúe como
servidor DHCP y TFTP desde el cual los nodos puedan arrancar
por red y obtener los archivos necesarios para hacer parte del
clúster. Aunque configuraciones distintas pueden funcionar, la
complejidad aumenta.
•
Proyectos posteriores sobre clúster de computadores deben
encontrar una forma fiable de medir las capacidades de
procesamiento de acuerdo a los fines con que se implemente el
sistema, esto quiere decir que deben ser proyectos
encaminados a solucionar problemas puntuales que permitan
conocer el entorno en el cual el clúster trabajará, las cargas de
trabajo esperadas, etcétera.
•
Los altos costos que se generan de la implementación de un
clúster que iguales las capacidades de un servidor pequeño
indican que se debe pensar en un sistema de prestaciones más
modestas pero que igualmente pueda brindar un servicio a la
179
empresa, teniendo en cuenta el poder asumir unos costos que
puedan ser sostenidos por la organización.
180
9. CONCLUSIONES
La información recopilada en el presente proyecto y los resultados
obtenidos de las pruebas realizadas permiten determinar que el
diseño de un clúster con ordenadores que ya no son estan activos en
una empresa es totalmente posible, y además el paquete kerrighed
se muestra como una de las mejores opciones actuales dado que es
el único aplicativo soportado y actualizado a la fecha.
Sin embargo, es importante señalar que las prestaciones otorgadas
por un clúster de la naturaleza que se propone son bajas en relación
a servidores de gama media y baja, como los que se pueden
encontrar en la mayoría de empresas de la región; además, intentar
igualar las capacidades de este último tipo de ordenadores puede
generar costos altos que no compensan reemplazar una máquina
adecuada para la prestación de servicios por un sistema compuesto
por múltiples computadores de características bajas.
Lo anterior puede llevar a dos conceptos diferentes:
•
La mejor opción es la adquisición de un servidor de fabrica con
las características necesarias para los procesos que se corren
en una empresa.
•
Implementar un clúster con equipos actuales que entreguen
mejores prestaciones y permitan crear un sistema equivalente
con menos nodos.
En los casos analizados se identifica que los mayores costos en el
diseño de un clúster se generan por dos conceptos:
•
Consumo de energía
•
Administración del sistema (y posiblemente la instalación que
juega un papel importante).
El primer problema se podría solucionar, tal y como se dijo, con el uso
181
de equipos recientes (con carácteristicas más actuales o modernas)
que disminuyan la cantidad de nodos necesarios , tomando un camino
o enfoque diferente al del propuesto en el proyecto.
El segundo problema sin embargo resulta más complicado, dado que
tanto la instalación como la administración no resultan triviales, y tal
como se ha indicado previamente, exigen conocimientos adecuados
de los diferentes sistemas que se involucran en la implementación de
un clúster (servidores de archivos, de direcciones, kerrighed,
etcétera). Lo anterior implica la contratación de una persona con los
conocimientos adecuados o la capacitación del personal actual; en
cualquiera de los casos se tiene un incremento en los costos.
En el aspecto ambiental la propuesta de un clúster con equipos dados
de baja realiza un aporte bastante importante, toda vez que una gran
parte de las empresas de la región no tiene políticas claras y definidas
en relación con los desechos tecnológicos, los cuales generan una
contaminación considerable. El hecho de usar los equipos y
componentes dados de baja en la empresa representa una
disminución en los desechos y un ahorro para la organización en el
manejo de los mismos.
Finalmente cabe anotar que de las investigaciones realizadas se ha
podido determinar que actualmente los sistemas clúster han venido
perdiendo vigencia toda vez que soluciones como la virtualización
(LVM) han tomado más fuerza y han mostrado ser soluciones más
adecuadas.
En resumen, las conclusiones para el proyecto se pueden describir en
los siguientes puntos:
•
La implementación de un clúster con equipos dados de baja es
perfectamente posible desde el punto de vista técnico, pero no
resulta viable desde el enfoque económico y de prestaciones
para una empresa si se intenta igualar con las prestaciones de
un servidor de gama baja y media. Sin embargo, un clúster de
menos prestaciones sigue siendo una buena alternativa para
una organización que quiere volver a usar y recuperar sus
equipos dados de baja enfocándolo a trabajar con procesos que
no consuman excesivos recursos.
182
•
La implementación de un clúster genera un aporte importante
para el aspecto ambiental y social, excepto en el aspecto del
consumo de energía.
•
La implementación de un clúster no es un proceso trivial, lo
mismo sucede con la administración (especialmente para el
proyecto kerrighed), lo cual implica personal con conocimiento
adecuado del aplicativo para el clúster, el sistema operativo,
entre otros.
•
La relación potencia-costo en comparación con los servidores
más usados en las empresas deja en clara desventaja al
sistema clúster con computadores que no estan activos en una
empresa.
•
Una propuesta de un proyecto clúster con equipos dados de
baja puede ser llevado a las empresas con necesidades
especificas en los cuales el poder de procesamiento no sea
demasiado alto y el elemento mas importante sea el uso de las
máquinas.
•
Kerrighed se muestra como una opción valida y viable para el
diseño de un clúster tipo SSI, para un grupo heterogeneo u
homogeneo de computadores, con un soporte que aunque muy
limitado aún, puede crecer y mejorar con el tiempo, a medida
que el proyecto vaya evolucionando.
183
BIBLIOGRAFÍA
BARRIOS DUEÑAS, Joel. Alcance Libre: Implementación de servidores
con GNU/Linux. 2007, 491 p.
BARAK, Amnon y SHILOH, Amnon. MOSIX2 Cluster, Multi-Cluster and
Cloud Management. User's and Administrator's Guides and Manuals.
2009. 118 p
BEOWULF.ORG. Beowulf Project Overview. [En linea] . 2009.[Fecha
de Consulta: 30 de Noviembre de 2009]. http://www.beowulf.org
CÁCERES VILCHES, Juan Esteban y MEDINA AMADOR, Cristian
Alejandro. Implementación de un servidor web apache sobre un
clúster Linux. Seminario de Titulo Universidad Católica del Maule.
2007, 95 p.
CATALAN, Miquel. Nuevo modelado de computación paralela con
clusters Linux. IV Congreso HispaLinux Madrid 24 de Septiembre de
2003. 24 p.
COLABORADORES DE WAPEDIA. Ley de Amdahl. [En linea]. Wapedia,
la wiki para teléfonos móviles. 2009 [Fecha de Consulta: 30 de
Noviembre de 2009]. http://wapedia.mobi/es/Amdahl
________. Ley de Gustafson. En linea]. Wapedia, la wiki para
teléfonos móviles. 2009 [Fecha de Consulta: 30 de Noviembre de
2009]. http://wapedia.mobi/es/Ley_de_Gustafson
COLABORADORES DE WIKIPEDIA. Beowulf. Clúster(Informática). [En
linea]. Wikipedia, La enciclopedia Libre. 2009 [Fecha de Consulta: 30
de Noviembre de 2009] http://es.wikipedia.org/wiki/Cluster_(inform
%C3%A1tica)
________. Berkeley Software Distribution.[En linea]. Wikipedia, La
enciclopedia Libre. 2009 [Fecha de Consulta: 30 de Noviembre de
2009] Disponible en http://es.wikipedia.org/wiki/BSD
________. CentOS.[En linea]. Wikipedia, La enciclopedia Libre. 2009
[Fecha de Consulta: 30 de Noviembre de 2009] Disponible en http://
es.wikipedia.org/wiki/CentOS
184
________.
Clúster
(Informática).[En
linea].
Wikipedia,
La
enciclopedia Libre. 2009 [Fecha de Consulta: 30 de Noviembre de
2009] Disponible en http://es.wikipedia.org/wiki/Cluster_(inform
%C3%A1tica)
________.Computación Distribuida. [En linea]. Wikipedia, La
enciclopedia Libre. 2009 [Fecha de Consulta: 30 de Noviembre de
2009] Disponible en http://es.wikipedia.org/wiki/Grid
________.Computación Grid. [En linea]. Wikipedia, La enciclopedia
Libre. 2009 [Fecha de Consulta: 30 de Noviembre de 2009]
Disponible en
http://es.wikipedia.org/wiki/Computaci%C3%B3n_grid
________.Computación Paralela.
[En linea]. Wikipedia, La
enciclopedia Libre. 2009 [Fecha de Consulta: 30 de Noviembre de
2009]
Disponible
en
http://es.wikipedia.org/wiki/Computaci
%C3%B3n_paralela
_______.Fedora. [En linea]. Wikipedia, La enciclopedia Libre. 2009
[Fecha de Consulta: 30 de Noviembre de 2009] Disponible en http://
es.wikipedia.org/wiki/Fedora
_______. FreeBSD. [En linea]. Wikipedia, La enciclopedia Libre. 2009
[Fecha de Consulta: 30 de Noviembre de 2009] Disponible en http://
es.wikipedia.org/wiki/Freebsd
________.Investigación. [En linea]. Wikipedia, La enciclopedia Libre.
2009 [Fecha de Consulta: 30 de Noviembre de 2009] Disponible en
http://es.wikipedia.org/wiki/Investigaci
%C3%B3n#Tipos_de_investigaci.C3.B3n
________. Licencia de Software. [En linea]. Wikipedia, La
enciclopedia Libre. 2010 [Fecha de Consulta: 22 de Febrero de 2010]
Disponible en : http://es.wikipedia.org/wiki/Licencia_de_software
________. Mandriva. [En linea]. Wikipedia, La enciclopedia Libre.
2009 [Fecha de Consulta: 30 de Noviembre de 2009] Disponible en
http://es.wikipedia.org/wiki/Mandriva
________. Multiprocesamiento Simétrico. [En Linea]. Wikipedia, La
enciclopedia Libre. 2010 [Fecha de Consulta: 23 de Febrero de 2010]
Disponible
en
http://es.wikipedia.org/wiki/Multiprocesamiento_simetrico
185
________.NetBSD. [En linea]. Wikipedia, La enciclopedia Libre. 2009
[Fecha de Consulta: 30 de Noviembre de 2009] Disponible en http://
es.wikipedia.org/wiki/NetBSD
________.Núcleo (Informática) [En linea]. Wikipedia, La enciclopedia
Libre. 2009 [Fecha de Consulta: 30 de Noviembre de 2009]
Disponible en http://es.wikipedia.org/wiki/N%C3%BAcleo_(inform
%C3%A1tica)
________. OpenBSD. [En linea]. Wikipedia, La enciclopedia Libre.
2009 [Fecha de Consulta: 30 de Noviembre de 2009] Disponible en
http://es.wikipedia.org/wiki/Openbsd
________.openMosix. [En linea]. Wikipedia, La enciclopedia Libre.
2009 [Fecha de Consulta: 30 de Noviembre de 2009] Disponible en
http://es.wikipedia.org/wiki/OpenMosix
________. Parallel Virtual Machine. [En linea]. Wikipedia, La
enciclopedia Libre. 2009 [Fecha de Consulta: 30 de Noviembre de
2009]
Disponible
en
http://en.wikipedia.org/wiki/Parallel_Virtual_Machine
________.Red Hat. [En linea]. Wikipedia, La enciclopedia Libre. 2009
[Fecha de Consulta: 30 de Noviembre de 2009] Disponible en http://
es.wikipedia.org/wiki/Red_Hat
________. SETI. [En linea]. Wikipedia, La enciclopedia Libre. 2009
[Fecha de Consulta: 30 de Noviembre de 2009] Disponible en http://
es.wikipedia.org/wiki/SETI
________. Single System Image.
[En linea]. Wikipedia, La
enciclopedia Libre. 2009 [Fecha de Consulta: 30 de Noviembre de
2009]
Disponible
en
http://es.wikipedia.org/wiki/Single_System_Image
________. Single System Image.
[En linea]. Wikipedia, La
enciclopedia Libre. 2009 [Fecha de Consulta: 30 de Noviembre de
2009]
Disponible
enhttp://en.wikipedia.org/wiki/Singlesystem_image
________.Speedup. [En linea]. Wikipedia, La enciclopedia Libre.
2009 [Fecha de Consulta: 30 de Noviembre de 2009] Disponible en
http://en.wikipedia.org/wiki/Speedup
________. Suse. [En linea]. Wikipedia, La enciclopedia Libre. 2009
[Fecha de Consulta: 30 de Noviembre de 2009] Disponible en http://
186
es.wikipedia.org/wiki/Suse
CORTES, Toni; HAI, Jin y RAJKUMAR, Buyya. Single System Image
(SSI). [En linea] En Computing Applications, The Gridbus Project.
[Fecha
de
consulta:
30
de
Noviembre
de
2009]
http://www.gridbus.org/papers/SSI-CCWhitePaper.pdf
COMPUTER SCIENCE AND MATHEMATICS. An Introduction to PVM
Programming. [En linea]. En Computer Science and Mathematics.
[Fecha
de
consulta:
30
de
Noviembre
de
2009]
http://www.csm.ornl.gov
HERNÁNDEZ MORA, Hugo R. y DÍAZ ESTRADA, Ernesto. Construcción
del centro de computación avanzada del Cáribe. [En linea]
Presentación.[Fecha de consulta: 30 de noviembre de 2009]
http://www.renata.edu.co/index.php/descargas/doc_download/141construccion-del-centro-de-computacion-avanzada-del-caribe.html
2009. 6 p.
CLUSTERS. Definiciones. Administración y Planificación de tareas.
Herramientas para la administración de clústers.[En linea]
[Fecha
de
Consulta
:
30
de
Noviembre
de
2009]
http://clusterfie.epn.edu.ec/clusters/Definiciones/definiciones4.html
Departamento de Informática. Universdad de Valladolid. Iniciación al
PVM.
15
p.
http://www.infor.uva.es/~bastida/Arquitecturas
%20Avanzadas/pvm.pdf
DÍAZ, Gilberto; HOEGER, Herbert y NUÑEZ, Luis A. Clúster de PC's.
Centro Nacional de Cálculo Científico – Universidad de los Andes –
Venezuela. 2002. 27 p.
INGENIEMOS. Primer clúster de computación en la Facultad de
Ingeniería. En Revista Ingeniemos 2007.[Fecha de Consulta: 30 de
Noviembre
de
2009]
http://ingenieria.udea.edu.co/portal/ingeniemos/versionimpresa/200
706/pag6.pdf
HOSTING SOLINGEST. Clúster de servidores ¿Que es y como
funciona? [En linea] Hosting Solingest [Fecha de consulta: 30 de
Noviembre de 2009]
http://hosting.solingest.com/cluster-de-servidores.html
INSTITUTO COLOMBIANO DE NORMAS TÉCNICAS Y CERTITIFACIÓN.
187
Norma Técnica Colombiana NTC 1486. Documentación, presentación
de tesis, trabajos de grado y otros trabajos de investigación. Sexta
Actualización. Santafé de Bogotá. 112 p.
INSTITUTO DE FÍSICA. Clúster Grupo de Física y Atómica Molecular –
GFAM. [En linea] Universidad de Antioquia. [Fecha de consulta: 30 de
Noviembre de 2009] http://pegasus.udea.edu.co/~undheim/webcluster-udea/cluster-gfam.htm
Instituto SETI. http://www.seti.org/
ISAZA, Gustavo A y DUQUE MENDEZ, Nestor Dario. Arquitecturas y
modelos de programación en computación grid. EnRevista Scientia et
Technica Año XIII, No. 37. 2007. pág. 433.
KORZYNSKI, Aleksander. Montaje de clusters de alto rendimiento con
OpenSSI. En Linux Magazine Número 36. pág 64-67.
LAURENTE SAENZ, Simon. Aprenda Linux. Comandos Básicos –
Características gnu/linux.[En linea] [ Fecha de Consulta: 30 de
Noviembre
de
2009]
http://www.wikilearning.com/tutorial/aprenda_linux_comandos_basic
os-caracteristicas_gnu_linux/7809-3
MANRIQUE M, Daniel. Construcción y evaluación de desempeño de un
clúster beowulf para computo de alto rendimiento.[En linea] [Fecha
de
consulta:
30
de
Noviembre
de
2009]
http://www.tomechangosubanana.com/tesis/escrito-1split/node18.html
MERAYA GARCIA, Félix. La supercomputación. Asociación ACTA. 17 p.
MILONE Diego H; AZAR, Adrián A y RUFINER, Leonardo. Desarrollo de
una supercomputadora basada en clúster de PC's. 2001, 58 pág.
MORATILLA TEMPRADO, Enrique; DURAN DÍAZ, Raul y RICO LÓPEZ,
Rafael. Computación en Grid: Una solución Asequible para las
Simulaciones Medioambientales. Universidad de Alcalá de H (Dpto. De
Automática). 2006. 9 p.
MUÑOZ A, Ricardo. Instalando un clúster tipo Mosix – Como funciona
y para que sirve MOSIX. [En linea][Fecha de consulta: 30 de
Noviembre
de
2009]
http://www.wikilearning.com/tutorial/instalando_un_cluster_tipo_mo
six-como_funciona_y_para_que_sirve_mosix/442-2
188
ORTEGA LOPERA, Julio. Redes de altas prestaciones y sus
aplicaciones
Lección
7:
Aprovechamiento
del
paralelismo.
MPI/PVM(Presentación). Departamento de Arquitectura y Tecnología
de computadores. ETS Ingeniería Informática. 2004-2005.
OSCAR PROJECT. What is Oscar. [En linea] [Fecha de consulta: 30 de
Noviembre
de
2009]
http://svn.oscar.openclustergroup.org/trac/oscar
OSCAR. Open Source Cluster Application Resources. [En linea] [Fecha
de
consulta:
30
de
Noviembre
de
2009]
http://www.csm.ornl.gov/oscar/
PARRA PÉREZ, John Jairo. Desarrollo de un clúster computacional
para la compilación de algoritmos en paralelo en el Observatorio
Astronómico. Revista Civilizar No. 6. Universidad Sergio Arboleda.
RESIDUOS DE APARATOS ELÉCTRICOS Y ELECTRÓNICOS. De
residuoa a recurso – Gestión de RAEE en Colombia [En linea] [Fecha
de consulta: 30 de Noviembre de 2009] http://www.raee.org.co
RIOS, Genghis. Clústers Linux, Grids Computacionales y el proyecto
EELA. Dirección de Informática Académica-Pontifica Universidad
Católica del Perú. 45 p.
ROCKCLUSTER PROJECT. [En linea] [Fecha de Consulta: 30 de
Noviembre de 2009] http://www.rocksclusters.org/
ROCKCLUSTER PROJECT. Introduction to Clusters and Rocks
Overview. Rocks for Noobs.[En linea] [Fecha de consulta: 30 de
Noviembre
de
2009]
http://www.rocksclusters.org/rocksapalooza/2008/tutorial-1.pdf
ROJO, Oscar. Introducción a los sistemas distribuidos.[En linea]
[Fecha
de
Consulta:
30
de
Noviembre
de
2009]
http://www.augcyl.org/?q=glol-intro-sistemas-distribuidos
SANTOS MARRERO, Adrian. Introducción a Condor. 2004. 13 p.
SANCHEZ TESTAL, J.J. Clúster sencillo con MPI. En Linux Magazine.
Numero 38. pág 57-69.
THE BERKELEY NOW PROJECT. [En linea] [ Fecha de consulta: 30 de
Noviembre de 2009] http://now.cs.berkeley.edu
189
The LAM/MPI Team Open Systems Lab. LAM/MPI User's Guide Version
7.1.4. Pervasive Technology Labs. 2007. 129 p.
TORRES, Saulo De Jesus; VELOZA MORA, Juan de Jesus y LOPEZ
ECHEVERRY, Ana María. Ajedrez en Grid con accesibilidad para todos.
Revista Scientia et Technica Año XIV No. 40. 2008. pág 165.
ZULUAGA CALLEJAS, Jorge I y OSPINA SANJUAN, Alvaro E.
Instalación y configuración de una sala clúster como una solución de
bajo costo para el acceso a tecnología de computación distribuida en
Latinoamérica. 10 p.
190