Alfio Muñoz - Alta disponibilidad con Elastix

Post on 16-Apr-2017

253 Views

Category:

Engineering

14 Downloads

Preview:

Click to see full reader

Transcript

Elastix High Availability Alta disponibilidad con Elastix

Alfio Muñoz

Skype:alfiomunoz

Twitter:alfiomunoz

Whatsapp:1-849-207-1601

Elastix High Availability

"La alta disponibilidad" consiste en una

serie de medidas tendientes a garantizar la

disponibilidad del servicio, es decir,

asegurar que el servicio funcione durante

las veinticuatro horas.

Elastix High Availability

El término "disponibilidad" hace referencia a la

probabilidad de que un servicio funcione

adecuadamente en cualquier momento.

El término "fiabilidad", que se utiliza en algunos

casos, se refiere a la probabilidad de que un

sistema funcione normalmente durante un

período de tiempo dado. Esto se denomina

"continuidad del servicio".

Arreglos de discos (RAID)

¿Qué son los Arreglos de Discos RAID?

RAID proviene del acrónimo del inglés “Redundant Array of Independent

Disks”, que significa matriz redundante de discos independientes. RAID es un

método de combinación de varios discos duros para formar una unidad lógica

única en la que se almacenan los datos de forma redundante. Ofrece mayor

tolerancia a fallos y más altos niveles de rendimiento que un sólo disco duro o

un grupo de discos duros independientes

Un arreglo redundante de discos independientes (RAID por sus siglas en inglés)

es típicamente implementado para la protección de la información o

incremento del desempeño al acceso de los discos duros. Existen varios tipos

de arreglos y los más usados en la industria son: 0, 1, 5 y el 0+1 ó 10, siendo

este último el de mayor desempeño, protección y costo.

Niveles de RAID

Hay distintos niveles de RAID, van desde el 0 hasta el 6 más sus híbridos 0+1 y

1+0. Los más comunes son el 0, 1, 5 y los híbridos.

RAID 0

Conocido como stripe set o striped volume o simplemente stripe. No tiene paridad ni

redundancia, simplemente la distribución equitativa de los bloques de datos entre los distintos

discos que lo componen.

Si uno de los discos que lo componen es menor en capacidad, ésta determinará el tamaño para

el resto de discos aunque tengan una capacidad mayor.

Así, si tenemos 2 discos de 100Gb y uno de 80Gb, entonces la capacidad total del disco será:

capacidad = 3 discos x 80Gb = 240Gb

RAID 1

En este nivel de RAID, se hace una copia de cada bloque guardado en los

distintos discos que conforman la unidad lógica. De manera ideal, se hace

sobre pares de discos y nuevamente, el disco más pequeño determina el

factor para calcular el tamaño completo del RAID.

Este nivel es útil cuando no se tiene tanto problema por espacio y se requiere

un buen rendimiento de lectura y confiabilidad de los datos. Así, mientras

más discos sean miembros del RAID, se incrementarán dichas ventajas.

RAID 5

En este nivel de RAID, se hace un stripe a nivel de bloque más un bloque

paridad para mantener la seguridad en los bloques de los discos restantes. De

esta forma, bajo este esquema se tiene mucha seguridad en los datos sin

sacrificar espacio en los discos.

Si tuviéramos un esquema RAID 1 y tenemos 4 discos de 100gb, el espacio

para guardar la información, sería de 200gb, porque hay que recordar que se

replican los bloques en cada disco. Pero en RAID 5, se puede tener hasta

300Gb.

Esta es una forma popular por la cuestión del tamaño de almacenamiento

básicamente. Sin embargo, al incluir el bloque de paridad, disminuye el

rendimiento en cuanto a lectura y escritura de datos.

RAID 0+1 (híbrido)

También conocido como RAID 01, este es un híbrido resultado de mezclar

el RAID 0 y el RAID 1. Es un espejo destripes. Es decir, al mismo tiempo que es

