• No se han encontrado resultados

Análisis y selección del middleware Aspectos de seguridad y trabajo del middleware Globus Toolkit 4.0.4

N/A
N/A
Protected

Academic year: 2021

Share "Análisis y selección del middleware Aspectos de seguridad y trabajo del middleware Globus Toolkit 4.0.4"

Copied!
11
0
0

Texto completo

(1)

An´alisis y selecci´on del middleware

Aspectos de seguridad y trabajo del middleware Globus Toolkit 4.0.4

´

Alvaro Henry Mamani-Aliaga Jesus Mart´ın Silva Fernandez

1 Universidad Nacional de San Agust´ın, Escuela Profesional de Ingenier´ıa de Sistemas

[email protected], [email protected]

Resumen

El Globus Toolkit es un conjunto de herramientas de software, empleado ˆA para desarrollar aplicaciones basa-das en tecnolog´ıa Grid. El toolkit incluye servicios de alto nivel para la construcci´on de ˆA aplicaciones Grid. La seguridad en un conjunto de nodos Grid es de relevancia, llegando a ser un estado cr´ıtico. El presente ˆA art´ıculo tomamos directivas a seguir en la etapa de instalaci´on ˆA de Globus Toolkit, muestra tambien la construcci´on de un cluster basado en Globus Toolkit y la demostraci´on de su funcionamiento.

1. Introducci´on

Haciendo una peque˜na introducci´on, la grid computacional nace de la idea comparativa con la malla electrica que existe en el planeta.

La idea de la malla electrica, es un gran conjunto nodos distribuidos en diferentes paises y conectados entre s´ı, con la finalidad, de apoyarse en caso haya una perdida de energ´ıa en algun sector o apoyar en caso falte energ´ıa en cierto sector.

Siguiendo esta idea nace el grid computacional, tratando de imitar este comportamiento, con la finalidad de crear un entorno distribuido, para el procesamiento de grandes cantidades de infor-maci´on a un corto tiempo, se trata de aprovechar los recursos computacionales, para originar un gran procesamiento en una especie de supercompuradora. A esto que nacen varias propuestas de la implementaci´on de ´esta. Una forma de hacer esto es con el middleware Globus Toolkit(GT4), ahora en su versi´on 4.0.5.

La Computaci´on Grid es un modelo de computaci´on relativamente nuevo que plantea repar-tir el c´omputo de estos problemas entre recursos computacionales (como supercomputadores, clusters de ordenadores, etc.) distribuidos en diversas organizaciones. Conceptualmente, es una soluci´on muy sencilla, un ”divide y vencer´as”. La uni´on de recursos de distintas organizaciones es lo que habitualmente se denomina una ”gridc¸omputacional.

Hay muchas aplicaciones reales que utilizan computaci´on Grid de manera eficaz y eficien-te.(Sotomayor, 2006) Actualmente, la mayoria acotadas al ´ambito cient´ıfico-acad´emico. Fuera del alcance directo del consumidor final, pero aun as´ı le afecta indirectamente.

Todav´ıa no existe ”La Grid”, sino gran variedad de ”grids.entodo el mundo para tipos

espec´ıfi-cos de aplicaciones.

Las principales ´areas de aplicaci´on de la tecnolog´ıa Grid son: Aplicaciones con grandes necesidades computacionales.

Simulaciones, predicci´on, monitorizaci´on, ... Proyecto Crossgrid

Modelado y simulaci´on de regiones susceptibles de inundaciones para predecir inundaciones y/o proporcionar datos a equipos de crisis en caso de inundaci´on.

(2)

http://www.eu-crossgrid.org/

Aplicaciones con grandes necesidades de almacenamiento o proceso de datos. Aplicaciones que generan un flujo grande y constante de datos.

Aplicaciones que se benefician del acceso a datos similares situados en distintas organizaciones.

Aplicaciones colaborativas.

