+ All Categories
Home > Education > Manual proyecto final

Manual proyecto final

Date post: 06-Jul-2015
Category:
Upload: juan-novelo
View: 894 times
Download: 0 times
Share this document with a friend
Description:
sistemas operativos proyecto final servidores samba webmin heartbeat ubuntu virtualbox
38
Manual de Proyecto Final Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.
Transcript
Page 1: Manual proyecto final

Manual de Proyecto Final

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 2: Manual proyecto final

Manual de Proyecto Final

Índice

Configuración.....................................................................................................................................3

Virtualbox......................................................................................................................................3

Red................................................................................................................................................7

Interfáz Gráfica............................................................................................................................11

Webmin.......................................................................................................................................11

Samba..........................................................................................................................................18

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 3: Manual proyecto final

Manual de Proyecto Final

Configuración

Virtualbox

Primero necesitamos que tener previamente instalado un software para virtualizar maquinas, en esta

caso usaremos virtualbox y también necesitamos descargar la imagen .iso de Ubuntu server,

teniendo esto podemos empezar la instalación.

Abrimos virtualbox y seleccionamos nueva, nos aparecerá el asistente de instalación y

seleccionamos siguiente.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 4: Manual proyecto final

Manual de Proyecto Final

Aparecerá una ventana donde elegiremos el nombre de la máquina virtual, el tipo de sistema

operativo y su distribución o versión, para nuestro caso seleccionaremos Linux, la versión será

Ubuntu y le damos un nombre a la máquina virtual. Seleccionamos siguiente.

Eligiéremos cuanta memoria RAM se le va asignar a la máquina virtual una vez que esta inicie. Este

parámetro va a variar dependiendo el hardware del equipo donde estemos virtualizando, nosotros le

asignamos 1500mb de RAM. Le damos siguiente.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 5: Manual proyecto final

Manual de Proyecto Final

El siguiente paso será para seleccionar o crear un disco duro virtual, nosotros crearemos uno nuevo

y continuamos. Después seleccionamos el tipo de disco duro que será, dejaremos el de default que

es propio de virtualbox (vdi) y le damos siguiente. Ahora nos da la opción de almacenamiento fijo o

dinámico para lo cual nosotros seleccionaremos tamaño fijo y le damos siguiente. Por ultimo

escogeremos la cantidad de espacio que tendrá el disco duro virtual, este parámetro también puede

variar. Nosotros le asignaremos 10gb. Le damos siguiente y crear.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 6: Manual proyecto final

Manual de Proyecto Final

Una vez creada la máquina virtual la iniciamos y nos pedirá un disco de instalación, seleccionamos

la ubicación de nuestra imagen ISO de Ubuntu server y después empezara a correr. Aparecerá una

ventana donde seleccionaremos instalar Ubuntu server. A partir de ahí tenemos que hacer algunas

configuraciones básicas como el idioma, teclado, país, formato del disco y actualizaciones. Pero nos

interesa llegar a la parte que dice que paquetes extras queremos instalar, ahí seleccionaremos LAMP

y WEBMIN que son paquetes que usaremos para montar los servicios que daremos.Continuamos y

terminaremos la instalación.

Durante la instalación nos pedirá la contraseña de root para mysql y cuando termine la instalación

se reiniciara la máquina y nos pedirá el usuario y contraseña e iniciara en consola ya que Ubuntu

server no tiene interfaz gráfica, la cual hay que instalar aparte.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 7: Manual proyecto final

Manual de Proyecto Final

Agregaremos las siguientes líneas al repositorio y también los siguientes comandos.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 8: Manual proyecto final

Manual de Proyecto Final

Red

Ahora necesitamos que la máquina virtual tenga una IP de la misma red a la que estamos

conectados para saber que los servicios están disponibles para cualquiera usuario de la red. Para

esto apagaremos la máquina virtual con el comando sudo shutdown –P now. Una vez apagada en

virtualbox le damos click derecho a la máquina virtual y seleccionamos configuración después red y

ahí en la opción de conectado a: le daremos en adaptador puente. Le damos aceptar y iniciamos la

máquina virtual.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 9: Manual proyecto final

Manual de Proyecto Final

Ya otra vez en la máquina virtual observaremos si se nos asignó una IP de la red, para esto usaremos

