005.1-P855c-Capitulo II

Anuncio
CAPITULO II
MARCO TEÓRICO SOBRE LA ARQUITECTURA DE CLUSTER
2.1
GENERALIDADES
En la actualidad debido a la gran demanda de servicios de Internet y la
transferencia de información de todo tipo, es incuestionable la importancia que los
sistemas informáticos puedan funcionar de forma ininterrumpida y sin errores los
365 días al año.
Muchas empresas reconocidas a nivel mundial han decidido implementar
servidores de Clústers (Google, Microsoft, etc.) para poder hacer
frente a la
demanda de la información y el tiempo en el que dicha información se necesita
procesar.
Es así como han surgido proyectos que han llevado a la creación de soluciones
informáticas que vienen a solventar esta demanda de procesamiento. Estas
soluciones se pueden encontrar tanto en software de Código Abierto (Open
Source) como software propietario.
Es por ello que la existencia de los Clústers juega un papel muy importante en la
solución de problemas de las ciencias, las ingenierías y en el desarrollo y
ejecución de muchas aplicaciones comerciales, la utilización de componentes de
hardware comunes, software libre e interconexión de redes de alta velocidad lo
hace muy atractivo.
El presente proyecto pretende exponer y desarrollar el tema bajo un enfoque
académico orientándolo a las necesidades de una institución educativa del país,
incluyendo:
arquitectura
de
hardware,
sistema
operativo,
programación y las aplicaciones necesarias para su configuración.
13
lenguajes
de
2.2
HISTORIA DE CLUSTER.
El comienzo del término y del uso de este tipo de tecnología es desconocido pero
se puede considerar que comenzó a finales de los años 50 y principios de los años
60.
La base formal de la ingeniería informática de la categoría como un medio de
hacer trabajos paralelos de cualquier tipo fue posiblemente inventado por Gene
Amdahl de IBM, que en 1967 publicó lo que ha llegado ser considerado como el
papel inicial de procesamiento paralelo: la Ley de Amdahl que describe
matemáticamente lo que se puede esperar paralelizando cualquier otra serie de
tareas realizadas en una arquitectura paralela.
La historia de los primeros grupos de computadoras es más o menos directamente
ligado a
la historia de principios de las redes, como una de las principales
motivaciones para el desarrollo de una red para enlazar los recursos de
computación, de hecho la creación de un Clúster de computadoras. Las redes de
conmutación de paquetes fueron conceptualmente inventados por la corporación
RAND en 1962.
Utilizando el concepto de una red de conmutación de paquetes, el proyecto
ARPANET logró crear en 1969 lo que fue posiblemente la primera red de
computadoras básico basadas en el Clúster de computadoras por cuatro tipos de
centros informáticos (cada una de las cuales fue algo similar a un "Clúster" pero
no un "comodity cluster" como hoy en día lo entendemos.
El primer producto comercial de tipo Clúster fue ARCnet, desarrollada en 1977 por
Datapoint pero no obtuvo un éxito comercial y los Clústers no consiguieron tener
éxito hasta que en 1984.
14
2.3
FUNDAMENTOS GENERALES DE CLUSTERS.
2.3.1 DEFINICIÓN DE CLÚSTER
Un Clúster es un grupo de equipos independientes que cooperan para la ejecución
de una serie de aplicaciones de forma conjunta se que comportan ante clientes
como un solo sistema. Los Clúster permiten aumentar la escalabilidad,
disponibilidad y fiabilidad de múltiples niveles de red.
Un Clúster está formado por dos o más servidores independientes pero
interconectados. Algunos están configurados de modo tal que puedan proveer alta
disponibilidad permitiendo que la carga de trabajo sea transferida a un nodo
secundario si el nodo principal deja de funcionar. Otros Clúster están diseñados
para proveer escalabilidad permitiendo que los usuarios o carga se distribuya
entre los nodos. Ambas configuraciones son consideradas Clúster.
Una característica importante es que se presentan a las aplicaciones como si
fueran un solo servidor. Es deseable que la administración de los diversos nodos
sea lo más parecida posible a la administración de una configuración de un solo
nodo. El software de administración del Clúster debería proveer este nivel de
transparencia.
Los supercomputadores tradicionales poseen costos excesivamente elevados
cuya capacidad de procesamiento puede ser fácilmente reemplazada con un
Clúster. Los Clústers son una buena solución cuando lo que se busca es mejorar
la velocidad, fiabilidad y escalabilidad a un precio razonable.
15
Ejemplo claro de un Clúster de Hardware es la siguiente imagen:
Figura No.1
Ejemplo de Clúster
2.3.2 CLASIFICACION DE CLUSTER
Los Clústers pueden ser clasificado según su orígen: a nivel de software y a nivel
de hardware.
A nivel de Software. Mediante el uso de un sistema operativo que brinde
las herramientas necesarias para la creación de un Clúster, tal es el caso
de un kernel Linux modificado, compiladores y aplicaciones especiales, los
cuales permitan que los programas que se ejecutan en el sistema exploten
todas las ventajas del Clúster.
A nivel de Hardware. Mediante la interconexión entre máquinas (nodos)
del Clúster, las cuales se juntan utilizando redes dedicadas de alta
velocidad como por ejemplo Gigabit Ethernet.
16
Cuando se trata de brindar balanceo de carga mediante un Clúster el hardware y
software trabajan conjuntamente para distribuir la carga de tráfico a los nodos,
para de ésta manera poder atender eficientemente las subtareas encomendadas y
con ello la tarea general asignada al Clúster.
Un servicio de alta disponibilidad en el Clúster normalmente no distribuye la carga
de tráfico a los nodos (balanceo de carga) ni comparte la carga de procesamiento
(alto rendimiento) sino más bien su función es la de estar preparado para entrar
inmediatamente en funcionamiento en caso de que falle algún otro servidor .
2.3.3 CARACTERÍSTICAS DE LOS CLÚSTER
Un Clúster debe cumplir con algunos requisitos o características que se detallan a
continuación:
Los nodos de un Clúster están conectados entre sí por al menos un medio
de comunicación.
Los Clústers necesitan software de control especializado. Para tener un
funcionamiento correcto de un Clúster, el diseño y modelado del mismo
depende del tipo de Clúster utilizado. El software y las máquinas conforman
el Clúster.
Software de control para gestión del Clúster. Control que se refiere a la
configuración del Clúster, el cual depende del tipo de Clúster y de la manera
en que se conectan los nodos. El control puede ser de dos tipos según sea
el caso:
Control centralizado. El cual consta de un nodo maestro o director, con
el que se puede configurar todo el sistema.
17
Control descentralizado. Control en el que cada nodo se administra y
gestiona individualmente.
Homogeneidad de un Clúster. Caracterizado por estar formado de nodos
con arquitecturas y recursos similares. Este tipo de Clúster son implementados
a nivel de sistema.
Heterogeneidad de un Clúster. Clústers caracterizados por tener diferencias
a nivel de tiempos de acceso, arquitecturas, sistemas operativos, estas dos
últimas conllevan a tener bibliotecas de carácter general las cuales van a ser
utilizadas como interfaz para poder formar un sistema conjunto entre los
nodos. Este tipo de Clústers son implementados a nivel de aplicación.
Entre las características de funcionalidad que presentan los Clústers se
mencionan:
2.3.3.1
ESCALABILIDAD
Los Clúster permiten agregar nuevos componentes para aumentar el nivel de
prestaciones sin necesidad de eliminar los elementos ya existentes.
El balanceo de carga (LB) ofrece escalabilidad: la distribución de peticiones en
varios servidores. LB consiste en el reenvío de paquetes y en el conocimiento del
servicio cuya carga va a balancearse. Se basa en un monitor externo que recoge
las estadísticas de carga de los servidores físicos para decidir donde se deben
enviar los paquetes.
La escalabilidad es la capacidad de un equipo para hacer frente a volúmenes de
trabajo cada vez mayores sin, por ello, dejar de prestar un nivel de rendimiento
aceptable. Existen dos tipos de escalabilidad:
18
Escalabilidad
del
hardware
(también
denominada
«escalamiento
vertical»). Se basa en la utilización de un gran equipo cuya capacidad se
aumenta a medida que lo exige la carga de trabajo existente.
Escalabilidad
del
software
(también
denominada
«escalamiento
horizontal»). Se basa, en la utilización de un Clúster compuesto de
varios equipos de mediana potencia que funcionan en tándem de forma
muy parecida a como lo hacen las unidades de un RAID (Array
redundante de discos de bajo coste). Se utilizan el término RAC (Array
redundante de equipos) para referirse a los Clústers de escalamiento
horizontal. Del mismo modo que se añaden discos a un array RAID para
aumentar su rendimiento, se pueden añadir nodos a un Clúster para
aumentar también su rendimiento.
2.3.3.2
DISPONIBILIDAD
Existe redundancia natural, cada nodo posee sus propios componentes: bus,
memoria, procesador. Se pueden implementar políticas para el reemplazo rápido
en caso de falla del servidor maestro.
La alta disponibilidad (HA) ofrece fiabilidad: mantiene los servicios ejecutándose.
Se basa en servidores redundantes, intercambio de mensajes del tipo “Estoy vivo”,
y un procedimiento para que en caso de fallos se sustituya el servidor donde se
produjo el error por otro. El beneficio de éste diseño es el de proveer disponibilidad
y confiabilidad. La confiabilidad se provee mediante software que detectan fallos y
permiten recuperarse frente a los mismos, mientras que en hardware se evita
tener un único punto de fallo.
19
2.3.3.3
RENDIMIENTO
En principio las aplicaciones paralelas son más rápidas. Entre los factores que
influyen se encuentran:
Comportamiento del programa.
Carga de la red.
En éste diseño se ejecutan tareas que requieren de gran capacidad
computacional, grandes cantidades de memoria, o ambos a la vez. El llevar a cabo
éstas tareas puede comprometer lo recursos del Clúster por largos períodos de
tiempo.
El objetivo principal de un Clúster de Alto Rendimiento ó HPCC "High Performance
Computing Cluster" es alcanzar el mayor rendimiento en la velocidad de proceso
de datos. Este tipo de tecnología nos permite que un conjunto de computadoras
trabajen en paralelo, dividiendo el trabajo en varias tareas más pequeñas las
cuales se pueden desarrollar de forma paralela.
20
2.4 ARQUITECTURA DE CLUSTERS.
Figura No.2 Componentes de un Clúster
Como se puede observar la arquitectura posee varios componentes que se
detallan a continuación:
2.4.1 COMPONENTES DE UN CLÚSTER
Los componentes de un Clúster son:
Nodos
Sistemas Operativos
Conexiones de Red
Middleware
Protocolos de Comunicación y servicios
Ambientes de Programación Paralela
Aplicaciones
21
2.4.1.1 NODOS
Pueden ser simples ordenadores, sistemas multiprocesador o estaciones de
trabajo (Workstation). En informática de forma muy general, un nodo es un punto
de intersección o unión de varios elementos que confluyen en el mismo lugar.
En redes de computadoras cada una de las máquinas es un nodo, y si la red es
Internet, cada servidor constituye también un nodo. En un Clúster con nodos
dedicados, los nodos no disponen de teclado, mouse ni monitor y su uso está
exclusivamente dedicado a realizar tareas relacionadas con el Clúster. Mientras
que, en un Clúster con nodos no dedicados, los nodos disponen de teclado,
mouse y monitor y su uso no está exclusivamente dedicado a realizar tareas
relacionadas con el Clúster.
Los nodos de cómputo están conformados a nivel de hardware por diferentes
dispositivos los cuales permiten su funcionamiento individual y dentro del Clúster:
procesadores, memoria, caché, dispositivos de entrada/salida y buses de
comunicación.
Procesadores. Estos proveen la capacidad computacional del nodo.
Pueden ser de diferentes fabricantes: Intel con sus familias Pentium 3, 4,
Itanium y Xeon, HP y Compaq con su familia Alpha, dispositivos AMD
(Athlon) entre otros.
Memoria RAM (Random Access Memory). Es la memoria principal del
computador la cual almacena los datos que está utilizando en ese instante.
Esta memoria se actualiza constantemente mientras el ordenador está en
uso y pierde todos los datos cuando el sistema se apaga.
22
Caché. La memoria caché es pequeña y de alta velocidad de acceso que
sirve de búfer para aquellos datos de uso frecuente. La caché está
conectada a la memoria principal la cual tiene una velocidad de acceso
menor.
Dispositivos de entrada/salida (I/O). Dispositivos de mucha utilidad para un
computador, por medio de dispositivos de entrada puede escribirse en
memoria desde el exterior, ubicándose junto con los datos sobre los cuales
va a operar, de igual manera debe existir dispositivos de salida para
conocer los resultados de la ejecución de los programas. Los dispositivos
de
entrada/salida
(I/O)
permiten
la
comunicación
entre
el
computador(memoria) y el mundo exterior (periféricos), dentro de
dispositivos periféricos que pueden interactuar con un computador se tiene:
Dispositivos de presentación de datos. Dentro de este grupo están
periféricos como el teclado, pantalla, ratón e impresora. Dispositivos
que interactúan directamente con el usuario.
Dispositivos
de
almacenamiento
de
datos.
Dispositivos
que
interactúan con la máquina, dentro de estos se encuentran las cintas
magnéticas y discos magnéticos.
Dispositivos de comunicación con otros procesadores. Comunicación
con otros procesadores remotos ya sea a través de una red LAN
(Local Area Networks) , una red WAN (Wide Area Networks) o el bus
de interconexión.
Bus del sistema. Periférico utilizado para transmisión de datos entre
los diferentes dispositivos del computador con el procesador y la
memoria.
23
2.4.1.2 SISTEMAS OPERATIVOS
Un nodo en un Clúster (no siempre) es una entidad de cómputo autónoma
completa y que posee su propio sistema operativo. Los Clústers Beowulf explotan
las características sofisticadas de los sistemas operativos modernos para la
administración de los recursos de los nodos y para la comunicación con los otros
nodos a través de la red de interconexión.
Pueden utilizarse sistemas operativos modernos entre los que se tiene a Linux,
Unix, Windows entre otros. Estos sistemas operativos son multitarea lo cual
permite compartir recursos entre usuarios, dividir el trabajo entre procesos, asignar
recursos cada proceso (memoria y ciclos de procesador) y tener al menos un hilo
de ejecución.
Ejemplos:
SISTEMA OPERATIVO
DISTRIBUCIONES
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
GNU/Linux
Unix
Windows
Mac OS X
Solaris
FreeBSD
Cuadro No.1
OpenMosix
Rocks
Kerrighed
Solaris
HP-Ux
Aix
NT
2000 Server
2003 Server
2008 Server
Puma
Jaguar
Panther
Tiger
Leopard
Snow Leopard
Solaris 10
Solaris 2.6
Ejemplos de sistemas operativos y sus distribuciones
e
24
2.4.1.3 CONEXIONES DE RED
Existen diferentes redes de alta velocidad utilizadas en un Clúster. Se puede citar
algunas: Ethernet, ATM, SCI, cLAN, Myrinet, Infinibad y QsNet.
Ethernet, Fast Ethernet y Gigabit Ethernet. Tecnologías muy utilizadas en el
ámbito local, ethernet ofrece un ancho de banda de 10 Mbps, el cual en la
actualidad es pequeño para soportar nuevas aplicaciones de gran demanda
de acceso, es por ello que aparecieron las tecnologías fast ethernet, que
brinda un ancho de banda de 100 Mbps y Gigabit Ethernet, que ofrece un
ancho de banda de 1 Gbps.
Modo de Transferencia Asíncrono (ATM-Asyncronous Transfer Mode).
Tecnología desarrollada para hacer frente a la gran demanda de capacidad
de transmisión para servicios y aplicaciones. Tecnología de alta velocidad
basada en la conmutación de celdas o paquetes. ATM es una tecnología
utilizada en ámbitos LAN y WAN, de vital importancia para aplicaciones en
tiempo real como voz y vídeo, las cuales requieren garantía en la entrega
de información, es decir necesitan de un protocolo orientado a conexión.
cLAN Tecnología creada por Gigante (hoy adquirida por Emulex ) ofrece un
alto rendimiento para redes de alta velocidad, posee adaptadores PCI y
switches de 8 y 30 puertos, ofreciendo velocidades de 1.25 Gbps por puerto
(2.5 Gbps bidireccional). Es una tecnología muy utilizada en la
interconexión de los diferentes dispositivos pertenecientes a un Clúster.
Myrinet. Tecnología de alta velocidad diseñada por Myricom en Noviembre
de 1998. El ancho de banda que maneja cada adaptador de red y los switch
ha incrementado desde 640 Mbps hasta los 2.4 Gbps, teniendo tiempos de
entrega de paquetes que fluctúan entre los 7 y 10 micro segundos. Cada
nodo posee una tarjeta de red PCI-X con una o dos conexiones, las cuales
25
pueden manejar velocidades 2 Gbps o 10 Gbps bidireccionales, estas
tarjetas se interconectan a través de un cable Myrinet (fibra óptica) a un
switch Myrinet de hasta 128 puertos. Esta tecnología posee un software el
cual detecta automáticamente a la red Myrinet sin necesidad de configurar
el conmutador o switch.
Infiniband. El estándar InfiniBand es un bus de comunicaciones de alta
velocidad, diseñado tanto para conexiones internas como externas. Para la
comunicación utiliza un bus bidireccional con lo cual ofrece dos canales de
transmisión independientes. El ancho de banda básico de un enlace simple
QsNet. Igual que las tecnologías myrinet e infiband, QsNet está conformada
de dos partes, la interfaz de red Elan y el switch Elite, el cual dispone de 16
a 128 puertos, este switch posee dos canales virtuales bidireccionales por
enlace, es decir cada enlace posee dos puertos de entrada/salida con una
tasa de transferencia teórica de 400 Mbyte/s en cada dirección. El switch
provee también dos niveles de prioridad, los cuales son de gran ayuda en la
entrega de paquetes de mayor importancia en el menor tiempo posible.
2.4.1.4 MIDDLEWARE
El middleware es un software que generalmente actúa entre el sistema operativo y
las aplicaciones con la finalidad de proveer a un Clúster lo siguiente:
Una interfaz única de acceso al sistema, denominada SSI(Single System
Image), la cual genera la sensación al usuario de que utiliza un único
ordenador muy potente;
26
Herramientas para la optimización y mantenimiento del sistema: migración
de procesos, checkpoint-restart (congelar uno o varios procesos, mudarlos
de servidor y continuar su funcionamiento en el nuevo host), balanceo de
carga, tolerancia a fallos, etc.
Escalabilidad: debe poder detectar automáticamente nuevos servidores
conectados al Clúster para proceder a su utilización.
El middleware recibe los trabajos entrantes al Clúster y los redistribuye de manera
que el proceso se ejecute más rápido y el sistema no sufra sobrecargas en un
servidor.
Esto
se
realiza
mediante
políticas
definidas
en
el
sistema
(automáticamente o por un administrador) que le indican dónde y cómo debe
distribuir los procesos, por un sistema de monitorización, el cual controla la carga
de cada CPU y la cantidad de procesos en él.
El middleware también debe poder migrar procesos entre servidores con distintas
finalidades:
Balancear la carga: si un servidor está muy cargado de procesos y otro está
ocioso, pueden transferirse procesos a este último para liberar de carga al
primero y optimizar el funcionamiento;
Mantenimiento de servidores: si hay procesos corriendo en un servidor que
necesita mantenimiento o una actualización, es posible migrar los procesos
a otro servidor y proceder a desconectar del Clúster al primero;
Priorización de trabajos: en caso de tener varios procesos corriendo en el
Clúster, pero uno de ellos de mayor importancia que los demás, puede
migrarse este proceso a los servidores que posean más o mejores recursos
para acelerar su procesamiento.
27
El usuario no necesita conocer donde se ejecutan las aplicaciones.
El usuario puede conectarse al Clúster como un sistema único, sin
necesidad de hacerlo de manera individual a cada nodo como es el caso de
un sistema distribuido.
Escalabilidad del sistema, ya que los Clústers pueden ampliarse fácilmente
añadiendo nuevos nodos, las aplicaciones deben ser capaces de ejecutarse
de forma eficiente en un amplio rango de tamaños de máquinas.
Es importante la disponibilidad del sistema para soportar las aplicaciones
de los usuarios, por medio de técnicas de tolerancia a fallos y recuperación
automática sin afectar a las aplicaciones de los usuarios.
2.4.1.5 PROTOCOLOS DE COMUNICACIÓN
Los protocolos son reglas de comunicación que permiten el flujo de información
entre computadoras distintas que manejan lenguajes distintos, por ejemplo, dos
computadores conectados en la misma red pero con protocolos diferentes no
podrían comunicarse jamás, para ello, es necesario que ambas "hablen" el mismo
idioma, por tal sentido, el protocolo TCP/IP fue creado para las comunicaciones en
Internet. Para que cualquier computador que se conecte a Internet, es necesario
que tenga instalado este protocolo de comunicación.
28
2.4.1.6 AMBIENTES DE PROGRAMACIÓN PARALELA
Los ambientes de programación paralela permiten implementar algoritmos que
hagan uso de recursos compartidos: CPU (Central Processing Unit), memoria,
datos y servicios. En la siguiente figura mostramos gráficamente los elementos de
un Clúster:
Usuario 1
Internet
o
Intranet
Nodos Maestros
Sesión
del
Usuario 2
PLANIFICACIÓN
Sesión
del
Usuario 1
TAREA
1
TAREA
2
TAREA
3
ALMACENAMIENTO
Limite del Cluster
Usuario 2
Figura No.3
Elementos de un Clúster
e
2.4.1.7 APLICACIONES
Estas pueden ser paralelas o distribuidas y secuenciales.
Aplicaciones Paralelas. Son aplicaciones que se distribuyen entre varias
máquinas y plataformas para trabajar en forma integrada, típicamente sobre
una red, para realizar una variedad de funciones relacionadas, tal es el
caso de la arquitectura cliente/servidor caracterizado por dividir la
funcionalidad de la aplicación en dos papeles: cliente y servidor. El servidor
se encarga de proporcionar una serie de servicios al cliente, los cuales son
utilizados por los clientes para completar la funcionalidad de una
determinada aplicación.
29
Aplicaciones Secuenciales. Es aquella en la que una acción (instrucción)
sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida
de una es la entrada de la siguiente y así sucesivamente hasta el fin del
proceso.
2.5
TIPOS DE CLÚSTER
Los Clústers dependiendo de su aplicabilidad pueden clasificarse de diferentes
maneras. La clasificación más generalizada es la que se presenta a continuación:
Alto rendimiento (HP, high performance)
Alta disponibilidad (HA, high availability)
Balanceo de Carga (Load Balancing)
Tolerantes a fallos
Alta Confiabilidad (HR, high reliability).
2.5.1 CLÚSTER DE ALTO RENDIMIENTO
Los Clústers de alto rendimiento han sido creados
para compartir el recurso más valioso de un
ordenador,
es
decir,
el
tiempo
de
proceso.
Cualquier operación que necesite altos tiempos de
CPU puede ser utilizada en un Clúster de alto
rendimiento, siempre que se encuentre un algoritmo
que sea paralelizable.
Existen Clústers que pueden ser denominados de
alto rendimiento tanto a nivel de sistema como a
nivel de aplicación.
30
Este tipo de Clúster lo que busca es suplir las necesidades de súper computación
para resolver problemas de determinadas aplicaciones que requieren un alto
procesamiento, esto se logra mediante la utilización de un grupo de máquinas
individuales las cuales son interconectadas entre sí a través de redes de alta
velocidad y de esta manera se obtiene un sistema de gran rendimiento que actúa
como uno solo.
La utilidad principal de este tipo de Clúster es principalmente en aplicaciones en
las que se requieren gran capacidad de procesamiento computacional, la cual
soluciona problemas de alto procesamiento mediante la utilización de técnicas
necesarias para la paralelización de la aplicación, distribución de los datos a los
nodos, la obtención y presentación de resultados finales.
Generalmente estos problemas de cómputo suelen estar ligados a:
Estado del tiempo.
Cifrado y descifrado de códigos.
Compresión de datos.
Astronomía.
Simulación Militar.
2.5.2 CLÚSTER DE ALTA DISPONIBILIDAD (HA, HIGH AVAILABILITY).
Los
Clústers
de
alta
disponibilidad
pretenden dar servicios 7/24 de cualquier
tipo, son Clústers donde la principal
funcionalidad
es
estar
controlando
y
actuando para que un servicio o varios se
encuentren activos durante el máximo
periodo de tiempo posible.
31
El brindar alta disponibilidad no hace referencia a conseguir una gran capacidad
de cálculo, si no lograr que una colección de máquinas funcionen en conjunto y
que todas realicen la misma función que se les encomendó. La característica
principal de éste Clúster es que ante la existencia de algún problema o fallo de
uno de los nodos, el resto asumen ese fallo y con ello las tareas del nodo con
problemas. Estos mecanismos de alta disponibilidad lo brindan de forma
transparente y rápida para el usuario.
La escalabilidad en un Clúster de alta disponibilidad se traduce en redundancia lo
cual garantiza una pronta recuperación ante cualquier fallo.
La flexibilidad y robustez que poseen este tipo de Clúster los hacen necesario en
sistemas cuya funcionalidad principal es el intercambio masivo de información y el
almacenamiento de datos sensibles, dónde se requiere que el servicio esté
presente sin interrupciones.
El mantenimiento es otra de las ventajas que ofrece. El mantenimiento se puede
realizar de manera individual a cada máquina que compone el conglomerado
evitando comprometer los servicios que este brinda.
Existen dos tipos de configuraciones aplicables a estos Clústers:
Configuración activo-pasivo: Esta configuración tiene dos actividades en los
nodos que componen el Clúster, los activos son aquellos que se encargan de
ejecutar las aplicaciones encomendadas, mientras que los nodos restantes actúan
como respaldos redundantes para los servicios ofrecidos.
Configuración activo - activo: En este caso, todos los nodos actúan como
servidores activos de una o más aplicaciones y potencialmente como respaldos
para las aplicaciones que se ejecutan en otros nodos. Cuando un nodo falla las
aplicaciones que se ejecutaban en él migran a uno de los nodos de respaldo.
32
2.5.2.1 CARACTERISTICAS
Y
FUNCIONAMIENTO
DE
ALTA
DISPONIBILIDAD.
Los sistemas de alta disponibilidad, involucra el tener servidores que actúan entre
ellos como respaldos vivos de la información que sirven. Este tipo de Clústers se
les conoce también como Clúster de redundancia.
En los últimos años la idea de alta disponibilidad y de tolerancia a fallos se ha ido
acercando, con el surgimiento de nuevas tecnologías y el abaratamiento del
hardware se ha logrado que con la idea de alta disponibilidad se logre tener un
sistema tolerante a fallos a bajo precio.
2.5.2.2 SPOF ( Single Point of Failure ó Punto Simple de Fallo ).
SPOF hace referencia a la tenencia de un elemento no replicado que puede estar
sujeto a fallos, logrando con esto la suspensión del servicio que se está brindando.
Es por ello la importancia de evitar tener un SPOF en los subsistemas del sistema
general, ya que con ello se pondría en peligro la prestación continua de servicios
del sistema.
En sistemas de alta disponibilidad a mas de tener redundancia en sus servidores,
es importante tenerla en otros dispositivos que componen el Clúster, tal es el caso
de dispositivos de interconexión, red de comunicación de servidores; etc. Esto con
la finalidad de evitar el tener un SPOF a nivel de subsistemas y sistemas como tal
que conforman el Clúster que se está implementando.
33
2.5.2.3 SERVICIO DE DATOS.
El servicio de datos hace referencia al servicio y sus respectivos recursos que se
estén brindando a un cliente. En entornos de alta disponibilidad al servicio
brindado y al grupo de recursos se denominan logical host o software package.
Los recursos que se estén utilizando deben tener mecanismos necesarios que
permitan la suplantación y conmutación física entre los nodos cuando uno de
estos falle, logrando de esta manera que el servicio de datos ofrecido falle en su
funcionamiento. De esta manera la única afección que el sistema tendrá es en el
tiempo de conmutación en la puesta en marca del servicio de datos.
2.5.2.4 DINAMICA DE ALTA DISPONIBILIDAD (HA)
Dinámica que hace referencia a las reconfiguraciones que el Clúster debe hacer
para garantizar la máxima disponibilidad de un determinado sistema; va orientada
a los nodos que conforman el Clúster y la forma de cómo éste responde. Existen
diferentes maneras de cómo el sistema responde ante la presencia de un fallo,
entre las cuales se tiene:
Tolerancia a fallos (failover). Se da cuando un nodo falla y otro debe asumir
sus responsabilidades. Para ello el nodo entrante debe importar los
recursos del nodo con fallo y habilitar los servicios de datos.
Toma de control o tolerancia a fallos automático (takeover). Se produce
cuando el servicio de datos falla y se detecta por un determinado, a éste
nodo se lo considera nodo fallido y se ve forzado a ceder sus servicios y
recursos. En este caso se requiere una monitorización continua del servicio
de datos.
34
Tolerancia a fallos manual (switchover o giveaway). Se caracteriza por
ceder los recursos y servicios de datos de un nodo a otro. Se utiliza cuando
se realizan tareas de mantenimiento y administración a un nodo.
División de cerebros (splitbrain). Mecanismo utilizado cuando el proceso de
gestión de un Clúster HA (High Availavility) falla. Esta falla se da debido a
problemas en la comunicación y verificación de los nodos existentes.
Debido a que los nodos no conocen de la existencia de sus vecinos y
asumen que son los únicos en el sistema, por tal motivo cada nodo
intentará apropiarse de todos los recursos del sistema incluyendo el servicio
de datos y tener el control total del Clúster. El splitbrain es un caso especial
del failover.
El splitbrain puede dejar a un sistema fuera de funcionamiento. Se puede
evitar utilizando dos métodos. El primero es actuar de forma prudente ante
esta falla, utilizando los recursos compartidos como señal de estar activos,
luego de que un nodo constata el problema debe reservar un recurso
compartido llamado quórum, este recurso debe ser reservado por un solo
nodo y el nodo que llegue tarde a la reserva entiende que debe abandonar
el Clúster y ceder todos sus recursos. El recurso quórum únicamente es
utilizado como método de decisión para abandonar o no un Clúster. El
segundo método consiste en tratar de dejar afuera o apagar al nodo con
fallo una vez detectado el problema, el primer nodo que lo haga toma el
control del Clúster y con ello el control de todos los recursos.
.
35
2.5.2.5 GRUPOS DE RECURSOS DE UN SERVICIO DE DATOS
Al trabajar con un Clúster de alta disponibilidad se tienen diferentes tipos de
recursos que son fundamentales para su funcionamiento y que se listan a
continuación:
Recursos Computacionales. Son aquellos que permiten alojar y ejecutar el
servicio de datos brindado. Estos recursos se consideran a nivel de CPU y
el Clúster. En alta disponibilidad se tienen recursos a nivel de Clúster donde
cada nodo que lo conforma debe tener una copia en memoria del programa
de servicio de datos.
Los recursos computacionales pueden ser considerados a nivel de CPU, nodo o
Clúster. Son los recursos que permiten que el programa que se encarga de ofrecer
servicio de datos pueda ser ejecutado. Si tenemos varias CPU, varios nodos o
varios Clústers estos deberán tener una copia del programa del servicio de datos
en memoria.
En la HA para Linux este recurso se considera a nivel de nodo, donde el servicio
de datos va a estar situado en un nodo determinado (como máster del servicio). El
software de alta disponibilidad es quien decide que nodo va a alojar que servicio
de datos dependiendo del estado del Clúster.
Recursos de Comunicaciones. Recursos utilizados para brindar el acceso al
servicio de datos mediante una red de comunicaciones.
Normalmente el servicio de datos va a ser accedido mediante una red de
comunicaciones. Las interfaces de red así como la pila de protocolos de red,
deben ser capaces de responder a varias direcciones de red con el fin de dar
flexibilidad al servicio de datos es decir virtualizar el servicio. En el caso de redes
36
TCP/IP el servicio de datos será accedido mediante una dirección IP y un puerto;
para que el servicio de datos pueda residir físicamente en cualquier nodo se debe
utilizar IP’s virtuales (IP aliasing) para que esto sea posible.
Recursos de Almacenamiento. Son los recursos más críticos en alta
disponibilidad. Se debe garantizar la integridad y confiabilidad de los datos
almacenados en los discos de los nodos o servidores. La falla de estos
dispositivos hace que los datos se corrompan y con ello se tenga efectos
irreversibles que afecten el rendimiento del sistema.
El almacenamiento de los datos del servicio de datos es quizás uno de los puntos
más delicados de la alta disponibilidad. Pues en ellos tendremos la aplicación que
se usará para el servicio de datos junto con los datos.
El almacenamiento suele ser el recurso más complicado de virtualizar en
configuraciones clásicas; ya que suele ser un medio SCSI compartido con muchos
discos y muchos elementos candidatos a SPOF. En configuraciones hardware
más modernas no hay tanta problemática; las arquitecturas SAN (storage área
network) permiten que los recursos de computación accedan por red SAN a los
recursos de almacenamiento. Los recursos de almacenamiento suelen ser
servidores de archivos en con discos en RAID y backup integrado con interfaz
FiberChannel. Al estar en un entorno SAN permite acceder a estos recursos a más
de un nodo de forma muy flexible.
El recurso de almacenamiento además de ser flexible debe ser independiente para
las necesidades de cada servicio de datos. Surge el concepto de grupos de
volúmenes; un grupo de volúmenes es un conjunto de volúmenes que pertenecen
a un servicio de datos en concreto. Cada volumen es un espacio de
almacenamiento que el servicio de datos utilizará para sus propósitos con
independencia de otros volúmenes.
37
Es vital que el recurso de almacenamiento sea capaz de mantener la integridad de
los datos y el tiempo de recuperación ante un fallo sea mínimo. Ante estos
problemas surgen las técnicas de journaling para la gestión de los datos.
2.5.3 CLUSTER DE BALANCEO DE CARGA.
Técnica muy utilizada para lograr que un conjunto de servidores de red compartan
la carga de trabajo y con ello el tráfico de sus clientes. Este proceso de dividir la
carga de trabajo entre los servidores reales permite obtener un mejor tiempo de
acceso a las aplicaciones y con ellos tener una mejor confiabilidad del sistema.
Además como es un conjunto de servidores el que atiende el trabajo, la falla de
uno de ellos no ocasiona una falla total del sistema ya que las funciones de uno,
las puede suplir el resto.
2.5.3.1 BALANCEO DE CARGA ( LOAD BALANCING).
El balanceo de carga permite suplir las necesidades del inminente crecimiento del
tráfico en Internet. Existen dos alternativas para manipular el crecimiento del
tráfico en internet: la primera permite usar una máquina de grandes características
y de alto precio que probablemente a futuro quede obsoleta; la segunda alternativa
consiste en utilizar un conjunto de servidores virtuales o granja de servidores de
bajo costo que trabajan en conjunto para balancear la carga entre ellos.
El balanceo de carga consiste en compartir la carga de trabajo y tráfico de los
clientes que éstos acceden. Al grupo de servidores que prestan este servicio se
los conoce como servidores virtuales.
Al balancear la carga se mejora el tiempo de respuesta, acceso y confiabilidad. La
caída de un servidor no influye en el funcionamiento de todo el Clúster ya que las
funciones de éste son asumidas por el resto de servidores virtuales. Cuando la
38
carga de trabajo sea mayor se pueden añadir más servidores al Clúster y escalar
este sistema para garantizar el balanceo de carga.
Existen diferentes métodos de distribución de carga que se detallan a
continuación.
2.5.3.2 BALANCEO DE CARGA POR SISTEMA DE NOMBRES DE
DOMINIO O DNS.
Este proceso consiste en crear un dominio DNS 1 al cual se le asigna diferentes
direcciones IP2 pertenecientes a los servidores que están funcionando. A esta
configuración no se le considera un Clúster debido a que en la caché del
explorador de Internet de los clientes se almacena la dirección IP del servidor que
en ese momento lo atendió. Los clientes automáticamente redireccionan las
peticiones refiriéndose a la dirección del servidor de la caché cuando un nuevo
requerimiento se produce. El balanceo de carga no se realiza por completo ya que
un servidor puede atender solicitudes de gran procesamiento, mientras otros
servidores pueden atender solicitudes más sencillas, esto se debe a que carecen
de un dispositivo que controle y redireccione equitativamente el trabajo a los
servidores, la falta de este dispositivo hace que la repartición de carga no sea
equitativa y ello conlleva a tener un desigual funcionamiento de los servidores.
Cuando un servidor cae, los clientes que eran atendidos por este van a continuar
enviando requerimientos sin que sus peticiones sean cumplidas, quedando sin
atención hasta el momento en que su caché se actualice y aprenda la dirección de
un servidor operativo.
1
Sistema de Nombre de Dominio DNS (Domain Name System): El sistema de nombre de dominio es un
estándar de internet. El propósito de DNS es crear un sistema que permita realizar búsquedas en una base
de datos tipo árbol. Estas búsquedas se realizan para la obtención de la dirección IP p del nombre de host
que pertenece a un nodo que se encuentra en el sistema de nombre de dominio.
2
IP: Internet Protocol, protocolo de comunicaciones de la capa de red de la arquitectura TCP/IP.
39
2.5.3.3 BALANCEO DE CARGA MEDIANTE UN NODO DIRECTOR.
Mecanismo basado en la utilización de un nodo director. El nodo director recibe
todas las peticiones de los clientes, balancea la carga y redirecciona a los
servidores del Clúster.
El nodo director reenruta las peticiones a los nodos que posean menor carga para
que atiendan el requerimiento solicitado, una vez procesada la petición los
servidores virtuales devuelven el resultado al nodo director para que este entregue
los resultados al cliente. Existen variaciones donde los nodos o servidores
virtuales pueden entregar el resultado al cliente directamente.
Existen tres tipos de reenvío de paquetes que el nodo director hace en los
servidores que conforman el Clúster:
Balanceo por NAT (Network Address Traslation). Mecanismo basado en
trasladar las direcciones IP origen/destino de los paquetes que llegan al
nodo director y los reenvía a uno de los servidores reales disponibles.
Luego de que los servidores internos procesan el paquete recibido lo
reenvían al nodo director. El único mecanismo para que todos los
servidores del Clúster puedan salir a internet es a través del nodo director.
Fig. No.4 Balanceo de Carga mediante un nodo director.
40
Balanceo por encapsulado IP. Mecanismo basado en el encapsulamiento IP
(IP tunneling). La unidad de datos TCP/IP que llega al nodo director es
encapsulada dentro de otra unidad de datos manteniendo las direcciones
origen/destino intactas. Esta nueva unidad de datos contiene los datos
originales del cliente que genera la petición, posee la dirección origen del
nodo director y la destino del servidor disponible para atender el
requerimiento.
El servidor que atiende el requerimiento desencapsula la unidad de datos que le
envió el nodo director. Los servidores virtuales tienen configurada en una de sus
interfaces de red la misma dirección pública del nodo director con la finalidad de
poder aceptar la unidad de datos original y servir la petición requerida.
Luego de procesar las peticiones se las reenvía al cliente directamente utilizando
la dirección pública del Clúster, y así evitar reenrutar el resultado al nodo director
para que este la entregue al cliente que originó la petición. Así se logra evitar un
cuello de botella en el nodo director, haciendo más fácil el proceso de atención de
peticiones.
41
La distribución de los servidores internos del Clúster se lo puede realizar a nivel de
una red WAN sin necesidad de tenerlos en un solo segmento de red logrando con
ello evitar tener un punto de fallo único en caso de que el segmento quede fuera.
Fig. No.5 Balanceo de carga mediante NAT
42
2.5.4 CLUSTER TOLERANTE A FALLOS
En un sistema tolerante a fallos,
cuando
se
produce
un
fallo
hardware, el hardware asociado a
este tipo de sistema es capaz de
detectar el subsistema que falla y
obrar
en
restablecer
consecuencia
el
servicio
para
en
segundos (o incluso décimas de
segundo).
2.5.5 CLUSTER DE ALTA CONFIABILIDAD (HR, high reliability)
Clúster caracterizado por ofrecer una alta confiabilidad al sistema. La idea es
obtener respuestas eficientes del sistema a pesar de tener una sobrecarga de las
capacidades de un servidor. Estos Clústers se caracterizan por ejecutar un mayor
número de tareas en el menor tiempo posible.
2.6
VENTAJAS Y DESVENTAJAS DE CLUSTERS.
2.6.1 VENTAJAS
Mayor velocidad de computación, al interactuar un gran número de
computadoras como si se tratase de una sola. " Procesamiento en paralelo"
Mayor disponibilidad, evita la no disponibilidad de un servicio web, servicio
de correo electrónico, sitios web, etc. por la caída de uno de sus servidores
al direccionar su contenido directamente a otro servidor.
43
Ahorro en infraestructura en el caso de actualización de los equipos.
Permite en muchas ocasiones el aprovechamiento de viejos computadores,
que al estar conectados en paralelo son capaces de funcionar con sistemas
operativos de última generación con cierta velocidad de procesamiento.
Uso de las bondades del software libre.
2.6.2 DESVENTAJAS
En muchos casos, para alcanzar capacidades de procesamiento similares a
las de equipos actuales se requiere un gran espacio para el elevado
número de computadoras.
Existen muchos programas los cuales son incompatibles para procesar en
paralelo, o no son capaces de migrar el 100% de los procesos.
2.7
PLANIFICACION Y ADMINISTRACIÓN DE CLUSTERS.
2.7.1 ADMINISTRACIÓN
Luego del proceso de instalación del hardware, configuración del Clúster, se
necesita que estos recursos sean administrados para tener un control de
rendimiento y funcionamiento del Clúster.
La administración de un Clúster es de mucha importancia en el funcionamiento del
mismo, ya que es fundamental administrar adecuadamente los recursos del
Clúster y con ello poder detectar fallos a nivel de software y hardware, además
poder monitorear el rendimiento de cada servidor con la finalidad de constatar su
correcto funcionamiento y en caso de tener algún inconveniente poder tomar
medidas preventivas y evitar que estos colapsen.
44
Para poder lograr una administración adecuada de un Clúster se debe considerar
los siguientes aspectos:
Registro de eventos (logging)
Falla y Recuperación de Hardware.
Falla de Software
Falla y Recuperación del Sistema de archivos.
Encolamiento (Queing)
Planificación (Scheduling)
Monitoreo (Monitoring)
Contabilidad (Accounting)
Existe una relación entre usuarios, recursos y las actividades involucradas en la
administración del Clúster. El software de administración se ubica entre los
usuarios y los recursos (servidores reales y director) del Clúster. En primera
instancia los usuarios envían sus peticiones a una cola que almacena los trabajos
que se van a llevar a cabo (el usuario puede en cualquier momento pedir
información sobre el estado de ese trabajo). Los trabajos esperan en la cola hasta
el momento en que ingresan al Clúster para ser atendidos. Mientras todo está
ocurriendo, el sistema de administración esta monitoreando el estado de los
recursos del sistema y cuáles usuarios los están utilizando.
A continuación se va analizar con más detalle las actividades que se deben llevar
a cabo en un sistema de administración:
45
2.7.1.1 REGISTRO DE EVENTOS (logging)
El registro de eventos es el proceso por el cual todos los aspectos relacionados al
funcionamiento de una máquina y operación del Clúster se guardan en un archivo
de registro (logs) el cual puede ser usado para futuras consultas.
El administrador de un sistema Linux tiene a su disposición un programa de
generación de registros que monitoriza todos los eventos que se producen en el
mismo. Syslog guarda, analiza y procesa todos los archivos de registro sin requerir
apenas intervención por parte del administrador. La ubicación del directorio donde
se almacenarán los registros depende del servicio instalado, por lo general el
directorio donde se almacena es el /var/log.
2.7.1.2 FALLA Y RECUPERACIÓN DE HARDWARE.
Una de las principales responsabilidades de la administración de un Clúster es la
falla a nivel de hardware. El impacto que ocasiona la falla del hardware puede
conllevar a tener todo el sistema inoperante. Estos impactos pueden ocasionar
pérdidas de los servidores de archivos, servidores de red, dispositivos de
ínterconectividad, entre otros, siendo importante la necesidad de tener
monitoreado el funcionamiento de estos y a la vez tomar medidas de prevención.
Se debe tener presente que muchos fallos a nivel de hardware que se presentan
no afectan mucho al rendimiento general del Clúster, como es el caso de la falla
del disco de un servidor, éste dejaría de operar y afectaría únicamente a los
cliente que a él se conectan, pero en términos generales no afectarían a todo el
sistema ya que el Clúster de por si se encarga de suplir ese fallo, pero a fin de
cuentas esa falla si afecta al rendimiento del sistema, en especial al tiempo de
respuesta de los servidores operativos en el Clúster.
Para evitar un gran impacto de estos inconvenientes y poder tener una
recuperación ante fallos del hardware, la administración debe considerar varios
46
aspectos como el aislar el componente fallido con la finalidad de que puedan
interferir con el funcionamiento del resto de componentes del Clúster, tener
respaldos (backups) a nivel de hardware para poder suplantar de manera rápida el
componente fallido y así poder garantizar la disponibilidad del sistema.
2.7.1.3 FALLA DE SOFTWARE.
La falla ocasionada por el software al igual que los fallos a nivel de hardware son
críticos debido a que pueden dejar inoperante al Clúster, pero a la vez estas fallas
involucran otros aspectos que deben ser tomados en cuenta. Las fallas de
software muchas veces tienen arreglo, otras veces no, pero es de vital importancia
detectarlas, para poder analizar las posibilidades de evitar que vuelvan a ocurrir,
por lo general el Linux los errores se los evita con los denominados parches del
sistema, los cuales vienen a suplir las fallas del sistema a nivel de software.
Para que el sistema tenga un funcionamiento adecuado y a su vez poder evitar
los problemas de indisponibilidad que cada falla acarrea, se debe tomar en
consideración varios aspectos tales como: la actualización del sistema debe
hacérsela de manera continua, una vez que algún parche actualizado haya sido
desarrollado. Realizar pruebas de funcionamiento del sistema posterior a la
actualización del mismo, para poder de esta manera constatar las debilidades que
mencionada actualización trajo al sistema y si no las resuelve, tener la posibilidad
de volver a las versiones de software anteriores.
2.7.1.4 FALLA Y RECUPERACIÓN DEL SISTEMA DE ARCHIVOS.
La falla en un sistema de archivos es muy crítica, se podría decir que es la pérdida
que mayor daño ocasionaría a un sistema, ya que se perdería toda la información
almacenada por varios meses o años, en especial se perdería los datos de usuario
y de las aplicaciones que hacen uso de éste.
47
Por ello es de vital importancia tomar medidas preventivas que logren evitar tener
un punto de fallo en el sistema de archivos, teniendo sistemas de archivos
redundantes mediante el uso de técnicas como RAID, poseer un sistema de
archivos con journaling el cual permita recuperar rápidamente los datos en caso
de existir alguna falla inesperada en el sistema, poseer un sistema de archivos
paralelo, con lo cual la pérdida de un servidor de archivos no influya de manera
total al funcionamiento general del sistema ya que la existencia de otros servidores
de archivos podrían suplir su ausencia.
2.7.1.5 ENCOLAMIENTO (QUEING)
Un aspecto a tomar en cuenta en la administración de un Clúster es el
encolamiento (Queing) que consiste en el proceso de acumular los trabajos para
que sean ejecutados por el conjunto de recursos disponibles. Las tareas y los
trabajos que los usuarios desean realizar, son presentados por el sistema de
administración como un conjunto llamado grupo de trabajo.
Este grupo de trabajo para ser ejecutado necesita dos aspectos fundamentales
que el sistema debe proveer, en primer lugar proveer los recursos necesarios
(como la cantidad de memoria o CPU´s necesitados), y en segundo lugar una
descripción de las tareas a ser ejecutadas (archivo a ejecutar, datos requeridos
para procesar cualquier petición; entre otros).
El grupo de trabajo luego de presentado al sistema de administración, es colocado
en una cola hasta que el sistema provea los recursos necesarios (por ejemplo: la
cantidad correcta de memoria y CPU requerido) para procesar cualquier trabajo
encomendado. El tiempo de espera para que los trabajos se ejecuten depende
exclusivamente del tiempo de ocupación de los recursos.
48
2.7.1.6 MONITOREO (MONITORING).
El monitoreo involucra el observar que el rendimiento y funcionamiento del Clúster
sea correcto. Una operación correcta implica tener a todos los recursos de
hardware y software monitoreados y con ello constatar que el funcionamiento sea
el esperado.
El tener monitorizado un sistema es muy importante en el proceso de
administración del Clúster ya que mediante los datos que arroje dicho monitoreo
se puede prever cual es el comportamiento de un determinado dispositivo que
compone el Clúster, y con ello poder tomar los correctivos necesarios para evitar
una caída del sistema.
Es indispensable chequear parámetros de los equipos cuando estén en
funcionamiento, parámetros como: arquitectura y frecuencia del CPU, tipo y
versión del sistema operativo, memoria total, número de CPU´s en cada servidor,
tiempo de actividad, porcentajes de uso de CPU, utilización de disco, memoria
disponible, actividad de procesos, entro otros; y de esta manera constatar su
correcta operación.
2.7.1.7 CONTABILIDAD (ACCOUNTING).
Mecanismo utilizado para la recolección de datos de cada grupo de trabajo que se
ejecuta en el Clúster, el accounting es una herramienta muy importante que
permite generar información útil para el proceso de planificación de tareas, esta
herramienta puede ser utilizada para varios propósitos tales como:
Elaboración semanal de reportes de utilización del sistema.
Elaboración de reportes de utilización mensual de recursos por usuario.
Elaboración de un cronograma de políticas de planeamiento.
Prever requerimientos computacionales futuros.
Determinar áreas que deben ser mejoradas dentro del sistema.
49
2.7.2 PLANIFICACIÓN DE TAREAS.
La planificación de tareas es una actividad de mucha utilidad en la administración
de un Clúster, ya que permite programar un conjunto de actividades que se
ejecutarán de acuerdo al tiempo, necesidad y circunstancia que un determinado
sistema así lo requiera. Al hablar de tarea se hace referencia a un programa
ejecutable que realiza determinadas funciones. Un proceso consiste en un número
de tareas con cierta independencia que se coordinan para cumplir funciones
lógicas.
Un planificador de tareas debe garantizar tres aspectos fundamentales:
Rendimiento. Optimizar la ejecución del número de tareas y procesos.
Tiempo de respuesta. Conseguir que el tiempo de ejecución de un
determinado proceso sea mínimo
.Optimización de CPU. Optimización constante de la carga de proceso de la
CPU.
Este tipo de herramientas permiten la ejecución automática de tareas, esto
mediante la ejecución de comandos los cuales se ejecutarán dependiendo del
tiempo y las necesidades que se presenten, en Linux hay tres formas de
especificar tiempos y comandos:
at. el comando se inicia en un tiempo determinado (por ejemplo: at [-f file]
time [date])
batch. el comando se inicia una vez como la carga de una función del
sistema (por ejemplo: batch [archivo])
crontab. al igual que at especifica el tiempo al cual se ejecutará un
programa script.
En el caso de la planificación de tareas multiplataforma (desde Linux pasando por
Unix o Windows), el principal objetivo es gestionar tantas tareas como sea posible
de manera más rápida posible y con el menor número de anomalías.
50
Una solución de planificación de tareas debe ser capaz de interrumpir, parar o
reiniciar tareas, así como el poder asignar prioridades a la ejecución de las
mismas. También es importante la existencia de puntos de verificación, los cuales
van a proporcionar una imagen del estado actual de la tarea en ejecución, de igual
manera la tarea puede continuar su ejecución desde el punto de verificación.
Los planificadores de tareas completos y modernos pueden combinar múltiples
tareas en grupos cuando lo necesitan y procesarlo como una única unidad cuyo
resultado será utilizado como condición de inicio para otras tareas o grupos de
tareas.
2.8
SOLUCIONES DE ALTA DISPONIBILIDAD (HA) PARA LINUX.
De un tiempo a esta parte han ido surgiendo proyectos y soluciones de alta
disponibilidad para Linux, en las cuales algunas destacan su elegancia y sencillez
en comparación con sistemas comerciales. En esta sección se va a comentar los
más conocidos y los más utilizados. Se está recibiendo mucha cooperación de
distribuciones como VA, SuSE, Red Hat o Conectiva y los esfuerzos de Debian no
se quedan atrás.
2.9.1 HEARTBEAT3
Heartbeat es un software que tiene la habilidad de reubicar un recurso
sobrecargado o con fallas de una computadora hacia otra.
Con la arquitectura de heartbeat, podemos definir acciones que se realizan
cuando hay un cambio en el estado (vivo o muerto) de las máquinas servidores.
Una vez instalado, heartbeat lanza un demonio en cada máquina y los demonios
se conectaran entre ellos para detectar el estado de los servidores.
3
http://www.linux-ha.org/
51
A Heartbeat se le indica que computadora es el servidor primario y la otra
computadora será el servidor de backup (de respaldo). Posteriormente se
configura el "demonio" (un programa o proceso que se ejecuta en el trasfondo de
manera pasiva hasta que es invocado para realizar su tarea; se activa únicamente
cuando es necesario, sin ser invocado por el usuario) de Heartbeat, este se
ejecutara en el servidor de respaldo para que escuche los "latidos de corazón"
provenientes del servidor primario. Si el servidor de respaldo no escucha los
"latidos de corazón" del servidor primario, este inicia el proceso a prueba de falla y
toma posesión del recurso.
El programa Heartbeat corriendo en el servidor de respaldo puede chequear los
"latidos de corazón" provenientes del servidor primario sobre una conexión de red
normal Ethernet, aunque normalmente Heartbeat es configurado para que trabaje
sobre una conexión física entre dos servidores. Esta conexión física separada
puede ser ya sea un cable serial u otra conexión de red Ethernet (a través de un
cable cruzado o minihub, por ejemplo). Un cable cruzado es más simple y más
confiable que un minihub porque no requiere poder externo.
Heartbeat trabajara sobre una o más de estas conexiones físicas al mismo tiempo
y considerara el nodo primario activo mientras se encuentre recibiendo los latidos
de corazón al menos en una de las conexiones físicas.
2.9.2 CYRUS4
Cyrus es un sistema de correo empresarial altamente escalable para utilizarse en
ambientes empresariales de varios tamaños utilizando tecnologías basadas en
estándares. La tecnología de Cyrus va desde el uso independiente en
departamentos de correo hasta sistemas centralizados administrados en
empresas de gran tamaño.
4
http://cyrusimap.web.cmu.edu/generalinfo.html
52
2.9.3 RSYNC5
Rsync es una aplicación para sistemas de tipo Unix que ofrece transmisión
eficiente de datos incrementales comprimidos y cifrados. Mediante una técnica de
codificación llamada "codificación delta", permite sincronizar archivos y directorios
entre dos máquinas de una red o entre dos ubicaciones en una misma máquina,
minimizando el volumen de datos transferidos.
Algoritmo utilizado para realizar copias entre dos servidores, este proceso se
caracteriza por sincronizar archivos y directorios sobre los cuales se transfieren
únicamente las modificaciones que a éstos se hayan realizado, con ello se logra
tener al día copias idénticas de los directorios del sistema de archivos presentes
en los servidores que lo conforman. Con el algoritmo rsync se pueden realizar
varias actividades tales como:
Copiar en su totalidad ficheros, directorios, sistemas de archivos
manteniendo una sincronización adecuada mediante la cual se puede
realizar copias únicamente de los cambios realizados.
Realizar la copia de datos de manera segura, ya que puede utilizar ssh6,
algoritmo para cifrar el tráfico de datos.
Los principales usos de rsync incluyen mirroring (espejado) o Respaldo de
múltiples clientes Unix dentro de un servidor Unix central. Habitualmente se lo
ejecuta mediante herramientas de scheduling como cron, para automatizar
procesos de sincronización.
5
http://rsync.samba.org./
SSH (Secure Shell) es una técnica de cifrado que hacen que la información que viaja por el medio de
comunicación vaya de manera no legible y ninguna tercera persona pueda descubrir el usuario y contraseña
de la conexión ni lo que se escribe durante toda la sesión (http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rges-4/ch-ssh.html.)
6
53
2.9.4 NFS7
El sistema de archivos de red (NFS- Network File System) fue creado por SUN y
publicado en el año de 1985, es un sistema que ofrece soluciones de seguridad,
alto rendimiento acceso transparente al sistema de archivos. NFS es un estándar
abierto basado en la arquitectura Cliente/Servidor, la cual es útil para compartir
archivos por red independientemente del sistema operativo del cliente o del
servidor y, a la vez puede instalarse en cualquier plataforma.
El uso de NFS ofrece varias ventajas como:
La existencia de archivos a los se pueden acceder de manera simultánea
por varios clientes a través de la red.
Reduce costos de almacenamiento debido a que tiene los archivos
compartidos en la red y no necesita de espacio en disco local.
Realiza el montaje de los sistemas de archivos a los usuarios de manera
transparente.
El acceso a los archivos es transparente para el usuario.
Soporta ambientes heterogéneos, es decir que se puede instalar en
aquellas infraestructuras que no disponen de arquitecturas de iguales o
similares características.
NFS consta de un programa cliente y servidor. El programa servidor comparte los
archivos mediante el proceso de exportación, mientras que el cliente accede al
sistema de archivos compartidos añadiéndolos a su sistema local mediante el
proceso de montaje. Los protocolos8 de NFS proporcionan el medio de
comunicación entre los procesos de exportación y montaje sobre la red.
7
http://www.freebsd.org/doc/en/books/handbook/network-nfs.html
Los protocolos de NFS utilizan llamadas a procedimientos remotos RPC (Remote Procedure Call) que a su
vez se basan en IPC (Inter Process Comunication), que no es sino la capacidad del sistema operativo para
permitir la comunicación entre procesos, sea que éstos se ejecuten de manera local o remota.
8
54
En el servidor para realizar el proceso de exportación se debe editar un archivo de
configuración (/etc/exports ) el cual consta de tres partes:
Ruta completa del archivo a exportar.
Máquinas que son autorizadas para acceder al archivo exportado.
Restricciones de acceso.
Cuando el servidor arranca el sistema, este archivo de configuración es leído y se
informa al Kernel de los tres aspectos que conlleva la exportación de un archivo.
El cliente es encargado de montar un sistema de archivos remoto, no hace una
copia de este, sino realiza un montaje por medio de una serie de llamadas de
procedimiento remoto con el que se habilita al cliente el acceso al sistema de
archivos. El cliente NFS tiene la característica de montar o desmontar el sistema
de archivos de acuerdo a las necesidades, pero todo el proceso se realiza de
manera transparente para el usuario.
2.9.5 LDIRECTORD Y LVS (Linux Virtual Server)
LVS permite crear un Clúster de balanceo de carga, en el cual hay un nodo que se
encarga de gestionar y repartir las conexiones (nodo máster LVS) entre todos los
nodos slave del Clúster. El servicio de datos debe residir en todos los nodos slave.
LVS puede llegar a soportar sin problemas hasta 200 nodos slave.
Ldirectord Es un demonio que monitorea y administra a los servidores reales que
son parte de un Clúster de carga balanceada. Usualmente es usado en conjunto
con heartbeat, aunque puede funcionar con otro detector de servicios.
55
2.9.6 ROUND ROBIN DNS9
Es una técnica en la cual el balanceo de carga es realizada por un servidor DNS
en lugar de una máquina estrictamente dedicada. Esta técnica se suele usarse en
grandes redes o redes IRC.
Round robin funciona respondiendo a las peticiones DNS con una lista de
direcciones IP en lugar de una sola (todas ellas deberían hospedar el mismo
contenido). El orden con el cual las direcciones IP de la lista son retornadas es la
base del round robin, actuando en ciclos.
Round robin DNS se usa generalmente para balancear la carga de servidores web
distribuidos geográficamente, donde cada usuario que accede es enviado a la
siguiente dirección IP de manera cíclica.
Hay que tener en cuenta que NO es la mejor opción para balanceo de carga ya
que simplemente alterna el orden de los registros de direcciones cada vez que
llega una petición a un servidor de nombres. No se toma en consideración el
tiempo de transacción, carga del servidor, congestión de la red, etc. Por ello en
servidores con recursos no homogéneos diríamos que tan solo hace distribución
de la carga.
2.9.7 HAPROXY10
Es una solución gratis, confiable y muy rápida ofreciendo alta disponibilidad,
balanceo de carga y el uso de un proxy para aplicaciones basadas en TCP y
HTTP.
Es una solución gratis, confiable y muy rápida y el uso de un proxy para
aplicaciones basadas en TCP y HTTP.
9
http://bytecoders.homelinux.com/content/balanceo-de-carga-round-robin-dns.html
http://haproxy.1wt.eu/
10
56
2.9.8 PIRAHNA
Es el nombre que RedHat ha dado a su solución basada en LVS, el añadido es
una interfaz para configurarlo.
Ofrece un conjunto de herramientas para implementar Clústers de alta
disponibilidad y balanceo de carga.
2.9.9 ULTRAMONKEY11
Es una solución creada por VA Linux que se basa en LVS y Heartbeat para ofrecer
Clústers de alta disponibilidad y balanceo de carga. El nodo máster LVS se pone
en alta disponibilidad ya que es el único SPOF. Además incorpora una interfaz
para configurar el Clúster.
2.9.10
KIMBERLITE12
Creada por Mission Critical Linux, es una solución que soporta un Clúster de 2
nodos. Permite fácilmente, definir un dispositivo de quórum, monitorizar los
servicios de datos, así como gestionarlo. Una solución completa bajo GPL.
2.10
EL MODELO OSI13
En sus inicios, el desarrollo de redes sucedió con desorden en muchos sentidos. A
principios de la década de 1980 se produjo un enorme crecimiento en la cantidad y
el tamaño de las redes. A medida que las empresas tomaron conciencia de las
ventajas de usar tecnología de networking, las redes se agregaban o expandían a
casi la misma velocidad a la que se introducían las nuevas tecnologías de red.
Para poder simplificar el estudio y la implementación de la arquitectura necesaria,
la ISO (Organización Internacional de Normas) creó el modelo de referencia OSI
para lograr una estandarización internacional de los protocolos. Este modelo se
11
http://www.ultramonkey.org/
http://www.missioncriticallinux.com/projects/kimberlite/
13
Cisco Networking Academy Program CCNA Land2. Versión 3.1
12
57
ocupa de la Interconexión de Sistemas Abiertos a la comunicación y está divido en
7 capas, entendiéndose por "capa" una entidad que realiza de por sí una función
específica.
Figura No.6
Modelo OSI
e
A continuación la explicación de cada una de las capas del modelo OSI:
CAPA
NOMBRE
7
APLICACIÓN
6
PRESENTACIÓ
N
5
SESIÓN
4
TRANSPORTE
3
RED
2
ENLACE
1
FISICO
DESCRIPCIÓN
Se entiende directamente con el usuario final, al proporcionarle el servicio
de información distribuida para soportar las aplicaciones y administrar las
comunicaciones por parte de la capa de presentación.
Permite a la capa de aplicación interpretar el significado de la información
que se intercambia. Esta realiza las conversiones de formato mediante las
cuales se logra la comunicación de dispositivos.
Administra el diálogo entre las dos aplicaciones en cooperación mediante el
suministro de los servicios que se necesitan para establecer la
comunicación, flujo de datos y conclusión de la conexión.
Esta capa proporciona el control de extremo a extremo y el intercambio de
información con el nivel que requiere el usuario. Representa el corazón de la
jerarquía de los protocolos que permite realizar el transporte de los datos en
forma segura y económica.
Proporciona los medios para establecer, mantener y concluir las conexiones
conmutadas entre los sistemas del usuario final. Por lo tanto, la capa de red
es la más baja, que se ocupa de la transmisión de extremo a extremo.
Asegura con confiabilidad del medio de transmisión, ya que realiza la
verificación de errores, retransmisión, control fuera del flujo y la
secuenciación de la capacidad que se utilizan en la capa de red.
Se encarga de las características eléctricas, mecánicas, funcionales y de
procedimiento que se requieren para mover los bits de datos entre cada
extremo del enlace de la comunicación.
Cuadro No.2
Capas del Modelo OSI
58
e
2.11
APLICACIONES EN LAS QUE SE HA UTILIZADO LA
ARQUITECTURA DE CLÚSTER.
2.11.1
Google
CLÚSTER GOOGLE
necesitaría
muchísima
potencia
para
abastecer los servicios de todos los usuarios del
mundo, una media de 40 millones de búsquedas
diarias.
Para
conseguir
esta
potencia
Google
desarrolló varios servidores, cada uno de ellos
formado por un Clúster. Consiguiendo así la potencia
necesaria para todas las peticiones. Cada uno se
compone de 359 racks (estructura parecida a una
estantería para organizar los nodos), 31654 nodos,
63184
CPUs,
126.368
Ghz
de
potencia
de
procesamiento, 63.184 Gbytes de RAM y 2.527
Tbytes de espacio en disco duro.
59
2.11.2
CLUSTER IMPLEMENTADOS A NIVEL NACIONAL (EN
EL SALVADOR).
EMPRESA
TIPO DE CLUSTER
TIPO DE
SOTFWARE
BANCO
CUSCATLÁN
Instalación de un Clúster de Web Server (IBM HttpServer 2.x)
para Banco Cuscatlán.
Instalación de dos Clúster para Banco Agrícola, un Clúster para
IBM Edge Server -Servidor de load balancing y web caching
proxy y segundo Clúster para IBM HttpServer 2.x
GNU
Instalación de un Clúster de IBM HttpServer 2.x para la corte de
Cuentas.
Instalación de Clúster para Grupo Siman. Este Clúster es de
mensajería y colaboración de Lotus Domino sobre RedHat Linux.
Los servidores Linux fueron tuneados para soportar 2,400
usuarios concurrentemente.Esta es la solución de linux mas
grande que hay en El Salvador, ya que comprende 2 servidores
en Clúster RedHat Enterprise y 4 servidores adicionales RedHat
Enterprise para los países Guatemala, El Salvador, Honduras y
Nicaragua. De hecho estos son los servidores Linux con más
demanda de carga que hay en el país y en Centro América.
Instalación de Clúster de Mensajería y colaboración de Lotus
Domino sobre RedHat Enterprise. Los servidores RedHat fueron
configurados para soportar la carga de 400 usuarios
concurrentemente.
GNU
BANCO
AGRÍCOLA
CORTE DE
CUENTAS
GRUPO SIMAN
DEL SUR
GNU
GNU
GNU
Cuadro No.3 Clústers implementados en El Salvador
2.11.3
EVOLUCIÓN DE LOS CLÚSTERS
La tecnología de Clúster ha evolucionado en apoyo de actividades que van desde
aplicaciones de supercómputo y software de misiones críticas, servidores Web y
comercio electrónico, hasta bases de datos de alto rendimiento, entre otros usos.
El cómputo con Clúster surge como resultado de la convergencia de varias
tendencias actuales que incluyen la disponibilidad de microprocesadores
económicos de alto rendimiento y redes de alta velocidad, el desarrollo de
herramientas de software para cómputo distribuido de alto rendimiento, así como
la creciente necesidad de potencia computacional para aplicaciones que la
requieran.
60
ORDEN
1
NOMBRE DE
DESCRIPCION
CLÚSTER
CLÚSTER
BEOWULF
14
IMAGEN
En 1994 se presentó Beowulf, el primer
Clúster
ampliamente
conocido
por
la
comunidad de cómputo científico. Beowulf
fue una máquina construida a partir de 16
computadoras personales con procesadores
Intel DX4 (486) a 200 MHz, conectadas
mediante un switch Ethernet con un ancho
de banda de 10 Mbps (millones de bits por
segundo); tenía un rendimiento teórico de
3.2
Gflop/s
(miles
de
millones
de
operaciones aritméticas por segundo) y fue
utilizada como una “computadora paralela
personal”; el sistema operativo se instalaba
manualmente en cada máquina y el usuario
debía contar con experiencia en el uso de
herramientas
para
iniciar
procesos
en
paralelo.
2
CLÚSTER
Fue construido en el Laboratorio Nacional de
AVALON
Los Alamos, en los años 1997-98; fue el
primero en entrar a la famosa lista de las 500
computadoras más rápidas del mundo donde
ocupó el lugar 315 de la lista en el primer
semestre
de
importancia,
1998,
pues
hecho
comprobó
de
que
gran
los
Clústers, además de ser baratos, podían
competir en rendimiento, por lo menos en
algunas aplicaciones, con las computadoras
paralelas de los fabricantes más reconocidos
del mundo.
14
Las condiciones que dieron origen al proyecto Beowulf fueron el éxito general de las computadoras personales, el
surgimiento de Linux como alternativa viable de sistema operativo tipo Unix para computadoras personales y la
estandarización de las prácticas comunes de programación paralela.
61
3
CLÚSTER
Construido
CPLANT
Sandia, se dio un paso importante en la
en
el
Laboratorio
Nacional
evolución de los Clústers. Cplant no es
solamente un tipo de máquina paralela, sino
todo un proyecto que contempla la manera
en que un equipo de esta naturaleza puede
crecer y renovarse de manera continua.
Durante los últimos años, Cplant ha crecido
hasta los 1590 procesadores.
4
CLÚSTER
Es otro Clúster relevante instalado en el
SCORE
Centro de Investigación de Tsukuba, ya que
fue
el
primero
con
más
de
1000
procesadores (1024) lo que lo llevó a ocupar
el lugar 36 en el Top500 del primer semestre
de 2001.
5
CLÚSTER X
En la actualidad, es el Clúster más grande
del mundo, construido en el Tecnológico de
Virginia en 2003. Este Clúster se compone
de 2200 procesadores G5 a 2.0 GHz,
conectados a través de dos redes diferentes:
infiniband para las comunicaciones entre
procesos y Gigabit Ethernet para la
administración; esta computadora posee un
total de 4 TeraBytes (más de cuatro mil
GBytes) de RAM y más de 176 TeraBytes
(176 mil Gbytes) de almacenamiento
secundario. Es la tercera computadora más
rápida del mundo y en el comunicado de
prensa de su lanzamiento se enfatiza el
hecho de que la instalación de los nodos fue
realizada en su totalidad por estudiantes del
Tecnológico de Virginia.
62
6
CLUSTER PS2
En el año 2004, en la Universidad de Illinois
en Urbana-Champaign, Estados Unidos, se
exploró el uso de consolas Play Station 2
(PS2) en cómputo científico y visualización
de alta resolución. Se construyó un Clúster
conformado por 70 PS2; utilizando Sony
Linux Kit (basado en Linux Kondora y Linux
Red Hat) y MPI.
7
CLÚSTER
DE
1000 NODOS
Utilizado para la investigación de algoritmos
CLÚSTER
BEOWULF
PIRUN
KASETSART
UNIVERSITY,
THAILAND
PIRUN=Piles of Inexpensive and Redundant
Universal Nodes.
Constituido por 72 nodos PIII 500 MHz, 128
MB
Es utilizado en Cálculo intensivo en general
y funciona como superservidor de internet.
genéticos.
63
2.12
GESTIÓN DE ALMACENAMIENTO EN DISCOS
El almacenamiento en disco puede consistir en una NAS, una SAN o
almacenamiento interno en el servidor. El protocolo más comúnmente utilizado es
NFS (Network File System), sistema de ficheros compartido entre servidor y los
nodos. Sin embargo existen sistemas de ficheros específicos para Clústers como
Lustre (CFS) y PVFS2.
Tecnologías en el soporte del almacenamiento en discos duros:
IDE (PATA, Parallel ATA): Anchos de banda (Bw) de 33, 66, 100 y
133MBps.
SATA I (SATA-150): Bw 150 MBps.
SATA II (SATA-300): Bw 300 MBps.
SCSI: Bw 160, 320, 640MBps. Proporciona altos rendimientos.
SAS (Serial Array SCSI): Aúna SATA II y SCSI. Bw 375MBps.
Las unidades de cinta (DLTs) son utilizadas para backups por su bajo
coste.
NAS (Network Attached Storage): es un dispositivo específico dedicado a
almacenamiento a través de red (normalmente TCP/IP) que hace uso de un S.O.
optimizado para dar acceso a través de protocolos CIFS, NFS, FTP o TFTP.
DAS (Direct Attached Storage): consiste en conectar unidades externas de
almacenamiento SCSI o a una SAN (Storage Area Network) a través de Fibre
Channel. Estas conexiones son dedicadas.
Mientras NAS permite compartir el almacenamiento, utilizar la red, y tiene una
gestión más sencilla, DAS proporciona mayor rendimiento y mayor fiabilidad al no
compartir el recurso.
64
ALMACENAMIENTO DE DISCO NAS VS. SAN
CATEGORIA
NAS
SAN
Cables
Protocolo
Ethernet
CIFS, NFS, ó HTTP
TCP/IP
Manejo
El NAS head
sistema de ficheros
Permite acceder a un sistema
de ficheros a través de TCP/IP
usando CIFS (en el caso de
Windows) ó NFS (en el caso de
Unix/Linux
Servidor de ficheros.
Almacenamiento de
directorios de usuario.
Almacenamiento de archivos
en general.
Acceso
Solución
adecuada
para
Fibre Channel
sobre Encapsulated SCSI (iSCSI, cuando
encapsula sobre TCP/IP, y FCP cuando
encapsula directamente sobre Fibre
Channel)
gestiona el Múltiples servidores manejan los datos
Cuadro No.4
Es
usada
para
acceder
a
almacenamiento en modo BLOQUE, a
través de una red de fibra óptica con
Fibre Channel (FC) utilizando el
protocolo SCSI.
Bases de datos.
Data warehouse.
Backup (al no interferir en la red del
sistema).
Cualquier aplicación que requiera
baja latencia y alto ancho de banda
en el almacenamiento y
recuperación de datos.
Almacenamiento NAS vRs. SAN
2.12.1
REDUNDANT ARRAY OF INDEPENDENT DISKS
(RAID)15
RAID son las siglas para Redundant Array of Inexpensive Disks, que traducido al
español significa Arreglo Redundante de Discos Económicos.
Un subsistema RAID nos va a permitir eliminar SPOF de los recursos de
almacenamiento. Actualmente el kernel de Linux soporta RAID 0, 1 y 5 con el
driver MD. Además de RAID software también soporta gran número de
controladoras SCSI y ATA100 que ofrecen volúmenes de RAID por hardware.
Compaq e IBM han colaborado mucho en este aspecto, creando drivers para sus
productos.
15
http://www.smdata.com/queesraid.htm
65
2.12.2
ARREGLOS DE DISCOS DUROS
El objetivo de RAID es combinar varias platinas de disco económicas en una
unidad lógica o arreglo de discos que mejora el desempeño superando el de una
platina de alta velocidad mucho más cara. Además de mejorar el desempeño, los
arreglos de disco pueden proveer tolerancia a fallas de disco al almacenar la
información de manera redundante en diversas formas.
Existen muchas aplicaciones para los arreglos de discos, especialmente en los
ambientes corporativos donde hay necesidades más allá de lo que puede ser
satisfecho por un solo disco duro, sin importar su capacidad, desempeño o
calidad.
Muchas empresas y corporaciones no pueden tomarse el lujo de tener sus
sistemas abajo por al menos una hora en caso de una falla de disco; requieren
subsistemas de almacenamiento masivo con capacidades en terabytes, que
además sean resistentes a fallas a cualquier nivel posible.
Originalmente RAID era utilizado casi exclusivamente para las aplicaciones de alto
nivel en los negocios debido al alto costo de los equipos requeridos. Esta situación
cambió paulatinamente conforme los usuarios de alto nivel (power users) de todos
los niveles comenzaron a exigir mejor desempeño y mayor tiempo de operación.
66
2.12.3
NIVELES DE ARREGLOS.16
2.12.3.1 RAID 1: ESPEJO Y DUPLICACION
RAID nivel 1 requiere al menos dos platinas de disco para poder ser
implementado. Para mejor desempeño, el controlador debe de ser capaz de
realizar dos lecturas concurrentes independientes por par espejo o dos escrituras
duplicadas por par de discos en espejo.
Funcionamiento
RAID 1 implementa un arreglo de discos en espejo en donde los datos son leídos
y escritos de manera simultánea en dos discos distintos.
Ventajas
En esta configuración un arreglo de discos puede realizar una escritura o dos
lecturas por par en espejo, duplicando la tasa de transaccional de lectura de
discos simples con la misma tasa transaccional de escritura que los discos
tradicionales. Una redundancia total de datos significa que no es necesaria la
reconstrucción en caso de falla de algún disco, sino sólo una copia.
16
http://mx.geocities.com/pcmuseo/mecatronica/discoraidniveles.htm
67
La tasa de transferencia por bloques es la misma que en los discos
tradicionales.
Bajo ciertas circunstancias RAID 1 puede soportar fallas simultáneas
múltiples de discos.
Es el diseño RAID más simple.
Sencillez de implementación.
Desventajas
Es el que tiene mayor derroche de disco de todos los tipos de RAID, con el
100% de derroche.
Típicamente la función RAID es llevada a cabo por el software del sistema
cargando a la UCP ó al servidor, degradando el desempeño del mismo.
Probablemente no soporte cambio en caliente de un disco dañado cuando
se implementa por software.
68
RAID 2: CODIGO DE CORRECCION DE ERRORES CON CODIGO
DE HAMMING
RAID nivel 2 requiere al menos dos platinas de disco para poder ser
implementado. Para mejor desempeño, el controlador debe de ser capaz de
realizar dos lecturas concurrentes independientes por par espejo o dos escrituras
duplicadas por par de discos en espejo.
Funcionamiento
Cada bit de cada palabra es escrito a un disco, 4 en el ejemplo gráfico. Cada
palabra tiene su Código Hamming de Corrección de Errores (CHCE) almacenada
en los discos CHCE. Durante la lectura el CHCE verifica y corrige los datos o
errores específicos en los discos.
69
Ventajas
En esta configuración un arreglo de discos puede realizar una escritura o dos
lecturas por par en espejo, duplicando la tasa de transaccional de lectura de
discos simples con la misma tasa transaccional de escritura que los discos
tradicionales. Una redundancia total de datos significa que no es necesaria la
reconstrucción en caso de falla de algún disco, sino sólo una copia.
Capacidad de corrección de errores al paso.
Es posible alcanzar tasas de transferencia muy altas.
A mayor tasa de transferencia requerida, es mejor la relación de los discos
de datos a los discos CHCE.
El diseño del controlador es relativamente simple comparado con los
niveles 3,4 y 5.
Desventajas
Puede tener una alta relación de los discos CHCE a los discos de datos con
tamaños de palabra pequeños, tornando el sistema ineficiente.
Costo de nivel de entrada muy alto, requiere de una muy alta tasa de
transferencia para justificarlo.
No existen implementaciones comerciales ya que comercialmente no es
viable.
70
2.12.3.2 RAID 3: TRANSFERENCIA EN PARALELO CON PARIDAD
RAID nivel 3 requiere cuando menos 3 discos para funcionar.
Funcionamiento
El bloque de datos es subdividido en bandas y escrito en los discos de datos. Las
bandas de paridad son generadas durante la escritura, almacenadas en los discos
de paridad y verificado durante la lectura.
Ventajas
Muy alta tasa de transferencia de lectura.
Muy alta tasa de transferencia de escritura.
La falla de un disco tiene impacto poco relevante para la capacidad de
transferencia.
Baja relación de discos de paridad contra los de datos, lo que aumenta la
eficiencia.
71
Desventajas
En el mejor de los casos la tasa de transacciones es la misma que en
configuraciones de un solo disco.
Diseño de controlador relativamente simple.
Muy complejo y demandante de recursos para implementarse por software.
2.12.3.3 RAID 4: DISCOS INDEPENDIENTES DE DATO CON DISCO
COMPARTIDO DE PARIDAD.
RAID nivel 4 requiere cuando menos 3 discos para funcionar.
Funcionamiento
Cada bloque completo es escrito en un disco de datos. La paridad para bloques
del mismo rango es generada durante las escrituras y almacenada en el disco de
paridad, y verificada durante las lecturas.
72
Ventajas
Muy alta tasa transaccional de lectura.
Baja relación de discos de paridad contra los de datos, lo que aumenta la
eficiencia.
Alta tasa de transferencia agregada para lectura.
Desventajas
Tiene la peor tasa transaccional de escritura así como para escritura
agregada.
Diseño muy complejo de controlador.
Reconstrucción de datos compleja e ineficiente en caso de falla de disco.
Tasa de transferencia en lectura por bloques igual a la de un disco simple.
2.12.3.4 RAID 5: DISCOS INDEPENDIENTES DE DATOS CON
BLOQUES DISTRIBUIDOS DE PARIDAD
RAID nivel 5 requiere cuando menos 3 discos para funcionar.
73
Funcionamiento
Cada bloque de datos completo es escrito en un disco de datos; la paridad para
los bloques en el mismo rango es generada durante las escrituras, almacenada en
locaciones distribuidas y verificada durante las lecturas.
Ventajas
Tiene la más alta tasa de transacciones de lectura.
Regular tasa de transacciones de escritura.
Baja relación entre los discos de paridad contra los discos de datos
ofreciendo una alta eficiencia.
Buena tasa de transferencia de agregado.
Es el nivel de RAID más versátil.
Desventajas
La falla de un disco tiene impacto sensible en el desempeño.
El diseño del controlador es el más complejo.
La reconstrucción de datos en caso de falla de un disco es compleja,
comparada con RAID 1.
Tasa de transferencia en bloques individuales de datos igual que la de un
disco sencillo.
74
2.12.3.5 RAID 6: DISCOS INDEPENDIENTES DE DATOS CON
ESQUEMAS INDEPENDIENTES DE PARIDAD
RAID nivel 6 requiere n+2 discos para funcionar.
Funcionamiento
Esencialmente RAID 6 es una extensión de RAID 5 que aumenta la tolerancia a
fallos utilizando bandas de paridad bidimensionales.
Las bandas de paridad bidimensionales consisten en la utilización de un segundo
esquema independiente de distribución de bandas de paridad.
Los datos son separados en bandas a nivel de bloques a través de todos los
discos, como en RAID 5, y un segundo conjunto de paridad es calculado y escrito
en todos los discos; RAID 6 provee una tolerancia a fallos extremadamente alta y
puede soportar múltiples fallas simultáneas de discos.
Ventajas
Muy alta tolerancia a fallos de disco.
Tolerancia a fallas de múltiples discos.
75
Desventajas
Diseño complejo del controlador.
Alta sobrecarga del controlador para calcular direcciones de paridad.
Pobre desempeño para la escritura.
Requiere de n+2 discos debido al esquema de paridad bidimensional.
2.12.4
DEFINICIÓN DE HOT SWAP 17
Es la capacidad de algunos componentes esenciales que permiten instalarse o
sustituirse sin detener las operaciones normales de la computadora que los aloja.
Cuando no son componentes esenciales se denomina hot pluggin o conexión en
caliente.
Este tipo de componentes (y los sistemas operativos que lo permiten) suelen
utilizarse en servidores que necesitan estar en funcionamiento sin parar. Por
ejemplo, las fuentes de alimentación en los servidores suelen ser hot swap,
cuando una se rompe, es posible sustituirla sin detener el suministro eléctrico.
También un disco duro si se daña puede ser reemplazado sin afectar a los datos,
pues suelen utilizar varios discos duros con información espejada (RAID).
17
http://www.alegsa.com.ar/Dic/hot%20swap.php
76
2.12.5
CLUSTERS CON DISCOS DUROS
Los discos duros son los dispositivos donde se graban los datos. El fallo más
común en un servidor es el fallo de un disco duro. Si el servidor tiene solamente
un disco y este falla, fallara el servidor al completo y no se podrá acceder a los
datos contenidos en el mismo. Existen por ello técnicas que nos ayudan a
minimizar este problema y a que el servidor siga funcionando y no pierda datos
incluso cuando falle algún disco duro. Lo más normal también, es que se puedan
sustituir los discos que fallan sin necesidad de apagar el servidor (HotSwap)
La técnica más comunes la llamada RAID (redundant array of independent disks).
Con esta técnica creamos un conjunto de discos redundantes que nos pueden
ayudar, tanto a aumentar la velocidad y el rendimiento del sistema de
almacenamiento, como a que el sistema siga funcionando aunque algún disco
falle.
Existen
implementaciones
por
software
y
hardware
y
diferentes
configuraciones RAID, siendo las más comunes RAID1, RAID5 y RAID10.
2.12.6
LOGICAL VOLUME MANAGEMENT (LVM)
El software de gestión de volúmenes permite exportar los volúmenes de grupos de
discos para que el servicio de datos pueda hacer uso de él. Logical Volume
Management inicialmente adoptado por IBM luego por la OSF, está en desarrollo.
No sólo es capaz de cambiar el tamaño de discos lógicos sino también de
sistemas de ficheros ext2.
77
2.13
DIRECCIONES IP18
Las direcciones IP fueron creadas con la idea de asignar un numero único en las
maquinas para tener control sobre ellas e identificarlas en su momento.
2.13.1
CLASES DE IP´S
Internet Corporation for Assigned Names and Numbers - Corporación de Internet
para la Asignación de Nombres y Números. Organización sin fines de lucro creada
el 18 de septiembre de 1998 para encargarse de algunas tareas que realizaba la
IANA. Es manejada por el Departamento de Comercio de EE.UU., no permitiendo
a ningún organismo o empresa manejar dichas tareas.
Éstas tareas incluyen la gestión de la asignación de nombres de dominios de
primer nivel y direcciones IP. La Internet Corporation for Assigned Names and
Numbers (ICANN es la organización encargada de distribuir las direcciones IP.)
reconoce tres clases de direcciones IP:
Clase A:
En esta clase se reserva el primer grupo a la identificación de la red, quedando los
tres siguientes para identificar los diferentes host. Los rangos de esta clase están
comprendidos entre 1.0.0.0 y 127.255.255.255.
Clase B:
En esta clase se reservan los dos primeros grupos a la identificación de la red,
quedando los dos siguientes para identificar los diferentes host. Los rangos de
esta clase están comprendidos entre 128.0.0.0 y 191.255.255.255.
18
http://www.ibiblio.org/pub/Linux/docs/LuCaS/Manuales-LuCAS/GARL2/garl2/x-087-2-issues.ipaddresses.html
78
Clase C:
En esta clase se reservan los tres primeros grupos a la identificación de la red,
quedando el último para identificar los diferentes hosts. Los rangos de esta clase
están comprendidos entre 192.0.0.0 y 223.255.255.255.
Cuadro No.5
2.13.2
Clases de IP´S
IP's PUBLICAS
La IP pública sirve para establecer conexiones con los servidores que alojan las
páginas web, el correo, intercambio de P2P y todo lo que implique tener conexión
con otro Host o servidor fuera de nuestra LAN.
Las IP´s públicas generalmente las administran los proveedores de internet y otras
instituciones especializadas en el control de estas.
Al igual que las privadas, las públicas son un conjunto de cuatro números a partir
de cero hasta 255 separados por un punto. Ejemplo 200.85.0.104
La dirección IP es con la que nos identificamos al conectarnos a otras redes
(Internet). Esta IP nos la asigna nuestro proveedor ISP, y no tenemos control
sobre ella. A su vez puede ser de dos tipos diferentes:
79
IP estática
Es cuando tenemos una dirección IP fija asignada. Este tipo es poco utilizado,
carece de interés para el usuario doméstico y además los proveedores ISP suelen
cobrar un suplemento por ellas.
IP dinámica
Es la utilizada habitualmente. El ISP nos asigna al conectarnos a la red (Internet)
una dirección que tenga disponible en ese momento. Esta dirección cambia cada
vez que nos desconectamos de Internet y nos volvemos a conectar.
2.13.3
IP´s PRIVADAS
La IP privada es la que asignamos a las maquinas de nuestra casa, empresa o
pequeño negocio, con el fin de ahorrar en direcciones públicas, dar seguridad a
nuestra PC, ya que nadie puede entrar a una maquina usando una IP privada, y
permitirnos comunicación entre PC’s conectadas al mismo router o switch.
Las direcciones privadas responden al estándar RFC1918 que establece que las
IP’s privadas deben ser del rango
10.0.0.0 al 10.255.255.255
172.16.0.0 al 172.31.255.255
192.168.0.0 al 192.168.255.255
80
2.14
ELEMENTOS PARA CREAR UNA RED DE AREA LOCAL 19
En una LAN existen elementos de hardware y software entre los cuales se pueden
destacar:
El servidor: es el elemento principal de procesamiento, contiene el
sistema operativo de red y se encarga de administrar todos los procesos
dentro de ella, controla también el acceso a los recursos comunes como
son las impresoras y las unidades de almacenamiento.
Las estaciones de trabajo: en ocasiones llamadas nodos, pueden ser
computadoras personales o cualquier terminal conectada a la red. De
esta manera trabaja con sus propios programas o aprovecha las
aplicaciones existentes en el servidor.
El sistema operativo de red: es el programa (software) que permite el
control de la red y reside en el servidor. Ejemplos de estos sistemas
operativos de red son: NetWare, LAN Manager, OS/2, LANtastic y
Appletalk.
Los protocolos de comunicación: son un conjunto de normas que
regulan la transmisión y recepción de datos dentro de la red.
La tarjeta de interface de red: proporciona la conectividad de la
terminal o usuario de la red física, ya que maneja los protocolos de
comunicación de cada topología especifica.
También se denominan NIC (Network Interface Card). Básicamente realiza la
función de intermediario entre el ordenador y la red de comunicación. En ella se
encuentran grabados los protocolos de comunicación de la red. La comunicación
19
Cisco Networking Academy Program CCNA Land2. Versión 3.1
81
con el ordenador se realiza normalmente a través de las ranuras de expansión que
éste dispone, ya sea ISA, PCI o PCMCIA. Aunque algunos equipos disponen de
este adaptador integrado directamente en la placa base.
La función de una NIC es conectar un dispositivo host al medio de red. Una NIC es
una placa de circuito impreso que se coloca en la ranura de expansión de un bus
de la motherboard o dispositivo periférico de un computador. La NIC también se
conoce como adaptador de red. En los computadores portátiles o de mano, una
NIC tiene el tamaño de una tarjeta de crédito.
82
2.15
TOPOLOGIAS DE RED20
El término topología se refiere a la forma en que está diseñada la red, bien
físicamente (rigiéndose de algunas características en su hardware) o bien
lógicamente (basándose en las características internas de su software).
La topología de red es la representación geométrica de la relación entre todos los
enlaces y los dispositivos que los enlazan entre sí (habitualmente denominados
nodos).
Entre las topologías de red de uso más común se encuentran: malla, estrella,
árbol, bus y anillo.
Fig. No.7 TOPOLOGIAS DE RED
2.15.1
TOPOLOGÍA DE MALLA
En esta topología, cada dispositivo tiene un enlace
punto a punto y dedicado con cualquier otro
dispositivo. El término dedicado significa que el
enlace conduce el tráfico únicamente entre los dos
dispositivos que conecta.
Fig. No.8 TOPOLOGIAS DE MALLA
20
Tomado de: http://www.bloginformatico.com/topologia-de-red.php
83
Por tanto, una red en malla completamente conectada necesita n(n-1)/2 canales
físicos para enlazar n dispositivos. Para acomodar tantos enlaces, cada dispositivo
de la red debe tener sus puertos de entrada/salida (E/S).
Una malla ofrece varias ventajas sobre otras topologías de red. En primer lugar, el
uso de los enlaces dedicados garantiza que cada conexión sólo debe transportar
la carga de datos propia de los dispositivos conectados, eliminando el problema
que surge cuando los enlaces son compartidos por varios dispositivos. En
segundo lugar, una topología en malla es robusta. Si un enlace falla, no inhabilita
todo el sistema.
Otra ventaja es la privacidad o la seguridad. Cuando un mensaje viaja a través de
una línea dedicada, solamente lo ve el receptor adecuado. Las fronteras físicas
evitan que otros usuarios puedan tener acceso a los mensajes.
2.15.2
TOPOLOGÍA DE ESTRELLA
En la topología en estrella cada dispositivo solamente tiene un enlace punto a
punto dedicado con el controlador central, habitualmente llamado concentrador.
Los dispositivos no están directamente enlazados entre sí.
A diferencia de la topología en malla, la topología en estrella no permite el tráfico
directo de dispositivos. El controlador actúa
como un intercambiador: si un dispositivo
quiere enviar datos a otro, envía los datos al
controlador, que los retransmite al dispositivo
final.
Una topología en estrella es más barata que
una topología en malla. En una red de estrella,
Fig. No.9 TOPOLOGIAS DE ESTRELLA
cada dispositivo necesita solamente un enlace
84
y un puerto de entrada/salida para conectarse a cualquier número de dispositivos.
Este factor hace que también sea más fácil de instalar y reconfigurar. Además, es
necesario instalar menos cables, y la conexión, desconexión y traslado de
dispositivos afecta solamente a una conexión: la que existe entre el dispositivo y el
concentrador.
2.15.3
TOPOLOGÍA DE ÁRBOL
La topología de árbol es una variante de la de estrella. Como en la estrella, los
nodos del árbol están conectados a un concentrador central que controla el tráfico
de la red.
Sin embargo, no todos los dispositivos se conectan directamente al concentrador
central.
La mayoría de los dispositivos se conectan a un concentrador secundario que, a
su vez, se conecta al concentrador central.
Fig. No.10 TOPOLOGIAS DE ARBOL
El controlador central del árbol es un concentrador activo. Un concentrador activo
contiene un repetidor, es decir, un dispositivo hardware que regenera los patrones
de bits recibidos antes de retransmitidos.
85
Retransmitir las señales de esta forma amplifica su potencia e incrementa la
distancia a la que puede viajar la señal. Los concentradores secundarios pueden
ser activos o pasivos. Un concentrador pasivo proporciona solamente una
conexión física entre los dispositivos conectados.
2.15.4
TOPOLOGÍA DE BUS
Esta topología se caracteriza por tener un único canal de comunicaciones
(denominado bus, troncal o backbone) al cual se conectan los diferentes
dispositivos. De esta forma todos los dispositivos comparten el mismo canal de
comunicación entre sí.
Los nodos se conectan al bus mediante cables de conexión (y sondas). Un cable
de conexión es una conexión que va desde el dispositivo al cable principal. Una
sonda es un conector que, o bien se conecta al cable principal, o se pincha en el
cable para crear un contacto con el núcleo metálico.
Fig. No.11 TOPOLOGIAS DE BUS
Entre las ventajas de la topología de bus se incluye la sencillez de instalación.
El cable troncal puede tenderse por el camino más eficiente y, después, los nodos
se pueden conectar al mismo mediante líneas de conexión de longitud variable.
De esta forma se puede conseguir que un bus use menos cable que una malla,
una estrella o una topología en árbol.
86
2.15.5
TOPOLOGÍA DE ANILLO
En una topología en anillo cada dispositivo tiene una línea de conexión dedicada y
punto a punto solamente con los dos dispositivos que están a sus lados. La señal
pasa a lo largo del anillo en una dirección, o de dispositivo a dispositivo, hasta que
alcanza su destino. Cada dispositivo del anillo incorpora un repetidor.
Un anillo es relativamente fácil de instalar y
reconfigurar. Cada dispositivo está enlazado
solamente a sus vecinos inmediatos (bien
físicos o lógicos). Para añadir o quitar
dispositivos, solamente hay que mover dos
conexiones.
Las únicas restricciones están relacionadas
con aspectos del medio físico y el tráfico
(máxima longitud del anillo y número de
Fig. No.12 TOPOLOGIAS DE ANILLO
dispositivos). Además, los fallos se pueden aislar de forma sencilla. Generalmente,
en un anillo hay una señal en circulación continuamente.
PARES EN HUB
87
ANILLO
N+1
88
2.16
LICENCIAMIENTO DE SOFTWARE
La licencia de software es una especie de contrato, en donde se especifican todas
las normas y clausulas que rigen el uso de un determinado programa,
principalmente se estipulan los alcances de uso, instalación, reproducción y copia
de estos productos.
2.16.1
LICENCIAR UN SOFTWARE
"Es el procedimiento de conceder a otra persona o entidad el derecho de usar un
software con fines industriales, comerciales o personales, de acuerdo a las
clausulas que en ella aparecen."
Es obtener la determinada licencia ó autorización que permita el uso legal de un
determinado programa, esta licencia es un documento electrónico, en papel
original ó número de serie autorizado por el autor. Se puede tener cualquier
cantidad de programas instalados, pero necesitará un documento ó número de
serie legal que le autorice su uso.
El software gratis como el sistema operativo Linux, el traductor Babylon, WinZip
para descomprimir archivos y muchos otros son considerados por el usuario
promedio, como programas para el 'uso y el abuso' por parte de este. Y los que
tienen alguna idea sobre las diferentes licencias que cobijan el software sin costo
pueden llegar a confundirse con las sutiles distinciones que existen entre los tipos
de licencias como GPL, Free Software, de dominio público y Open Source.
89
2.16.2
TIPOS DE LICENCIAS DE SOFTWARE LIBRE .21
2.16.2.1 FREE SOFTWARE
Según Richard Stallman, fundador del proyecto GNU, "el termino software libre ha
sido malinterpretado, pues no tiene nada que ver con el precio, tiene que ver con
libertad" (El Proyecto GNU es una campaña para difundir el Free Software. Fue
iniciada por Richard Stallman en 1984 y pretende implantar la tendencia hacia el
desarrollo de software sin limitantes de derechos de autor y bajo precio).
Explica Stallman que para que un software sea libre, este debe cumplir los
siguientes requisitos:
Que se pueda ejecutar sin importar el propósito.
Que el usuario lo pueda modificar para ajustarlo a sus necesidades. Para
lograrlo, este debe tener acceso al código fuente ya que si no se sabe el
código es muy difícil realizar cambios.
Que el usuario pueda redistribuir copias del programa, ya sea gratis o por
una suma determinada.
Que el usuario pueda distribuir versiones modificadas del programa siempre
y cuando se documenten los cambios al software.
2.16.2.2 OPEN SOURCE
Es necesario aclarar que Open Source y Free Software son esencialmente lo
mismo, la diferencia radica en que los defensores del Free Software no están
ciento por ciento de acuerdo con que las empresas disfruten y distribuyan Free
Software ya que, según ellos, el mercado corporativo antepone la utilidad a la
21
http://aceitunassinhueso.com/wiki/index.php/Patentes_y_tipos_de_Licencias_de_Software
90
libertad, a la comunidad y a los principios y por ende no va de la mano con la
filosofía pura detrás del Free Software.
Por otra parte, los seguidores del software Open Source sostienen que el proceso
normal de crecimiento de la tendencia debe llegar al mercado corporativo y no
seguir escondida bajo el manto de la oposición, sino que, por el contrario, están en
el deber de lanzar software potente y de excelente calidad. Para lograrlo, creen en
la necesidad de un software Open Source más confiable que el software
propietario ya que son más las personas que trabajan en el al mismo tiempo y
mayor la cantidad de 'ojos' que pueden detectar errores y corregirlos.
Open Source es pues, el software que puede ser compartido abiertamente entre
desarrolladores y usuarios finales de tal forma que todos aprendan de todos. Tal
es el caso de Linux, que espera juntar a desarrolladores de todo el mundo,
profesionales y aficionados a la espera del despegue definitivo de la tecnología
bajo licencia Open Source.
2.16.2.3 LICENCIA
GPL
(GENERAL
PUBLIC
LICENSE)
Ó
'COPYLEFT'
La licencia GPL se aplica al software de la FSF (Free Software Foundation) y el
proyecto GNU y otorga al usuario la libertad de compartir el software y realizar
cambios en él. Dicho de otra forma, el usuario tiene derecho a usar el programa,
modificarlo y distribuir las versiones modificadas pero no tiene permiso de realizar
restricciones propias con respecto a la utilización de ese programa modificado.
La licencia GPL o copyleft (contrario a copyright) fue creada para mantener la
libertad del software y evitar que alguien quisiera apropiarse de la autoría
intelectual de un determinado programa. La licencia advierte que el software debe
ser gratuito y que el paquete final, también debe ser gratuito.
91
2.16.2.4 SOFTWARE DE DOMINIO PÚBLICO.
El software de dominio público no está protegido por las leyes de derechos de
autor y puede ser copiado por cualquiera sin costo alguno. Algunas veces los
programadores crean un programa y lo donan para su utilización por parte del
público en general. Lo anterior no quiere decir que en algún momento un usuario
lo pueda copiar, modificar y distribuir como si fuera software propietario. Así
mismo, existe software gratis protegido por leyes de derechos de autor que
permite al usuario publicar versiones modificadas como si fueran propiedad de
este último.
2.16.2.5 FREEWARE
Es software que el usuario final puede bajar totalmente gratis de Internet. La
diferencia con el Open Source es que el autor siempre es dueño de los derechos,
o sea que el usuario no puede realizar algo que no esté expresamente autorizado
por el autor del programa, como modificarlo o venderlo. Un ejemplo de este tipo de
software es el traductor Babylon, Quintessential, BSPlayer, etc.
2.16.2.6 SHAREWARE
Es software que se distribuye gratis y que el usuario puede utilizar durante algún
tiempo. El autor requiere que después de un tiempo de prueba el usuario pague
por el software, normalmente a un costo bastante bajo, para continuar usando el
programa. Algunas veces el programa no deja de funcionar si el usuario no paga,
pero se espera que este último cancele una suma de dinero y se registre como
usuario legal del software para que además del programa reciba soporte técnico y
actualizaciones. El usuario puede copiar el software y distribuirlo entre sus amigos.
El 'bajo costo' del shareware se debe a que el producto llega directamente al
cliente (Internet), evitando así los costos de empaque y transporte. A menudo el
software shareware es denominado como software de evaluación. Hay también
software shareware que dejan de funcionar después de un periodo de prueba, los
llamados Try Out.
92
2.16.2.7 ADWARE (ADVERTISING SPYWARE)
No son más que programas financiados con componentes publicitarios ocultos que
son instalados por algunos productos shareware, Es decir, el software es gratuito
en su uso a cambio de tener un banner de publicidad visible en todo momento
mientras utilizamos el programa. Se supone que éste es el único «precio» que
debemos pagar por usar este tipo de aplicaciones. Pero en ocasiones estos
programas aprovechan que tienen que estar conectados a la Red para
descargarse
la
publicidad
y
pueden
enviar
algunos
datos
personales.
El Adware, al igual que el Spyware son aplicaciones que instaladas del mismo
modo explicado anteriormente, permiten visualizar los banners publicitarios de
muchos programas gratuitos, mientras éstos son ejecutados. Es importante
mencionar que NO todos los programas gratuitos contienen archivos "espías" o
publicitarios.
2.16.3
ALGUNAS
VENTAJAS
DE
UTILIZAR
CÓDIGO
ABIERTO.22
Es gratuito o muy barato.
Es de libre distribución, cualquier persona puede regalarlo, venderlo o
prestarlo.
Es más seguro.
Permite ofrecer menores tiempos de desarrollo debido a la amplia
disponibilidad de herramientas y bibliotecas.
Se puede acceder a su código y aprender de él.
Se puede modificar, adaptándolo para realizar tareas específicas.
22
http://www.altavoz.net/prontus_altavoz/antialone.html?page=http://www.altavoz.net/prontus_altavoz/sit
e/artic/20060304/pags/20060304151415.html
93
Descargar