El resto de ´este paper est´a organizado de la siguiente manera. En la secci´on 2 se muestramos el estado del arte, trabajos relacionados a la computaci´on grid. La secci´on 3 hace una breve descripci´on cada capa del Globus Toolkit, en la secci´on 4 se muestra la manera de como se inicia y crea una Organizaci´on Virtual. En la secci´on 5 se muestra la configuraci´on de cada capa del Globus Toolkit 4 y uso de los serivicos que ofrece. Los Experimentos y Resultados se encuentra en la secci´on 6. La Discusi´on de los Experimentos se muestra en la secci´on 7, las conclusiones se encuentran en la secci´on 8, y finalmente los Trabajos Futuros se muestran en la secci´on 9.

2. Estado del Arte

En esta rama existen diferentes tipos de trabajo, todos apuntando al objetivo de hacer una grid de gran capacidad, y con la finalidad de hacer procesamiento de grandes cantidades de informaci´on, tareas que ni la mejor computadora de nuestros tiempos procesaria en un tiempo esperado.

Inicialmente al planteo y investigaci´on de los primeros pasos en la construcci´on de GT4. EL Globus Toolkit(GT4) a sido desarrollado desde 1990, para soportar el desarrollo de aplicacio-nes y infraestructuras distribuidas orientadas a servicios. (Foster, 2006).

En la actualidad existen varios software que desarrollan grid services y/o tecnologia grid, pro-pietarias y open source. En el caso de Open Source, GT4 se ha convertido en el estandar de facto para el trabajo grid computacional.

El esfuerzo comienza con la Globus Alliance, http://www.globus.org/, como mencionamos an-tes, a comienzos del a˜no 1990, se inicia lo que ahora es un estandar de facto. El GT4 bastante robusto, as´ı como tambien en el aspecto de seguridad, contiene varios web services, para el trabajo con grid computacional.

3. Globus Toolkit 4.0.4: GT4

El globus toolkit es organizado como una colecci´on de componentes debilmente acoplados. Los componentes de Globus Toolkit contienen:

servicios y clientes. librerias

herramietas de desarrollo

Los componentes de Globus Toolkit son usados para construir aplicaciones y servicios basados en Grid.

3.1. Arquitectura

El Globus Toolkit 4.0.4 est´a compuesto de diversos componentes de software. Como pre-senta la figura 1, estos componentes estan divididos en 5 categorias: Security, Data

(3)

Manage-ment, Execution ManageManage-ment, Information Services, and the Common Runtime. Aqu´ı se mues-tra como se confunde el hecho de que GT4 se cenmues-tra en Web Services, el toolkit tambi´en incluye componentes que no son implementados sobre lo Web Services. Por ejemplo, los componentes GridFTP usan un protocolo no WS que comienza como un protocolo propio de Globus, pero despues llega a ser una especificaci´on GGF(CYTED-Grid, 2006).

Figura 1: Arquitectura GT4: (Sotomayor, 2006)

3.2. Componentes GT4

Los componentes de Globus Toolkit, de acuerdo con la figura 1, son:

3.2.1. Common Runtime Los componenetes Common Runtime proporcionan un conjunto de librerias fundamentales y herramientas que son necesarias para contruir ambos servicios WS y NO-WS.

3.2.2. Security Usando los componentes Security, basados sobre la Grid Security Infras-tructure (GSI), nosotros podemos cercionarnos que nuestras comunicaciones sean seguras. 3.2.3. Data management Estos componentes nos permitir´an administrar largos conjuntos´ de datos en nuestra organizaci´on virtual.

3.2.4. Information services El Information Services, mas comunmente conocido como el Monitoring and Discovery Services(MDS), incluye un conjunto de componentes para descubrir

(4)

y monitorizar recursos en una organizaci´on virtual.

3.2.5. Execution management Los componentes Execution Management se ocupan de la inicializaci´on, monitorizaci´on, administraci´on, programaci´on y coordinaci´on de programas eje-cutables, usualmente llamados Jobs, en un grid.

Centrandonos en la seguridad sobre la que trabaja GT4, nos centramos en SECURITY y Grid Security Infrastructure (GSI).