un stripe, se maneja otro conjunto de discos que hace un espejo de

dichostripe.

Tiene un mínimo de 4 discos y al estar mezclando los dos tipos

de RAID mencionados, asegura la información un poco más sin desperdiciar la

eficiencia al consultar la información guardada en ellos.

RAID 1+0 (híbrido)

También conocido como RAID 1&0 o RAID 10, este también es un híbrido

del RAID 0 y del RAID 1. Sin embargo, están invertidos con respecto del otro

híbrido. En este caso, es un stripe de discos espejos. Esta opción de arreglo

de discos, es muy rápida, nada más superada por el RAID 0 que ya vimos en

este post. Dicha eficiencia la tiene manteniendo un estándar de seguridad de

los datos similar al RAID 1 y el RAID 0+1.

Opciones que presentaremos

DRBD.

Virtualizacion.

FreePBX Solucion Semi-Automatica.

La forma sencilla el addons de HA de Elastix.

Que es DRBD

DRBD se refiere a los dispositivos de bloque concebido como una edificación

en bloque, agrupados para formar un cluster de alta disponibilidad (HA). Esto

se hace por medio del reflejo completo de un dispositivo de bloque asignado a

través de una red. Se muestra como la red raid-1-DRBD.

DRBD RAID1 en red entre varios equipos

Habitualmente, esta partición de la que se hace mirror, solamente está

montada en una de las máquinas porque se utiliza un sistema de ficheros

tradicional: ext3, raiserfs, xfs, … De esta forma, solo una de las máquinas

puede acceder a los datos, la que tiene la partición montada. Sirve para

montar un sistema de cluster en modo activo/pasivo, y que una de las

máquinas tenga todos los datos hasta que falle, y en ese momento se puede

acceder desde la otra máquina.

DRBD

Heartbeat

Heartbeat es un servicio que provee servicios de infraestructura de

agrupamiento (cluster) a clientes. Permite a los clientes saber si uno de los

nodos está presente o ausente, intercambiado fácilmente mensajes entre

éstos. Está específicamente diseñado para funcionar como agrupamiento de

alta disponibilidad para cualquier tipo de servicio.

Heartbeat

Heartbeat es una aplicación de libre distribución disponible para los sistemas

operativos de tipo Linux, FreeBSD y Solaris, que permite configurar sistemas

de Alta Disponibilidad ofreciendo procesos de comunicación y monitorización

de los nodos que conforman el cluster.

Heartbeat

¿Cómo funciona todo esto? Es muy sencillo, el Heartbeat del nodo activo

(HA1) enviará periódicamente "latidos" al nodo pasivo (HA2) para indicarle

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

interpretará que el nodo HA1 está caído, y en consecuencia pasará a modo

activo, levantando automáticamente las direcciones IP virtuales y arrancando

los servicios gestionados.

Heartbeat

Los latidos pueden ser enviados a través de cualquiera de las interfaces de

red, y también como complemento y de forma redundante, a través de un

cable serie.

