Pacemaker è un software cluster ad alta disponibilità per Linux come il sistema operativo. Pacemaker è noto come "Gestione risorse cluster ', Fornisce la massima disponibilità delle risorse del cluster eseguendo il failover delle risorse tra i nodi del cluster.
Pacemaker utilizza corosync per il battito cardiaco e la comunicazione interna tra i componenti del cluster, Corosync si occupa anche del Quorum nel cluster.
In questo articolo dimostreremo l'installazione e la configurazione di due Node Apache (httpd) Web Server Clustering utilizzando Pacemaker su CentOS 7.
Nella mia configurazione utilizzerò due macchine virtuali e storage condiviso da Fedora Server (verranno condivisi due dischi in cui un disco verrà utilizzato come dispositivo di scherma e l'altro disco verrà utilizzato come spazio di archiviazione condiviso per il server web)
- node1.linuxtechi.com ( 192.168.1.51 ) — CentOS 7.x
- node2.linuxtechi.com (192.168.1.52 ) — CentOS 7.x
Passaggio:1 Aggiorna il file '/etc/hosts'
Aggiungi le seguenti righe nel file /etc/hosts in entrambi i nodi.
192.168.1.51 node1.linuxtechi.com node1 192.168.1.52 node2.linuxtechi.com node2
Fase:2 Installa il cluster e gli altri pacchetti richiesti.
Usa il comando yum sotto su entrambi i nodi per installare il pacchetto cluster (pcs), gli agenti di recinzione e il server 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
Passaggio:3 Imposta la password per l'utente "hacluster"
Si consiglia di utilizzare la stessa password dell'utente 'hacluster' su entrambi i nodi.
[[email protected] ~]# echo <new-password> | passwd --stdin hacluster [[email protected] ~]# echo <new-password> | passwd --stdin hacluster
Passaggio:4 Consenti porte ad alta disponibilità nel firewall.
Usa "firewall-cmd ' comando su entrambi i nodi per aprire le porte ad alta disponibilità nel 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] ~]#
Passaggio:5 Avvia il Servizio cluster e autorizza i nodi a unirsi al cluster.
Avviamo il servizio cluster su entrambi i nodi,
[[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] ~]#
Utilizzare il comando seguente su uno dei nodi per autorizzare i nodi a unirsi al cluster.
[[email protected] ~]# pcs cluster auth node1 node2 Username: hacluster Password: node1: Authorized node2: Authorized [[email protected] ~]#
Passo:6 Crea il Cluster e abilita il Cluster Service
Utilizza i seguenti comandi pcs su uno qualsiasi dei nodi del cluster per creare un cluster con il nome "apachecluster ' e node1 e node2 sono i nodi del cluster.
[[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] ~]#
Abilita il servizio cluster utilizzando il comando pcs di seguito:
[[email protected] ~]# pcs cluster enable --all node1: Cluster Enabled node2: Cluster Enabled [[email protected] ~]#
Ora verifica il servizio cluster
[[email protected] ~]# pcs cluster status
Fase:7 Configurazione dello storage condiviso iscsi su Fedora Server per entrambi i nodi.
Indirizzo IP di Fedora 23 Server =192.168.1.21
Installa prima il pacchetto richiesto.
[[email protected] ~]# dnf -y install targetcli
Ho un nuovo disco (/dev/sdb) di dimensione 11 GB sul mio server fedora su cui ho creato due LV uno per Fecing e l'altro è per il file system 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] ~]#
Ottieni i nomi degli iniziatori di entrambi i nodi.
[[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] ~]#
Ora usa "targetcli ' comando per configurare l'archiviazione iscsi per entrambi i nodi.
[[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
Avvia e abilita il servizio di destinazione
[[email protected] ~]# systemctl start target.service [[email protected] ~]# systemctl enable target.service [[email protected] ~]#
Apri le porte iscsi nel firewall del sistema operativo.
[[email protected] ~]# firewall-cmd --permanent --add-port=3260/tcp success [[email protected] ~]# firewall-cmd --reload success [[email protected] ~]#
Ora scansiona lo storage iscsi su entrambi i nodi :
Esegui i comandi seguenti su entrambi i nodi
# 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
Sostituisci il target "iqn" e "ip address" secondo la tua configurazione. Dopo aver eseguito il comando sopra, possiamo vedere due nuovi dischi nell'output del comando 'fdisk -l'.
Elenca gli ID del disco iscsi appena scansionato.
[[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] ~]#
Avvia e abilita il servizio iscsi su entrambi i nodi.
[[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] ~]#
Passo:8 Crea le risorse del cluster.
Definisci pietra (Spara all'altro nodo nella testa) dispositivo di recinzione per il cluster. È un metodo per isolare il nodo dal cluster quando il nodo non risponde.
Sto utilizzando 1 GB di storage iscsi (/dev/sdc ) per la scherma.
Esegui i seguenti comandi su uno dei nodi:
[[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] ~]#
Ora crea una partizione sul secondo storage iscsi (/dev/sdb ) che verrà utilizzato come documento root per il nostro server web.
[[email protected] ~]# fdisk /dev/disk/by-id/wwn-0x60014056e8763c571974ec3b78812777
Formatta la partizione appena creata :
[[email protected] ~]# mkfs.ext4 /dev/disk/by-id/wwn-0x60014056e8763c571974ec3b78812777-part1
Monta il nuovo file system temporaneo su /var/www e crea le sottocartelle e imposta la regola 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
Smonta il file system ora perché il cluster monterà il file system quando richiesto.
[[email protected] html]# umount /var/www/ [[email protected] html]#
Crea la Risorsa cluster del file system del server Web usando il comando pcs sotto.
[[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]#
Aggiungi le seguenti righe nel file '/etc/httpd/conf/httpd.conf' su entrambi i nodi.
<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 </Location>
Apri la porta httpd o del server web nel firewall del sistema operativo su entrambi i nodi
[[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] ~]#
Crea risorsa cluster IP virtuale (IPaddr2) usando il comando sotto. Esegui il comando seguente su uno qualsiasi dei nodi.
[[email protected] ~]# pcs resource create vip_res IPaddr2 ip=192.168.1.151 cidr_netmask=24 --group webgroup [[email protected] ~]#
Crea risorsa cluster Apache usando sotto 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] ~]#
Verifica lo stato del cluster :
[[email protected] ~]# pcs status
Usa 'df ' e 'aggiungi ip ' comando per verificare il failover del file system e dell'indirizzo IP.
Accedi al tuo sito Web utilizzando VIP (192.168.1.151)
.
GUI del pacemaker :
È possibile accedere alla GUI di Pacemaker dal browser Web tramite vip.
https://192.168.1.151:2224/
Utilizza il nome utente "hacluster" e la relativa password che abbiamo impostato nel passaggio precedente.
Aggiungi i nodi Cluster esistenti.
L'installazione e la configurazione di Pacemaker sono state completate Ora, spero che i passaggi siano stati di tuo gradimento. Condividi i tuoi preziosi feedback e commenti 🙂
Riferimento : http://clusterlabs.org/quickstart-redhat.html