4. Contrucci´on de la Organizacion Virtual

Para el presente proyecto se instal´o el GLobus Toolkit 4.0.4 (GT4), en un entorno de dos maquinas, de acuerdo con la guia r´apida de instalaci´on del GT4 se instala´on previamente los prerequisitos de software que necesita el GT4(of Chicago, 2006):

Gui´andonos del ”QuickStart”, instalamos primero todos los prerequisitos para la instalaci´on de GT4, que son los siquientes:

Instalador de Globus Toolkit versi´on 4.0.4 para Debian-Ubuntu, descargarlo de la p´agina.

J2SE 1.4.2 (o superior) SDK de Sun, IBM, HP, o BEA (no use GCJ) Ant 1.6 (o superior) (1.6.1 (o superior) si esta usando Java 1.5). Compilador C. Gcc, versiones 3.2. 3.2.1 y 2.95.x estan correctos.

Compilador C++. Usa la versi´on correspondiente a la de tu compilador de C. GNU tar GNU sed zlib 1.1.4 (o superior) GNU Make Perl 5.005 sudo

JDBC. para instanciar a PostgreSQL 7.1 (o superior)

Cada paquete tiene una funci´on espec´ıfica, no se requieren que esten todos instalados si se va hacer una tarea espec´ıfica.

Para la instalaci´on de GT4 se sugiere tener un usuario cuyo nombre sea Globus, por lo tanto como root creamos al usuario Globus, en la m´aquina. Iniciamos sesi´on como usuario Globus y comenzamos a trabajar

Cuando tengamos descargado el instalador de Globus Toolkit, entonces procedemos a la insta-laci´on.

Como usuario root creamos el directorio con nombre globus-4.0.4, y ah´ı copiamos el instala-dor, como indicamos en los siguientes pasos.

1. Como root, creamos el directorio globus-4.0.4: mkdir /usr/local/globus-4.0.4

2. Despu´es, como root damos permisos para esa carpeta al usuario globus chown globus:globus /usr/local/globus-4.0.4/

3. Ahora, como usuario Globus, lo descomprimimos, damos las rutas de los pa-quetes Java y ANT, en nuestro caso el directorio de ANT es /usr/local/apache-ant-1.7.0y el de Java es /home/globus/java/jdk1.5.0 11/, despues comenzamos la instalaci´on:

(5)

tar xzf gt4.0.4-x86 deb 3.1-installer.tar.gz cd gt4.0.4-x86 deb 3.1-installer/

export ANT HOME=/usr/local/apache-ant-1.7.0 export JAVA HOME=/home/globus/java/jdk1.5.0 11/ export PATH=ANT HOME/bin/:JAVA HOME/bin/:$PATH ./configure

make

make install

Luego de damos la orden make install, comienza la instalaci´on de GT4 en nuestra m´aquina. Para la maquina 1 se hicieron todos los pasos anteriormente mencionados, en el caso de la maquina 2 se hicieron todos los pasos menos la instalacion del SGDB postgresql. Puesto que la intenci´on es usar estos recursos al lanzar trabajos(jobs) desde la maquina 2.

4.1. Configuraci´on de la seguridad

En este paso se comienza la formaci´on de la Organizaci´on Virtual(VO). Nosotros trabajamos creando nuestra propia entidad certificadora, para lo cual usamos el SimpleCA, entonces en la maquina1, como usuario globus, instalamos el SimpleCA.(Bo Lang, 2006)

export GLOBUS LOCATION=/usr/local/globus-4.0.4/ source $GLOBUS LOCATION/etc/globus-user-env.sh $GLOBUS LOCATION/setup/globus/setup-simple-ca En esta etapa nacen conceptos como: Certificado host, certificado user.

Un certificado host, es aquel certificado que identificado la maquina sobre la que se va a trabajar y la cual va a pertenecer a la orfganizacion virtual.

