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