Sistemas Distribuidos I
Mario Alberto ngeles Jimnez
09200021
09201176
10200222
09201173
29 DE NOVIEMBRE DE 2013
ITP
Contenido:
Problema .............................................................................................. 3
Marco terico ......................................................................................... 3
Qu son los clster? .............................................................................. 3
Definicin de Clster ........................................................................... 3
Clster en GNU/Linux ............................................................................. 4
Tipos de Clster ................................................................................... 5
Clsteres de Balanceo de Carga .............................................................. 5
Clsteres de Alto Rendimiento ................................................................ 5
Clsteres de Alta Disponibilidad .............................................................. 5
Componentes principales de un Clster de Alta Disponibilidad ............................. 6
Nodos ............................................................................................. 6
Sistema Operativo .............................................................................. 6
Conexiones de RED ............................................................................. 7
MiddleWare ...................................................................................... 7
Recursos o Servicios ............................................................................ 7
Alta Disponibilidad ................................................................................ 8
Beneficios de un Clster de Alta Disponibilidad .............................................. 9
Estrategia de Implementacin .................................................................... 10
Objetivos ............................................................................................. 12
Objetivo General ................................................................................. 12
Objetivos Especficos ............................................................................ 12
Justificacin ......................................................................................... 13
Determinacin del software a ocupar ............................................................ 14
Requerimientos Bsicos para la implementacin del clster HA .......................... 14
Elementos del Clster desarrollado ............................................................ 14
Instalacin y configuracin del software ........................................................ 15
Instalacin del sistema Operativo .............................................................. 15
Software Requerido .............................................................................. 16
Instalacin & Configuraciones................................................................ 16
FTP/VSFTPD .................................................................................. 16
Telnet ......................................................................................... 21
SSH ............................................................................................ 22
Pgina |1
Clster HA
NFS ............................................................................................ 24
Samba ......................................................................................... 24
Configuracin e instalacin de Pacemaker, Corosync & Apache2 ...................... 25
Conclusiones ......................................................................................... 40
Referencias........................................................................................... 41
Pgina |2
Clster HA
Problema
implantacin de un clster de alta disponibilidad (HA), como proyecto final de la
materia de sistemas distribuidos I
Marco terico
Esta ltima modalidad es la que nosotros vamos a implementar. Vamos a decir que los
clster son computadoras potentes que funcionan gracias a un sistema que permite
compartir los recursos de varios subsistemas. Podemos tener dos o ms computadoras
interconectadas entre s por una red y hacer que compartan libremente sus recursos.
Y cuando hablamos de recursos, no slo nos referimos a archivos e impresoras: los
clster permiten que las computadoras compartan sus procesadores y sus memorias RAM.
Se estarn preguntando, entonces: si conectamos dos computadoras en una arquitectura
de clster... Podemos obtener una sola con el doble de potencia?
En cierta forma, s. La ganancia de rendimiento no es de exactamente el doble, pero es
muy superior a la de cada unidad del clster.
Pgina |3
Clster HA
Clster en GNU/Linux
Nuestro querido sistema operativo nos permite hacer esto de forma sper sencilla. Todo
lo que necesitamos son un par de mquinas conectadas entre s (una red convencional es
suficiente) y el software requerido.
Pgina |4
Clster HA
Tipos de Clster
Los clsteres cuyos nodos tienen arquitecturas similares y un mismo sistema operativo se
los conoce como Homogneos caso contrario se los conoce como Heterogneos.
As mismo, existen 3 reas principales en las que los clsteres tienen su campo de accin
y es precisamente de all de donde toman su nombre.
Pgina |5
Clster HA
Este tipo de clsteres se caracterizan por que sus nodos estn monitorendose de
manera continua, es as que, cuando se detecta un fall de hardware o software en uno
de los nodos, otro nodo se encarga de proveer los servicios del nodo con problemas,
minimizando as la percepcin de la prdida de servicio por parte de los usuarios.
Nodos
Sistema Operativo
Conexiones de Red
Middleware
Recursos o Servicios
Nodos
Un nodo no es otra que un computador dentro del clster. Un nodo puede ser un
computador convencional, un servidor o un sper computador. Aunque no es
estrictamente obligatorio que todos los nodos del clster sean exactamente iguales es
recomendable que estos compartan caractersticas similares de procesamiento y
almacenamiento para evitar un comportamiento ineficiente del clster.
Sistema Operativo
Una definicin ms precisa de lo que es un sistema operativo se encuentra ms
adelante, sin embargo se puede decir de manera general que un sistema operativo es
aquel que se encarga de alojar los recursos e interactuar con el hardware en un
computador. No todos los sistemas operativos disponibles tienen las caractersticas
necesarias para conformar un clster, un claro ejemplo de esta realidad es MS-DOS.
Por lo tanto, un sistema operativo para clsteres debe ser robusto, estable y confiable,
adems debe ser multiusuario y multiproceso.
Pgina |6
Clster HA
Conexiones de RED
Computacionalmente hablando, una conexin de red es el medio por el cual, al menos
dos computadores, envan y reciben informacin. Un requisito indispensable para la
implementacin de un clster es que todos los nodos sean capaces de comunicarse entre
s a travs de una conexin de red. Independientemente de la tecnologa seleccionada se
recomienda que la velocidad de comunicacin entre los nodos sea lo ms homognea
posible y mientras ms rpida, mejor.
MiddleWare
De acuerdo con el profesor Sacha Krakowiak de la Universidad Joseph Fourier de
Francia, un middleware es:
la capa de software que se encuentra entre el sistema operativo y las aplicaciones
en cada sitio del sistema.
(Krakowiak, 2003)
Beowulf.
OSCAR (Open Source Cluster Application Resources).
OpenMosix.
Pacemaker.
Red Hat HPC Solution cluster.
Recursos o Servicios
Desde el punto de vista de un administrador de sistemas, un servicio o aplicacin son
piezas de cdigo que se ejecutan en el servidor para cumplir una tarea especfica. Sin
embargo desde el punto de vista del Clster, un servicio o aplicacin son simples
recursos que pueden ser iniciados o detenidos. Por ejemplo, si hablamos de un servicio
Web un servidor HTTP, el recurso para el clster es el servidor Web.
Pgina |7
Clster HA
Alta Disponibilidad
La disponibilidad se basa en un modelo matemtico que provee el grado en que un
sistema de software permanece en una condicin operable.
Pgina |8
Clster HA
As mismo es posible cambiar o mover los recursos dinmicamente entre los nodos del
clster cuando existen tareas planificadas de mantenimiento o actualizaciones de
hardware y software.
Mayor disponibilidad
Bajo costo de operacin
Escalabilidad
Recuperacin de desastres
Proteccin y Redundancia de datos
Pgina |9
Clster HA
Estrategia de Implementacin
La estrategia de implementacin propuesta consiste en instalar, configurar e integrar
todos los componentes.
P g i n a | 10
Clster HA
P g i n a | 11
Clster HA
Objetivos
Objetivo General
Mostrar una estrategia para la implementacin de un clster de alta disponibilidad, para
profundizar conceptos y fundamentos relacionados con este tipo de clster, utilizando
software de distribucin libre bajo la licencia de GNU/Linux.
Objetivos Especficos
P g i n a | 12
Clster HA
Justificacin
En la actualidad los servicios de computacin relacionados con el Internet como el
correo electrnico, la navegacin Web y transferencia de archivos son una parte
importante en el da a da de muchas empresas, por esta razn es necesario
implementar mecanismos de redundancia que permitan que estos servicios estn
disponibles la mayor cantidad de tiempo posible para los usuarios.
Por otro lado es importante que las empresas de nuestro pas utilicen tecnologa de
punta dentro de su infraestructura tecnolgica para poder competir con otras empresas
del pas y del mundo.
P g i n a | 13
Clster HA
Acceso a internet
####################################################################
NOTA: todas las instalaciones de Ubuntu, deben ser la misma versin y misma
arquitectura esto es x86 o x64, adems no se puede hacer las configuraciones
de Pacemaker y Corosync en versiones XX.10 de Ubuntu, Ejemplo Ubuntu
13.10 o Ubuntu Gnome 13.10, parece ser que la versin 13.04 de Ubuntu es
compatible, y la versin 12.10 no fue probada.
####################################################################
####################################################################
P g i n a | 14
Clster HA
Una vez instalado se actualiza el sistema en todos los nodos del clster, esto es:
P g i n a | 15
Clster HA
Software Requerido
VSFTPD
XINETD
TELNETD
SSH
NFS
SAMBA
JAVA
PACEMAKER
COROSYNC
APACHE2
Este software debe ser instalado en todos y cada uno de los nodos del clster.
P g i n a | 16
Clster HA
Y nos abrir la siguiente ventana, solo hay que des-comentar las lneas
Local_enable=yes
Write_enable=yes
P g i n a | 17
Clster HA
#######################################################################
###
/etc/vsftpd.conf
###
#######################################################################
# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
#
# Run standalone? vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=YES
#
# Run standalone with IPv6?
# Like the listen parameter, except vsftpd will listen on an IPv6 socket
# instead of an IPv4 one. This parameter and the listen parameter are mutually
# exclusive.
#listen_ipv6=YES
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
#local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# If enabled, vsftpd will display directory listings with the time
# in your local time zone. The default is to display GMT. The
# times returned by the MDTM FTP command are also affected by this
# option.
use_localtime=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
P g i n a | 18
Clster HA
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
#xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
#chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
P g i n a | 19
Clster HA
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# Customization
#
# Some of vsftpd's settings don't fit the filesystem layout by
# default.
#
# This option should be the name of a directory which is empty. Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd/empty
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/private/vsftpd.pem
############################################################################
############################################################################
P g i n a | 20
Clster HA
Telnet
Telnet
Es el nombre de un protocolo de red que sirve para accedes mediante una red a
otra mquina para manejarla remotamente como si estuviramos sentados
delante de ella.
Para su instalacin:
############################################################################
Nota: actualmente se desaconseja el uso de telnet en ambiente donde la
seguridad sea importante, ya que los datos son enviados sin cifrar, y esto facilita
que cualquier intruso espi el trfico de la red y pueda obtener los nombre de
usuarios y contraseas, y de este modo poder accesar a los equipos.
############################################################################
############################################################################
P g i n a | 21
Clster HA
SSH
SSH Secure Shell
Para la instalacin:
P g i n a | 22
Clster HA
#######################################################################
###
/etc/hosts.allow
###
#######################################################################
#
#
#
#
#
#
#
#
#
#
#
#
If you're going to protect the portmapper use the name "portmap" for the
daemon name. Remember that you can only use the keyword "ALL" and IP
addresses (NOT host or domain names) for the portmapper, as well as for
rpc.mountd (the NFS mount daemon). See portmap(8) and rpc.mountd(8)
for further information.
ALL:ALL
############################################################################
############################################################################
P g i n a | 23
Clster HA
NFS
NFS (Network File System) es un protocolo de sistema de archivos en red
desarrollado originalmente por Sun Microsystems en 1984, permitindole a un
usuario en una mquina cliente acceder a los archivos en la red como si lo
estuviera haciendo localmente.
Para su instalacin:
Samba
Samba es un software que permite a tu ordenador poder compartir archivos e
impresoras con otras computadoras en una misma red local. Utiliza para ello un
protocolo conocido como SMB/CIFS compatible con sistemas operativos UNIX o
Linux, como Ubuntu, pero adems con sistemas Windows (XP, NT, 98...), OS/2 o
incluso DOS. Tambin se puede conocer como LanManager o NetBIOS.
Para su instalacin:
P g i n a | 24
Clster HA
iponxho18
Nodo Principal
192.168.1.3
iza
Nodo
192.168.1.4
mario
Nodo
192.168.1.5
alex
Nodo
P g i n a | 25
Clster HA
#######################################################################
###
/etc/hosts
###
#######################################################################
127.0.0.1
127.0.1.1
localhost
iponxho18
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.254
iponxho18
iza
mario
alex
Modem
############################################################################
############################################################################
Se hacen los pings a los nodos que se crearon
P g i n a | 26
Clster HA
P g i n a | 27
Clster HA
#######################################################################
###
/etc/apache2/sites-available/default
###
#######################################################################
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName localhost
DocumentRoot /home/www/SISTEMAS
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/www/SISTEMAS>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
############################################################################
############################################################################
P g i n a | 28
Clster HA
En donde:
root@iponxho18:~# cd /etc/apache2/sites-available/
root@iponxho18:/etc/apache2/sites-available# a2ensite default
root@mario:~# cd /etc/apache2/sites-available/
root@mario:/etc/apache2/sites-available# a2ensite default
root@alex:~# cd /etc/apache2/sites-available/
root@alex:/etc/apache2/sites-available# a2ensite default
root@iza:~# cd /etc/apache2/sites-available/
root@iza:/etc/apache2/sites-available# a2ensite default
P g i n a | 29
Clster HA
root@iponxho18:~# Corosync-keygen
P g i n a | 30
Clster HA
root@iponxho18:~# cd /etc/
root@iponxho18:/etc# chmod R 777 corosync
root@mario:~# cd /etc/
root@mario:/etc# chmod R 777 corosync
root@alex:~# cd /etc/
root@alex:/etc# chmod R 777 corosync
root@iza:~# cd /etc/
root@iza:/etc# chmod R 777 corosync
root@iponxho18:~#
scp /etc/Corosync/authkey iza@iza:/etc/corosync/authkey
root@iponxho18:~#
scp /etc/Corosync/authkey mario@mario:/etc/corosync/authkey
root@iponxho18:~#
scp /etc/Corosync/authkey alex@alex:/etc/corosync/authkey
P g i n a | 31
Clster HA
#######################################################################
###
/etc/corosync/corosync.conf
###
#######################################################################
P g i n a | 32
Clster HA
bindnetaddr: 192.168.1.0
mcastaddr: 226.94.1.1
mcastport: 5405
}
}
amf {
mode: disabled
}
service {
# Load the Pacemaker Cluster Resource Manager
ver:
0
name:
pacemaker
}
aisexec {
user:
group:
}
root
root
logging {
fileline: off
to_stderr: yes
to_logfile: no
to_syslog: yes
syslog_facility: daemon
debug: off
timestamp: on
logger_subsys {
subsys: AMF
debug: off
tags: enter|leave|trace1|trace2|trace3|trace4|trace6
}
}
############################################################################
############################################################################
P g i n a | 33
Clster HA
#######################################################################
###
/etc/default/corosync
###
#######################################################################
# start corosync at boot [yes|no]
START=yes
############################################################################
############################################################################
P g i n a | 34
Clster HA
P g i n a | 35
Clster HA
root@iponxho18:~# crm_mon
P g i n a | 36
Clster HA
Donde:
P_APACHE es el nombre del recurso a compartir
Ahora pondremos el orden en el que Pacemaker y Corosync irn checando los
servidores para ver su disponibilidad, y si estn as mostrar su contenido.
P g i n a | 37
Clster HA
Si todo va bien al teclear el sig. Comando crm configure show aparecer lo siguiente:
#######################################################################
###
crm configure show
###
#######################################################################
node alex
node iponxho18
node mario
primitive FAILOVER-ADDR ocf:heartbeat:IPaddr2 \
params ip="192.168.1.90" nic="eth0" \
op monitor interval="10s" \
meta is-managed="true"
primitive P_APACHE2 ocf:heartbeat:apache \
params configfile="/etc/apache2/apache2.conf" statusurl="http://localhost/server-status" \
op monitor interval="40s"
location L_IP_NODE001 FAILOVER-ADDR 100: iponxho18
location L_IP_NODE002 FAILOVER-ADDR 100: alex
location L_IP_NODE003 FAILOVER-ADDR 100: mario
location L_IP_NODE004 FAILOVER-ADDR 100: iza
order START_ORDEn inf: FAILOVER-ADDR P_APACHE2
property $id="cib-bootstrap-options" \
dc-version="1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f50c" \
cluster-infrastructure="openais" \
expected-quorum-votes="3" \
stonith-enabled="false" \
no-quorum-policy="ignore"
############################################################################
############################################################################
P g i n a | 38
Clster HA
Ahora bien solo reiniciamos todos los equipos, para que las configuraciones agan efecto,
despus de esto simplemente en la barra de direcciones tecleamos 192.168.1.90 y debe
de mostrar la pagina web por defecto en iponxho18 para todos.
Ahora bien si el servidor iponxho18 se llegara a caer automticamente la pagina alojada
en alex entrara en servicio, y asi sucesivamente.
############################################################################
############################################################################
Nota: para efectos prcticos de instalacin por tiempo, se pueden instalar todos
P g i n a | 39
Clster HA
Conclusiones
Jose Alfonso Quezada Ibarra
Para el manejo de sistema operativo que en este caso es Ubuntu ya es ms familiar por
que a medida de que fuimos aprendiendo durante el curso. Por ese lado ya se nos hace
casi fcil manejarlo como los otros sistemas operativos que se manejan.
P g i n a | 40
Clster HA
Referencias
http://www.ajaxman.net/1541/tutorial-creando-virtual-host-de-apache-usando-linux/.
(s.f.). Taringa! Obtenido de Crear VirtualHost en Apache:
http://www.taringa.net/posts/linux/6772970/Crear-VirtualHost-en-Apache.html
navarro, J. e. (s.f.). Informatica para todos. Obtenido de HA cluster de apache2 con
pacemaker y corosync: http://enunlugardealcala.blogspot.mx/2013/03/hacluster-de-apache2-con-pacemaker-y.html
P g i n a | 41
Clster HA