Un certificado user, es el certificado que identifica a cada usuario y le da el privilegio de usar los recursos de la organizacion virtual. Despues de haber creado la entidad cetificadora, como usuario root, instalamos el GSI, luego, nos vamos a dar un certificado Host.

export GLOBUS LOCATION=/usr/local/globus-4.0.4/

$GLOBUS LOCATION/setup/globus simple ca 1e1680c3 setup/setup-gsi -default source $GLOBUS LOCATION/etc/globus-user-env.sh

grid-cert-request -host maquina1.globalsysconsult.com.pe

Puesto que el hostname de nuestra maquina y el domainname respectivamente son: maquina1

maquina1.globalsysconsult.com.pe

Asimismo, un usuario pide su certificado con el comando, y tambien lo hace con el comando grid-cert-request, solo con ese comando y ingresando la que va a ser su clave en el entorno grid, crea su certificado.

El usuario Globus, de la maquina 1, en este caso, es el encargado de verificar y firmar los reque-rimientos de certificados host y users, la firma del usuario es una validez para sus certificados. La siguiente linea muestra como firma el certificado host.

grid-ca-sign -in /etc/grid-security/hostcert request.pem -out hostsigned.pem Una vez que la maquina1 tiene su certificado, certificado de host, al momento de crear la entidad certificadora se creo tambien un archivo similar a globus simple ca 1e1680c3 setup-0.19.tar.gz, este archivo se ejecuta en la maquina2 de la siguiente forma:

$GLOBUS LOCATION/sbin/gpt-build globus simple ca 1e1680c3 setup-0.19.tar.gz $GLOBUS LOCATION/sbin/gpt-postinstall

Y como usuario root, instalamos GSI y de ahi la peticion del certificado host, este certificado es firmado por el usuario globus de la maquina1, y asi poco a poco se genera la VO.

(6)

Figura 2: Organizaci´on Virtual 5. Configuraci´on y Utilizaci´on de Servicios

Una vez que se tiene los certificados de host, usuarios y se genera el proxy, ya se puede hacer la configuraci´on de servicios seguros asi como su ejecuci´on.

5.1. Configuraci´on de GRIDFTP

Este es un protocolo de transferencia para el envi´o de data, basado en FTP. Previa edici´on del archivo gridftp y del archivo services localizado en /etc/services. Despues ya podemos crear nuestro certificado final para poder realizar servicios en nuestra grid, con un nuevo usua-rio podemos crear un certificado de usuausua-rio y luego de esto este mismo usuausua-rio puede generar su certificado proxy.

Para verificar si se tiene bien instalado el certificado de usuario, se usa tambien la generaci´on del certificado proxy.

En la configuraci´on de Gridftp, lo hacemos en base al servidor Xinetd, que es un servicio ´o de-monio que usan gran parte de los sistemas Unix dedicado a administrar la conectividad basada en Internet. xinetd es una extensi´on m´as segura del servicio de Internet inetd.

Despues de estar instalado Xinetd, se puede comenzar con la configuraci´on, creamos el archivo llamado gridftp, y lo editamos como muestran la figura 3: Una vez editado el archivo Gridftp, continuamos con la adici´on de una linea al archivo services ubicado en el directorio /etc/, como lo muestra la figura 4: Luego de la edici´on de los archivos ya podemos pedir el certificado proxy:

grid-proxy-init -verify -debug

globus-url-copy gsiftp://maquina1.globalsysconsult.com.pe/etc/group file:///tmp/alvaro.test.copy Con el comando ultimo verificamos el trabajo del gridftp.

(7)

Figura 3: Archivo de configuraci´on de Gridftp: 1 5.2. Comenzar el trabajo del Contenedor de Servicios WEB

Para la configuraci´on del Contenedor, primero editamos 2 achivos. El primer archivo start-stop, que estar´a en el directorio de GLOBUS LOCATION, en nuestro caso /usr/local/globus-4.0.4se editar´a como usuario globus, el contenido lo muestra la figura 5. Despues de editar este archivo damos permisos de archivo:

