Alta Disponibilidad en VitalPBX

Share on facebook
Share on google
Share on twitter
Share on linkedin

La alta disponibilidad es una característica de un sistema que tiene como objetivo garantizar un nivel acordado de rendimiento operativo, generalmente tiempo de actividad, durante un período superior al normal.

Haga un clúster de alta disponibilidad con cualquier par de servidores VitalPBX. VitalPBX puede detectar un rango de fallas en un servidor VitalPBX y transferir automáticamente el control al otro servidor, lo que resulta en un entorno de telefonía con un tiempo de inactividad mínimo.

Ejemplo:


Prerrequisitos


Para instalar VitalPBX en alta disponibilidad, necesita lo siguiente:
a.- 3 direcciones IP
b.- Instale VitalPBX en dos servidores con características similares
c.- En el momento de la instalación, deje la mayor cantidad de espacio en el disco duro para almacenar los datos variables en ambos servidores.

Instalación


Vamos a comenzar instalando VitalPBX en dos servidores.

a.- Al iniciar la instalación vaya a:
INSTALLATION DESTINATION (Custom partitioning selected)
b.- Seleccionar:
I will configure partitioning
Y pulse el botón
Done
c.- Seleccione la partición raíz:
/
Change the capacity to:
Desired Capacity: 20GB
We need enough space for the operating system and its applications in the future; then click
Modify button
Select disk and press the buttons
Select
Update Settings
d.- Finalmente, pulsamos el botón:
Done
Y pulse el botón 
Accept Changes

Y continuar con la instalación.

Configuraciones


Configuraremos en cada servidor la dirección IP y el nombre del host. Vaya a la interfaz web para: Admin> System Settinngs> Network Settings.
Primero, cambie el nombre de host, recuerde presionar el botón Verificar.
Deshabilite la opción DHCP y establezca estos valores

Name Master Slave
Hostname vitalpbx1.local vitalpbx2.local
IP Address 192.168.30.10 192.168.30.20
Netmask 255.255.248.0 255.255.248.0
Gateway 192.168.24.1 192.168.24.1
Primary DNS 8.8.8.8 8.8.8.8
Secondary DNS 8.8.4.4 8.8.4.4

Crear Disco


Ahora nos conectamos a través de ssh a cada uno de los servidores.
a.- Inicialice la partición para asignar el espacio disponible en el disco duro. Haz esto en ambos servidores.

[root@vitalpbx1-2 ~]#  fdisk /dev/sda
Command (m for help): n
Select (default e): p
Selected partition x (take note of the assigned partition number as we will need it later)
[Enter]
[Enter]
Command (m for help): w
[root@vitalpbx1-2 ~]#  reboot

Instalar dependencias


Instala las dependencias necesarias en ambos servidores.

[root@vitalpbx1-2 ~]#  yum -y install drbd90-utils kmod-drbd90 corosync pacemaker pcs

Script


Ahora copia y ejecuta el siguiente script:

[root@vitalpbx1 ~]#  cd /
[root@vitalpbx1 ~]#  wget https://raw.githubusercontent.com/VitalPBX/vitalpbx_ha/master/vital_ha.sh
[root@vitalpbx1 ~]#  chmod +x vital_ha.sh
[root@vitalpbx1 ~]#  ./vital_ha.sh

Establezca estos valores, recuerde que la máscara de IP flotante debe tener un formato de 2 dígitos y el disco es el que creó en el paso “Crear Disco””:

IP Master.......... > 192.168.30.10
IP Slave........... > 192.168.30.20
Floating IP........ > 192.168.30.30
Floating IP Mask... > 21
Disk (sdax)........ > sda4
hacluster password. > mypassword

Are you sure to continue with these settings? (yes,no) > yes
Are you sure you want to continue connecting (yes/no)? yes
root@192.168.30.20's password: La contraseña de root del servidor esclavo

Al final de la instalación, debe ver el siguiente mensaje

************************************************************
*                VitalPBX Cluster OK                       *
************************************************************
 virtual_ip     (ocf::heartbeat:IPaddr2):       Started vitalpbx1.local
 Master/Slave Set: DrbdDataClone [DrbdData]
     Masters: [ vitalpbx1.local ]
     Slaves: [ vitalpbx2.local ]
 DrbdFS (ocf::heartbeat:Filesystem):    Started vitalpbx1.local
 mysql  (ocf::heartbeat:mysql): Started vitalpbx1.local
 asterisk       (ocf::heartbeat:asterisk):      Started vitalpbx1.local
 fail2ban       (service:fail2ban):     Started vitalpbx1.local
 vpbx-monitor   (service:vpbx-monitor): Started vitalpbx1.local
*** Done ***

Ahora comprueba si drbd ha terminado de sincronizar los discos

[root@vitalpbx1 ~]# drbdadm status
drbd0 role:Primary
  disk:UpToDate
  vitalpbx2.local role:Secondary
    peer-disk:UpToDate

[root@vitalpbx1 ~]#

Si muestra el mensaje anterior, significa que todo está bien y podemos continuar, de lo contrario tendremos que esperar a que finalice la sincronización.

Ahora, reinicie el server1 y espere el cambio de estado en el server2.

[root@vitalpbx1 ~]# reboot

[root@vitalpbx2 ~]# pcs status

Luego reinicie el server2, conéctese al server1 y espere el cambio de estado en el server1.

[root@vitalpbx2 ~]# reboot

[root@vitalpbx1 ~]# pcs status

Prueba


Para ejecutar el proceso de cambio de rol, recomendamos usar el siguiente comando:

[root@vitalpbx1 /]# bascul
************************************************************
*     Change the roles of servers in high availability     *
* WARNING-WARNING-WARNING-WARNING-WARNING-WARNING-WARNING  *
*All calls in progress will be lost and the system will be *
*     be in an unavailable state for a few seconds.        *
************************************************************
Are you sure to switch from vitalpbx1.local to vitalpbx2.local? (yes,no) >

This action converts the vitalpbx1.local to Slave and vitalpbx2.local to Master. If you want to return to default do the same again.

Encender y Apagar


Cuando tenga que apagar los servidores, cuando lo encienda siempre comience con el Master, espere a que el Master se inicie y luego encienda el Esclavo.

Actualizar


Para actualizar VitalPBX a la última versión, simplemente siga los siguientes pasos:
1.- Desde su navegador, vaya a la dirección IP 192.168.30.30
2.- Actualizar VitalPBX desde la interfaz
3.- Ejecuta el siguiente comando en la consola Master

[root@vitalpbx1 /]# bascul

4.- Desde su navegador, vaya nuevamente a la dirección IP 192.168.30.30
5.- Actualizar VitalPBX desde la interfaz
6.- Ejecuta el siguiente comando en la consola Master

[root@vitalpbx1 /]# bascul

FELICIDADES, Ha instalado y probado la alta disponibilidad en VitalPBX.

También disponible enGitHub

Para ver el manual paso a paso:
Manual step-by-step

admin

admin

Leave a Reply

About Us

This project started with the objective of creating a system/interface for the administration of PBX systems based on Asterisk,  easy to use, totally adapted for different mobile devices (Fully Responsive Design), and with all the characteristics of an advanced telecommunications system; Combining the flexibility from Asterisk with concepts that have been satisfactorily used in traditional telephone systems, concepts that somehow were ignored by the new generations of IP telephony.

Recent Posts

Follow Us

VitalPBX Overview

Sign up for our Newsletter

Subscribe and keep up to date with our news.