Sie sind auf Seite 1von 41

CLSTER HA

Clster HA con Pacemaker, Corosync & Apache2




29 DE NOVIEMBRE DE 2013
ITP

Sistemas Distribuidos I
Mario Alberto ngeles Gimnez
Jos Alfonso Quezada Ibarra 09201176
Iza
Alex


Instituto Tecnolgico de Pachuca P g i n a | 1 Clster HA
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 ............................................................................. 6
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

Instituto Tecnolgico de Pachuca P g i n a | 2 Clster HA
NFS ............................................................................................ 24
Samba ......................................................................................... 24
Configuracin e instalacin de Pacemaker, Corosync & Apache2 ...................... 25
Conclusiones ......................................................................................... 40


















Instituto Tecnolgico de Pachuca P g i n a | 3 Clster HA

Problema
implantacin de un clster de alta disponibilidad (HA), como proyecto final de la
materia de sistemas distribuidos I
Marco terico


Qu son los clster?

Definicin de Clster
un tipo de sistema distribuido o paralelo conformado por una coleccin de
computadoras interconectadas usado como un nico recurso de computacin
unificado

Las supercomputadoras son usadas en bancos, universidades y centros de investigacin
para realizar complejos clculos y obtener rpidos resultados. Seguramente habrn visto
en fotos esas grandes mquinas que ocupan cuartos completos y que permiten ejecutar
miles de millones de operaciones por segundo.
Esas "Centrales" poseen varios procesadores, inmensas cantidades de memoria y un
espacio de almacenamiento mucho ms grande de lo que puedan imaginar. Todos estos
recursos pueden estar dispuestos de dos formas:
centralizados (todo dentro de una gran caja)
distribuidos.

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.

Instituto Tecnolgico de Pachuca P g i n a | 4 Clster HA
En muchas universidades se usan clster de 40 o 50 computadoras de "bajo" rendimiento,
como 486 y Pentium I o II. Estas mquinas, trabajando en conjunto, ofrecen un sper
sistema de cmputo muy eficaz, cuyo costo es significativamente menor que el de una
supercomputadora cuyos recursos estn centralizados en una gran caja.





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.



















Instituto Tecnolgico de Pachuca P g i n a | 5 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.

Clsteres de Balanceo de Carga.
Clsteres de Alta Disponibilidad.
Clsteres de Alto Rendimiento

Clsteres de Balanceo de Carga

El objetivo de un clster de Balanceo de Carga es el de distribuir el trabajo entre todos
los nodos del clster, esto se consigue asignando el trabajo al nodo que posee ms recursos
disponibles.
Este tipo de clsteres se usan comnmente en servicios que por su naturaleza tienen una
enorme cantidad de carga, como por ejemplo: los servidores Web.


Clsteres de Alto Rendimiento

El objetivo de un clster de alto rendimiento es compartir el recurso ms valioso de un
computador, es decir, la capacidad de procesamiento.
Este tipo de clsteres son muy populares, y quizs tambin los ms antiguos, ya que en
sus inicios fueron desarrollados para centros de cmputo enfocados en investigaciones
cientficas donde era necesario tener un gran poder de procesamiento, capaz de soportar
una inmensa cantidad de clculos para resolver un problema especfico.


Clsteres de Alta Disponibilidad
El objetivo principal de un clster de alta disponibilidad, tambin conocido como clster
HA por las palabras en ingls High Availability, es el de mantener disponible uno o ms
servicios la mayor cantidad de tiempo posible.
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

Instituto Tecnolgico de Pachuca P g i n a | 6 Clster HA
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.


Componentes principales de un Clster de Alta Disponibilidad

Los componentes principales de un clster HA son:
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.

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

Instituto Tecnolgico de Pachuca P g i n a | 7 Clster HA
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)

En otras palabras, es un programa intermediario entre dos programas independientes. El
middleware es el encargado de monitorear, administrar, distribuir y controlar el
comportamiento general del clster.
Algunos de los middlewares de alto nivel ms populares para clsteres son:
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.

De la misma manera, para un servicio de correo o servidor SMTP, el recurso es el servidor
de correo. Esto tambin quiere decir que todo recurso tiene un servicio asociado.