chmod +x $GLOBUS LOCATION/start-stop

Del mismo modo hacemos con el archivo globus-4.0.4 como usuario root, en el directorio /etc/init.d/, el contenido de dicho arhivo se muestra en la figura 6.

Tambien damos los permisos generales a este archivo de la misma forma: chmod +x /etc/init.d/globus-4.0.4

Una vez configurados los archivos ya podemos ejecutar el contenedor con todos los servicios que ofrece el GT4, de la siguiente forma:

/etc/init.d/globus-4.0.4 start

El la edici´on del primer archivo fue para configurar la ejecuci´on del contenedor, el segundo archivo le manda par´ametros y lo corre con el comando anterior.

5.3. Configuraci´on de RFT

-El RFT(Reliable Transfer Service) se encarga del movimiento de datos en GT4. Utiliza una base de datos para el registro de sus transferencias. Configuramos el SGBD, y despues creamos una base de datos con el usuario globus y cargamos el esquema que vienec con el GT4.

createdb rftDatabase

psql -d rftDatabase -f $GLOBUS LOCATION/share/globus wsrf rft/rft schema.sql Despues de la configuracion de la base de datos, se reinicia el contenedor de web services:

(8)

Figura 4: Archivo de configuraci´on de Gridftp: 2

5.4. GRAM

Para la configuraci´on de GRAM, se tiene que editar el archivo de sudo, y se le agrega dos lineas con el fin que solamente los usuarios permitidos puedan ejecutar tareas(jobs).

globus ALL=(alvaro,henry) NOPASSWD:

gridmap-and-execute -g /etc/grid-security/grid-mapfile /usr/local/globus-4.0.4/libexec/globus-job-manager-script.pl *

globus ALL=(alvaro,henry) NOPASSWD:

gridmap-and-execute -g /etc/grid-security/grid-mapfile /usr/local/globus-4.0.4/libexec/globus-gram-local-proxy-tool *

Esas lineas con fundamentales en el momentos de ejecuci´on de tareas que se mandar´an a la grid, en nuestro caso los usuarios alvaro y henry tienen permitido la ejecuci´on de tareas y de acuerdo con el archivo grid-mapfile, mencionado anteriormente se procede a trabajo en grid. 6. Experimentos y Resultados

Para las pruebas de la grid, configurada se tienen las dos maquinas.

La maquina 1 tiene toda la configuracion funcionando hasta la parte del RFT que utiliza el SGDB. La maquina 2 que hace uso de algunos recursos de la maquina 1. Las lineas de abajo muestran el proceso de subir un trabajo de la maquina 2, pero el proceso se ejecuta en la ma-quina 1, y el resultado mostrado en la mama-quina 2.

EL comando para ejecutar el trabajo es: henry@maquina2: $ globusrun-ws -submit -streaming F https://maquina1.globalsysconsult.com.pe:8443/wsrf/services/ManagedJobFactoryService -f a.rsl, el resultado mostrado se muestra. Las siguientes lineas tambien muestran un proceso similar al anterior, usa el servicio de la maquina 1, desde la maquina 2.

(9)

Figura 5: Archivo de configuraci´on de Web Services Container Algoritmo 1 Prueba 1

Delegatingusercredentials...Done Submittingjob...Done.

J obID : uuid : 348f 8bc0 − 1601 − 11dc − a649 − 001676337af 8 Currentjobstate : Active

Currentjobstate : CleanU p − Hold HelloW orld!

Currentjobstate : CleanU p Currentjobstate : Done Destroyingjob...Done.

Cleaningupanydelegatedcredentials...Done.

henry@maquina2: $ globusrun-ws -submit -streaming -F https://maquina1.globalsysconsult.com.pe:8443/wsrf/services/ManagedJobFactoryService -f simple-stage-job.rsl

7. Discusi´on de los Experimentos

