Está en la página 1de 29

MONTAJE BSICO DE LINUX CLUSTERS

UNA GUA PRCTICA


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 &amples: 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-<

También podría gustarte