Instituto Tecnolgico de Pachuca P g i n a | 8 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.
=

+


MTTF = Es el tiempo promedio entre fallos.
MTTR = Es el tiempo promedio que tomar reparar el sistema despus de un fallo.


Existen 2 mtodos para alcanzar una alta disponibilidad:
Incrementar el valor del MTTF.
Reducir el valor del MTTR.
















Instituto Tecnolgico de Pachuca P g i n a | 9 Clster HA
Beneficios de un Clster de Alta Disponibilidad

Uno de los beneficios principales de un clster de alta disponibilidad es la reduccin de
las interrupciones de los servicios por problemas imprevistos de hardware o software, ya
que los recursos pueden ser configurados de tal manera que sean migrados
automticamente a otro servidor ante un evento ocasionado por problemas en el servidor
principal.

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.

Otros beneficios de un clster de alta disponibilidad son:
Mayor disponibilidad
Bajo costo de operacin
Escalabilidad
Recuperacin de desastres
Proteccin y Redundancia de datos















Instituto Tecnolgico de Pachuca P g i n a | 10 Clster HA
Estrategia de Implementacin

La estrategia de implementacin propuesta consiste en instalar, configurar e integrar
todos los componentes.


Para completar la estrategia es necesario realizar las siguientes actividades:
Disear la arquitectura fsica del clster.
Instalar y configurar el sistema operativo GNU/Linux.
Instalar y configurar el sistema de archivos para clsteres o el
administrador de sincronizacin de datos.
Instalar el administrador de membresa y mensajera.
Instalar y configurar el administrador de recursos.
Instalar y configurar los servicios y/o aplicaciones.


Instituto Tecnolgico de Pachuca P g i n a | 11 Clster HA













BIND
VSFTPD
Apache
Servicios y/o Aplicaciones
Corosync
Pacemaker
Administradores (Mensajeria, Membrecia y Recursos)
DRBD
Sistema de Almacenamiento Distribuido
(Sincronizacion)
UBUNTU 12.04

Instituto Tecnolgico de Pachuca P g i n a | 12 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
Plantear una estrategia para la implementacin de un
Clster de Alta disponibilidad.

Implementar un prototipo de un Clster de Alta
Disponibilidad sobre la plataforma Linux Ubuntu.


Configurar e Integrar cuatro nodos al Clster de Alta
Disponibilidad con 2 Servicios (Apache y FTP).
















Instituto Tecnolgico de Pachuca P g i n a | 13 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 esta razn se justifica la implementacin de este proyecto en vista de la necesidad de
mejorar la redundancia y la alta disponibilidad de aquellas empresas que dependen de los
servicios proporcionados por un solo servidor.

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.


















Instituto Tecnolgico de Pachuca P g i n a | 14 Clster HA
Determinacin del software a ocupar

Requerimientos Bsicos para la implementacin del clster HA


2 Computadoras con tarjetas de red Ethernet
(Pueden ser mquinas virtuales).
1 Red Ethernet.
Acceso a Internet.
Cada computadora debe tener como sistema
operativo, Ubuntu 12.04.

Elementos del Clster desarrollado
4 laptops con sus respectivos puertos de red Ethernet y Wi-Fi

1 red de Ethernet (proporcionado por un modem Thomson
Telmex)


Acceso a internet

Ubuntu 12.04 a 64 bits
####################################################################
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.

####################################################################
####################################################################



Instituto Tecnolgico de Pachuca P g i n a | 15 Clster HA

Instalacin y configuracin del software

Sin lugar a dudas estos son los dos puntos ms importantes dentro de la elaboracin de
este tipo de proyectos por ello es recomendable leer y entender la documentacin incluida
con el software para que la instalacin y la configuracin seleccionada sea la ms
adecuada.

Tambin es importante cumplir los requerimientos individuales de cada programa para
evitar problemas de incompatibilidad.

Instalacin del sistema Operativo

El sistema operativo a utilizar es la distribucin de Linux Ubuntu en su versin 12.04, con
la arquitectura x64.


Una vez instalado se actualiza el sistema en todos los nodos del clster, esto es:








root@iponxho18:~# apt-get update
root@mario:~# apt-get update
root@alex:~# apt-get update
root@iza:~# apt-get update

