GNU/Linux >> Tutoriales Linux >  >> Cent OS

Clúster de servidor web Apache de dos nodos con marcapasos en CentOS 7

Pacemaker es un software de clúster de alta disponibilidad para Linux como sistema operativo. Pacemaker se conoce como 'Gestor de recursos de clúster ', proporciona la máxima disponibilidad de los recursos del clúster al realizar la conmutación por error de los recursos entre los nodos del clúster.

Pacemaker usa corosync para el latido del corazón y la comunicación interna entre los componentes del clúster, Corosync también se ocupa del quórum en el clúster.

En este artículo, demostraremos la instalación y configuración de clústeres de servidores web Apache (httpd) de dos nodos utilizando Pacemaker en CentOS 7.

En mi configuración, usaré dos máquinas virtuales y almacenamiento compartido del servidor Fedora (se compartirán dos discos donde un disco se usará como dispositivo de cercado y el otro disco se usará como almacenamiento compartido para el servidor web)

  • nodo1.linuxtechi.com (192.168.1.51) — CentOS 7.x
  • node2.linuxtechi.com (192.168.1.52) — CentOS 7.x

Paso:1 Actualizar el archivo '/etc/hosts'

Agregue las siguientes líneas en el archivo /etc/hosts en ambos nodos.

192.168.1.51 node1.linuxtechi.com node1
192.168.1.52 node2.linuxtechi.com node2

Paso:2 Instale el clúster y otros paquetes necesarios.

Use el siguiente comando yum en ambos nodos para instalar el paquete de clúster (pcs), los agentes de valla y el servidor web (httpd)

[[email protected] ~]# yum -y update
[[email protected] ~]# yum -y install pcs fence-agents-all iscsi-initiator-utils httpd

[[email protected] ~]# yum -y update
[[email protected] ~]# yum -y install pcs fence-agents-all iscsi-initiator-utils httpd

Paso:3 Establezca la contraseña para el usuario 'hacluster'

Se recomienda utilizar la misma contraseña del usuario 'hacluster' en ambos nodos.

[[email protected] ~]# echo <new-password> | passwd --stdin hacluster
[[email protected] ~]# echo <new-password> | passwd --stdin hacluster

Paso:4 Permitir puertos de alta disponibilidad en el cortafuegos.

Utilice 'firewall-cmd ‘ Comando en ambos nodos para abrir puertos de alta disponibilidad en el firewall del sistema operativo.

[[email protected] ~]# firewall-cmd --permanent --add-service=high-availability
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]#

[[email protected] ~]# firewall-cmd --permanent --add-service=high-availability
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]#

Paso:5 Inicie el Servicio de clúster y autorice los nodos para unirse al clúster.

Comencemos el servicio de clúster en ambos nodos,

[[email protected] ~]# systemctl start pcsd.service
[[email protected] ~]# systemctl enable pcsd.service
ln -s '/usr/lib/systemd/system/pcsd.service' '/etc/systemd/system/multi-user.target.wants/pcsd.service'
[[email protected] ~]#

[[email protected] ~]# systemctl start pcsd.service
[[email protected] ~]# systemctl enable pcsd.service
ln -s '/usr/lib/systemd/system/pcsd.service' '/etc/systemd/system/multi-user.target.wants/pcsd.service'
[[email protected] ~]#

Use el siguiente comando en cualquiera de los nodos para autorizar a los nodos a unirse al clúster.

[[email protected] ~]# pcs cluster auth node1 node2
Username: hacluster
Password:
node1: Authorized
node2: Authorized
[[email protected] ~]#

Paso:6 Crear el clúster y habilitar el Servicio de clúster

Utilice los siguientes comandos pcs en cualquiera de los nodos del clúster para crear un clúster con el nombre 'apachecluster ' y nodo1 y nodo2 son los nodos del clúster.

[[email protected] ~]# pcs cluster setup --start --name apachecluster node1 node2
Shutting down pacemaker/corosync services...
Redirecting to /bin/systemctl stop pacemaker.service
Redirecting to /bin/systemctl stop corosync.service
Killing any remaining services...
Removing all cluster configuration files...
node1: Succeeded
node2: Succeeded
Starting cluster on nodes: node1, node2...
node2: Starting Cluster...
node1: Starting Cluster...
Synchronizing pcsd certificates on nodes node1, node2...
node1: Success
node2: Success
Restaring pcsd on the nodes in order to reload the certificates...
node1: Success
node2: Success
[[email protected] ~]#

Habilite el servicio de clúster mediante el siguiente comando pcs:

[[email protected] ~]# pcs cluster enable --all
node1: Cluster Enabled
node2: Cluster Enabled
[[email protected] ~]#

Ahora verifique el servicio de clúster

[[email protected] ~]# pcs cluster status

Paso:7 Configure el almacenamiento compartido iscsi en el servidor Fedora para ambos nodos.

