Come tutti sappiamo, squid è un server proxy di memorizzazione nella cache che supporta protocolli come HTTP, HTTPS, FTP e altri. In altre parole, calamaro è noto come server proxy Web che aiuta gli ISP e altre organizzazioni a ridurre la propria larghezza di banda e migliora anche considerevolmente i tempi di risposta poiché memorizza nella cache locale i contenuti più frequenti. Ogni volta che arriva una nuova richiesta, squid la serve dalla sua cache se è memorizzata nella cache, altrimenti la recupererà dal server remoto e salverà il suo contenuto nella cache per richieste future.
In questo articolo dimostreremo come configurare il clustering di calamari a due nodi (server proxy) utilizzando un pacemaker su un sistema CentOS 7 o RHEL 7.
Di seguito sono riportati i dettagli del mio laboratorio che ho utilizzato per questo articolo,
- Squid Server 1 (squid01.linuxtechi.lan) – 192.168.1.21 – CentOS 7 / RHEL 7 minimo
- Squid Server 2 (squid02.linuxtechi.lan) – 192.168.1.22 – CentOS 7 minimo / RHEL 7
- Squid Server VIP – 192.168.1.20
- Firewall abilitato
- SELinux abilitato
Fase:1) Aggiungi il nome host nel file /etc/hosts e applica tutti gli aggiornamenti
Aggiungi le seguenti righe sul file /etc/hosts di entrambi i server squid.
192.168.1.21 squid01.linuxtechi.lan squid01 192.168.1.22 squid02.linuxtechi.lan squid02
Installa tutti gli aggiornamenti usando il comando sotto yum update e quindi riavvia i nodi
[[email protected] ~]# yum update -y && reboot [[email protected] ~]# yum update -y && reboot
Passaggio:2) Installa i pacchetti Pacemaker e agenti di scherma su entrambi i server squid
Esegui il seguente comando yum su entrambi i server per installare pacemaker, pc e pacchetti di scherma,
[[email protected] ~]# yum install pcs pacemaker fence-agents-all -y [[email protected] ~]# yum install pcs pacemaker fence-agents-all -y
Una volta installati i pacchetti sopra su entrambi i server, avviare e abilitare il servizio pacemaker (pcsd) utilizzando i comandi seguenti,
[[email protected] ~]# systemctl start pcsd.service [[email protected] ~]# systemctl enable pcsd.service [[email protected] ~]# systemctl start pcsd.service [[email protected] ~]# systemctl enable pcsd.service
Poiché nella configurazione del mio giro il servizio firewall del sistema operativo è in esecuzione e abilitato, quindi configura le regole del firewall per l'alta disponibilità o il servizio di clustering, esegui il seguente "firewall-cmd "comandi sui totani,
[[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]2 ~]#
Fase:3) Autorizza i server di calamari e forma un gruppo di calamari
Per formare un cluster entrambi i nodi/server dovrebbero autorizzarsi, impostiamo prima la password di “hacluster ” utente,
[[email protected] ~]# echo "password_here" | passwd --stdin hacluster [[email protected] ~]# echo "password_here" | passwd --stdin hacluster
Ora usa la seguente "autenticazione cluster per pc ” comando da uno qualsiasi dei server squid per autorizzare entrambi i server utilizzando credenziali hacluster.
[[email protected] ~]# pcs cluster auth squid01.linuxtechi.lan squid02.linuxtechi.lan Username: hacluster Password: squid02.linuxtechi.lan: Authorized squid01.linuxtechi.lan: Authorized [[email protected] ~]#
Utilizzare di seguito "configurazione del cluster di pc " comando da qualsiasi nodo per formare un cluster, nel mio caso lo sto eseguendo da squid01 e il nome del mio cluster è "squid_cluster ”
[[email protected] ~]# pcs cluster setup --start --name squid_cluster squid01.linuxtechi.lan squid02.linuxtechi.lan
L'output del comando precedente dovrebbe essere qualcosa di simile al seguente:
Abilita il servizio cluster pcs in modo che venga avviato automaticamente durante il riavvio, esegui il comando seguente da qualsiasi server squid
[[email protected] ~]# pcs cluster enable --all squid01.linuxtechi.lan: Cluster Enabled squid02.linuxtechi.lan: Cluster Enabled [[email protected] ~]#
Utilizza i comandi seguenti per verificare lo stato del cluster,
[[email protected] ~]# pcs cluster status [[email protected] ~]# pcs status
Passaggio:4) Installa il pacchetto Squid su entrambi i server e disabilita la scherma
Esegui il seguente comando yum su entrambi i server per installare i pacchetti squid (server proxy),
[[email protected] ~]# yum install squid -y [[email protected] ~]# yum install squid -y
Consenti la porta squid (3128) nel firewall del sistema operativo utilizzando il seguente comando
[[email protected] ~]# firewall-cmd --permanent --add-service=squid success [[email protected] ~]# firewall-cmd --reload success [[email protected] ~]# [[email protected] ~]# firewall-cmd --permanent --add-service=squid success [[email protected] ~]# firewall-cmd --reload success [[email protected] ~]#
Nel mio laboratorio non ho alcun agente o dispositivo di scherma, quindi lo sto disabilitando utilizzando i comandi sottostanti,
[[email protected] ~]# pcs property set stonith-enabled=false [[email protected] ~]# pcs property set no-quorum-policy=ignore [[email protected] ~]#
Passaggio:5) Configura le risorse del cluster di calamari e il gruppo di cluster
Nella mia configurazione di laboratorio ho due dischi condivisi di dimensioni 1 GB e 12 GB, questi dischi sono assegnati a entrambi i server.
Nel cluster monteremo il /etc/squid (es. file di configurazione squid) file system su disco da 1 GB e "/var/spool/squid ” (cioè la directory squid cache) verrà montato su un disco da 12 GB
- /dev/sdb (disco da 1 GB) – /etc/squid
- /dev/sdc (disco da 12 GB) – /var/spool/squid
Poiché questi dischi sono visibili su entrambi i server squid, quindi crea una partizione su /dev/sdb e /dev/sdc usando il comando fdisk da uno dei server squid e quindi formattali con il file system xfs usando il comando mkfs.xfs
Attualmente tutti i file di configurazione di squid si trovano nella cartella locale /etc/squid, copia i dati dal filesystem locale /etc/squid sul disco condiviso (/dev/sdb1)
[roo[email protected] ~]# mount /dev/sdb1 /mnt/ [[email protected] ~]# cp -av /etc/squid/* /mnt/ [[email protected] ~]# umount /mnt/
Ora crea due risorse del filesystem, una per /etc/squid e una per /var/spool/squid
Esegui il seguente "crea risorse pcs " comando da uno qualsiasi dei server squid per creare una risorsa del file system, nel mio caso prendendo il nome della risorsa del file system come "squidfs1 ” &“squidfs2 " e il nome del gruppo come "squidgrp ”
[[email protected] ~]# pcs resource create squidfs1 Filesystem device=/dev/sdb1 directory=/etc/squid fstype=xfs --group squidgrp [[email protected] ~]# pcs resource create squidfs2 Filesystem device=/dev/sdc1 directory=/var/spool/squid fstype=xfs --group squidgrp [[email protected] ~]#
Definisci la risorsa squid (servizio systemd) utilizzando il comando pcs Resource, esegui il comando sottostante da qualsiasi server squid
[[email protected] ~]# pcs resource create proxy systemd:squid op monitor interval=10s --group squidgrp [[email protected] ~]#
Definisci squid vip per il tuo cluster, nel mio caso userò "192.168.1.20 " come squid vip , questo IP fluttuerà tra questi server, gli utenti finali o i client squid utilizzeranno questo IP come IP del server proxy squid durante la configurazione delle impostazioni proxy e utilizzeranno anche la porta 3128 squid predefinita.
[[email protected] ~]# pcs resource create squid_vip ocf:heartbeat:IPaddr2 ip=192.168.1.20 cidr_netmask=24 op monitor interval=30s --group squidgrp [[email protected] ~]#
Ora verifica se tutte le risorse del cluster sono state avviate o meno. Esegui "stato pc ” comando da qualsiasi server squid
[[email protected] ~]# pcs status Cluster name: squid_cluster Stack: corosync Current DC: squid01.linuxtechi.lan (version 1.1.19-8.el7_6.4-c3c624ea3d) - partition with quorum Last updated: Wed Mar 27 06:59:59 2019 Last change: Wed Mar 27 06:59:02 2019 by root via cibadmin on squid01.linuxtechi.lan 2 nodes configured 4 resources configured Online: [ squid01.linuxtechi.lan squid02.linuxtechi.lan ] Full list of resources: Resource Group: squidgrp squidfs1 (ocf::heartbeat:Filesystem): Started squid01.linuxtechi.lan squidfs2 (ocf::heartbeat:Filesystem): Started squid01.linuxtechi.lan proxy (systemd:squid): Started squid01.linuxtechi.lan squid_vip (ocf::heartbeat:IPaddr2): Started squid01.linuxtechi.lan Daemon Status: corosync: active/enabled pacemaker: active/enabled pcsd: active/enabled [[email protected] ~]#
Come possiamo vedere sopra, tutte le risorse vengono avviate sul server squid01. Verifichiamo lo stato di Squid Service e squid vip
[[email protected] ~]# systemctl status squid [[email protected] ~]# ip a s
L'output dei due comandi precedenti dovrebbe essere qualcosa di simile al seguente:
Questo è tutto da questo articolo, ora puoi configurare gli ACL adatti al tuo ambiente nel file /etc/squid.conf. Si prega di condividere feedback e commenti.