Instituto Tecnolgico de Pachuca P g i n a | 16 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.

Instalacin & Configuraciones

FTP/VSFTPD

FTP Protocolo de transferencia de archivos
Es un protocolo de red para la transferencia de archivos entre sistemas
conectados a una red TCP (Transmission Control Protocol), basada en la
arquitectura Cliente Servidor.


VSFTPD Very Secure FTP Daemon
Es un servidor de archivos por FTP muy ligero y seguro. Es el recomendado por
DEBIAN y Ubuntu tiene una configuracin muy sencilla en un solo fichero y se
adapta muy bien a un servidor multi-hosting.






Instituto Tecnolgico de Pachuca P g i n a | 17 Clster HA
Se Instala con el comando:










Despus tenemos que hacer unas modificaciones al archivo de configuracin vsftpd.conf










Y nos abrir la siguiente ventana, solo hay que des-comentar las lneas
Local_enable=yes
Write_enable=yes


root@iponxho18:~# apt-get install vsftpd nmap
root@mario:~# apt-get install vsftpd nmap
root@alex:~# apt-get install vsftpd nmap
root@iza:~# apt-get install vsftpd nmap



root@iponxho18:~# gedit /etc/vsftpd.conf
root@mario:~# gedit /etc/vsftpd.conf
root@alex:~# gedit /etc/vsftpd.conf
root@iza:~# gedit /etc/vsftpd.conf



Instituto Tecnolgico de Pachuca P g i n a | 18 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

Instituto Tecnolgico de Pachuca P g i n a | 19 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().

Instituto Tecnolgico de Pachuca P g i n a | 20 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

############################################################################
############################################################################
















Instituto Tecnolgico de Pachuca P g i n a | 21 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.
############################################################################
############################################################################






root@iponxho18:~# apt-get install xinetd telnetd
root@mario:~# apt-get install xinetd telnetd
root@alex:~# apt-get install xinetd telnetd
root@iza:~# apt-get install xinetd telnetd



Instituto Tecnolgico de Pachuca P g i n a | 22 Clster HA
SSH
SSH Secure Shell

Es el nombre del protocolo y del programa que lo implementa y sirve para acceder
a maquinas remotas a travs de una red.
Permite manejar por completo la computadora mediante interprete de comandos,
y tambin redirigir el trfico de X para poder ejecutar programas grficos si
tenemos un servidor X (en sistemas Unix y Windows) corriendo.

Para la instalacin:








La configuracin del SSH






Y solamente agregamos al final del archivo la siguiente lnea ALL:ALL


root@iponxho18:~# apt-get install openssh-server
root@mario:~# apt-get install openssh-server
root@alex:~# apt-get install openssh-server
root@iza:~# apt-get install openssh-server


root@iponxho18:~# gedit /etc/hosts.allow
root@mario:~# gedit /etc/hosts.allow
root@alex:~# gedit /etc/hosts.allow
root@iza:~# gedit /etc/hosts.allow


Instituto Tecnolgico de Pachuca P g i n a | 23 Clster HA
#######################################################################
### /etc/hosts.allow ###
#######################################################################


# /etc/hosts.allow: list of hosts that are allowed to access the system.
# See the manual pages hosts_access(5) and hosts_options(5).
#
# Example: ALL: LOCAL @some_netgroup
# ALL: .foobar.edu EXCEPT terminalserver.foobar.edu
#
# 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

############################################################################
############################################################################
















Instituto Tecnolgico de Pachuca P g i n a | 24 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:
root@iponxho18:~# apt-get install nfs-kernel-server nfs-common portmap
root@mario:~# apt-get install nfs-kernel-server nfs-common portmap
root@alex:~# apt-get install nfs-kernel-server nfs-common portmap
root@iza:~# apt-get install nfs-kernel-server nfs-common portmap

root@iponxho18:~# apt-get install samba samba-common smbclient libpam-
smbpass python-glade2 system-config-samba
root@mario:~# apt-get install samba samba-common smbclient libpam-
smbpass python-glade2 system-config-samba
root@alex:~# apt-get install samba samba-common smbclient libpam-
smbpass python-glade2 system-config-samba
root@iza:~# apt-get install samba samba-common smbclient libpam-smbpass
python-glade2 system-config-samba


