domingo, 19 de junho de 2022

Issabel Alta Disponibilidade Simples

 

Issabel Alta Disponibilidade Simples

Alta disponibilidade simples - Issabel PBX IP

Descrevo este procedimento como simples pois manterá o serviço de telefonia em alta disponibilidade. Neste procedimento, nãão estão incluidas sincronização dos serviços de banco de dados e apache. Demonstração em: https://youtu.be/QdY_QpnTC0U

Nível de conhecimento necessário: Básico

Tecnologias aplicadas: Corosync, Pacemaker, PCS

Hostnames/IPs configurados:

Servidor Primário: issabelha1/eth0 192.168.1.77

Servidor Secundário: issabelha2/eth0 192.168.1.88

IP flutuante (floating) - 192.168.1.99

Passo a passo:

  • Atualizar ambos servidores através do comando:

[root@issabelha1]# yum update -y

[root@issabelha2]# yum update -y

  • Instalar pacotes necessários em ambos servidores

[root@issabelha1]# yum -y install uuid-c++ uuid-c++-devel libuuid-devel
jansson-devel gmime gmime-devel gsm gsm-devel ilbc ilbc-devel speex
speex-devel libogg libogg-devel libvorbis libsrtp libsrtp-devel
libvorbis-devel

[root@issabelha2]# yum -y install uuid-c++ uuid-c++-devel libuuid-devel
jansson-devel gmime gmime-devel gsm gsm-devel ilbc ilbc-devel speex
speex-devel libogg libogg-devel libvorbis libsrtp libsrtp-devel
libvorbis-devel

  • Editar o arquivo /etc/hosts em ambos servidores, adicionando as seguintes linhas (substituir nome/endereço IP de acordo com sua instalação):

192.168.1.77 issabelha1

192.168.1.88 issabelha2

  • Editar o arquivo /etc/hostname em ambos servidores com seu respectivo nome (issabelha1/issabelha2)

  • Instalar os pacotes corosync, pacemaker, pcs em ambos servidores

[root@issabelha1]# yum -y install corosync pacemaker pcs

[root@issabelha2]# yum -y install corosync pacemaker pcs

  • Iniciar o daemon pcs em ambos servidores

[root@issabelha1]# systemctl start pcsd

[root@issabelha2]# systemctl start pcsd

  • Configure (e guarde em local seguro) uma senha para o serviço em ambos servidores

[root@issabelha1]# passwd hacluster

[root@issabelha2]# passwd hacluster

  • No servidor Primário, crie o cluster

[root@issabelha1]# pcs cluster auth issabelha1 issabelha2

Neste passo, será necessário informar usuário e senha criados:

user: hacluster

pass: senha_criada_acima

  • Configuramos o cluster, ainda no servidor Primário

[root@issabelha1]# pcs cluster setup --name cluster-asterisk issabelha1 issabelha2

  • Iniciar os serviços pacemaker e corosync em ambos servidores

[root@issabelha1]# systemctl start pacemaker

[root@issabelha1]# systemctl start corosync

[root@issabelha2]# systemctl start pacemaker

[root@issabelha2]# systemctl start corosync

  • Iniciar o serviço no servidor Primário

[root@issabelha1]# pcs cluster start --all

  • Desabilitar STONITH ainda no servidor Primário*

[root@issabelha1]# pcs property set stonith-enabled=false

  • Configurar para ignorar politicas de no-quorum no servidor Primário

[root@issabelha1]# pcs property set no-quorum-policy=ignore

  • Criar IP flutuante no servidor Primário (substituir endereço 192.168.1.99 e nic de acordo com seu cenário)

[root@issabelha1]# pcs resource create virtual_ip ocf:heartbeat:IPaddr2
ip=192.168.1.99 cidr_netmask=32 nic=eth0 op monitor interval=30s on-fail=restart

  • Instalar recurso asterisk heartbeat em ambos servidores

[root@issabelha1]# cd /usr/lib/ocf/resource.d/heartbeat;
wget https://raw.githubusercontent.com/ClusterLabs/resource-agents\ /master/heartbeat/asterisk;

  • Modificar permissionamento do recurso no servidor Primário chmod 755 asterisk

[root@issabelha2]# cd /usr/lib/ocf/resource.d/heartbeat;
wget https://raw.githubusercontent.com/ClusterLabs/resource-agents/\ master/heartbeat/asterisk;

-Modificar permissionamento do recurso no servidor Secundário

chmod 755 asterisk

  • Criar recurso asterisk no servidor Primário

[root@issabelha1]# pcs resource create asterisk ocf:heartbeat:asterisk
user="root" group="asterisk" op monitor timeout="30"

  • Agregar o IP flutuante ao recurso asterisk no servidor Primário

[root@issabelha1]# pcs constraint colocation add asterisk with virtual_ip
score=INFINITY

  • Ordenar o IP flutuante para que seja carregado antes do recurso asterisk no servidor Primário

[root@issabelha1]# pcs constraint order virtual_ip then asterisk

  • Automatizar o carregamento dos recursos, no servidor Primário

[root@issabelha1]# pcs resource defaults resource-stickiness="0"

  • Habilitar o carregamento dos serviços na inicialização de ambos servidores

[root@issabelha1]# systemctl enable pcsd

[root@issabelha1]# systemctl enable corosync

[root@issabelha1]# systemctl enable pacemaker

[root@issabelha2]# systemctl enable pcsd

[root@issabelha2]# systemctl enable corosync

[root@issabelha2]# systemctl enable pacemaker


Fonte:

https://gitlab.com/smarkson/fcsl/-/wikis/Issabel---Alta-Disponibilidade-Simples

https://www.youtube.com/watch?v=QdY_QpnTC0U

Nenhum comentário:

Postar um comentário