ltima Actualizacin: 11 de julio de 2008 Elaborado por: Jorge Zuluaga Presentacin Esta gua prctica describe la manera como se prepara, monta, instala, configura y prueba un Cluster Computacional usando nodos que corren el sistema operativo Linux. El propsito fundamental de este manual es el de servir como documento de referencia para un ejercicio prctico de instalacin de lo que en lo sucesivo llamaremos Linux Cluster!, que puede ser utili"ado o bien con propsitos didcticos y de entrenamiento o para el despliegue de un Cluster de #roduccin. El manual $ace parte de la coleccin %uas #rcticas de Computacin! desarrollado inicialmente por el #rof. &orge 'uluaga con el apoyo del %rupo de (sica y )strofsica Computacional del *nstituto de (sica de la +niversidad de )ntioquia y complementado desde ,ayo de -../ a trav0s del apoyo del Centro 1egional de 2imulacin y Clculo )van"ado 3C1E2C)4 del que es socio fundador la +niversidad de )ntioquia. La coleccin de %uas #rcticas esta actualmente formada por esta %ua y una %ua #rctica de Linux Clustering con 1oc5s que es la distribucin utili"ada en el C1E2C). Los manuales pueden descargarse libremente del sitio del %rupo de (sica y )strofsica Computacional $ttp677urania.udea.edu.co7facom. Especialmente importantes son las actuali"aciones que de forma no regular 3dependiendo de las necesidades que surgen en el medio4 se reali"an de esas mismas guas. Esperamos que este documento sea de utilidad para todos aquellos que o bien necesitan utili"ar $erramientas como los Clusters Computacionales para la reali"acin de tareas de computacin de )lto 1endimiento en Ciencias e *ngeniera o para quienes se valen de este conocimiento para formar estudiantes de *ngeniera o capacitar a personal especiali"ado en el rea. Jorge Zuluaga ,edelln, -..8 #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com ;7-< Convenciones La gua contiene una coleccin de comando =tiles, tips de uso, scripts y comentarios generales sobre un conjunto amplio de tpicos relacionados con el uso y administracin de Clusters 1oc5s. 2e asume en esta gua las siguientes convenciones tipogrficas6 Convencin Explicacin Ee!plo Comandos >,>6 > comando Comandos de linu! "odos los comando #ienen numerados de acuerdo a la sesin en la $ue aparecen! El nombre del comando se indica seguido del s%mbolo del sistema: &'& cuando el comando debe ser ejecutado como administrador ( &)& cuando el comando debe ser ejecutado como usuario! &*& ser+ utilizado tambi,n cuando el comando pueda ser ejecutado con permisos de root o de usuario! Comando ;,-.6 > ls 7var7log7message? 2alida6 salida en pantalla Cuando se muestre la salida de un comando esta se presenta en tipo courier pe$ue-o! 2alida6 /var/log/messages /var/log/messages.2 /var/log/messages.4 /var/log/messages.1 /var/log/messages.3 )rc$ivo6 ... #Configuration file FILE=configuration SERVER=localhost ... El contenido de un arc.i#o se presenta en tipo courier con una sangr%a respecto al resto del documento ( con una l%nea #ertical $ue delimita el contenido del arc.i#o! Cuando el documento no esta completo se colocan puntos suspensi#os arriba o abajo indicando la presencia de m+s l%neas .7run.s$6 >!/bin/bash #Script para SGE #-S /bin/bash #-j y dir=/home/fulano/run1 cd $dir ./program.out @escargue6 arc$ivo Cuando en una situacin dada se re$uiera un arc.i#o o un pa$uete especial se re/erir+ al lector al sitio del 0rupo 1ACom donde podr+ encontrar el arc.i#o respecti#o! El sitio es: .ttp:22urania!udea!edu!co2/acom 3 los arc.i#os se encuentran en el enlace 4documentacin5 @escargue6 run.s$ #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com -7-< Parte "# Preparacin Las condiciones bsicas para crear un Cluster Linux son bastante simples de conseguir e incluso se cumplen en muc$os entornos acad0micos y corporativos. En esta parte describimos como se prepara el material de AardBare y 2oftBare necesario para el despliegue de un cluster Linux. +na caracterstica muy importante del tipo de Cluster cuya instalacin se describe aqu es que es un Cluster que se construye desde cero!, es decir, partiendo de la instalacin bsica del sistema operativo para a continuacin procedes con la instalacin y configuracin de todo el softBare necesario para el computo y el almacenamiento distribuido. Este tipo de clusters se contraponen a quellos clusters cuya instalacin y configuracin se apoyan de pie"as de softBare especficas y complejas, a veces de instalacin muy sencilla y que incluyen como componentes las $erramientas que describimos aqu. Este =ltimo tipo de $erramientas permiten normalmente desplegar un cluster completamente operativo en muy poco tiempo. Aerramientas como C2C)1, 1oc5s, Cpen,osix son $erramientas de este tipo. El caso de 1oc5s se documenta en otra de las %uas #rcticas de esta coleccin. El montaje, instalacin y configuracin de un Cluster bsico ofrece ventajas didcticas y t0cnicas que lo $acen muy interesante para el propsito de esta %ua. "#"# Con$iciones iniciales #ara el montaje de un cluster linux como el descrito en este documento se deben cumplir los siguientes requerimientos mnimos de $ardBare y softBare6 AardBare ;. @isposicin de - o ms computadores, con prestaciones mnimas6 DE;- ,F 1),, D;. %F @@, entre ; y - tarjetas de red almbrica para cada equipo. #or el tipo de instalacin que se describe aqu se requiere tambi0n contar con los perif0ricos bsicos en cada mquina6 monitor, teclado, mouse. Gambi0n es posible utili"ar un sBitc$ HI, para simplificar la entrada y salida. -. Los equipos deben estar interconectados a trav0s de una red. #ara ello se requieren los medios fsicos de conexin 3cableado4 y equipos para el intercambio de paquetes 3$ub, sBitc$, enrutador4. JCG)6 Godo lo anterior puede reempla"arse por medios virtuales en caso de que se cuente con un equipo con buenas prestaciones y se utilicen mquinas virtuales para crear las componentes del cluster. Los detalles del proceso en este caso, a diferencia del proceso de instalacin, son los mismos. 2oftBare K. ,edios de instalacin de una distribucin convencional de Linux 3Linux (edora, Linux CentC2, Linux 1ed$at, @ebian, etc.4 Los comandos y tareas de configuracin mencionados en esta gua suponen que se cuenta con un sistema compatible con distribuciones 1ed$at 3CentC2, (edora, 1ed$at EL, etc.4 Ctras distribuciones no compatibles tambi0n pueden utili"arse con algunos cambios en los comandos administrativos. Es recomendable $aber probado todos los medios antes de avan"ar con la instalacin. #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com K7-< L. #aquetes bsicos que deben ser incluidos en la instalacin 3y que en ocasiones o en ciertas configuraciones pre establecidas no se incluyen46 ;. openss$ server -. autofs K. nfs L. ypserv, ypbind, ypMtools 2i la instalacin del sistema se $a $ec$o previa a la reali"acin del ejercicio propuesto en esta gua es posible verificar la presencia de los paquetes usando la opcin query del comando rpm6 Comandos ; 6 > rpm Mqa N grep OpaqueteD Ejemplo6 > rpm Mqa N grep openss$Mserver 2i alguno de los paquetes no esta instalado debe instalarse satisfaciendo todas las dependencias exigidas. "#%# Con&iguracin $e la re$ El acceso a la red que comparten las mquinas en el cluster es la condicin fundamental para garanti"ar su constitucin como plataforma distribuida. Es necesario como condicin bsica configurar inicialmente la red y otros aspectos relacionados con la interconectividad entre las mquinas. Linux cuenta con multiples aplicativos que permiten la configuracin de la red de forma amigable usando para ello interfaces grficas 3tanto en la consola de texto como en los gestores de escritorio4. @escribiremos aqu para facilitar eventualmente la automati"acin de los procesos de preparacin de la red la configuracin usando directamente los arc$ivos de texto plano que usa linux para tal fin. "#%#"# Con&iguracin $e los par'!etros ('sicos #ara configurar los parmetros bsicos de la red 3*#, Jetmas5, %ateBay, nombre de la mquina, dominio4 deben editarse los arc$ivos )etc)s*scon&ig)net+or, y 7etc)s*scon&ig)net+or,- scripts)i&c&g-et./. 2uponiendo como valores vlidos los parmetros descritos a continuacin6 *#6 ;..P.P.P Jetmas56 -EE...... %ateBay6 ;..;.;.; Froadcast6 ;....... @J2 primario6 ;..;.;.-EL Jombre6 server, nodoP @ominio del cluster6 cluster #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com L7-< Los arc$ivos mencionados deben contener las siguientes entradas6 )rc$ivo 7etc7sysconfig7netBor56 NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=nodoX.cluster GATEWA=!".!.!.! NIS#OMAIN=cluster )rc$ivo 7etc7sysconfig7netBor5Mscripts7ifcfgMet$.6 #EVI$E=et%" ON&OOT=yes &OOTPROTO=st't(c IPA##R=!".!.!.X NETMASK=)**."."." GATEWA=!".!.!.! JCG)6 2i los equipos pertenecen a una red con @AC# los arc$ivos anteriores deben dejarse tal y como fueron configurados en la instalacin. 2olamente el J*2@C,)*J puede tener un valor arbitrario independiente del dominio real al que pertene"ca la mquina. +na ve" configurada la red de la forma indicada arriba es posible arrancar 3start4 la interface de red respectiva6 Comandos - 6 > ifup et$. eth0 Link encap:Ethernet HWaddr 08:00:2:!0:4":8" inet addr:10.1.1.1 #cast:10.2"".2"".2"" $ask:2"".0.0.0 inet! addr: %e80::a00:2%%:%e!0:4"8"/!4 &cope:Link '( #)*+,-+&. )'//0/1 $'L.0-+&. $.':1"00 $etric:1 )2 packets:1"!3 errors:"3 dropped:0 overr3ns:0 %rame:0 .2 packets:34"!12 errors:0 dropped:0 overr3ns:0 carrier:0 collisions:0 t563e3elen:1000 )2 78tes:4!!3!38 944.4 $i#: .2 78tes:"!!1"48!3 9"34.4 $i#: 0nterr3pt:11 #ase address:05c020 lo Link encap:Local Loop7ack inet addr:12.0.0.1 $ask:2"".0.0.0 inet! addr: ::1/128 &cope:Host '( L**(#+-; )'//0/1 $.':1!43! $etric:1 )2 packets:120203 errors:0 dropped:0 overr3ns:0 %rame:0 .2 packets:120203 errors:0 dropped:0 overr3ns:0 carrier:0 collisions:0 t563e3elen:0 )2 78tes:2"14!01 924.0 $i#: .2 78tes:2"14!01 924.0 $i#: JCG)6 2i los equipos pertenecen a una red con @AC# los arc$ivos anteriores deben dejarse tal y como fueron configurados en la instalacin. 2olamente el J*2@C,)*J puede tener un valor arbitrario independiente del dominio real al que pertene"ca la mquina. "#%#%# Con&iguracin $e otros par'!etros $e re$ Ctros parmetros de la red pueden configurarse para abreviar las comunicaciones entre las mquinas del cluster. En particular es posible configurar el arc$ivo 7etc7$osts para facilitar la conversin de nombres de mquinas en la red del clusters a *# y viceversa y sin requerir una #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com E7-< compleja consulta a un servidor de nombres. )rc$ivo 7etc7$osts6 + #o not re-o.e t%e /ollo0(n1 l(ne2 or .'r(ous 3ro1r'-s + t%'t re4u(re net0or5 /unct(on'l(ty 0(ll /'(l. !)6.".".! loc'l%ost.loc'ldo-'(n loc'l%ost !".!.!.! ser.er.cluster ser.er !".!.!.) nodo.cluster nodo Es necesario recordar que la primera lnea no debe bajo ninguna circunstancia modificarse porque como se explica en el arc$ivo muc$os programas dependen de ella. Gambi0n es posible que sea necesario configurar el acceso a un servidor de nombres externo que permita $acer traduccin de nombres a *#s de mquinas en una red externa al cluster. #ara $acerlo basta con editar el arc$ivo 7etc7resolv.conf6 Q que el servidor de nombres es ;<-.;R8.;.KL, la configuracin de los arc$ivos mencionados se leera6 )rc$ivo 7etc7resolv.conf6 se'rc% cluster se'rc% do-'(n.(nst(tut(on n'-eser.er !".!.!.)*7 +na ve" fijados los anteriores arc$ivos de configuracin es recomendable reinciar completamente las mquinas con el fin de garanti"ar que todos los programas en ejecucin o que se $abilitan durante el arranque reciban los valores de configuracin correctos. "#0# Prue(as ('sicas $e la re$ 2i la configuracin de red funciona apropiadamente es posible reali"ar algunas pruebas bsicas de conectividad para garanti"ar que los nodos puedan intercambiar informacin entre s. #ara ello se recomienda reali"ar el siguiente conjunto de pruebas. "#0#"# Prue(a con ping 2e puede probar la conectividad bsica a la red $aciendo una prueba de ping al %ateBay 3si existe4 y a otras mquinas en la red interna del cluster6 Comandos K 6 > ping Mc K ;..;.;.; > ping Mc K ;..;.;.- > ping Mc K server > ping Mc K nodo8.cluster
Las pruebas con los (SAJ 3(ully Sualified Aostname4 y con los aliases definidos en 7etc7$osts son fundamentales para garanti"ar que los mecanismos definidos en este arc$ivo est0n funcionando correctamente. #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com R7-< "#0#%# 1e$i$a $e ren$i!iento usan$o netper& Es posible antes de empe"ar a usar el cluster reali"ar algunas medidas del rendimiento de la red usando para ello un paquete como netperf. #ara ello pueden utili"arse algunas $erramientas libres disponibles en la comunidad de linux. +na $erramienta liviana y sencilla de configurar, usar y entender es netperf. Jaturalmente antes de usar netperf o sus componentes es necesario instalar el paquete respectivo 3ver consecucin #ara usar netperf se debe primero arrancar el servidor netserver en cada una de las mquinas del cluster6 Co!an$os L 2 > .7netserver +na ve" iniciados los servidores en cada mquina desde cualquier punto en la red se puede lan"ar un comando de prueba6 Co!an$os E 2 > netperf Ml K. MA ;..;.;.- Mt GC#T2G1E), TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.1.1.2 port 0 AF_INET Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 16384 16384 30.00 5556.15 @onde K. es un indicador de la longitud del paquete 3tiempo de transferencia en segundos4 y en lugar de usar el protocolo GC# 3doble va4 se puede usar el protocolo +@# 3una sola va, +@#T2G1E),4. "#0#0# Prue(as $e conectivi$a$ con ss. #ara la autenticacin de usuario y el manejo de consolas remotas en las mquinas en el cluster se usar el protocolo securo openss$. )ntes de continuar con otras configuraciones es necesario garanti"ar que el servicio este activo en todas las mquinas en el cluster. N3TA2 Como referencia para lo sucesivo los servicios en linux se inician, detienen y verifican usando una de dos maneras posibles6 ;. Comando UserviceU 3no disponible en todas las distribuciones4. Ierificacin del servicio6 service OservicioD status #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com /7-< Comandos R6 Ejemplo6 > service ss$d status *nicio de servicios6 service OservicioD start #arada de servicio6 service OservicioD stop -. Ejecucin directa del script del demonio asociado al servicio6 Godo servicio en Linux involucra el que se denomina un demonio, un programa que esta activo en bac5groun escuc$ando los requerimientos que se $acen al servicio y ejecutando las acciones que se solicitan. Los demonios de la mayora de los servicios de linux se ubican en el directorio 7etc7rc.d7init.d. Ierificacin del servicio6 7etc7rc.d7init.d7OdemonioD status Comandos R 6 > 7etc7init.d7ss$d status *nicio de servicios6 7etc7init.d7OdemonioD start #arada de servicio6 7etc7init.d7OdemonioD stop )rrancar un servicio que se encontraba parado garanti"a que este el mismo servicio se preste mientras la mquina este arriba. #ara activar el servicio automticamente en el momento del arranque se debe configurar apropiadamente el sistema de arranque de linux. Esto se reali"a usando el comando Uc$5configU. Comandos / 6 #ara verificar si un servicio se encuentra $abilitado al momento del arranque6 > c$5config MMlist ss$d sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off #ara $abilitar servicio al momento del arranque6 > c$5config MMlevels KLE ss$d on #ara des$abilitar servicio al momento del arranque6 > c$5config MMlevels KLE ss$d off Continuando con el orden de ideas, para garanti"ar que la conectividad con openss$ funcione es necesario verificar que el servicio ss$d este corriendo y de lo contrario ponerlo a funcionar y $abilitarlo al arranque. +na ve" funcionando se puede verificar su funcionamiento abriendo una consola remota con el comando Uss$U as6 Comandos 8 6 > ss$ root:;..;.;.- The authenticity of host '10.1.1.2' can't be established. RSA key fingerprint is ca:50:6f:3e:12:a2:29:86:09:b2:89:f1:e6:1b:74:06. #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com 87-< Are you sure you want to continue connecting (yes/no)? Qes Warning: Permanently added '10.1.1.2' (RSA) to the list of known hosts. root@10.1.1.2's password:O#)22VC1@D +na ve" llegamos a este punto podemos afirmar que las condiciones inciales necesarios para la configuracin de los servicios de computo y almacenamiento distribuido estn garanti"adas. Parte %# Con&iguracin $e los servicios ('sicos %#"# Con&iguracin $e los siste!a $e in&or!acin +na de las caractersticas importantes de un Cluster de Computadores es que la informacin de configuracin de algunos servicios crticos en todas sus componentes debe estar adecuadamente configurada. )s por ejemplo la lista de los usuarios reconocidos en el sistema y sus contraseWas deben ser compartidas por todas las componentes del sistema. #ara ello se $an desarrollado complejos y muy robustos sistemas de informacin que garanti"an que la informacin de configuracin presente en una mquina 3el frontend4 sea conocida por todas las dems en el cluster 3nodos4. En esta gua utili"aremos el sistema J*2 por su versatilidad y fcil manejo. El J*2 3JetBor5 *nformation 2ystem4 es un sistema que provee informacin de configuracin para mquinas conectadas en red en un esquema de clienteMservidor, incluyendo la informacin de autenticacin. En t0rminos ms prcticos un sistema del tipo J*2 permite que la tabla de passBords y de grupos de usuarios de un servidor pueda ser usada por otras mquinas en una red permitiendo a un usuario autenticarse en esas mquinas como si lo estuviera $aciendo en el servidor. El J*2 funciona con un esquema de clienteMservidor. El servidor provee los arc$ivos de configuracin que se quieren proveer 3generalmente passBd, group, $osts entre otros4 y mantiene actuali"ados a los clientes con esta informacin. Los clientes son mquinas que reciben inicialmente los arc$ivos de configuracin y son receptores de cualquier actuali"acin que se $aga de ellos en el servidor. La configuracin de un sistema con J*2 se produce a nivel del servidor y del cliente y se explica a continuacin. JCG)6 En lo sucesivo asumimos que la red en todos los equipos del sistema $a sido configurada correctamente y que se encuentra $abilitado en todos esos mismos equipos el servicio de port!ap. #ara verificar que el servicio se encuentra activo y el demonio esta ejecutndose deben utili"arse los siguientes comandos6 Comandos < 6 > c$5config MMlist portmap > 7etc7init.d7portmap status 2i el demonio esta detenido o el servicio des$abilitado es necesario activarlo. Los comandos para $acerlo son6 #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com <7-< Comandos ;. 6 > c$5config MMlevel KLE portmap on > 7etc7init.d7portmap start %#"#"# Con&iguracin ('sica $e NI4 El primer paso para configurar el servidor es el de definir el dominio J*2! que atender. El dominio J*2 es un dominio virtual al que se encontrarn suscritos los clientes que comparten con el servidor la informacin de configuracin. #ara verificar a que dominio pertenece un equipo se ejecuta el comando6 Comandos ;; 6 > domainname 2i el dominio al que pertenece el equipo $a sido apropiadamente configurado en el arc$ivo 7etc7sysconfig7netBor5 el anterior comando devolver el nombre fijado con la variable J*2@C,)*J. 2i no se tiene fijado todava un nombre de dominio J*2 se lo puede fijar usando el comando6 Comandos ;- 6 > domainname OdominioD +na ve" asignado un nombre de dominio debe iniciarse el demonio del servidor ypserv y $abilitar el servicio en tiempo de booteo6 Comandos ;K 6 > 7etc7init.d7ypserv start > c$5config MMlevel KLE ypserv on +na ve" activado el demonio se esta listo para preparar las bases de datos que contendrn la informacin de configuracin que ser compartida con los clientes. El comando para iniciali"ar esas bases de datos es6 Comandos ;L 6 > 7usr7lib7yp7ypinit Mm At this point, we have to construct a list of the hosts which will run NIS servers. Server.cluster is in the list of NIS server hosts. Please continue to add the names for the other hosts, one per line. When you are done with the list, type a <control D>. next host to add: server.cluster next host to add: <CTRL>+<D> The current list of NIS servers looks like this: sever.cluster Is this correct? [y/n: y] We need a few minutes to build the databases... Building /var/yp/facom/ypservers... Running /var/yp/Makefile... gmake[1]: Entering directory `/var/yp/facom' #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com ;.7-< Updating passwd.byname... Updating passwd.byuid... Updating group.byname... Updating group.bygid... Updating hosts.byname... Updating hosts.byaddr... Updating rpc.byname... Updating rpc.bynumber... Updating services.byname... Updating services.byservicename... Updating netid.byname... Updating protocols.bynumber... Updating protocols.byname... Updating mail.aliases... gmake[1]: Leaving directory `/var/yp/facom' server.cluster has been set up as a NIS master server. Now you can run ypinit -s server.cluster on all slave server. Este comando crea en el directorio 7var7yp un directorio con el nombre del dominio nis definido y que contiene una base de datos por cada arc$ivo de configuracin que se esta compartiendo 3p.e. passBd.byname, group.byname, etc.4 Completado este procedimiento la mquina esta preparada para prestar el servicio J*2 a otras mquinas en la red que as lo requieran %#"#%# Con&iguracin $el cliente NI4 en los no$os La configuracin del cliente se reali"a en K sencillos pasos6 ;. 2e fija el dominio J*2 al que se quiere vincular el cliente. 2e utili"a para ello el comando domainname o el arc$ivo de configuracin 7etc7sysconfig7netBor5 que usamos tambi0n para fijar el nombre del dominio en el caso del servidor. -. 2e fija el servidor del dominio J*2 en el arc$ivo de configuracin 7etc7yp.conf. El arc$ivo debe verse as6 )rc$ivo 7etc7yp.conf6 > 7etc7yp.conf M ypbind configuration file > Ialid entries are domain cluster server server.cluster > +se server AC2GJ),E for t$e domain J*2@C,)*J. > >domain J*2@C,)*J broadcast > +se broadcast on t$e local net for domain J*2@C,)*J > >ypserver AC2GJ),E > +se server AC2GJ),E for t$e local domain. G$e > *#Maddress of server must be listed in 7etc7$osts. )qu el UserverU debe escogerse con el nombre completo, el nombre abreviado o la *# del servidor yp que se escogi. #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com ;;7-< K. 2e inicia el demonio ypbind6 Comandos ;E 6 > 7etc7init.d7ypbind start N3TA6 La activacin del demonio funcionar siempre y cuando se $ayan ejecutado correctamente los pasos anteriores y el servidor J*2 funcione apropiadamente. +na ve" iniciado el cliente J*2 es necesario configurar el sistema para que la informacin de configuracin sea leda del J*2 y no de los arc$ivos que residen en la mquina. Esta configuracin se reali"a modificando el arc$ivo nssBitc$.conf. )ll se puede fijar con que prioridad son leidos los arc$ivos de configuracin, siendo files los arc$ivos que se encuentran en el cliente y nis los que pertenecen al sistema J*2. #or ejemplo para que los arc$ivos de autenticacin y de grupos de usuario se lean del J*2 antes que de los arc$ivos se deben fijar las siguientes lneas del arc$ivo 7etc7nssBitc$.conf6 )rc$ivo 7etc7nssBitc$.conf6 ... passBd6 nis files s$adoB6 nis files group6 nis files $osts6 nis files dns services6 nis files ... +na ve" configurado correctamente el cliente se procede a probar que la informacin de configuracin este disponible. Esto se puede $acer ejecutando uno de los siguientes comandos6 Comandos ;R 6 > ypB$ic$ > ypcat passBd La prueba ms apropiada del funcionamiento del cliente de J*2 es reali"ar una conexin al cliente con la informacin de autenticacin del servidor. #ara ello intente conectarse usando por ejemplo ss$ en el cliente con el login y el passBord del servidor6 Comandos ;/ 6 > ss$ OloginTservidorD:;..;.;.- passBord6 OpassBordTservidorD 2i la autenticacin es exitosa se abre un nuevo s$ell en el cliente pero el usuario no tendr asignado un $ome directory sencillamente porque ese directorio se encuentra en el servidor y no en el cliente. #ara conseguir que el $ome directory sea accedido tambi0n en el cliente se usan los servicios J(2 y autofs que se configuran a continuacion. #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com ;-7-< %#"#0# A$!insitracin $e NI4 )l cambiar los arc$ivos de configuracin en el servidor de J*2 es siempre necesario enviar los arc$ivos a todos los clientes suscritos al dominio. #or ejemplo cuando se cambia un passBord de un usuario en el servidor es necesario reali"ar esta operacin inmediatamente despues. El comando para reali"ar esta operacin es6 Comandos ;8 8 > ma5e MC 7var7yp Cuando un usuario quiera cambiar su passBord puede utili"ar el comando yppassBd. #ara $acerlo deber estar activado el demonio yppassBdd en el servidor J*2. +n usuario autenticado en un cliente puede intentar modificar la informacin de autenticacin. +sando comandos convencionales como passBd solo se modifican los arc$ivos locales del cliente. #ara modificar los arc$ivos en el servidor se utili"a el comando yppassBd que funciona de la misma manera que el passBd solo que actuali"a la tabla de s$adoB en el servidor y no en el cliente. JCG)6 para que esto tenga efecto es necesario $abilitar el servicion yppassBdd en el servidor. %#%# Con&iguracin $e los siste!as $e arc.ivos por re$ Como vimos $acia el final de la seccin anterior, uno de los problemas al intentar conectarnos en el cliente con una cuenta de usuario del servidor, si bien logramos autenticarnos la sesin se abre sobre un directorio que nada tiene que ver con el directorio $ome! del usuario ... %#%#"# El siste!a N54 J(2 3JetBor5 (ilesystem4 es un sistema que permite accesar localmente un sistema de arc$ivos que se encuentra en un dispositivo fsico remoto. En t0rminos practicos el J(2 permite tener acceso inmediato a los arc$ivos de otra mquina como si fueran arc$ivos de una mquina local. J(2 utili"a los protocolos 1#C. El primer paso para reali"ar una operacin del tipo J(2 es preparar la configuracin en la mquina que exportar el sistema de arc$ivos para definir quienes pueden acceder al sistema de arc$ivos y con que provilegios 3lectura, escritura, etc.4 La informacin sobre los sistemas de arc$ivos que pueden ser exportados desde una mquina esta contenida en el arc$ivo de configuracin 7etc7exports. La sintaxis bsica de este arc$ivo es6 <sistema de archivos> <regla_IP> (<opciones>), <regla_IP> (<opciones>) @onde Osistema de arc$ivosD es el directorio asociado al sistema de arc$ivos que se quiere exportar, OreglaT*#D es una regla que define que *ps pueden montar remotamente con J(2 el sistema de arc$ivos y OopcionesD son las opciones de J(2 que definen los privilegios que se #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com ;K7-< tienen remotamente sobre el sistema de arc$ivos. Las opciones que pueden ser ingresadas son6 ro6 directorio de solo lectura rB6 lectura7escritura noTrootTsquas$6 permite al usuario root del cliente tener los mismos privilegios administrativos del root en la mquina que exporta el sistema de arc$ivos. noTsubtreeTc$ec56 elimina sistema de c$equeo que puede $acer ms lentas las transferencias de arc$ivos desde el J(2 y los sistemas de arc$ivos del cliente. sync6 las operaciones de escritura en el cliente sobre el J(2 se reali"an esperando que los arc$ivos sean efectivamente escritos en sistema de arc$ivos real. *mpide problemas de corrupcion de datos por interrupciones repentinas de la comunicacin. +n ejemplo de un arc$ivo exports es6 )rc$ivo 7etc7exports6 7$ome ? 3rB,sync4 7tmp ;/-.;R.-..7-EE.-EE.-EE.. 3rB,noTrootTsquas$,sync4 7mnt7usbdis5 ;/-.;R....7-EE.-EE.... 3ro,async4 JCG)6 #ara usar el J(2 es necesario activar los demonios y $abilitar los servicios nfs y nfsloc5. +na ve" en la lista de (2 exportables, se debe proceder a registrar los (2 para que efectivamente puedan ser accedidos desde un cliente. Esto se reali"a con el comando exportfs. Comandos ;< 6 > exportfs Mav Exporta todos los directorios definidos en exports > exports Muav @es$ace la exportacin de todos los directorios previamente exportados +na ve" los directorios $an sido exportados, cualquier mquina que tenga autori"ado el montaje puede montar el sistema de arc$ivos remotos usando el comando6 Comandos -. 6 > mount Mt nfs OservidorD6OdirectorioTexportadoD OdirectorioTclienteD JCG)6 #ara reali"ar esta operacion se recomienda que el cliente tenga activado el demonio y $abilitado el servicio nfsloc5. %#%#"# 1ontae auto!'tico $e un siste!a $e arc.ivos N54 El J(2 en nuestro caso sirve para montar el directorio de los usuarios en el servidor como directorio local en los clientes. )s el sistema de autenticacin J*2 permite el acceso de los usuarios y el J(2 les permite tomar control de sus arc$ivos en el servidor. #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com ;L7-< Aace falta sin embargo configurar un =ltimo servicio que permite montar el directorio $ome solo cuando es necesario evitando de este modo un uso innecesario de la red. El sistema que permite esto se conoce como autofs 3)utomounter4. #ara configurar el autofs en el cliente se debe primero configurar los directorios que sern automaticamente montados. Esto se reali"a modificando los arc$ivos de configuracin 7etc7auto.master y 7etc7auto.OdirectorioD donde OdirectorioD es el directorio que se automontara. En el directorio 7etc7auto.master se declaran los directorios que se automontaran y el arc$ivo auto asociado a ellos. )s por ejemplo6 )rc$ivo 7etc7auto.master6 7$ome 7etc7auto.$ome 9timeout R.. La opcin timeout permite definir un tiempo de K minutos para el montaje del directorio. #asado ese tiempo el sistema de arc$ivos que no sea accedido se desmontar automaticamente. El arc$ivo auto asociado al directorio de automontaje contiene las opciones de montaje para el sistema de arc$ivos. La sintaxis general del arc$ivo auto es6 <directorio> -fstype=nfs,<options> <servidor>:<directorio_remoto> Ejemplo6 )rc$ivo 7etc7auto.$ome6 ? MfstypeXnfs,soft,intr,rsi"eX8;<-,Bsi"eX8;<-,nosuid,tcp ;..;.;.;67export7$ome6Y +na ve" configurado el sistema de montaje automtico del sistema de arc$ivos de usuarios el servicio deber iniciarse y verificarse6 Comandos -; 6 > service autofs start > service autofs status %#0# Autenticacin auto!'tica $e los usuarios #ara conseguir que un usuario se autentique automticamente en su propia cuenta en el servidor se deben ejecutar la siguiente secuencia de comandos6 Comandos -L6 > ss$M5eygen Mt rsa 31esponder a todo con un OEJGE1D 3no introducir informacin44 > cat .ss$7idTrsa.pub DD .ss$7aut$ori"edT5eys > c$mod ogMrB .ss$7aut$ori"edT5eys 2i se desea $abilitar la autenticacin en una mquina remota en la que no este corriendo un sistema de montaje de sistema de arc$ivos automtico se debe ejecutar las siguiente secuencia6 Comandos -E6 #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com ;E7-< > ss$M5eygen Mt rsa 3ejecutar esto solo si no se $a ejecutado previamente el mismo comando4 > scp .ss$7idTrsa.pub OloginD:OclienteD65eyMservidor.pub Conectarse al cliente6 > ss$ Ml OloginD OclienteD +na ve" all ejecutar6 > ss$M5eygen Mt rsa > cat 5eyMservidor DD .ss$7aut$ori"edT5eys > c$mod ogMrB .ss$7aut$ori"edT5eys %#6# Prue(a $e servicios ('sicos +na ve" configurados los K servicios bsicos, a saber el sistema de informacin por red 3J*24, el sistema de arc$ivos por red 3J(24 y el servicio de automontaje de los sistemas de arc$ivos del servidor 3autofs4 es posible a$ora $acer una prueba completa de la funcin de estos servicios. La prueba se reali"a abriendo una sesin en uno de los nodos de un usuario del servidor. El resultado natural de este proceso debe ser el establecimiento de una sesin del sistema operativo sobre el $omedirectory de ese usuario. Los comandos para la prueba seran6 Comandos -- 6 Zroot:nodo [\> ss$ cluser:local$ost cluser:local$ostUs passBord6 Last login6 2un &ul ;K ;L6L-6-E -..8 from server.cluster Zcluser:nodo [\] Parte 0# 4ervicios especiali7a$os $e cluster Existen dos formas de calcular basicas sobre un cluster. La primera y la ms sencilla es la de utili"ar la disponibilidad de un conjunto de recursos de computo disponibles y de acceso ms o menos transparente para los usuarios para ejecutar concurrentemente ms de una instancia del mismo programa usando por ejemplo distintos conjuntos de parmetros o distintos datos en cada instancia. El resultado efectivo es el de obtener en un tiempo muy inferior lo que se calculara con la ejecucin sucesiva de cada instancia. ) este tipo de aproximacin se la conoce como #aralelismo Embara"oso! 3Embarringly #arallelism4 y es ampliamente utili"ada en la computacin de alto rendimiento. El segundo tipo de aproximacin es aquel en el que un mismo programa se fragmenta en tiempo de ejecucin en $ilos!, instancias paralelas pero relacionadas, que se ejecutan en los distintos procesadores disponibles en el cluster. En este =ltimo caso las instancias separadas se comunican entre s usando diferentes mecanismos. ) este tipo de aproximacin a los problemas se la llama #aralelismo #uro. )mbos tipos de aproximaciones requieren diferentes tipos de $erramientas. En el primer caso 3paralelismo embara"oso4 es necesario disponer de un sistema que permita la asignacin eficiente de recursos de computo a un conjunto de programas que lo requieran. Este tipo de $erramientas se conocen como programadores de trabajos! o calendari"adores! 3&ob 2c$edulers4 y son de las $erramientas ms utili"adas en la computacin en clusters. El paralelismo puro requiere de $erramientas normalmente vinculadas con lenguajes de programacin 3compiladores, librerias, #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com ;R7-< entre otros4 En ambos casos el almacenamiento masivo de datos es un requerimiento fundamental cuando se trabaja con grandes problemas de computo. La disposicin de un sistema que permita reunir las capacidades de almacenamiento de recursos independientes es central en la computacin en clusters. En esta parte mostraremos la manera como pueden instalarse algunas de las ms conocidas $erramientas para reali"ar las tareas mencionadas arriba. 0#"# 8i(rerias $e co!puto paralelo Existen diversos modelos de programacin en paralelo, la programacin con $ilos, la programacin con paso de mensajes, la programacin con variables compartidas. En esta gua nos concentraremos en las $eramientas para programacin paralela usando el modelo de paso de mansajes 3,essage #assing4 que por su versatilidad y portabilidad es tambi0n el ms utili"ado en la computacin de )lto rendimiento. En particular nos concentraremos en una implementacin de la denominada ,essage #assing *nterface! 3interface de paso de mensajes4, que se $a convertido $oy por $oy en el estndar de $ec$o de la programacin paralela 0#"#"# 1PIC9 ,#*C$ o ,#* C$amaleon es una de las implementaciones reconocidas del estndar ,#*. La instalacin de ,#*C$ en un cluster comien"a con la consecucin de las fuentes de la librera. +na ve" obtenidas las fuentes la instalacin sigue el procedimiento estndar de instalacin en sistemas ?nix 3Linux, +nix, F2@46 En el servidor6 Comandos -K 6 > tar "xvf mpic$.tar.g" MC 7usr7local7src @esempacar las fuentes en un directorio de manipulacin de fuentes > cd 7usr7local7src7mpic$M;.-./p; > 12ACC,,)J@Xss$ .7configure MMprefixX7usr7local Es importante el uso de la variable de ambiente 12ACC,,)J@ que garanti"a que las comunicaciones entre instancias se $agan usando el protocolo 22A > ma5e 2i los nodos del cluster son prcticamente id0nticos al servidor 3misma distribucin, igual arquitectura, etc.4 los arc$ivos compilados $asta aqu podran ser copiados a todos los nodos antes del paso final de instalacin. #ara ello se puede ejecutar, por cada nodo, el commando6 Comandos -L 6 > cd 7usr7local7src > tar "cvf mpic$Mbin.tar.g" mpic$M;.-./p; #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com ;/7-< > scp mpic$Mbin.tar.g" nodo;67usr7local7src > ss$ nodo; tar "xvf 7usr7local7src7mpic$Mbin.tar.g" MC 7usr7local7src +na ve" todas las mquinas, servidores y nodos tienen los binarios compilados se procede a instalarlos6 Comandos -E 6 > cd 7usr7local7src7mpic$M;.-./p; > ma5e install 0#"#%# Prue(a ('sica $e procesa!iento paralelo #ara probar la librera de computo paralelo es necesario abrir una sesin de usuario 3en lo sucesivo asumiremos que el usuario es cluser!4 en cualquiera de las mquinas del cluster6 Comandos -R 6 > ss$ cluser:server.cluster ) continuacin es necesario enumerar en un arc$ivo mac$ines.txt! la lista de los (SAJ de las componentes del cluster a las que se tiene acceso y desde las que se podra $acer el lan"amiento de los trabajos. El arc$ivo mac$ines.txt! debe contener una copia del nombre de cada mquina por cada procesador del que disponga. )s si el servidor tiene L procesadores y los nodos ; y - tienen solo - el arc$ivo sera6 )rc$ivo mac$ines.txt6 server.cluster server.cluster server.cluster server.cluster nodo;.cluster nodo;.cluster nodo-.cluster nodo-.cluster El orden en el que se consignen las mquinas en el arc$ivo determinar tambi0n el orden de utili"acin de los respectivos procesadores. )$ora es necesario disponer de un programa de ejemplo para probar la ejecucin de programas en paralelo con ,#*C$. #ara ello es posible obtener el programa cpi.c! disponible en el directorio de fuentes del ,#*C$6 Comandos -/ 6 ] cp 7usr7local7src7mpic$M;.-./p;7examples7basic7cpi.c . El programa debe compilarse usando para ello el script mpicc! especialmente desarrollado con la interface ,#*C$6 Comandos -8 6 ] mpicc cpi.c Mo cpi.out #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com ;87-< JCG)6 es importante verificar que el script mpicc! si corresponda a la versin de ,#*C$ recien instalada. #ara ello ejecute6 Comandos -< 6 ] B$ic$ mpicc mpirun /usr/local/bin/mpicc /usr/local/bin/mpirun 2i la salida mostrada no es la que se obtiene tanto mpicc como mpirun 3ver abajo4 deben ser invocados usando el camino completo de ambos programas 37usr7local7bin7mpicc4. +na ve" compilados la ejecucin del programa se reali"a invocando el script mpirun! e indicando el n=mero de procesadores a utili"ar y el arc$ivo con la lista de procesadores disponibles. El comando de ejecucin es6 Comandos K. 6 ] mpirun Mnp - Mmac$inefile mac$ines.txt .7cpi.out Process 0 of 2 on server.cluster pi is approximately 3.1415926544231318, Error is 0.0000000008333387 wall clock time = 0.003597 Process 1 of 2 on nodo.cluster La salida anterior es correcta indicando que el programa paralelo $a corrido exitosamente usando - instancias paralelas. 0#"#0# Prue(a avan7a$a $e procesa!iento paralelo +na prueba ms compleja de las posibilidades que ofrece el procesamiento paralelo nos la ofrece una poderosa y muy bonita $erramienta conocida como #CIM1ay. Este programa permite generar imgenes fotorrealistas de escenarios en K@ usando una t0cnica conocida como tra"ado de rayos!. La t0cnica de tra"ado de rayos es muy costosa lo que implica que la generacin 3render4 de escenas muy complejas puede llegar a tomar muc$o tiempo. En una de las ms reconocidas aplicaciones del clculo paralelo es posible utili"ar una $erramienta denominada ,#* #CIM1ay! para reali"ar el rendering de forma ms rpida. #ara abreviar usaremos una versin precompilada en arquitectura de K- bits del programa, mpiM povrayK;.tar.g". La instalacin de la $erramienta es supremamente simple6 Comandos K; 6 > tar "xvf mpiMpovrayK;.tar.g" MC 7usr7local7src > cd 7usr7local7src7mpiMpovrayK; > .7install #ara reali"ar la prueba es necesario abrir una sesin como un usuario normal 3no root4. #ara reali"ar una prueba de rendering rpida se puede copiar una escena de ejemplo y correrla con una resolucin moderada6 #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com ;<7-< Comandos K- 6 ] cp Mrf 7usr7local7src7mpiMpovrayK;7scenes7advanced7Boodbox.pov ] xMpovray ^(J ^* c$ess-.pov ^L7usr7local7src7mpiMpovrayK;7include7 ^I ^@ ^VRL. ^AL8. ... ,ispla8ing... 'sing 24 7it .r3e-olor vis3al... 0:02:"3 )endering line 480 o% 480. ,one .racing chess2.pov &tatistics< )esol3tion !40 5 480 ============================================================================ (i5els: 30200 &les: 340344 &mpls/(5l: 11.04 )a8s: !843134 &aved: !404 $a5 Level: "/" ============================================================================ )a8=>&hape 0ntersection .ests &3cceeded (ercentage ============================================================================ #o5 11404482 2381414 20.88 -one/-8linder 1301443! 3!43 ".!! -&1 0ntersection 1"!8202 2343884 14.8! -&1 'nion 2133!"3 2384441 33.10 (lane 3140248! 21!028818 "8.1 ?3adric 43011 234423! 30.!1 &phere 420!"0143 4044403 4.0 #o3nding *7@ect 343!448! 233483"8 !.81 ============================================================================ -alls to /oise: 218804!2 -alls to ,/oise: 2014413! ============================================================================ &hadoA )a8 .ests: 4141212 &3cceeded: 41424 )e%lected )a8s: 343"4" ============================================================================ &mallest +lloc: 10 78tes Largest: 12828 (eak memor8 3sed: !44!" 78tes ============================================================================ .ime Bor .race: 0 ho3rs 2 min3tes "4.0 seconds 914 seconds: .otal .ime: 0 ho3rs 2 min3tes "4.0 seconds 914 seconds: Jote como el rendering de esta escena con una moderada resolucin toma ms de ;E. segundos en completarse. 2i se multiplicara por L el tamaWo de cada lado, el tiempo de computo se incrementara en un factor de ;R es decir tomara cerca de ; $ora. La misma tarea se puede ejecutar en paralelo usando6 Comandos KK 6 ] cp Mrf 7usr7local7src7mpiMpovrayK;7scenes7advanced7Boodbox.pov ] mpirun Mnp - Mmac$inefile mac$ines 7usr7local7bin7mpiMxMpovray ^(J ^* c$ess-.pov ^L7usr7local7src7mpiMpovrayK;7include7 ^I ^@ ^VRL. ^AL8. C un detalle de la imgen con6 ] mpirun Mnp - Mmac$inefile mac$ines 7usr7local7bin7mpiMxMpovray ^(J ^* c$ess-.pov ^L7usr7local7src7mpiMpovrayK;7include7 ^vl ^d Mx ^VRL. ^AL8. ^2;.. ^E;E. ^2CL.. ^ECLE. 0#%# 4iste!as $e progra!acin $e tra(aos :o( sc.e$uler; +no de los sistemas de programacin de trabajos ms conocidos es el de la 2+J, %rid Engine, abreviado 2%E. #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com -.7-< 0#%#"# Instalacin * con&iguracin $e 4GE La instalacin de 2%E se reali"a siguiendo el siguiente procedimiento6 ;. Crear una cuenta y un usuario especial para el sistema Comandos KL 6 > useradd M, sgeadmin -. Aabilitar el puerto a trav0s del cual se manejan los eventos del sistema. )gregar al arc$ivo 7etc7services la lnea6 sge_commd 5!"tcp # comm$nication port for %rid &ngine K. Creacin del directorio ra" del programa e instalacin de los arc$ivos del paquete6 Comandos KE 6 > m5dir 7gridBare7sge > tar M"xvf sgeME.KpRMbinMglinux.tar.g" MC 7gridBare7sge > tar M"xvf sgeME.KpRMcommon.tar.g" MC 7gridBare7sge L. Configurar variables de ambiente crticas Comandos KR 6 > export 2%ET1CCGX]2%ET1CCG > export #)GAX]#)GA6]2%ET1CCG7bin7glinux > ec$o export 2%ET1CCGX]2%ET1CCG! DD 7etc7bas$rc > export #)GAX]#)GA6]2%ET1CCG7bin7glinux! DD 7etc7bas$rc > ec$o export 2%ET1CCGX]2%ET1CCG! DD 7etc7profile > export #)GAX]#)GA6]2%ET1CCG7bin7glinux! DD 7etc7profile E. (ijar los permisos de los binarios instalados Comandos K/ 6 > ]2%ET1CCG7util7setfileperm.s$ sgeadmin sgeadmin ]2%ET1CCG R. Crear un arc$ivo con la lista de todas las mquinas ejecutoras. El arc$ivo puede denominarse mac$inesMsge.txt! y debera ubicarse en el directoro ]2%ET1CCG que en el paso siguiente ser copiado a todos los nodos. El arc$ivo mac$inesMsge.txt contiene la lista del nombre de las mquinas. Estos nombres podrn ir o no acompaWadas del dominio. /. Copiado del directorio de instalacin a todos los nodos. +na ve" el directorio de instalacin $a sido configurado apropiadamente se sugiere copiar ese directorio a todos los nodos que correran 2%E. Comandos K8 6 > cd 7 > tar M"cvf 7tmp7gridBareMbin.tar.g" 7gridBare > scp 7tmp7gridBareMbin.tar.g" nodo67 #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com -;7-< > ss$ nodo tar M"xvf 7tmp7gridBareMbin.tar.g" MC 7 8. *nstalar en el servidor el servicio qmaster! Comandos K< 6 > cd ]2%ET1CCG > .7installTqmaster > . ]2%ET1CCG7default7common7settings.s$ La mayora de las cuestiones formuladas durante la instalacin del qmaster son intuitivas. )lgunas importantes cuestiones incluyen6 la creacin del script de iniciali"acin del demonio 3a lo que debe responderse siempre que s4. <. *nstalar en el servidor y los nodos el servicio execd! Comandos L. 6 > cd ]2%ET1CCG > .7installTexecd > . ]2%ET1CCG7default7common7settings.s$ La mayora de las cuestiones formuladas durante la instalacin del execd son tambi0n intuitivas. )lgunas importantes cuestiones incluyen6 la creacin de la cola por defecto para la mquina respectiva 3a lo que se debe responder que s4. 0#%#%# Prue(as $e 4GE #ara probar que el sistema esta en funcionamiento se puede consultar la cola de procesos6 Comandos L; 6 > qstat Mf 63e3ename 6t8pe 3sed/tot. loadCavg arch states ============================================================================ nodo.6 #0( 0/1 1.03 glin35 ============================================================================ server.6 #0( 0/1 1.04 glin35 2i el ejecutor fue exitosamente instalado en todos los nodos y componentes del sistema la lista de esas componentes debe aparecer al invocar el comando de consulta de colas. 2e puede probar la ejecucin de un trabajo de prueba en el sistema de colas con el comando6 Comandos L- 6 > qsub ]2%ET1CCG7examples7jobs7sleeper.s$ 8o3r @o7 2 9D&leeperD: has 7een s37mitted > qstat Mf 63e3ename 6t8pe 3sed/tot. loadCavg arch states ============================================================================ nodo.6 #0( 0/1 1.02 glin35 ============================================================================ server.6 #0( 0/1 1.0 glin35 #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com --7-< EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE = (E/,0/1 F*#& = (E/,0/1 F*#& = (E/,0/1 F*#& = (E/,0/1 F*#& = (E/,0/1 F*#& EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 2 0 &leeper root 6A 0/14/2008 00:38:20 > qstat Mf 63e3ename 6t8pe 3sed/tot. loadCavg arch states ============================================================================ nodo.6 #0( 1/1 1.0" glin35 2 0 &leeper root r 0/14/2008 00:38:2 $+&.E) ============================================================================ server.6 #0( 0/1 1.0 glin35 #ara detalles sobre la manera como pueden prepararse y enviarse trabajos al sistema de colas de 2%E ver la %ua #rctica de Linux Clustering con 1oc5s!. 0#0# 4iste!as $e al!acena!iento $istri(ui$o +no de los ms importantes condicionantes del trabajo en sistemas de computo distribuido como los clusters es la disposicin de una capacidad muy grande de almacenamiento. Es normal que los grandes programas de computo utilicen grandes cantidades de datos como entradas o como salidas. Es necesario entonces disponer en el cluster de un sistema que permita el almacenamiento de esas enormes cantidades de datos, que pueden superar la capacidad individual de uno solo de los discos duros involucrados. 0#0#"# P<54%2 Instalacin En el caso de esta gua orientaremos sobre la instalacin del #I(2- 3#arallel Iirtual (ile 2ystem -4 un sistema de almacenamiento distribuido y en paralelo, liviano, de fcil instalacin y uso, aunque probablemente no tan robusto como otros utili"ados en ambientes de produccin. La instalacin del #I(2- comien"a con la consecucin de las fuentes del programa. +na ve" conseguidas deben desempacarse en un sitio normalmente preestablecido6 Comandos LK 6 > tar M"xvf pvfsM-./.;.tar.g" MC 7usr7src > ln Ms 7usr7src7pvfsM-./.; 7usr7src7pvfs- )ntes de compilar es necesario verificar primero cul es la versin del 5ernel que se esta corriendo y si se dispone de las fuentes de ese mismo 5ernel. Estas informaciones son de utilidad para fabricar el mdulo que permitir cargar el sistema de arc$ivos distribuido como un sistema de arc$ivos convencional. Comandos LL 6 > uname Mr -.R.;8MEK.elE Esta es la versin del 5ernel. #I(2- funciona mejor en versiones -.R.x del 5ernel > rpm Mqa N grep 5ernel 5ernelM-.R.;8MEK.elE #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com -K7-< 5ernelM$eadersM-.R.;8MEK.elE 5ernelMdevelM-.R.;8MEK.elE )s sabremos que paquetes asociados con el 5ernel estn instalados en el sistema. #ara la compilacin del mdulo que permite el montaje automtico del sistema de arc$ivos es necesario que el paquete 5ernelMdevel este instalado. 2e puede verificar que las fuentes est0n en su lugar con los siguientes comandos6 Comandos LE 6 > ls Ml 7usr7src75ernels7 drBxrMxrMx ;8 root root L.<R mar E ;.6L< -.R.;8MEK.elEMiR8R El directorio que aparece all contiene las fuentes del 5ernel requeridas > ls 7lib7modules7-.R.;8MEK.elE7build Este directorio es un enlace simblico al directorio con las fuentes del 5ernel +na ve" verificada la presencia de las fuentes del 5ernel se procede a configurar y compilar las fuentes del programa6 Comandos LR 6 > cd 7usr7src7pvfs- > .7configure 9Bit$M5ernelX7usr7src75ernels7-.R.;8MEK.elEMiR8R > ma5e En este punto se $ace necesario compilar tambi0n el mdulo del 5ernel que permitir manipular el sistema de arc$ivos distribuido como un directorio ms en el cluster. #ara compilar el mdulo e instalarlo $aga6 Comandos L/ 6 > cd 7usr7src7pvfs- > ma5e 5mod +na ve" compilado y si las mquinas componentes del cluster son similares es posible distribuir el paquete compilado por todos los nodos as6 Comandos L8 6 > cd 7usr7src > tar M"mcvf pvfs-Mbinaries.tar.g" pvfsM-./.; pvfs- > scp pvfs-Mbinaries.tar.g" nodo.cluster67usr7src > ss$ nodo.cluster tar M"xvf 7usr7src7pvfs-Mbinaries.tar.g" MC 7usr7src +na ve" los binarios $ayan sido compilados y est0n presentes en todas las mquinas del cluster a$ora es posible correr la tarea de instalacin. En el servidor y en cada nodo ejecutar6 Comandos L< 6 > cd 7usr7src7pvfs- > ma5e install > ma5e 5modTinstall #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com -L7-< )$ora estamos listos para la configuracin del sistema. 0#0#%# P<54%2 Con&iguracin La configuracin del sistema implica primero decidir cules sern los roles de cada componente 3servidor y nodos4 en el cluster. Existen K roles bsicos6 M 2ervidor de metadatos 3metadata server46 estas son componentes fundamentales del sistema. Los servidores de metadatos almacenan la informacin sobre los arc$ivos en el sistema. Cada ve" que se quiere recuperar un objeto los clientes deben consultar a un servidor de metadatos para que le indique la informacin sobre el objeto. M 2ervidor de entrada7salida 3*7C server46 estas son las componentes que efectivamente almacenan los datos en el sistema. Jormalmente los datos se fragmentan entre los *7C server y algunos paquetes duplicados se almacenan en m=ltiples *7C server para asegurar la tolerancia a las fallas del sistema. M Cliente. Esta es una mquina cualquiera en el sistema que esta configurada para acceder a los datos almacenados en el sistema de arc$ivos distribuido. En principio todas las mquinas de un cluster jugar todos estos roles. 2in embargo por comodidad y seguridad escogeremos que todos los nodos tendrn el rol de *7C servers y solo el servidor se comportar como un metadata server. +na ve" decidida la distribucin de roles se debe preparar el arc$ivo de configuracin bsica del sistema. Esto se consigue con el comando6 Comandos E. 6 > pvfs-Mgenconfig 7etc7pvfs-Mfs.conf GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG Welcome to the (HB&2 -on%ig3ration 1enerator: .his interactive script Aill generate con%ig3ration %iles s3ita7le %or 3se Aith a neA (HB&2 %ile s8stem. (lease see the (HB&2 63ickstart g3ide %or details. GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG Io3 m3st %irst select the netAork protocol that 8o3r %ile s8stem Aill 3se. .he onl8 c3rrentl8 s3pported options are DtcpD< DgmD< Dm5D< Di7D< and DportalsD. 9Bor m3lti=homed con%ig3rations< 3se e.g. Di7<tcpD.: G Enter protocol t8pe J,e%a3lt is tcpK: -hoose a .-(/0( port %or the servers to listen on. /ote that this script ass3mes that all servers Aill 3se the same port n3m7er. G Enter port n3m7er J,e%a3lt is 3334K: -hoose a director8 %or each server to store data in. #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com -E7-< G Enter director8 name: J,e%a3lt is /pv%s2=storage=spaceK: -hoose a %ile %or each server to Arite log messages to. G Enter log %ile location J,e%a3lt is /tmp/pv%s2=server.logK: /var/log/pv%s2=server.log /e5t 8o3 m3st list the hostnames o% the machines that Aill act as 0/* servers. +ccepta7le s8nta5 is Dnode1< node2< ...D or DnodeLE=E<E<EMD. G Enter hostnames J,e%a3lt is localhostK: server nodo /oA list the hostnames o% the machines that Aill act as $etadata servers. .his list ma8 or ma8 not overlap Aith the 0/* server list. G Enter hostnames J,e%a3lt is localhostK: server -on%ig3red a total o% 2 servers: 1 o% them are 0/* servers. 1 o% them are $etadata servers. G Wo3ld 8o3 like to veri%8 server list 98/n: J,e%a3lt is nKN 8 GGGGGG 0/* servers: server nodo GGGGGG $etadata servers: server G ,oes this look ok 98/n: J,e%a3lt is 8KN Writing %s con%ig %ile... done Jtese que el valor por defecto del arc$ivo para la bitcora del sistema $a sido cambiado respecto a su valor por defecto. +na ve" generado el arc$ivo de configuracin es necesario que este arc$ivo este presente en todos los nodos del cluster. (inalmente para comen"ar a utili"ar el sistema de arc$ivos distribuidos es necesario ejecutar en cada servidor! pvfs- el demonio correspondiente al servicio. Los comandos requeridos son6 Comandos E; 6 > pvfs-Mserver 7etc7pvfs-Mfs.conf Mf Esta primera corrida permite crear 3si no se $a $ec$o4 el arc$ivo de almacenamiento de los arc$ivos asociados al pvfs-. #or defecto el nombre del directorio es 7pvfs-MstorageMspace > pvfs-Mserver 7etc7pvfs-Mfs.conf Este es el comando que finalmente pone a funcionar los servidores +na ve" los servidores estn corriendo es posible configurar y poner en funcionamiento al menos un cliente. La configuracin del cliente comien"a creando el directorio particular que estar asociado, como es com=n en Linux, al sistema de arc$ivos distribuidos de pvfs-. Jormalmente se elige #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com -R7-< 7mnt7pvfs-. Comandos E- 6 > m5dir Mp 7mnt7pvfs- #ara indicar la manera como el sistema de arc$ivos de pvfs- se vincula con el directorio 7mnt7pvfs- se debe crear el arc$ivo 7etc7pvfs-tab, de formato anlogo al del 7etc7fstab6 )rc$ivo mac$ines.txt6 tcp677nodo6KKKL7pvfs-Mfs 7mnt7pvfs- pvfs- defaults,noauto . . +na ve" definida la manera de acceder al sistema de arc$ivos de pvfs- es posible $acer una prueba de conectividad al sistema6 Comandos EK 6 > pvfs-Mping Mm 7mnt7pvfs- 91: (arsing ta7 %ile... 92: 0nitialiOing s8stem inter%ace... 93: 0nitialiOing each %ile s8stem %o3nd in ta7 %ile: /etc/pv%s2ta7... (HB&2 servers: tcp://nodo:3334 &torage name: pv%s2=%s Local mo3nt point: /mnt/pv%s2 /mnt/pv%s2: *k 94: &earching %or /mnt/pv%s2/ in pv%sta7... (HB&2 servers: tcp://nodo:3334 &torage name: pv%s2=%s Local mo3nt point: /mnt/pv%s2 meta servers: tcp://server:3334 data servers: tcp://server:3334 tcp://nodo:3334 9": Heri%8ing that all servers are responding... meta servers: tcp://server:3334 *k data servers: tcp://server:3334 *k tcp://nodo:3334 *k 9!: Heri%8ing that %sid 201!4318! is accepta7le to all servers... *kP all servers 3nderstand %sCid 201!4318! 9: Heri%8ing that root handle is oAned 78 one server... )oot handle: 1048"! *kP root handle is oAned 78 e5actl8 one server. QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ .he (HB&2 %iles8stem at /mnt/pv%s2/ appears to 7e correctl8 con%ig3red. En la slida anterior todo parece estar en orden. Existe una familia completa de comandos pvfs-M! que permiten manipular de una manera sencilla el sistema de arc$ivos. )s por ejemplo #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com -/7-< pvfs-Mls! permite revisar el contenido del sistema de arc$ivos, pvfs-Mcp! permite copiar arc$ivos $acia y desde el sisyema de arc$ivos y as sucesivamente. La manera ms normal y natural de interactuar con el sistema de arc$ivos es a trav0s del mdulo del 5ernel que compilamos para ese fin. #ara utili"ar el mdulo se debe completar el siguiente procedimiento6 Comandos EL 6 > insmod 7usr7src7pvfs-7src75ernel7linuxM-.R7pvfs-.5o *nsertar el mdulo del 5ernel > cd 7usr7src7pvfs-7src7apps75ernel7linux > pvfs-Mclient starting &paAning neA child process Waiting on child Aith pid 321" +7o3t to e5ec: ./pv%s2=client=core< Aith args: pv%s2=client=core =a " =n " ==logt8pe %ile =L /tmp/pv%s2=client.log +na ve" $abilitado el cliente basta con montar finalmente el sistema de arc$ivos en el directorio creado para ese fin6 Comandos EE 6 > mount Mt pvfs- tcp677nodo6KKKL7pvfs-Mfs 7mnt7pvfs- > df M$ 7mnt7pvfs- &.%icheros .amaRo 'sado ,isp 'soS $ontado en tcp://nodo:3334/pv%s2=%s 211 8<21 131 40S /mnt/pv%s2 +na ve" como directorio la manipulacin del sistema de arc$ivos se vuelve prcticamente trivial. Parte 6# Proce$i!ientos ('sicos 6#"# Creacin $e cuentas $e usuario en linux# #ara crear cuentas de usuario en Linux es necesario primero disponer de un directorio para los directorios UcasaU 3$ome directory4 de los usuarios. En un sistema de computacin en %rid lo mejor es disponer de un directorio distinto a aquel que se usa por defecto en linux 37$ome4. 2e puede crear el directorio )export).o!e en su lugar as6 Comandos --6 > m5dir Mp 7export7$ome +na ve" disponible este directorio la creacin de una cuenta de usuario procede de la siguiente manera6 Comandos -K6 > useradd OloginD Md 7export7$ome7OloginD Mm #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com -87-< donde OloginD es el nombre de usuario vlido en linux. El passBord del usuario se puede fijar usando el comando6 Comandos -L6 > passBd OloginD #ara actuali"aciones6 $ttp677urania.udea.edu.co7facom 9 )utor6 "uluagajorge:gmail.com -<7-<