Instituto Tecnolgico de Pachuca P g i n a | 25 Clster HA
Configuracin e instalacin de Pacemaker, Corosync & Apache2

Primero que nada tenemos que crear un red, para esto utilizamos un modem X (utilizamos
nuestro modem Telmex, porque queramos dejar sin internet a nuestro carnalito XD), y
configurar las direcciones IP de cada equipo como estticas.

Para montar nuestro clster, se utilizaron 3 clientes y un servidor
192.168.1.2 iponxho18 Nodo Principal
192.168.1.3 iza Nodo
192.168.1.4 mario Nodo
192.168.1.5 alex Nodo
Editamos el archivo /etc/hosts

























root@iponxho18:~# gedit /etc/hosts
root@mario:~# gedit /etc/hosts
root@alex:~# gedit /etc/hosts
root@iza:~# gedit /etc/hosts


Instituto Tecnolgico de Pachuca P g i n a | 26 Clster HA
#######################################################################
### /etc/hosts ###
#######################################################################

127.0.0.1 localhost
127.0.1.1 iponxho18


192.168.1.2 iponxho18
192.168.1.3 iza
192.168.1.4 mario
192.168.1.5 alex
192.168.1.254 Modem


# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
############################################################################
############################################################################
















Comentado [JQ1]: Falta hacer los ping, una vez que
ya estemos conectados al modem e imprimir los
resultados

Instituto Tecnolgico de Pachuca P g i n a | 27 Clster HA
Para empezar se instalara Apache2








Creamos un virtual-host, para esto editaremos el siguiente archivo:




Y lo modificamos para que este de la siguiente forma:






root@iponxho18:~# apt-get install apache2
root@mario:~# apt-get install apache2
root@alex:~# apt-get install apache2
root@iza:~# apt-get install apache2

root@iponxho18:~# gedit /etc/apache2/sites-available/default
root@mario:~# gedit /etc/apache2/sites-available/default
root@alex:~# gedit /etc/apache2/sites-available/default
root@iza:~# gedit /etc/apache2/sites-available/default


Instituto Tecnolgico de Pachuca P g i n a | 28 Clster HA
#######################################################################
### /etc/apache2/sites-available/default ###
#######################################################################

<VirtualHost 127.0.0.1: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>
############################################################################
############################################################################






Instituto Tecnolgico de Pachuca P g i n a | 29 Clster HA
En donde:

DocumentRoot /home/www/SISTEMAS & <Directory /home/www/SISTEMAS>

Pertenecen a los directorios donde estn alojadas las pginas a mostrar.

El siguiente paso en el directorio /etc/apache2/sites-available/ teclear el
siguiente comando:


El comando "a2ensite", lo nico que hace es un enlace simblico dentro de la carpeta
/etc/apache2/sites-enabled a algunos de los sitios que estn en la otra carpeta
/etc/apache2/sites-available, es decir en sites-available estn los sitios disponibles, y en
sites-enabled estn los que podemos usar.
Y despus recargamos el apache:




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


root@iponxho18:~# /etc/init.d/apache2 reload
root@mario:~# /etc/init.d/apache2 reload
root@alex:~# /etc/init.d/apache2 reload
root@iza:~# /etc/init.d/apache2 reload



Instituto Tecnolgico de Pachuca P g i n a | 30 Clster HA
Ahora instalaremos COROSYNC y PACEMAKER en todos los nodos del clster.










Como el nodo principal (servidor) es iponxho18, en esta mquina se creara el archivo de
autentificacin de Corosync








Automticamente le da permisos, as que no es necesario especificarlos, despus hay
que pasar esta llave a los dems nodos por medio de SSH, antes que nada en los nodos
clientes hay que otorgar permisos de escritura.




root@iponxho18:~# apt-get install pacemaker corosync
root@mario:~# apt-get install pacemaker corosync
root@alex:~# apt-get install pacemaker corosync
root@iza:~# apt-get install pacemaker corosync


root@iponxho18:~# Corosync-keygen



Instituto Tecnolgico de Pachuca P g i n a | 31 Clster HA