Dirección IP del servidor Fedora 23 =192.168.1.21

Instale primero el paquete necesario.

[[email protected] ~]# dnf -y install targetcli

Tengo un disco nuevo (/dev/sdb) de 11 GB de tamaño en mi servidor fedora en el que he creado dos LV, uno para Fecing y otro para el sistema de archivos Apache.

[[email protected] ~]# pvcreate /dev/sdb
 Physical volume "/dev/sdb" successfully created
[[email protected] ~]# vgcreate cluster_data /dev/sdb
 Volume group "cluster_data" successfully created
[[email protected] ~]# lvcreate -L 1G -n fence_storage cluster_data
 Logical volume "fence_storage" created.
[[email protected] ~]# lvcreate -L 10G -n apache_storage cluster_data
 Logical volume "apache_storage" created.
[[email protected] ~]#

Obtenga los nombres de iniciador de ambos nodos.

[[email protected] ~]# cat /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.1994-05.com.redhat:63ba7391df7f
[[email protected] ~]# 

[[email protected] ~]# cat /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.1994-05.com.redhat:d4337e65531e
[[email protected] ~]#

Ahora usa 'targetcli ‘comando para configurar el almacenamiento iscsi para ambos nodos.

[[email protected] ~]# targetcli
/> cd /backstores/block
/backstores/block> create apache-fs /dev/cluster_data/apache_storage 
/backstores/block> create fence-storage /dev/cluster_data/fence_storage 
/backstores/block> cd /iscsi
/iscsi> create
/iscsi> cd iqn.2003-01.org.linux-iscsi.fedora23.x8664:sn.646023b9e9c6/tpg1/luns
/iscsi/iqn.20...9c6/tpg1/luns> create /backstores/block/apache-fs
/iscsi/iqn.20...9c6/tpg1/luns> create /backstores/block/fence-storage
/iscsi/iqn.20...9c6/tpg1/luns> cd ../acls
/iscsi/iqn.20...9c6/tpg1/acls> create iqn.1994-05.com.redhat:63ba7391df7f
/iscsi/iqn.20...9c6/tpg1/acls> create iqn.1994-05.com.redhat:d4337e65531e
/iscsi/iqn.20...9c6/tpg1/acls> cd /
/> saveconfig 
/> exit

Iniciar y habilitar el servicio de destino

[[email protected] ~]# systemctl start target.service
[[email protected] ~]# systemctl enable target.service
[[email protected] ~]#

Abra los puertos iscsi en el Firewall del sistema operativo.

[[email protected] ~]# firewall-cmd --permanent --add-port=3260/tcp
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]#

Ahora escanee el almacenamiento iscsi en ambos nodos:

Ejecute los siguientes comandos en ambos nodos

# iscsiadm --mode discovery --type sendtargets --portal 192.168.1.21
# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.fedora23.x8664:sn.646023b9e9c6 -l -p 192.168.1.21:3260

Reemplace el 'iqn' y la 'dirección IP' de destino según su configuración. Después de ejecutar el comando anterior, podemos ver dos discos nuevos en la salida del comando 'fdisk -l'.

Enumere los ID del disco iscsi recién escaneado.

[[email protected] ~]# ls -l /dev/disk/by-id/
total 0
..........
lrwxrwxrwx. 1 root root 9 Feb 21 03:22 wwn-0x60014056e8763c571974ec3b78812777 -> ../../sdb
lrwxrwxrwx. 1 root root 9 Feb 21 03:22 wwn-0x6001405ce01173dcd7c4c0da10051405 -> ../../sdc
[[email protected] ~]#

Inicie y habilite el servicio iscsi en ambos nodos.

[[email protected] ~]# systemctl start iscsi.service
[[email protected] ~]# systemctl enable iscsi.service
[[email protected] ~]# systemctl enable iscsid.service
ln -s '/usr/lib/systemd/system/iscsid.service' '/etc/systemd/system/multi-user.target.wants/iscsid.service'
[[email protected] ~]# 

[[email protected] ~]# systemctl start iscsi.service
[[email protected] ~]# systemctl enable iscsi.service
[[email protected] ~]# systemctl enable iscsid.service
ln -s '/usr/lib/systemd/system/iscsid.service' '/etc/systemd/system/multi-user.target.wants/iscsid.service'
[[email protected] ~]#

Paso:8 Crear los recursos del clúster.

Definir stonith (Dispara al otro nodo en la cabeza) dispositivo de vallado para el clúster. Es un método para aislar el nodo del clúster cuando el nodo deja de responder.

Estoy usando almacenamiento iscsi de 1 GB (/dev/sdc ) para cercas.

Ejecute los siguientes comandos en cualquiera de los nodos:

