Práctica: Cluster HA
Cluster de HA activo-pasivo
Entrega
Parte 1
Mostrar la salida de
sudo pcs status
Ejecuto el comando, por ejemplo, en nodo1:
vagrant@nodo1:~$ sudo pcs status
Cluster name: mycluster
Cluster Summary:
* Stack: corosync
* Current DC: nodo2 (version 2.0.5-ba59be7122) - partition with quorum
* Last updated: Fri Feb 18 12:09:53 2022
* Last change: Fri Feb 18 12:05:38 2022 by root via cibadmin on nodo1
* 2 nodes configured
* 5 resource instances configured
Node List:
* Online: [ nodo1 nodo2 ]
Full List of Resources:
* VirtualIP (ocf::heartbeat:IPaddr2): Started nodo1
* WebSite (ocf::heartbeat:apache): Started nodo1
* Clone Set: WebData-clone [WebData] (promotable):
* Masters: [ nodo1 ]
* Slaves: [ nodo2 ]
* WebFS (ocf::heartbeat:Filesystem): Started nodo1
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
Parte 2
2.1
Mostrar el acceso a
index.php
en nodo1)
2.2
Apagar nodo1 y mostrar de nuevo el acceso a
index.php
. Comprobar que se accede a nodo2.
Hago vagrant halt nodo1
y muestro que realmente está apagado:
2+DRBD+GFS2/ansible/roles/bind/files$ vagrant status
Current machine states:
nodo1 shutoff (libvirt)
nodo2 running (libvirt)
dns running (libvirt)
This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.
Recargo la página y veo que el nodo ha cambiado:
Parte 3
Comprobar que el cluster de Galera MariaDB tiene dos nodos
Dentro de mariadb, en cualquiera de los nodos, ejecuto el siguiete comando:
El valor en wsrep_cluster_size
nos indica que existen 2 nodos:
Parte 4
Crear un post en Wordpress y mostrarlo
Parte 5
Demostrar al profesor que apagando un nodo, WordPress sigue funcionando
Hecho y funciona.
Ejercicios
Ejercicio 1
Lanzar Vagrant y Ansible sobre el escenario
06-HA-IPFailover-Apache2+DRBD+GFS2
Ejercicio 2
Configurar el host para que use como servidor DNS primario el del escenario
Modifico mi /etc/resolv.conf
:
# Generated by NetworkManager
search gonzalonazareno.org 41011038.41.andared.ced.junta-andalucia.es
nameserver 10.1.1.103
nameserver 192.168.202.2
nameserver 192.168.8.1
Ejercicio 3
3.1
Configuraciones de Galera MariaDB comunes a ambos nodos
Instalo mariadb:
Comento la siguiente línea de /etc/mysql/mariadb.conf.d/50-server.cnf
:
Reinicio:
Compruebo que ahora mariadb acepta peticiones desde todas las IPs:
3.2
Configuraciones de Galera MariaDB en nodo1
Modifico /etc/mysql/mariadb.conf.d/60-galera.cnf
:
[galera]
# Mandatory settings
wsrep_on = ON
wsrep_cluster_name = "MariaDB Galera Cluster"
wsrep_provider = /usr/lib/galera/libgalera_smm.so
wsrep_cluster_address = "gcomm://nodo1,nodo2"
binlog_format = row
default_storage_engine = InnoDB
innodb_autoinc_lock_mode = 2
# Allow server to accept connections on all interfaces.
bind-address = 0.0.0.0
wsrep_node_address = "nodo1"
Inicializo el cluster y reinicio:
3.3
Configuraciones de Galera MariaDB en nodo2
Modifico /etc/mysql/mariadb.conf.d/60-galera.cnf
:
[galera]
# Mandatory settings
wsrep_on = ON
wsrep_cluster_name = "MariaDB Galera Cluster"
wsrep_provider = /usr/lib/galera/libgalera_smm.so
wsrep_cluster_address = "gcomm://nodo1,nodo2"
binlog_format = row
default_storage_engine = InnoDB
innodb_autoinc_lock_mode = 2
# Allow server to accept connections on all interfaces.
bind-address = 0.0.0.0
wsrep_node_address = "nodo2"
Reinicio:
Ejercicio 4
Tenemos que instalar Wordpress en el cluster.
Esta instalación será idéntica a la de un Wordpress sin cluster, sólo que en este escenario el DocumentRoot se replicará al nodo2 en caso de fallo del nodo1.
La base de datos se replica ya de por sí incluso sin fallos de nodo.
4.1
Configurar la BD
La creo:
Creo el usuario:
Asigno privilegios:
4.2
Limpiar el DocumentRoot antiguo
4.3
Descargar Wordpress
Lo hago en /tmp
:
Muevo el contenido del directorio wordpress
al DocumentRoot que ya teníamos funcionando:
Dejo los permisos correctamente:
4.4
Instalar Wordpress