Ahora si podemos pasar el archivo llave.












Cabe destacar que la sintaxis es la siguiente:
scp Archivo_a_copiar Usuario@IP:Directorio_a_guardar

Editamos el fichero de configuracin /etc/corosync/corosync.conf en todos los nodos, y
aadimos la red a utilizar.
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



Instituto Tecnolgico de Pachuca P g i n a | 32 Clster HA






#######################################################################
### /etc/corosync/corosync.conf ###
#######################################################################

# Please read the openais.conf.5 manual page

totem {
version: 2

# How long before declaring a token lost (ms)
token: 3000

# How many token retransmits before forming a new configuration
token_retransmits_before_loss_const: 10

# How long to wait for join messages in the membership protocol (ms)
join: 60

# How long to wait for consensus to be achieved before starting a new round of membership
configuration (ms)
consensus: 3600

# Turn off the virtual synchrony filter
vsftype: none

# Number of messages that may be sent by one processor on receipt of the token
max_messages: 20

# Limit generated nodeids to 31-bits (positive signed integers)
clear_node_high_bit: yes

# Disable encryption
secauth: off

# How many threads to use for encryption/decryption
threads: 0

# Optionally assign a fixed node id (integer)
# nodeid: 1234

# This specifies the mode of redundant ring, which may be none, active, or passive.
rrp_mode: none

interface {
# The following values need to be set based on your environment
ringnumber: 0
root@iponxho18:~# gedit /etc/Corosync/Corosync.conf
root@mario:~# gedit /etc/Corosync/Corosync.conf
root@alex:~# gedit /etc/Corosync/Corosync.conf
root@iza:~# gedit /etc/Corosync/Corosync.conf



Instituto Tecnolgico de Pachuca P g i n a | 33 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: root
group: 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
}
}


############################################################################
############################################################################


Donde bindnetaddr: 192.168.1.0
Sirve para especificar que el clster va a trabajar en todo el rango de direcciones
IP de 192.168.1.X




Instituto Tecnolgico de Pachuca P g i n a | 34 Clster HA
Tambin tendremos que configurar el fichero /etc/default/corosync para que reconozca
el demonio, esto se consigue ponindolo a yes:










#######################################################################
### /etc/default/corosync ###
#######################################################################

# start corosync at boot [yes|no]
START=yes

############################################################################
############################################################################


Se reinicia el servicio en todos los nodos:










root@iponxho18:~# gedit /etc/default/corosync
root@mario:~# gedit /etc/default/corosync
root@alex:~# gedit /etc/default/corosync
root@iza:~# gedit /etc/default/corosync


root@iponxho18:~# service Corosync restart
root@mario:~# service Corosync restart
root@alex:~# service Corosync restart
root@iza:~# service Corosync restart



Instituto Tecnolgico de Pachuca P g i n a | 35 Clster HA
Y con el comando crm status podemos ver el estado del clster



Configuracin de la IP VIRTUAL como recurso:
El recurso que vamos a configurar en este ejemplo va a ser una direccin IP 192.168.1.90,
para ello en primer lugar desactivamos el mecanismo de STONITH (Shoot The Other Node
In The Head), que se utiliza para parar un nodo que est dando problemas y as evitar un
comportamiento inadecuado del clster:



Ahora configuramos el recurso de la IP virtual (192.168.1.90):
Y configuraremos un recurso para los nodos (a partir de ahora todo lo que se configure
de crm en un nodo se replicar al otro):


donde se tiene la siguiente sintaxis:
crm configure primitive NOMBRE_RECURSO ocf:heartbeat:IPaddr2 params
ip=IP_VIRTUAL nic=eth0 op monitor interval=10s meta is-managed=true


root@iponxho18:~# crm configure property stonith-enabled=false
root@mario:~# crm configure property stonith-enabled=false
root@alex:~# crm configure property stonith-enabled=false
root@iza:~# crm configure property stonith-enabled=false

root@iponxho18:~# crm configure primitive FAILOVER-ADDR
ocf:heartbeat:IPaddr2 params ip=192.168.1.90 nic=eth0 op
monitor interval=10s meta is-managed=true

Comentado [JQ2]: Falta poner el estado inicial del
clster y ver los nodos configurados

