Top Banner
Elastix High Availability Alta disponibilidad con Elastix
71

Alfio Muñoz - Alta disponibilidad con Elastix

Apr 16, 2017

Download

Engineering

ElastixCom
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Alfio Muñoz - Alta disponibilidad con Elastix

Elastix High Availability Alta disponibilidad con Elastix

Page 2: Alfio Muñoz - Alta disponibilidad con Elastix

Alfio Muñoz

Skype:alfiomunoz

Twitter:alfiomunoz

Whatsapp:1-849-207-1601

Page 3: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 4: Alfio Muñoz - Alta disponibilidad con Elastix

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".

Page 5: Alfio Muñoz - Alta disponibilidad con Elastix

Arreglos de discos (RAID)

Page 6: Alfio Muñoz - Alta disponibilidad con Elastix
Page 7: Alfio Muñoz - Alta disponibilidad con Elastix

¿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

Page 8: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 9: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 10: Alfio Muñoz - Alta disponibilidad con Elastix

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

Page 11: Alfio Muñoz - Alta disponibilidad con Elastix
Page 12: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 13: Alfio Muñoz - Alta disponibilidad con Elastix
Page 14: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 15: Alfio Muñoz - Alta disponibilidad con Elastix
Page 16: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 17: Alfio Muñoz - Alta disponibilidad con Elastix
Page 18: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 19: Alfio Muñoz - Alta disponibilidad con Elastix
Page 20: Alfio Muñoz - Alta disponibilidad con Elastix

Opciones que presentaremos

DRBD.

Virtualizacion.

FreePBX Solucion Semi-Automatica.

La forma sencilla el addons de HA de Elastix.

Page 21: Alfio Muñoz - Alta disponibilidad con 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.

Page 22: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 23: Alfio Muñoz - Alta disponibilidad con Elastix

DRBD

Page 24: Alfio Muñoz - Alta disponibilidad con Elastix
Page 25: Alfio Muñoz - Alta disponibilidad con Elastix
Page 26: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 27: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 28: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 29: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 30: Alfio Muñoz - Alta disponibilidad con Elastix
Page 31: Alfio Muñoz - Alta disponibilidad con Elastix

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

Page 32: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 33: Alfio Muñoz - Alta disponibilidad con Elastix
Page 34: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 35: Alfio Muñoz - Alta disponibilidad con Elastix

Virtualizacion

Proxmox

Page 36: Alfio Muñoz - Alta disponibilidad con Elastix

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

Page 37: Alfio Muñoz - Alta disponibilidad con Elastix
Page 38: Alfio Muñoz - Alta disponibilidad con Elastix

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).

Page 39: Alfio Muñoz - Alta disponibilidad con Elastix

Demonstration OpenVZ

Proxmox server

Page 40: Alfio Muñoz - Alta disponibilidad con Elastix

HA en Freepbx

utilizando Elastix

Page 41: Alfio Muñoz - Alta disponibilidad con 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.

Page 42: Alfio Muñoz - Alta disponibilidad con Elastix
Page 43: Alfio Muñoz - Alta disponibilidad con 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”

Page 44: Alfio Muñoz - Alta disponibilidad con Elastix

ssh -i /var/lib/asterisk/.ssh/id_rsa [email protected]

Page 45: Alfio Muñoz - Alta disponibilidad con Elastix

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

Page 46: Alfio Muñoz - Alta disponibilidad con Elastix

Vamos a ver estas dos tareas:

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

Verificar que se ha replicado exitosamente

Page 47: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 48: Alfio Muñoz - Alta disponibilidad con Elastix
Page 49: Alfio Muñoz - Alta disponibilidad con Elastix

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

Page 50: Alfio Muñoz - Alta disponibilidad con Elastix

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.

Page 51: Alfio Muñoz - Alta disponibilidad con Elastix

Laboratorio de configuración HA

FreePBX 2.4

Page 52: Alfio Muñoz - Alta disponibilidad con Elastix

Alta disponibilidad utilizando el addons

oficial de Elastix

Page 53: Alfio Muñoz - Alta disponibilidad con 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.

Page 54: Alfio Muñoz - Alta disponibilidad con Elastix

procedemos a instalar el plugin de alta

disponibilidad de Elastix mediante un “yum”

en ambos servidores.

Page 55: Alfio Muñoz - Alta disponibilidad con Elastix
Page 56: Alfio Muñoz - Alta disponibilidad con Elastix
Page 57: Alfio Muñoz - Alta disponibilidad con Elastix
Page 58: Alfio Muñoz - Alta disponibilidad con Elastix
Page 59: Alfio Muñoz - Alta disponibilidad con Elastix
Page 60: Alfio Muñoz - Alta disponibilidad con Elastix
Page 61: Alfio Muñoz - Alta disponibilidad con Elastix
Page 62: Alfio Muñoz - Alta disponibilidad con Elastix
Page 63: Alfio Muñoz - Alta disponibilidad con Elastix
Page 64: Alfio Muñoz - Alta disponibilidad con Elastix
Page 65: Alfio Muñoz - Alta disponibilidad con Elastix
Page 66: Alfio Muñoz - Alta disponibilidad con Elastix
Page 67: Alfio Muñoz - Alta disponibilidad con Elastix
Page 68: Alfio Muñoz - Alta disponibilidad con Elastix
Page 69: Alfio Muñoz - Alta disponibilidad con Elastix
Page 70: Alfio Muñoz - Alta disponibilidad con Elastix
Page 71: Alfio Muñoz - Alta disponibilidad con Elastix

Laboratorio realizado por el instructor

utilizando el addons de Elastix