Unidad 5
Usos y tendencias de los sistemas distribuidos
Administración de Sistemas Distribuidos. La administración de sistemas distribuidos incluye las actividades como: manejo de la versión y distribución del software, monitoreo de la utilización de los recursos y el mantenimiento del sistema de seguridad, entre otros. Los administradores de sistemas distribuidos se ocupan de monitorear continuamente al sistema y se deben de asegurar de su disponibilidad. Para una buena administración, se debe de poder identificar las áreas que están teniendo problemas así como de la rápida recuperación de fallas que se puedan presentar. La información que se obtiene mediante el monitoreo sirve a los administradores para anticipar situaciones críticas. La prevención de estas situaciones ayuda a que los problemas no crezcan para que no afecten a los usuarios del sistema.
5.1 Administracion Sistemas Distribuidos
La administración de sistemas distribuidos incluye las actividades como: manejo de la versión y distribución del software, monitoreo de la utilización de los recursos y elmantenimiento del sistema de seguridad, entre otros. Los administradores de sistemas distribuidos se ocupan de monitorear continuamente al sistema y se deben de asegurar desu disponibilidad. Para una buena administración, se debe depoder identificar las áreas que están teniendo problemas así como de la rápida recuperación de fallas que se puedanpresentar. La información que se obtiene mediante el monitoreosirve a los administradores para anticipar situaciones críticas. Laprevención de estas situaciones ayuda a que los problemas nocrezcan para que no afecten a los usuarios del sistema.
Configuración de SOD
Instalación Tipica
§ Soporte de instalación del Sistema Operativo (CD con auto-arranque)
§ Información del hardware disponible en la máquina destino
§ Drivers de los dispositivos hardware para el sistema operativo elegido (mínimo la tarjeta gráfica, aunque es
muy aconsejable disponer de conexión a internet)
De forma general, la instalación se compone de los siguientes pasos:
1. Configuración del dispositivo de arranque en la BIOS
2. Creación de las particiones en el disco duro
3. Creación del sistema de ficheros
4. Selección de paquetes
5. Configuración
6. Instalación y configuración de aplicaciones
En el caso concreto de a práctica, se se va a instalar un sistema operativo Microsoft Windows. El instalador se subdivide en dos partes fundamentales:
1. Instalación modo texto: Se encarga de detectar y cargar los controladores necesarios. Permite crear las particiones y sistema de ficheros y finaliza realizando la copia de los ficheros imprescindibles.
2. Instalación gráfica: encargada de realizar la copia de los ficheros del sistema y aplicaciones del sistema operativo y permite configurar las opciones de internacionalización y de red.
5.2 Instalacion de Sistemas Operativos Distribuidos
Los sistemas operativos distribuidos abarcan los servicios de los de red, logrando integrar recursos ( impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso ) en una sola máquina virtual que el usuario aceza en forma transparente. Es decir, ahora el usuario ya no necesita saber la ubicación de los recursos, sino que los conoce por nombre y simplemente los usa como si todos ellos fuesen locales a su lugar de trabajo habitual.
Todo lo anterior es el marco teórico de lo que se desearía tener como sistema operativo distribuido, pero en la realidad no se ha conseguido crear uno del todo, por la complejidad que suponen: distribuir los procesos en las varias unidades de procesamiento, reintegrar sub-resultados, resolver problemas de concurrencia y paralelismo, recuperarse de fallas de algunos recursos distribuidos y consolidar la protección y seguridad entre los diferentes componentes del sistema y los usuarios.
Los avances tecnológicos en las redes de área local y la creación de microprocesadores de 32 y 64 bits lograron que computadoras mas o menos baratas tuvieran el suficiente poder en forma autónoma para desafiar en cierto grado a los mainframes, y a la vez se dio la posibilidad de intercomunicarlas, sugiriendo la oportunidad de partir procesos muy pesados en cálculo en unidades más pequeñas y distribuirlas en los varios microprocesadores para luego reunir los sub-resultados, creando así una máquina virtual en la red que exceda en poder a un mainframe.
El sistema integrador de los microprocesadores que hacer ver a las varias memorias, procesadores, y todos los demás recursos como una sola entidad en forma transparente se le llama sistema operativo distribuido.
Las razones para crear o adoptar sistemas distribuidos se dan por dos razones principales: por necesidad ( debido a que los problemas a resolver son inherentemente distribuidos ) o porque se desea tener más confiabilidad y disponibilidad de recursos. En el primer caso tenemos, por ejemplo, el control de los cajeros automáticos en diferentes estados de la república.
5.3 Estandares de administracion en sistemas operativos distribuidos.
Los estándares son aquellas
normas usuales, los propósitos, los objetivos, a alcanzar, las metas a alcanzar
y aquellos índices que integran los planes, y todo dato o cifra que pueda
emplearse como medida para cumplirlas, son considerados como estándares.
Estas medidas son
indispensables para el control, ya que indican la manera en que deseas que se
ejecute una actividad. En la práctica, son los objetivos declarados y definidos
de la organización y por esa razón los estándares deben abarcar las funciones básicas
y áreas clave de los resultados logrados.
Un estándar muy utilizado en
los sistemas distribuidos es el CORBA, en el cual nos basaremos para explicar
este tema.
5.4 Computo de alto rendimiento a bajo costo
Un cluster es una solución
computacional estructurada a partir de un conjunto de sistemas computacionales
muy similares entre si (grupo de computadoras), interconectados mediante alguna
tecnología de red de alta velocidad, configurados de forma coordinada para dar
la ilusión de un único recurso; cada uno de estos sistemas estará proveyendo un
mismo servicio o ejecutando una (o parte de una) misma aplicación paralela. Un
cluster debe tener como característica inherente la compartición de recursos: ciclos
de CPU (Central Processing Unit), memoria, datos y servicios.
Los sistemas computacionales
(nodos) que conforman el cluster podrían ser computadoras de uno o
varios procesadores; estos sistemas podrían estar montados en un rack,
ubicados en un espacio dedicado exclusivamente a almacenar computadoras, o en
el cubículo de un empleado; lo que cuenta es como están relacionados, como son
accesados, y que tipo de aplicación están ejecutando.
La idea de los clusters tomo
impulso en los 90s, cuando se dispuso de microprocesadores de alto rendimiento,
redes de alta velocidad, y herramientas estándar para computación distribuida (Message
Passing Interface, MPI, Parallel Virtual Machine, PVM (Quinn, 2003;
Pacheco, 1997)) y a costos razonables. Pero también el desarrollo de los clusters fue
impulsado por deficiencias de los Sistemas Multiprocesador Simétricos (Symmetric
MultiProcessors, SMPs (Culler y Singh, 1999)). Las grandes máquinas SMP son
costosas, propietarias, tienen un único punto de falla, no están ampliamente
disponibles, y sufren de problemas de escalabilidad, en términos de número de
procesadores y capacidad de memoria. Según Lucke (2005), los sistemas SMP más
grandes conocidos, escalan hasta un número de alrededor de 128 CPUs.
En 1994, T. Sterling y D.
Becker, trabajando en CESDIS (Center of Excellence in Space Data and
Information Sciences) bajo el patrocinio del Proyecto de la Tierra y Ciencias
del Espacio (ESS), construyeron un cluster de computadoras que
consistía de 16 procesadores 486DX4, usando una red Ethernet a 10Mbps, con un
costo de $40,000. Ellos llamaron a su sistema Beowulf, un éxito inmediato,
y su idea de proporcionar sistemas en base a COTS (Components Of The Shelve)
para satisfacer requisitos de cómputo específicos, se propagó rápidamente a
través de la NASA y en las comunidades académicas y de investigación. En la
actualidad, muchos clusters todavía son diseñados, ensamblados y
configurados por sus propios operadores; sin embargo, existe la opción de
adquirir clustersprefabricados.
El problema que se intenta
resolver con estos clusters es el de disponer de capacidad
computacional equivalente al encontrado en poderosas y costosas
supercomputadoras paralelas tradicionales (Cray/SGI T3E) (Gordon y Gray, 2001),
pero empleando componentes de bajo costo y ampliamente disponibles (commodities).
Los altos requerimientos computacionales a los que se hace mención, son típicos
en aplicaciones como algoritmos genéticos, simulación de líneas de fabricación,
aplicaciones militares, bases de datos, síntesis de imágenes, recuperación de
imágenes por contenido, simulación de modelos para clima, análisis de sismos,
algoritmos para solución a problemas de electromagnetismo, dinámica de fluidos,
química cuántica, biomedicina, etc. (Buyya, 1999, Vol. II).
Las grandes
supercomputadoras tradicionales, propietarias y costosas, están siendo
reemplazadas por clusters a una fracción del costo. Esto permite a
pequeñas organizaciones de investigación, departamentos de IT (Information
Technology), y grupos de ingeniería, poseer sus propias supercomputadoras, a
una fracción del costo previamente requerido para obtener el equivalente
computacional. Otros aspectos económicos a considerarse son costos explícitos,
necesarios para utilizar y mantener un centro especializado con
supercomputadoras: espacio, aire acondicionado, consumo de potencia, personal
para administración y consultas, etc. Cuando se posee un cluster estos costos
están implícitos ya que se operan centros propios y no se los debe sustentar
como usuarios de un centro especializado (Gordon y Gray, 2001).
En consecuencia, una de las
ventajas de una solución con clusters es construir una plataforma que
se ajuste a un presupuesto determinado y que sea adecuada para un grupo
considerable de aplicaciones. Además, un cluster puede ser expandido
con relativa facilidad, incrementando el número de nodos o la capacidad de los
nodos individuales existentes, añadiendo memoria y/o procesadores.
5.5 Super computo basado en clustering como solucion a la necesidad de alto procesamiento en la nueva era
El número de procesadores en
un cluster se ha incrementado notablemente, se habla de cientos de
procesadores. De acuerdo al reporte de http://www.top500.org,
de Noviembre de 2004, entre las diez supercomputadoras mas rápidas del mundo,
figuran cinco basadas en clusters, empleando un número de nodos en el
orden de 4000. El cluster más rápido se denomina MareNostrum, un
eServer BladeCenter JS20, formado por 4536 procesadores PowerPC970 de 2.2 GHz e
interconectados con una red Myrinet, es considerada la cuarta computadora más
veloz y fue desarrollada por el Barcelona Supercomputer Center de
España. La quinta computadora más veloz se denomina Thunder, formada por
4096 procesadores Intel Itanium 2 de 1.4 GHz e interconectados con una red
Quadrics, fue desarrollado por Lawrence Livermore National Laboratory de
los Estados Unidos. La sexta computadora se denominaASCI Q y está
conformada por 8192 procesadores AlphaServer SC45 de 1.25 GHz, fue desarrollada
por Los Alamos National Laboratory de los Estados Unidos. La séptima
computadora se denomina System X y está conformada por 2200
procesadores 1100 Dual Apple XServe de 2.3 GHz y posee dos redes una Cisco GigE
y otra Mellanox Infiniband, fue desarrollada por Virginia Tech de los
Estados Unidos. La décima computadora también es un cluster, se denominaTungsten y
está formada por 1450 procesadores P4 Xeon de 3.06 GHz y utiliza una red
Myrinet para la interconexión de los nodos, fue desarrollada por NCSA de los
Estados Unidos.
En la actualidad, se
pretende que este tipo de solución se inserte entre las tendencias ampliamente
utilizadas en el mundo de IT, que no sean únicamente un instrumento en
universidades e institutos de investigación. Más aún, como Gordon y Gray (2001)
señalan, se prevé una convergencia de clusters con tópicos como computación
P2P (peer-to-peer) y computación Grid (Grid Computing).
Por lo mencionado, existe la
necesidad de un adecuado entendimiento de lo que la computación con clusters
puede ofrecer, cómo los clusters de computadoras pueden construirse,
y cuál su impacto en aplicaciones identificadas como adecuadas para un ambiente
basado en clusters.
5.6 Tendencias de investigacion
Las razones para construir
sistemas distribuidos son las siguientes:
Computación más rápida: si
un cálculo dado se puede subdividir en varios subcalculos susceptibles de
ejecución concurrente, un sistema distribuido podría permitirlo distribuir el
cálculo entre los distintos sitios, y ejecutándolo de forma concurrente.
Confiabilidad: si en un
sitio de un sistema distribuido falla, los sitios restantes podrían seguir
funcionando.
Comunicación: hay muchos
casos en los que los programas necesitan intercambiar datos con otros programas
del mismo sistema Si muchos sitios están conectados a través de una red de
comunicaciones, los procesos de diferentes sitios tienen la oportunidad de
intercambiar información. Los usuarios podrían iniciar transferencia de archivo
o comunicarse entre sí por correo electrónico.
5.7 Sistemas distribuidos como infraestructura para el soporte de las empresas en las TI
El impacto en los sistemas
de información y telecomunicación ya es, y será, muy importante. Éstas son
algunas de las características y tendencias que marcan estos cambios en la
sociedad.
La idea de comunicar e
intercambiar dinámicamente servicios e información dio origen a los sistemas
distribuidos. Esta noción indica que las necesidades de un mundo real, los
servicios deben adherirse o quitarse según sean requeridos. Los sistemas
distribuidos permiten la existencia de una multiplicidad de estaciones de
trabajo, las cuales ofrecen los recursos a los usuarios mediante un modelo de
red.
El usuario (sociedad) no
sabe concretamente la maquina que ofrece servicio ni su dirección o ubicación
geográfica; únicamente conoce su nombre o identificador y en muchos caso ni
siquiera este ultimo.