Instituto Tecnolgico de Pachuca P g i n a | 36 Clster HA
Podremos comprobarlo haciendo un crm_mon:






Sin embargo iponxho18 (Nodo Principal) no pasa a ofrecer el recurso directamente porque
no hay curum en el clster. El curum (quorum) es una propiedad que utiliza Pacemaker
para tomar las decisiones apropiadas mediante consultas consensuadas a todos los nodos,
pero no tiene razn de ser en un clster de solo dos nodos, ya que slo habr quorum
cuando los dos nodos estn operativos, as que ignoramos las decisiones basadas en
curum:


Despus configuraremos el recurso para apache:


Donde:
P_APACHE es el nombre del recurso a compartir




root@iponxho18:~# crm_mon


root@iponxho18:~# crm configure property no-quorum-policy=ignore



root@iponxho18:~# crm configure primitive P_APACHE
ocf:heartbeat:apache params configfile="/etc/apache2/apache2.conf"
statusurl="http://localhost/server- status" op monitor
interval="40s"


Comentado [JQ3]: Ver el estado hasta este momento
con los 4 nodos configurados y solo un recurso de ip
virtual configurado

Instituto Tecnolgico de Pachuca P g i n a | 37 Clster HA
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.


Donde la sintaxis es la siguiente:
crm configure order START_ORDER inf: Nombre_de_la_IP_VIRTUAL
Nombre_Recurso_Apache

Marcaremos ambos nodos como el primero, segundo,, N.

Donde tiene la siguiente sintaxis:

crm configure location NUMERACION NOMBRE_RECURSO_IP_VIRTUAL 100:
NOMBRE_DEL_NODO

Si todo va bien al teclear el sig. Comando crm configure show aparecer lo siguiente:




root@iponxho18:~# crm configure order START_ORDER inf: FAILOVER-ADDR P_APACHE



root@iponxho18:~# crm configure location L_IP_NODE001 FAILOVER-ADDR 100:
iponxho18
root@iponxho18:~# crm configure location L_IP_NODE002 FAILOVER-ADDR 100:
alex
root@iponxho18:~# crm configure location L_IP_NODE003 FAILOVER-ADDR 100:
mario
root@iponxho18:~# crm configure location L_IP_NODE004 FAILOVER-ADDR 100:
iza



Instituto Tecnolgico de Pachuca P g i n a | 38 Clster HA
#######################################################################
### 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"

############################################################################
############################################################################


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.




############################################################################
############################################################################



Instituto Tecnolgico de Pachuca P g i n a | 39 Clster HA
Nota: para efectos prcticos de instalacin por tiempo, se pueden instalar todos
los paquetes con el siguiente comando:



Esto significa un ahorro significativo de tiempo, esto solo cumple con la
instalacin, la configuracin debe realizarse de forma manual.
############################################################################
############################################################################



root@iponxho18:~# apt-get install vsftpd xinetd telnetd openssh-server nmap
tree aptitude nfs-kernel-server nfs-common portmap samba samba-common
smbclient libpam-smbpass python-glade2 system-config-samba pacemaker corosync
apache2

root@mario:~# apt-get install vsftpd xinetd telnetd openssh-server nmap tree
aptitude nfs-kernel-server nfs-common portmap samba samba-common smbclient
libpam-smbpass python-glade2 system-config-samba pacemaker corosync apache2

root@alex:~# apt-get install vsftpd xinetd telnetd openssh-server nmap tree
aptitude nfs-kernel-server nfs-common portmap samba samba-common smbclient
libpam-smbpass python-glade2 system-config-samba pacemaker corosync apache2

root@iza:~# apt-get install vsftpd xinetd telnetd openssh-server nmap tree
aptitude nfs-kernel-server nfs-common portmap samba samba-common smbclient
libpam-smbpass python-glade2 system-config-samba pacemaker corosync apache2


Instituto Tecnolgico de Pachuca P g i n a | 40 Clster HA
Conclusiones
Los clster son una excelente idea cuando se necesita un sistema de sper computacin
pero no se tienen los recursos econmicos suficientes para invertir en l.
Obviamente en este tutorial solo se vio un pequeo concepto de lo que implica un clster
HA.