el comando ifconfig y podemos ver la IP del servidor.

Un servidor debe tener una IP estática, para cambiar la configuración de la ip ejecutaremos los

siguientes comandos sudo nano /etc/network/interfaces y modificaremos ese archivo con los

siguientes datos, que varian dependiendo de la configuración de la red.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 10: Manual proyecto final

Manual de Proyecto Final

Ahora reiniciaremos el servicio de red con el comando sudo /etc/init.d/networking restart. Y

ejecutamos el comando ifconfig para ver los cambios.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 11: Manual proyecto final

Manual de Proyecto Final

Interfáz Gráfica

Para instalar la interfaz gráfica se necesita ejecutar el siguiente comando sudo apt-get install gnome-

shell y una vez que termine de instalarse se levantara la interfaz gráfica con el comando sudo startx

Webmin

En este punto empezaremos a configurar los servicios que daremos, para esto usaremos la

herramienta webmin que nos permite hacer varias configuraciones de manera gráfica y remota. Para

acceder a la herramienta tenemos que poner en el explorador la IP del servidor y entrar por el puerto

10000 e ingresar el usuario y contraseña de la máquina.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 12: Manual proyecto final

Manual de Proyecto Final

Entraremos a la opción de servidores -> servidor DNS y seleccionaremos crear una zona maestra,

ahí pondremos los datos del dominio que queremos crear.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 13: Manual proyecto final

Manual de Proyecto Final

Después agregaremos un alias para ese dominio agregándole el www y que no aparezca completo

con el nombre del equipo.

Para que quede completo este dominio hay que crear una zona inversa para que se pueda acceder a

la página con la IP en lugar del dominio, para esto creamos una nueva zona maestra y ahora

pondremos la IP pero omitiremos el último segmento de esta el cual está destinado a hosts.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 14: Manual proyecto final

Manual de Proyecto Final

Ahora ya tenemos configurado un DNS con un domino, pasaremos configurar un host virtual en

apache para que el dominio que acabamos de crear tenga una página web. Primero necesitamos

crear una carpeta donde tengamos guardados los archivos de la página web con sus permisos

correspondientes, una vez hecho esto entramos a webmin en servidores y luego apache, ahí

seleccionaremos crear un virtual host y pondremos los datos del domino al que le corresponde el

host y la carpeta donde estará.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 15: Manual proyecto final

Manual de Proyecto Final

Aplicaremos los cambios y para probar si funciona se necesita tener una página web en la carpeta

que escogimos y un cliente que tenga como servidor DNS la IP de nuestro servidor, una vez hecho

esto entramos al navegador e ingresamos el domino que creamos y veremos la página web.

Para configurar un servidor de correo muy simple necesitamos entrar a webmin y después postfix

ahí entraremos a la parte de opciones generales y agregaremos nuestro dominio a la lista de

dominios que se van a recibir.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 16: Manual proyecto final

Manual de Proyecto Final

Después regresamos al menú de postfix y entramos a dominios virtuales, ahí agregamos nuestro

domino igualmente para crear las cuentas de correo con nuestro domino.

Ahora en ese mismo menú seleccionaremos crear un nuevo mapeo y llenaremos la información de

nuestra nueva cuenta de correo con la dirección de correo y al usuario que le pertenece., claro que

esto será solo una dirección de correo local.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 17: Manual proyecto final

Manual de Proyecto Final

Crearemos otra cuenta con otro usuario para poder probarlo entre estas dos cuentas. Se puede

probar con Outlook o algún otro cliente que acepte conexión SSL o segura y configurando en el

cliente el servidor SMTP y POP3 daremos la dirección IP de nuestro servidor.

Pasaremos a configurar el servidor FTP, primero necesitamos descargar el paquete vsftpd que será

el que usaremos, para esto ejecutaremos el siguiente comando sudo apt-get install vsftpd. Una vez

que se descargue y se instale bajaremos el modulo para poder administrarlo desde webmin, el

modulo lo descargaremos del siguiente link www.provider4u.de/download.html, ya descargado

entraremos a webmin webmin-> configuración, ahí entraremos a módulos y seleccionamos desde

un archivo local la carpeta donde está el modulo descargado y lo instalamos.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 18: Manual proyecto final

Manual de Proyecto Final

