TECNOLÓGICO NACIONAL DE MÉXICO
INSTITUTO TECNOLÓGICO DE ACAPULCO
INGENIERÍA EN SISTEMAS COMPUTACIONALES COMPUTACIONALES
MATERIA: COMPUTO DISTRIBUIDO
CATEDRATICO: ING. DAGOBERTO URZUA
SEMESTRE: 8
HORA: 12:00 – 02:00 PM
Al!"#$: D%&' N&(&))*+* T&",& 12-2012 G&),/& Al*&")# Al&" R&3&*l 12-20-4 M&),$5&l E$5#/&) R&6l A7*l 12-20 M&)+%"*' Al/,"*' 9#$ C&)l#$ 12-204 M&)+%"*' 9;)*' <&$=& <&$=& Al*&")# 12-2082 M*%& R**$ R*"& L' 12-208>
Contenido INTRODUCCION...................................................................................................3 MARCO TEORICO................................................................................................. 4 DESARROLLO......................................................................................................5 RESULTADOS..................................................................................................... 10 CONCLUSION GENERAL..................................................................................... 10 CONCLUSIONES PERSONALES........................................................................... 10 BIBLIOGRAFÍA.................................................................................................... 11
INTRODUCCION P&)& l& )*&l,'&5,?" * *$+& @);5+,5& "*$+)# *,@# 5#"+&/& 5#" 5&+)# *,@#$ * 5?!@+# 5#" *l $,$+*!& #@*)&+,(# C*"+O$ * l& 5&l +,l,'&)*!#$ @),"5,@&l!*"+* $ +*)!,"&l @&)& )*&l,'&) l& 5#"3,)&5,?" *l 5l$+*) " !#*! *l 5&l +,l,'&)%&!#$ 5#" $$ )*$@*5+,(#$ 5&/l*$ UTP 5#!# !*,# * 5#!",5&5,?" *"+)* l&$ 5&+)# !;,"&$ & +,l,'&) @&)& ll*(&) & 5&/# ,5=& @);5+,5&. E$+& @);5+,5& +,*"* 5#!# #/*+,(# @#"*) *" @);5+,5& l#$ 5#"#5,!,*"+#$ * =*!#$ &,),# * !&"*)& +*?),5& @#) !*,# * l&$ 5l&$*$ * $* "#$ =&" ,!@&)+,# 5#!# $&/*!#$ l& +*5"#l#%& * 5l6$+*)*$ =& *(#l5,#"&# *" &@## * &5+,(,&*$ * (&" *$* &@l,5&5,#"*$ * $@*)5?!@+# $#3+&)* @&)& &@l,5&5,#"*$ 5)%+,5&$ $*)(,#)*$ */ 5#!*)5,# *l*5+)?",5# =&$+& /&$*$ * &+#$ * &l+# )*",!,*"+# @#) !*"5,#"&) &l"#$. L#$ 5l6$+*)*$ #3)*5*" l&$ $,,*"+*$ 5&)&5+*)%$+,5&$ & " 5#$+# )*l&+,(&!*"+* /&#: •
Al+# )*",!,*"+#
•
Al+& ,$@#",/,l,&
•
Al+& *3,5,*"5,&
•
E$5&l&/,l,&
MARCO TEORICO STALLINGS 200F D*3,"* " 5l$+*)$ 5#!# " )@# * 5#!@+&#)*$ 5#!@l*+#$ ,"+*)5#"*5+&#$ * +)&/&&" 5#""+&!*"+* 5#!# " 6",5# )*5)$# * 5?!@+# 5)*;"#$* l& ,l$,?" * * $* +)&+& * "& $#l& !;,"&. M&)+& B*l+);" P&)# 2010F D*3,"* " 5l$+*) *$ "& &),+*5+)& * !*!#),& ,$+),/,& 5#!@*$+& @#) " 5#""+# * "##$ * 5?!@+# ,"*@*",*"+*$ 5#"*5+&#$ @#) "& )* 5#"+)#l&& * &l+&$ @)*$+&5,#"*$ M6"*)& 200F El 5#"5*@+# * Cl$+*) "&5,? 5&"# l#$ @,#"*)#$ * l& $@*)5#!@+&5,?" ,"+*"+&/&" ,3",) ,3*)*"+*$ @)#5*$#$ *"+)* (&),#$ 5#!@+&#)*$ @&)& l*# @#*) )*5#*) l#$ )*$l+&#$ * ,5=#$ @)#5*$#$ */%&" @)#5,). C#" " =&)&)* !;$ /&)&+# 3;5,l * 5#"$*,) $* @# @*)3,l&) * @#)%&" 5#"$*,)$* )*$l+&#$ ! @&)*5,#$ & l#$ #/+*",#$ 5#" &*ll&$ !;,"&$ !5=# !;$ 5#$+#$&$. S* *"!*)&" 5&+)# /*"*3,5,#$ * @**" 5#"$*,)$* 5#" " 5l$+*). E$+#$ /*"*3,5,#$ +&!/," @**" 5#"+*!@l&)$* 5#!# #/*+,(#$ # )*,$,+#$ * ,$*#: •
Escalabilidad absoluta: E$ @#$,/l* 5#"3,)&) 5l$+*)$ )&"*$ * ,"5l$#
$@*)&" l&$ @)*$+&5,#"*$ * l#$ 5#!@+&#)*$ ,"*@*",*"+*$ !;$ @#+*"+*$. U" 5l$+*) @** +*"*) *5*"&$ * !;,"&$ 5&& "& * l&$ 5&l*$ @** $*) " !l+,@)#5*$&#). •
Escalabilidad incremental: U" 5l$+*) $* 5#"3,)& * 3#)!& * $*&
@#$,/l* &&,) "*(#$ $,$+*!&$ &l 5l$+*)$ *" &!@l,&5,#"*$ $5*$,(&$. A$, " $&),# @** 5#!*"'&) 5#" " $,$+*!& !#*$+# &!@l,&)l# & !*,& * l# "*5*$,+* $," +*"*) * $$+,+,) *l $,$+*!& * * ,$@#"* @#) "# "*(# * @)#@#)5,#"* !&#)*$ @)*$+&5,#"*$. •
Alta disponibilidad: P*$+# * 5&& "## *l 5l$+*) *$ " 5#!@+&#)
&+?"#!# *l 3&ll# * "# * l#$ "##$ "# $,",3,5& l& @),& *l $*)(,5,#. E" !5=#$ 5&$#$ *$ *l $#3+&)* *l * @)#@#)5,#"& &+#!;+,5&!*"+* l& +#l*)&"5,& & 3&ll#$. •
Mejor relación precio-prestaciones: Al +,l,'&) *l*!*"+#$ *$+&"&),'&#$
*$ @#$,/l* 5#"3,)&) " 5l$+*) 5#" !&#) # ,&l @#+*"5,& * 5?!@+# * " 5#!@+&#) ,"*@*",*"+* !&#) & !5=# !*"#$ 5#$+#.
DESARROLLO Preparaciones Defnir IP estática, y hostname en todos los nodos.
IP estática: confguración Muestra las conexiones con las que cuenta el computador # nmcli d DEVICE TYPE STATE CONNECTION virbr0 bridge connected virbr0 virbr0-nic tap connected virbr0-nic enp50 et!ernet "navailable -lo loopbac# "nmanaged -Ahora defnimos la ip de acuerdo a la conexión que deseamos usar. l equi $ nmcli c modi%& 'conection( ipv)*addree +,*+./*+*+) $ nmcli c modi%& 'conection( ipv)*gate1a& '+,*+./*+*5) $ nmcli c modi%& 'conection(ipv)*dn +,*+./*0*5) $ nmcli c modi%& 'conection( ipv)*met!od man"al !a defnidas las ip ahora reiniciamos la conexion $ nmcli c do1n 'conection(2 nmcli c "p 'conection( "erifcamos los cam#ios $iendo los parámetros de la conexión $ nmcli d !o1 'device(
%ostname: confguración &am#iamos el hostname $ !otnamectl et-!otname 3n"evo !otname4 'estauramos el hostnamed para (or)ar que hostnamectl se d* cuenta del cam#io $ &temctl retart &temd-!otnamed "erifcamos el cam#io $ !otname
Ping entre hosts mediante hostname. Al inicio no se podrá hacer ping mediante hostname, solo mediante IP, por lo cual confguraremos +etc+hosts de la siguiente manera: l siguiente comando nos dará la opción de editar el documento. $ vi etc!ot
Ahora, en una lnea nue$a, escri#iremos la IP estática y el hostname de cada uno de los nodos como se muestra en la imagen:
-al$amos los cam#ios, y ahora ya podremos hacer ping, de un nodo a otro, mediante el hostname con el siguiente comando: # ping -c+ '!otname con c"al deea !acer ping( &on esto fnali)amos las preparaciones
ire/all Antes de que tomemos alguna acción para nuestro cluster, necesitamos permitir tráfco del cluster por el fre/all. 0os siguientes comandos permitiran esto: $ "do re1all-cmd --permanent --add-ervice6!ig!-avaliabilit& $"do re1all-cmd --add-ervice6!ig!-availabilit&
Instalación Despu*s de tener lo #ásico, necesitamos instalar los paquetes para los componentes que planeamos usar en cada uno de los nodos:
!"do #"$ in!t%&& 'o(o!#n' )'! )%'e$%*e(
Para poder confgurar los nodos del cluster, usaremos P&-. sto nos permitirá tener una sola inter(ace para mane1ar todos los nodos del cluster. Antes de poder usar P&-, tendremos que confgurar tendremos que autentifcar las cla$es p2#licas o darle al usuario una cla$e en cada uno de los nodos. 3(a$or de usar la misma contrase4a, para e$itar alguna (alla5.
!"do )%!!+d ,%'&"!te(
Ahora iniciamos el ser$icio P&- en cada uno de los nodos.
!"do !#!te$'t& !t%(t )'!d
!a que confguraremos todos los nodos de un solo punto, necesitamos autentifcar en todos los nodos antes de que se nos permita cam#iar la confguración. 6sar el usuario hacluster y la cla$e que se confguro pre$iamente para hacer esto: 3el siguiente comando solo se pondrá en el nodo785
$ "do pc cl"ter a"t! 'poner lo !otname de lo nodo participante7 eparado por epacio( e8emplo9$ "do pc cl"ter a"t! node0+ node0
&rear el cluster y agregar los nodos: $ "do pc cl"ter et"p --name cl"ter:1eb 'poner lo !otname de lo nodo participante7 eparado por epacio( l comando anterior crea la confguración de nodos del cluster en +etc+corosync.con(. Despu*s de ha#er creado el cluster y agregado los nodos, podemos iniciarlo. l cluster no hará mucho ya que a2n no se confgura ning2n recurso. $ "do pc cl"ter tart --all Podemos $isuali)ar el estado del cluster despu*s de encenderlo con el siguiente comando: $ "do pc tat" cl"ter Podemos $isuali)ar el estado de los nodos del cluster con los siguientes comandos: $ "do pc tat" node $ "do coro&nc-cmapctl ; grep member $"do pc tat" coro&nc
&onfguración del cluster "emos la confguración para $er si hay errores, los cual si ha#ra, usamos el siguiente comando: $ "do crm:veri%& -< -V 9os mostrara que los errores tienen que $er con -;9I% 3-hoot he ;ther 9odes In he %ead5, el cual es un mecanismo para asegurarse que no termines con dos nodos que piensen que am#os están acti$os y que reclamen que son los due4os del ser$icio e IP $irtual, tam#i*n llamada situación de cere#ro di$idido. !a que tenemos un cluster simple, desacti$aremos la opción de stonith: $ "do pc propert& et tonit!-enabled6%ale Mientras confguramos el comportamiento del cluster, podemos tam#i*n confgurar las propiedades del quorum. l quorum descri#e el mnimo n2mero de nodos en el cluster que de#en estar acti$os para que el cluster pueda estar disponi#le. sto puede ser algo práctico en una situación donde muchos nodos pro$een poder computari)ado simultáneo. &uando el n2mero de nodos disponi#les es muy #a1o, es me1or parar el cluster, en $e) de en$iar un ser$icio no acti$o. Por de(ecto el quorum es considerado muy #a1o si el n2mero total de los nodos es menor que el do#le de la mitad del n2mero de nodos acti$os. Para un cluster de < nodos signifca que am#os nodos necesitan estar
disponi#les para que el cluster pueda estar disponi#le. n este caso se destruira el propósito del cluster. Para ignorar el quorum: $ "do pc propert& et no-="or"m-polic&6ignore "erifcamos el cam#io: $ "do pc propert&
"irtual IP address l siguiente paso es actualmente de1ar que nuestro cluster haga algo. Agregaremos una IP $irtual a nuestro cluster. sta IP $irtual es la dirección IP que se conectara para poder alcan)ar los ser$icios 3 el ser$icio /e# en nuestro caso5. 6na IP $irtual es un recurso. Para agregar el recurso: $ "do pc reo"rce create virt"al:ip oc%9!eartbeat9Ipaddr ip6+,*+./*0*+00 cidr:netma#6> op monitor interval6>0 "erifcamos si se creó: $ "do pc tat" reo"rce &omo pueden $er, lo que nos muestra el segundo comando, es el recurso marcado como iniciado. As que la nue$a, dirección de IP $irtual de#era poder ser alcan)ada: $ ping -c+ +,*+./*0*+00 Para $er a quien le pertenece en este momento el recurso+IP $irtual: $ "do pc tat";grep virt"al:ip
&onfguracion del ser$idor /e# Apache 6na $e) que nuestra IP $irtual esta acti$a, instalaremos y confguraremos los ser$icios que queremos para hacer de alta disponi#ilidad am#os nodos: Apache. Para empe)ar, instalar Apache y confgurar una simple página /e# estática en am#os nodos que sea di(erente. sto es solo temporalmente para $er la (unciona#ilidad de nuestro cluster. Despu*s las páginas /e# en el nodo78 y nodo7<3o la cantidad de nodos que se usen5, de#eran sincroni)arse para ser$ir la misma /e#site sin importar el nodo que este acti$o. Instalar Apache en todos los nodos: $ "do &"m intall !ttpd Ahora hacemos que el fre/all permita tráfco mediante &P=port >7: Primero, $emos que )ona de#e ser accesada: $ re1all-cmd --get-active-?one Ahora permitimos tráfco permanente en la )ona deseada: $ "do re1all-cmd --?one6p"blic --permanent --add-ervice6!ttp "erifcamos: $ "do re1all-cmd --?one6p"blic --permanent --lit-ervice Para poder $er si Apache a2n está acti$o y respondiendo en un nodo acti$o del cluster, de#emos crear un peque4o mecanismo de prue#a. Para ello, agregaremos una página de estados que será regularmente
consultada. 0a página no estará disponi#le a los de a(uera para e$itar tener estados incorrectos. &rear un documento +etc+httpd+con(.d+ser$erstatus.con( con lo siguiente en todos los nodos: $ vi etc!ttpdcon%*dervertat"*con%
@!tml @!+node0+@!+ @!tml
De1ar que el cluster controle Apache Ahora detendremos el ser$idor /e# en todos los nodos. Desde ahora, el cluster es responsa#le de iniciarlo y detenerlo. Primero necesitamos ha#ilitar Apache a que escuche el mundo de a(uera nue$amente 3recuerda, desha#ilitamos la sentencia 0isten en la confguracion inicial5. !a que queremos nuestro sitio /e# que sir$a en la IP $irtual, confguraremos Apache para que escuche esa dirección IP. Primero detenemos Apache en todos los nodos: $ "do &temctl top !ttpd Ahora confguramos donde escuchar en todos los nodos: $ ec!o 3
--append
Ahora que Apache está listo para ser controlado por nuestro cluster, agregaremos recursos al ser$idor /e#. 'ecuerda que solo de#emos de
hacer esto desde un solo nodo, ya que todos los nodos están confgurados por P&-. $ "do pc reo"rce create 1eberver oc%9!eartbeat9apac!e congle6etc!ttpdcon%!ttpd*con% tat""rl64 !ttp9local!oterver-tat"4 op monitor interval6+min Por de(ecto, el cluster intentara #alancear el recurso dentro del cluster. so signifca que la IP $irtual, la cual es el recurso, empe)are en un nodo di(erente que el recurso del ser$idor /e#. Iniciar el ser$idor /e# en un nodo di(erente al que controla la IP $irtual en ese momento, causara que (alle ya que confguramos Apache que escuche en la IP $irtual. Para cerciorarnos que la IP $irtual y el ser$idor /e# siempre se queden 1untos, podemos agregar una restricción: $ "do pc contraint colocation add 1eberver virt"al:ip INFINITY Para e$itar la situación donde el ser$idor /e# iniciara antes de que la IP $irtual inicie o pertene)ca a un cierto nodo, necesitamos agregar otra restricción que determine el orden de ha#ita#ilidad de am#os ser$icios: $ "do pc contraint order virt"al:ip t!en 1eberver &uando el cluster y los nodos no son máquinas con las mismas capacidades, y preferes que los recursos est*n disponi#les en la maquina con me1or capacidad, puedes agregar otra restricción para la locali)ación: $ "do pc contraint location 1eberver pre%er node0+650 Despu*s de confgurar el cluster con las restricciones deseadas, reiniciarlo y mirar el estado. $ "do pc cl"ter top --all GG "do pc cl"ter tart --all $ "do pc tat" -i todo está confgurado de la manera correcta podrán accesar a la IP $irtual.
Acti$ar los componentes del cluster para que comiencen al inicio. Para iniciar la confguracion del cluster y los componentes relacionados a este, simplemente se ha#ilitan los ser$icios en todos los nodos, para que inicien cuando la maquina se encienda: $ "do &temctl enable pcd $ "do &temctl enable coro&nc $ "do &temctl enable pacema#er
RESULTADOS
CONCLUSION GENERAL
CONCLUSIONES PERSONALES T&",& D%&' N&(&))*+* Al 5#"5l,) l& @)&5+,5& @*# *5,) * )*$l+# /&$+&"+* ,"+*)*$&"+* *l $&/*) 5?!# 5#"*5+&) " @**# 5l6$+*) $,*"+# * *$+# *$ ! ,!@#)+&"+* @*$ " 5l6$+*) * " 5#""+# *
5#!@+&#)&$ ,"*@*",*"+*$ ,"+*)5#"*5+&&$ *"+)* $% * +&l !&"*)& * 3"5,#"&" 5#!# " $#l# )*5)$# 5#!@+&5,#"&l. A 5&& "# * l#$ *l*!*"+#$ *l clúster $* l* 5#"#5* 5#!# nodo. * *$+* 5&$# 3*)#" l&$ !;,"&$ * 5&& "# * l#$ ,"+*)&"+*$ *l *,@#. T&!/," #+)# 5#!@#"*"+* /;$,5# *" " clúster *$ l& interfaz de la red l& 5&l *$ )*$@#"$&/l* * +)&"$!,+,) )*5,/,) l#$ @&*+*$ * &+#$ * (,&&" & +)&($ * l& )* *"+)* l#$ "##$. J,"&l!*"+* *l l#)&) * +##$ *$+#$ *l*!*"+#$ 3"5,#"*" 5#!# " $#l# $,$+*!& *$ l& !*+& & l& * $* ,*)* ll*&) /*"# *" l#$ 5l6$+*) *7,$+* "& !&,"& 5#!@+&#)& S#" K&,#F * *$ l& * 3"5,#"& 5#!# "## !&*$+)# $* *"5&)& * &!,",$+)&) 5#"+)#l&) !#",+#)*&) +#&$ l&$ &@l,5&5,#"*$ )*5)$#$ *l $,$+*!& @#) l# 5&l *5,,!#$ * 3*)& l& 5#!@+&#)& !;$ *3,5&' 5#" !*#) )*",!,*"+# *" +&"+# *l )*$+# * l#$ "##$ *$+;" *,5&#$ &l @)#5*$&!,*"+# * l#$ &+#$ # & **5+&) #@*)&5,#"*$ &),+!+,5&$ *$+#$ *,@#$ $#" l#$ "##$ *$5l&(#$. Al @),"5,@,# !* @&)*5,? +## 5#"3$# @*$ 5#!# & l# =&/%& ,5=# &"+*$ "# =&/%& +)&/&&# 5#" C*"+#$ &l !#!*"+# *" * +##$ !,$ 5#!@&*)#$ ,"+*)&5+;/&!#$ +)&/&&"# &;"#"#$ *" +#&$ l&$ ,"$+)55,#"*$ * "# ,/& &"# *l *,@# * *)& *l *"5&)&# * *$+& @);5+,5& $* *"*)&)#" ,(*)$#$ @)#/l*!&$ @*$ &l @),"5,@,# "# +*"%&!#$ 5#"+)#l&#)*$ *" l# *,@# l# 5&l @)#5*,!#$ & ,"$+&)l#$ 5#" 3#)!* 3,!#$ &(&"'&# *" l& *l&/#)&5,?" 3&l+&/&" &l"&$ @&*+*)%&$ * *)&" 3"&!*"+&l*$ @&)& @#*) $*,) &l @,* * l& l*+)& l&$ ,"$+)55,#"*$ *$@$ +(,!#$ @)#/l*!&$ @#)* +##$ *$+;/&!#$ 5#"*5+&#$ @#) !*,# * ,3, & l# * *l @)#3*$#) "#$ &5l&)? * @&)& =&5*) " 5l6$+*) #/(,&!*"+* $* */%& * +*"*) l& 5#"*7,?" @#) !*,# * 5&/l*$. D&"# $#l5,?" & +##$ l#$ @)#/l*!&$ @,!#$ +*)!,"&) l& @);5+,5& &,),*"# !5=%$,!& !;$ *7@*),*"5,& *" 5l$+*)," @#) $@*$+# $#/)* l& !&",@l&5,?"
BIBLIOGRAFÍA M%(t% Be&t(-n P%(do A. G. /010. DieHo & eval"acin de ar="itect"ra de Comp"tadora* MAd(id2 PEARSON EDUCACIN S.A. Mne(% A. M. /00. JKtodo para el mane8o del balanceo de carga en itema de comp"to ditrib"ido de alto deempeHo*
STALLINGS 6. /005. Organi?acin & Ar="itect"ra de Comp"tadore a Edicion * M%d(id2 PEARSON EDUCACION S.A.