En los experimentos mostrados, se ve, que dos maquinas interactuan, compartiendo recur-sos entre s´ı, este es un peque˜no, cluster hecho en base a GT4, la intenci´on es tener la iniciatica para hacer un gran cluster a nivel nacional, y conectarse a ”La Grid”, que es la intenci´on de la comunidad grid, formar una grid para que cualquier ordenador haga que necesite grandes cantidades de recursos computacionales, las haga.

(10)

Figura 6: Archivo de configuraci´on de Web Services Container Algoritmo 2 Prueba 2

Delegatingusercredentials...Done. Submittingjob...Done.

J obID : uuid : 6dc21cda − 15f e − 11dc − 9452 − 001676337af 8 T erminationtime : 06/09/200720 : 25GM T

Currentjobstate : StageIn Currentjobstate : Active

Currentjobstate : CleanU p − Hold HelloW orldf romhenryonmaquina1!!! Currentjobstate : CleanU p

Currentjobstate : Done Destroyingjob...Done.

8. Conclusiones

La seguridad en un sistema de Servicios Grid, es fundamental, puesto que el acceso a los recursos remotos significa un nivel alto de confianza.

La compartici´on de recursos computacionales, es una gran alternativa en cualquier campo de investigaci´on que utilice y requiera necesidad de recursos computacionales. Existen varias islas de grids, la intenci´on es juntarlas y hacer una gran malla ”La Grid”. Segun la forma de manejo de la seguridad en Globus Toolkit, se corrobora la raz´on de convertirlo en el est´andar de facto para la computaci´on distribuida y el soporte sobre la cual se desarrollan varias aplicaciones ba-sadas en Grid.

(11)

9. Trabajos Futuros

El GT4 tiene su lenguaje para el envio de trabajos a la Grid, asi como tambien tiene capas para el envio de trabajos en lenguajes soportados como Java, C y pythona por otro lado, acepta lenguajes tipo XML.Se planea tener una interfaz que acepte estos lenguajes para el envio de trabajos en el cluster.

Actualmente los Grids implementados son del tipo acad´emico o de investigaci´on, pero los Grid van mas alla de eso, y en un futuro no muy lejano, se plantear´a para su uso comercial, en este aspecto la seguridad juego un rol de vital importancia.

El objetivo global de la computaci´on distribuida, especificamente de la computaci´on Grid, es juntar todos los Grids que existen, para hacer un solo Grid.

Referencias

Bo Lang, Ian Foster, F. S. R. A. T. F. (2006). A multipolicy authorization framework for grid security. IEEE NCA06 Workshop on Adaptive Grid Computing.

CYTED-Grid, G. (2006). Tecnolog´ıa grid como motor del desarrollo regional. CLEI.

Foster, I. (2006). Globus Toolkit 4: Software for service-oriented systems. Computati´on Insti-tute, Argonne National Laboratory, University of Chicago, Argonne, IL 60439, U.S.A.

of Chicago, U. (2006). Globus project and globus toolkit.

http://www.globus.org/toolkit/docs/4.0/admin/docbook/quickstart.html.

Sotomayor, B. (2006). A Gentle introduction to grid computing. CS/TTI Grad Student Cake Talk Series.

Referencias

Documento similar

Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y

[r]

E Clamades andaua sienpre sobre el caua- 11o de madera, y en poco tienpo fue tan lexos, que el no sabia en donde estaña; pero el tomo muy gran esfuergo en si, y pensó yendo assi

El libro de la vieja es un libro chiquito y ejemplar, salpicado de aforismos que, en el destello de un instante, liberan un tiempo incontable: «Conser- vamos el archivo como

De hecho, este sometimiento periódico al voto, esta decisión periódica de los electores sobre la gestión ha sido uno de los componentes teóricos más interesantes de la

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

De esta manera, no sólo podremos “extrañar” los acervos documentales y los propios archivos, a partir de interrogantes tales como qué se incluye y qué no, por qué razones, con

Para denegación hegeliana del mal: «Así como no existe lo fal- so, no existe el mal, es objetada primero por Sade y luego por la subjetividad romántica: en la mé- dula de la