Ya instalado el modulo lo podemos encontrar en los servidores, lo seleccionamos y entramos al

menú de vsftpd, ahí seleccionamos entradas manuales para modificar directamente el archivo de

configuración, ya que para este servicio en lo personal es más fácil configurarlo por este medio.

Borramos todo el archivo y escribiremos las siguientes líneas:

En la línea “anon_root” estamos seleccionado la carpeta donde accederán los usuarios anónimos,

esto lo dejamos por si se desea compartir una carpeta para cualquier usuario conectado a la red, la

ruta se debe modificar.

Samba

Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows

(antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De

esta forma, es posible que ordenadores con Linux o Mac OS X se vean como servidores o actúen

como clientes en redes de Windows. Samba también permite validar usuarios haciendo de

Controlador Principal de Dominio (PDC), como miembro de dominio e incluso como un dominio

Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión,

directorios compartidos y autenticar con su propio archivo de usuarios.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 19: Manual proyecto final

Manual de Proyecto Final

Configuración del samba desde de la aplicación webmin

Accedemos a la aplicación de Samba desde webmin localizada en las herramientas de servers, el

cual muestra un entorno más grafico e interactivo para la configuracion, haciendo esto mas fácil

para el usuario, en caso de que no se encuentre instalada la aplicación en samba se puede instalar

desde la terminal mediante:

apt-get install samba smbfs

o en caso contrario también se puede desde el mismo webmin buscando la aplicacion de Samba en

Un-used Modulos para instalarlo.

Una vez accediendo a la Aplicación de samba mostrara algo parecido a la imagen

En donde por lo particular mostrador las impresoras compartidas, lo que realizaremos a

continuación será crear una ruta y una carpeta para comprar archivos entre el servidor una maquina

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 20: Manual proyecto final

Manual de Proyecto Final

cliente el sistema operativo de ambas maquinas puede ser diferente, como en este caso se maneja el

servidor con Ubuntu server y cliente con Windows 7.

Nos dirigimos a Windows Networking donde configuraremos la carpeta para compartirla con el

sistema operativo Windows.

Llenamos los datos del área de trabajo, podemos agregar una descripción del mismo y las ip que

podrán ver estar acceder a esta área, en este caso solamente configuraros los dos primeros

parámetros y guardamos.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 21: Manual proyecto final

Manual de Proyecto Final

Lo que también lo que podemos configurar son los clientes que pueden acceder a la carpeta

compartida así como también los permisos que deseemos otórgales a cada uno, independientemente

o para usuarios en general.

Los usurios que maneja Samba no son los mismos que maneje el sistema para ello lo que aremos

será sincronizar los usuarios de Ubuntu con los de Samba mediante Configure automatic Unix and

Samba user synchronisation, en donde solo se habilitan los siguientes campos y aplicamos para

sincronizar unix con samba en la creación, cambios y borrados de usuarios se realice en ambos

sistemas.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 22: Manual proyecto final

Manual de Proyecto Final

En edit Samba users and passwords, encontramos la lista de los usuarios que tiene Samba y además

podemos agregar contraseñar y permisos a cada uno.

Por ejemplo editaremos nuestro usuario morviuz agregando una contraseña.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 23: Manual proyecto final

Manual de Proyecto Final

También podemos configurar las carpetas que se comparten entre los sistemas, dándole doble clic

sobre la carpeta nos mostrara la dura y los atributos que tiene dicha carpeta agregaremos accesos de

control en seguty and Access Control, en donde tendremos todas los accesos y restricciones de

dicha carpeta.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 24: Manual proyecto final

Manual de Proyecto Final

En este caso solo agregaremos a uno de nuestros usuarios de poder leer y escribir agregandodo al

usuario al campo de Read/Write, una vez modificado y guardado nos mostrara en las

especificaciones de la carpeta los usuarios con permisos especiales, en este ejemplo nuestro usurio

Morviuz.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 25: Manual proyecto final

Manual de Proyecto Final

Una vez terminado toda la configuración reiniciamos el Samba para poder visualizar nuestra red en

Windows

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 26: Manual proyecto final

Manual de Proyecto Final

Servidor mirror

Un servidor mirror o espejo es un servidor que respalda al principal el cual el cual mantendrá el

sistema funcionando en caso de un daño o falla del servidor principal por lo cual existe un

monitoreo de este para que en dado caso ocurra un problema entre en acción el servidor espejo.

Para conseguir este monitoreo y acción de suplantar el servidor principal en caso de que este falle

utilizaremos la herramienta Heartbeat.

Heartbeatesunserviciodeagrupamientocluster,esdecirpermiteaungrupodemáquinasmonitorizarseentre

síydeestaformaganarunnivelextradefiabilidadenunservicio.Permitealosclientessabersiunodelosnodos

estápresenteoausente,intercambiadofácilmentemensajesentreéstos.CuandounMasterServer(porejemp

lounServidorWeb)sevieneabajo,unservidorsecundariotomacontroldelosservicios.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 27: Manual proyecto final

Manual de Proyecto Final

Configuración del Heartbeat

Requerimientos

1. 2 Equipos, o mas, que podrán ser virtuales (si se desea solo realizar una prueba de

aprendizaje, no se recomienda esto para nada en producción)

2. Storage en común (puede ser un disco de fibra como una unidad DRBD, o un disco en

común mediante VirtualBox u otra utilidad) con formato OCFS2

3. Apache corriendo en ambos equipos con su configuración correspondiente en ambos

equipos identica, y ambos apuntando al mismo directorio, el cual sera la unidad OCFS2.

4. 3 Direcciones IPs publicas/privadas, una para cada uno de los nodos y una para el “cluster”

Instalacion

Instalamos Heartbeat en los dos nodos frontales (SO y MIRROR), configurando el nodo SO como

activo y el nodo MIRROR como pasivo.

El sistema estaba formado por dos nodos frontales en donde sólo uno de ellos estará activado (SO),

recibiendo las peticiones y balanceándolas a continuación a los dos nodos traseros. La máquina

activa tiene dos direcciones IP virtuales configuradas (se denominan virtuales porque cuando SO

falle, MIRROR las asumirá), 192.168.0.153 y 10.0.0.20, y una serie de servicios levantados.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 28: Manual proyecto final

Manual de Proyecto Final

¿Cómo funciona todo esto?

El Heartbeat del nodo activo (so) enviará periódicamente "latidos" al nodo pasivo (mirror) para

indicarle que sigue vivo. En caso de que el nodo pasivo no reciba los latidos, interpretará que el

nodo SO está caído, y en consecuencia pasará a modo activo, levantando automáticamente las

direcciones IP virtuales y arrancando los servicios gestionados.

Los latidos pueden ser enviados a través de cualquiera de los interfaces de red, y también como

complemento y de forma redundante, a través de un cable serie.

Y con el objetivo de incrementar más aun la fiabilidad del sistema, vamos a instalar un watchdog

software que se encargue de controlar a Hearbeat. Si Heartbeat se cae, el watchdog reiniciará la

máquina transcurrido un minuto.

Vamos a comenzar instalando los paquetes watchdog y heartbeat en ambos nodos frontales.

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 29: Manual proyecto final

Manual de Proyecto Final

~# aptitude install watchdog heartbeat

Heartbeat utiliza tres tipos de ficheros: authkeys (lugar donde se establece la contraseña compartida

por los dos nodos), ha.cf (fichero de configuración de Heartbeat) y haresources (fichero donde se

indica cuál será el nodo activo, así como los servicios a gestionar).

Instalación de los ficheros

1. sudo cp /usr/share/doc/heartbeat/authkeys /etc/ha.d/

2. sudo sh -c “zcat /usr/share/doc/heartbeat/ha.cf.gz > /etc/ha.d/ha.cf”

3. sudo sh -c “zcat /usr/share/doc/heartbeat/haresources.gz > /etc/ha.d/haresources”

A continuación se muestra el contenido del fichero authkeys. Este archivo será idéntico en ambos

nodos frontales y por seguridad, deberá tener exclusivamente permisos de lectura/escritura para el

usuario root.

~# cat /etc/ha.d/authkeys

auth 1

1 md5 d2R5h4!

~# chmod 600 /etc/ha.d/authkeys

Este fichero contiene información que Heartbeat utiliza para autenticar a los miembros del cluster.

La primera línea indica a Heartbeat qué clave debe utilizarse para firmar los paquetes salientes

(latidos), ya que se pueden definir varias claves en el mismo archivo. La siguiente línea indica el

algoritmo que se utilizará para firmar los paquetes (md5) y la propia clave privada con la que se

realizará la firma (d2R5h4!).

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 30: Manual proyecto final

Manual de Proyecto Final

El siguiente fichero que vamos a tratar va a ser ha.cf. Este archivo se encarga de listar los nodos del

cluster (en este artículo cuando hablamos de cluster, nos estamos refiriendo al cluster de Alta

Disponibilidad, es decir, los dos nodos frontales), la topología de comunicación y las características

de la configuración que están habilitadas.

~# cat /etc/ha.d/ha.cf

# Archivo donde se escribirán los mensajes de debug

debugfile /var/log/ha-debug

# Archivo donde se escribirán el resto de mensajes

logfile /var/log/ha-log

# Facility a emplear por el syslog

logfacility local0

# Tiempo transcurrido entre el envío de cada uno de los latidos (segundos)

keepalive 2

# Tiempo transcurrido hasta declarar al nodo como caído (segundos)

deadtime 12

# Tiempo transcurrido antes de generar un warning (segundos)

warntime 6

# Tiempo transcurrido para comenzar a levantar los servicios (segundos)

initdead 18

# Puerto para la comunicacion UDP

udpport 694

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 31: Manual proyecto final

Manual de Proyecto Final

# Interfaz utilizado para enviar los mesajes de broadcast

bcast eth0

# Interfaz y nodo al que enviar los latidos

ucast eth0 mirror

# Si el nodo se cae y se vuelve a recuperar, recuperara su rol original

auto_failback on

# Si el Heartbeat local no envía latidos en un minuto, reinicia la maquina

watchdog /dev/watchdog

# Maquinas que conforman el cluster

node so

node mirror

Este fichero será el mismo en ambos nodos, lo único que cambiará será la línea ucast eth0 haX, que

en el caso del nodo SO será ucast eth0 MIRROR (enviar los latidos al nodo MIRROR a través del

interfaz eth0) y para MIRROR ucast eth0 SO (enviar los latidos al nodo SO a través del interfaz

eth0).

Y ya para finalizar, el último fichero que habrá que configurar será haresources. Este archivo se

utilizará para definir los recursos que Heartbeat deberá gestionar. Será el mismo para los dos nodos.

~# cat /etc/ha.d/haresources

SO IPaddr2::192.168.1.20 IPaddr2::10.0.0.20 mysql-ndb-mgm ldirectord::ldirectord.cf

LVSSyncDaemonSwap::master mon

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 32: Manual proyecto final

Manual de Proyecto Final

La línea de datos está formada por dos parámetros, el primero de ellos es el nombre o dirección IP

de la máquina activa (SO, recordar que definimos las direcciones IP asociadas al nombre de la

máquina en el fichero /etc/hosts) y el segundo parámetro será la lista de recursos a gestionar. Es

necesario establecer una tabulación a continuación del primer parámetro.

Dentro de la lista de recursos, Heartbeat levantará en la máquina activa las dos direcciones IP

virtuales (192.168.0.153 y 10.0.0.20) y arrancará un grupo de servicios, como por ejemplo el

demonio de administración del cluster MySQL (mysql-ndb-mgm). El resto de servicios serán

detallados en los siguientes artículos. A su vez en la máquina pasiva, las dos direcciones IP virtuales

no estarán configuradas y los servicios serán detenidos.

Los servicios definidos en haresources se lanzan de izquierda a derecha cuando Heratbeat los

arranca (start), y los detiene de derecha a izquierda (stop).

Debido a que Hearbeat se encarga de la administración de dichos servicios (sus scripts de gestión

residen en /etc/init.d/), habrá que eliminar todos los enlaces relacionados que se encuentren dentro

del directorio /etc/rc[nivel_de_seguridad].d/. Vamos a eliminar en ambos nodos el enlace a mysql-

ndb-mgm. El resto de enlaces de los otros servicios los iremos quitando a medida que vayamos

viendo sus funciones en los siguientes artículos.

~# update-rc.d -f mysql-ndb-mgm remove

Cuando el sistema esté en funcionamiento (nodo SO activo y nodo MIRROR pasivo), si hacemos la

prueba de matar al demonio de Heartbeat en SO (~# pkill heartbeat), al visualizar el log de

Heartbeat en el nodo MIRROR podremos ver los siguientes mensajes:

root@MIRROR~# >/var/log/ha-log ; tail -f /var/log/ha-log

WARN: node ha1: is dead

info: Dead node ha1 gave up resources.

info: Resources being acquired from ha1.

info: Link ha1:eth0 dead

....

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 33: Manual proyecto final

Manual de Proyecto Final

Es decir, podremos apreciar cómo MIRROR ha detectado la caída de SO y a continuación este

último asumirá el rol de activo, levantando las dos direcciones IP virtuales y los servicios

gestionados.

Para iniciar, detener o reiniciar Heartbeat se pueden emplear los siguientes comandos:

~# /etc/init.d/heartbeat start

~# /etc/init.d/heartbeat stop

~# /etc/init.d/heartbeat restart

Para monitorizar y controlar los servidores reales del cluster LVS, así como para llevar a cabo la

administración de las tablas de forwarding del kernel, emplearemos el demonio ldirectord, el cual

será arrancado y detenido cuando sea necesario por Hearbeat.

Ldirectord comprobará el estado de los servidores reales (LB1 y LB2) en intervalos de tiempo

predeterminados, con el objetivo de mantener actualizada la tabla de conexiones del servidor virtual

(SO o MIRROR).

Ldirectord genera reglas ipvsadm para gestionar el cluster LVS. Si alguno de los nodos traseros deja

de atender peticiones de alguno de los servicios configurados por el LVS, ldirectord creará una

llamada a ipvsadm que hará que el balanceador deje de enviarle paquetes a dicho nodo y servicio

que no responde.

Lo primero que vamos a hacer va a ser instalar el paquete ldirectord en los dos nodos frontales, SO

y MIRROR.

~# aptitude install ldirectord

A continuación vamos a editar el fichero de configuración (/etc/ha.d/conf/ldirectord.cf) para

establecer los servicios a controlar (Apache, MySQL y vsftpd). Dentro de cada uno de los servicios

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 34: Manual proyecto final

Manual de Proyecto Final

a monitorizar, indicaremos la dirección IP virtual que recibirá los paquetes (192.168.1.20) y las

direcciones IP de los servidores reales a los cuales se les repartirá la carga (10.0.0.12 y 10.0.0.13).

Este fichero será idéntico en ambos nodos frontales.

~# cat /etc/ha.d/conf/ldirectord.cf

# Tiempo máximo para comprobar el estado del servicio (segundos)

checktimeout=2

# Periodo de comprobación (segundos)

checkinterval=30

# Apache

virtual=192.168.1.20:80

real=10.0.0.12:80 masq

real=10.0.0.13:80 masq

service=http

protocol=tcp

scheduler=lc

checktype=negotiate

request="index.html"

receive="It works!"

# MySQL

virtual=192.168.1.20:3306

real=10.0.0.12:3306 masq

real=10.0.0.13:3306 masq

service=mysql

protocol=tcp

scheduler=lc

checktype=connect

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 35: Manual proyecto final

Manual de Proyecto Final

# Vsftpd

virtual=192.168.1.20:21

real=10.0.0.12:21 masq

real=10.0.0.13:21 masq

service=ftp

protocol=tcp

persistent=600

scheduler=lc

checktype=connect

Como ha podido observarse, el fichero está formado por distintas secciones, una para cada tipo de

servicio gestionado. Cada uno de estos bloques comienza por la dirección IP virtual del cluster por

la que se atenderán las peticiones, y el puerto al que corresponde la clase de servicio especificado

(virtual=X.X.X.X:Y). Es muy importante acordarse de tabular cada uno de los elementos que

componen el bloque.

El primer elemento que aparece en cada una de las sección es la dirección o direcciones IP de los

servidores reales, definidas a través de la etiqueta masq, mediante la cual estaremos indicando que

se emplee un modelo LVS-NAT.

Otra de las etiquetas a destacar es la de scheduler, mediante la cual se señala el tipo de algoritmo a

emplear de cara al balanceo de carga. En nuestro caso se va a emplear un Least Connection (lc), que

lo que hace es asignar más trabajos a aquellos servidores que presentan menos carga de trabajo

(para consultar el resto de algoritmos soportados se puede recurrir a la ayuda de ipvsadm).

También cabe mencionar el parámetro checktype, que cuando tenga el valor connect indicará a

ldirectord que únicamente compruebe cada intervalo de tiempo definido (checkinterval) si el puerto

está abierto (para ello enviará un paquete SYN al puerto configurado). Si dicho parámetro toma el

valor negotiate, tendrá que negociar el estado de la conexión. Por ejemplo para el caso de HTTP,

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 36: Manual proyecto final

Manual de Proyecto Final

ldirectord solicitará a Apache la página web index.html (request) y comprobará su contenido

(receive).

Para el caso del protocolo FTP configuraremos la opción de la persistencia. Debido a que este

protocolo utiliza dos puertos (20 para datos y 21 para control), es necesario que todas las peticiones

pertenecientes a una misma sesión vayan dirigidas siempre al mismo nodo (LB1 o LB2). De esta

forma si por ejemplo una máquina con dirección IP 192.168.1.150 inicia una sesión FTP contra la

dirección IP virtual 192.168.1.20, y este balanceador redirecciona la conexión hacia el nodo LB1, el

resto de conexiones que tengan como origen la dirección IP 192.168.1.150 y servicio FTP, siempre

irán al nodo LB1.

A través de la etiqueta persist=600 se configurará el tiempo de vida para dichas sesiones

persistentes. Si no hay actividad durante ese periodo de tiempo, la sesión se considerará cerrada.

Este parámetro también lo declarararíamos en caso de definir una sección para el protocolo HTTPS

(tiene también el problema de la persistencia - ver el artículo anterior -).

Además, decir también que para el caso del protocolo FTP no es suficiente con declarar la etiqueta

persist, también es necesario cargar un módulo (ip_vs_ftp) durante el arranque del sistema. Para ello

incluiremos este módulo dentro del archivo /etc/modules (en ambos nodos frontales).

~# cat /etc/modules

...

ip_vs_ftp

Otro aspecto que hay que tener en cuenta es el de la sincronización de la tabla de conexiones. En un

momento dado, el nodo activo puede tener abiertas varias conexiones HTTP. Todas estas

conexiones serán almacenadas por ipvsadm en una tabla de estados (/proc/net/ip_vs_conn_sync).

Para ello, el nodo activo enviará periódicamente mensajes multicast con los cambios de estado

acaecidos en su tabla de conexiones. El balanceador pasivo recibirá estos mensajes e irá

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 37: Manual proyecto final

Manual de Proyecto Final

actualizando sus tablas

Si en un momento dado el nodo HA1 se cae y HA2 asume el papel de activo, este último tendrá

registradas la mayoría de las conexiones establecidas contra el cluster, con lo que la mayor parte de

las sesiones iniciadas podrán seguir accediendo a los mismos servicios que tenían abiertos con total

normalidad.

Para realizar esta tarea, tendremos que arrancar el demonio de sincronización al inicio del sistema

en ambos nodos, pero con la diferencia de que en el nodo configurado por defecto como activo

tendrá el estado master, y en el pasivo, backup. Esta acción la ejecutaremos añadiendo la siguiente

línea en el script de arranque /etc/rc.local.

root@ha1:~# cat /etc/rc.local

...

ipvsadm --start-daemon master

exit 0

root@ha2:~# cat /etc/rc.local

...

ipvsadm --start-daemon backup

exit 0

Y ya por último, si recordamos el archivo /etc/ha.d/haresources empleado por Hearbeat, podremos

ver que este demonio era el encargado de detener e iniciar a ldirectord (estará arrancado en el nodo

activo y parado en el pasivo).

~# cat /etc/ha.d/haresources

ha1 IPaddr2::192.168.1.20 IPaddr2::10.0.0.20 mysql-ndb-mgm ldirectord::ldirectord.cf

LVSSyncDaemonSwap::master mon

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.

Page 38: Manual proyecto final

Manual de Proyecto Final

Por este motivo será necesario que el proceso init no levante a ldirectord cuando arranque el

sistema. Para ello, tendremos que ejecutar el siguiente comando en los dos nodos frontales.

~# update-rc.d -f ldirectord remove

Esta obra de Juan Ramón Moreno Novelo, José Enrique González Trejo y Luis Ángel Reyes Cruz

está bajo una licencia Creative Commons Atribución-NoComercial 3.0 Unported.


Recommended