[[email protected] ~]# pcs stonith create scsi_fecing_device fence_scsi pcmk_host_list="node1 node2" pcmk_monitor_action="metadata" pcmk_reboot_action="off" devices="/dev/disk/by-id/wwn-0x6001405ce01173dcd7c4c0da10051405" meta provides="unfencing"
[[email protected] ~]# 
[[email protected] ~]# pcs stonith show
 scsi_fecing_device (stonith:fence_scsi): Started node1
[[email protected] ~]#

Ahora cree una partición en el segundo almacenamiento iscsi (/dev/sdb ) que se usará como documento raíz para nuestro servidor web.

[[email protected] ~]# fdisk /dev/disk/by-id/wwn-0x60014056e8763c571974ec3b78812777

Dar formato a la partición recién creada:

[[email protected] ~]# mkfs.ext4 /dev/disk/by-id/wwn-0x60014056e8763c571974ec3b78812777-part1

Monte el nuevo sistema de archivos temporal en /var/www y cree subcarpetas y configure la regla selinux.

[[email protected] html]# mount /dev/disk/by-id/wwn-0x60014056e8763c571974ec3b78812777-part1 /var/www/
[[email protected] html]# mkdir /var/www/html
[[email protected] html]# mkdir /var/www/cgi-bin
[[email protected] html]# mkdir /var/www/error
[[email protected] html]# restorecon -R /var/www
[[email protected] html]# echo "Apache Web Sever Pacemaker Cluster" > /var/www/html/index.html

Desmonte el sistema de archivos ahora porque el clúster montará el sistema de archivos cuando sea necesario.

[[email protected] html]# umount /var/www/
[[email protected] html]#

Cree el recurso de clúster del sistema de archivos del servidor web usando el siguiente comando pcs.

[[email protected] html]# pcs resource create webserver_fs Filesystem device="/dev/disk/by-id/wwn-0x60014056e8763c571974ec3b78812777-part1" directory="/var/www" fstype="ext4" --group webgroup
[[email protected] html]# 
[[email protected] html]# pcs resource show
 Resource Group: webgroup
 webserver_fs (ocf::heartbeat:Filesystem): Started node1
[[email protected] html]#

Agregue las siguientes líneas en el archivo '/etc/httpd/conf/httpd.conf' en ambos nodos.

<Location /server-status>
 SetHandler server-status
 Order deny,allow
 Deny from all
 Allow from 127.0.0.1
</Location>

Abra el puerto del servidor web o httpd en el firewall del sistema operativo en ambos nodos

[[email protected] ~]# firewall-cmd --permanent --add-service=http
success
[[email protected] ~]# firewall-cmd --reload
success

[[email protected] ~]#
[[email protected] ~]# firewall-cmd --permanent --add-service=http
success
[[email protected] ~]# firewall-cmd --reload
success
[[email protected] ~]#

Crear recurso de clúster de IP virtual (IPaddr2) usando el siguiente comando. Ejecute el siguiente comando en cualquiera de los nodos.

[[email protected] ~]# pcs resource create vip_res IPaddr2 ip=192.168.1.151 cidr_netmask=24 --group webgroup
[[email protected] ~]#

Crear recurso de clúster de Apache usando el siguiente comando:

[[email protected] ~]# pcs resource create apache_res apache configfile="/etc/httpd/conf/httpd.conf" statusurl="http://127.0.0.1/server-status" --group webgroup
[[email protected] ~]#

Verificar el estado del clúster:

[[email protected] ~]# pcs status

Usar 'df ' y 'añadir ip ‘comando para verificar el sistema de archivos y la conmutación por error de la dirección IP.

Acceda a su sitio web usando VIP (192.168.1.151)

.

Interfaz gráfica de usuario de marcapasos:

Se puede acceder a la GUI de Pacemaker desde un navegador web usando vip.

https://192.168.1.151:2224/

Use el nombre de usuario 'hacluster' y su contraseña que configuramos en el paso anterior.

Agregue los nodos de clúster existentes.

La instalación y configuración de Pacemaker se completó ahora, espero que haya disfrutado de los pasos. Comparta sus valiosos comentarios y opiniones 🙂

Referencia: http://clusterlabs.org/quickstart-redhat.html


Cent OS
  1. Cómo configurar varios sitios web con el servidor web Apache

  2. Instale el servidor web Apache CentOS 6 / RHEL 6

  3. Instalar Apache Web Server en CentOS 8 - ¿Proceso paso a paso para hacerlo?

  4. Cómo instalar el servidor web Apache en Centos 8

  5. Instale Zenario con Apache, PHP y MariaDB en CentOS 7

Cómo instalar el servidor web Lighttpd en CentOS 8

Cómo instalar el servidor web Cherokee en CentOS 6

Cómo instalar el servidor web Jetty en CentOS 7

Cómo instalar el servidor web Hiawatha en CentOS 7

Cómo instalar el servidor web Caddy en CentOS 7

¿Cómo instalar el servidor web LiteSpeed ​​en WHM/cPanel con Centos 7.x?