Consideraciones generales (proveedores,

cantidad de tarjetas de red, etc.

DRBD realiza RAID-1 entre los dispositivos de bloques de dos ordenadores

(nodos) diferentes unidos por la red.

• Utiliza protocolo TCP/IP.

• Su funcionamiento se basa en que los nodos están en dos estados: – Primario:

Puede acceder a los datos para leer y/o escribir. – Secundario: No puede acceder

a los datos, solo copia los datos que le envía el otro nodo

Consideraciones generales

Utilizar dos tarjetas de red, una para el trafico normal de la PBX, otra

exclusivamente para sincronización de los archivos del cluster.

Utilizar gateways para la configuración, no tarjetas físicas.

Pedirle a nuestro proveedor VoIP que nos permita el trafico desde los dos IP

físicos de nuestros equipos.

Términos útiles

HA = High Availability. Esto no necesariamente implica una restauracion

automatica de los servicios.

Primary server = Servidor en produccion en tiempo real.

Secondary server = Servidor secundario que esta a espera de algun fallo para

asumir el rol del primario.

Virtualizacion

Proxmox

KVM

KVM, el sistema oficial de virtualización del kernel de Linux.

KVM, basado en Qemu (emulación) pero modificado para virtualización

Necesidad de soporte en el procesador instrucciones IntelVT, AMDV

Al cargarse el módulo KVM, se convierte en un hypervisor “baremetal”

Soporte de drivers paravirtualizados para mejorar el rendimiento

OPENVZ

OpenVZ es una tecnología de virtualización en el nivel de sistema

operativo para Linux.

OpenVZ permite que un servidor físico ejecute múltiples instancias de

sistemas operativos aislados, conocidos como Servidores Privados Virtuales

(SPV o VPS en inglés) o Entornos Virtuales (EV).

Demonstration OpenVZ

Proxmox server

HA en Freepbx

utilizando Elastix

Lo primero que vamos a hacer es crear varias extensiones en nuestro servidor

primario.

Luego de haber realizado estas extensiones vamos a habilitar el acceso a

freePBX en nuestra central telefonica, en ambos servidores.

Ahora podemos ingresar a https://ipdenuestroserver/admin

Con ese link podemos ingresar a la parte de FreePBX de nuestra central

Elastix.

En el servidor secundario corremos lo siguiente para generar las llaves

privadas con el usuario asterisk:

sudo -u asterisk ssh-keygen

No introducimos ninguna contraseña, y nos limitamos a presionar la tecla

“enter”

ssh -i /var/lib/asterisk/.ssh/id_rsa root@192.168.9.140

Pasos a seguir:

Crear al menos una extensión en cada servidor

Crear un backup en cada servidor

Crear copia de respaldo en servidor remoto

Verificar el backup ID y agregarlo a una tarea repetitiva o Crontab

Verificar que se ha replicado exitosamente

Vamos a ver estas dos tareas:

Verificar el backup ID y agregarlo a una tarea repetitiva o Crontab

Verificar que se ha replicado exitosamente

Verificar el backup ID y agregarlo a una tarea

repetitiva o Crontab

Para probar nuestra copia de respaldo de forma inmediata debemos hacer lo

siguiente:

Damos clic en nuestra copia de respaldo llamada “CopiaRemota” y en la URL

del backup podemos verificar un número que es el backupid=4

Ejecutamos el siguiente comando:

/var/lib/asterisk/bin/ampbackup.php 4

Siendo el número al final el mismo número del backupID.

Si verificamos, todo funciona de maravilla.

Ahora que debemos hacer para que esto corra cada vez que queramos,

recuerden que había comentado que el Schedule no estaba funcionando bien.

Lo que debemos hacer es crear un crontab programado, para que ejecute esa

línea cada vez que queramos.

Ejecutamos en el servidor secundario:

crontab –e

Luego de esto agregamos una línea para que se ejecute para fines de

laboratorio cada dos (2) minutos.

*/2 * * * * /var/lib/asterisk/bin/ampbackup.php 4

Ahora podemos probar creando una extensión, IVR, o cualquier otra cosa en nuestra

central primaria y esperamos dos minutos a que sea replicada a nuestro servidor

secundario.

Laboratorio de configuración HA

FreePBX 2.4

Alta disponibilidad utilizando el addons

oficial de Elastix

Requisitos

Debemos tener una partición disponible en nuestro servidor, no tiene que

estar montada o formateada.

Comunicación a nivel de IP entre nuestros dos Servidores.

Vamos a omitir todos esos pasos ya que lo hemos hecho en los laboratorios de

DRBD.

procedemos a instalar el plugin de alta

disponibilidad de Elastix mediante un “yum”

en ambos servidores.

Laboratorio realizado por el instructor

utilizando el addons de Elastix

top related