Nel primo articolo di questa serie, Utilizzo di Keepalived per la gestione del failover semplice nei cluster, hai imparato a conoscere Keepalived
e il VRRP
protocollo per il failover di un indirizzo IP da una macchina all'altra. Ora è il momento di sporcarsi le mani e conoscere l'installazione e la configurazione di base di Keepalived
. In questo articolo imposterai Keepalived
per abilitare il failover tra due server. Iniziamo!
Installazione conservata
Keepalived
è disponibile all'interno dei repository di pacchetti standard ed è facilmente installabile utilizzando yum
:
[root@server1 ~]# yum install -y keepalived
[root@server1 ~]# keepalived --version
Keepalived v2.0.10 (11/12,2018)
[root@server1 ~]# systemctl status keepalived
keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disab
Active: inactive (dead)
Dovresti anche sapere come compilare Keepalived
dal codice sorgente. Keepalived
è un progetto gestito attivamente e riceve regolarmente nuove funzionalità e correzioni di bug che potrebbero non essere nella versione del gestore pacchetti quando ne hai bisogno. Ho persino riscontrato dei bug con la versione corrente nei repository dei pacchetti durante la scrittura di questa serie e ho dovuto seguire questa procedura esatta per utilizzare l'ultima versione di Keepalived
.
# Install prerequisites
yum install -y gcc openssl-devel
# Download the latest version of the code. Be sure to check the downloads page for the most recent version:https://www.keepalived.org/download.html
[root@localhost ~]# wget https://www.keepalived.org/software/keepalived-2.0.20.tar.gz
# Extract the code
[root@localhost ~]# tar -xf keepalived-2.0.20.tar.gz
# Run the configure scripts
[root@localhost ~]# cd keepalived-2.0.20
[root@localhost keepalived-2.0.20]# ./configure
# Build and install keepalived
[root@localhost keepalived-2.0.20]# make
[root@localhost keepalived-2.0.20]# make install
# Test your installation
[root@localhost keepalived-2.0.20]# keepalived --version
Keepalived v2.0.20 (01/22,2020)
Configurazione di base
Simboli di rete nei diagrammi disponibili tramite VRT Network Equipment Extension, CC BY-SA 3.0.
Il file di configurazione per Keepalived
si trova in /etc/keepalived/keepalived.conf
. Come discusso nell'articolo precedente, Keepalived
fa molto di più che implementare semplicemente il VRRP
di base . Questo porta a un file di configurazione che potrebbe sembrare scoraggiante se guardi la pagina man di Keepalived. Tuttavia, una topologia semplice come quella sopra può essere ottenuta con una configurazione minima.
Il più semplice Keepalived
la configurazione abilita un indirizzo IP condiviso tra due server. Nella topologia precedente, server1 è il master e server2 è il backup. La configurazione per entrambi i server è semplice.
Configurazione del server 1:
server1# cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 255
advert_int 1
authentication {
auth_type PASS
auth_pass 12345
}
virtual_ipaddress {
192.168.122.200/24
}
}
Configurazione del server 2:
server2# cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 254
advert_int 1
authentication {
auth_type PASS
auth_pass 12345
}
virtual_ipaddress {
192.168.122.200/24
}
}
Le direttive di configurazione dovrebbero essere ovvie dalle loro convenzioni di denominazione, ma analizzerò ognuna di esse:
vrrp_instance
definisce una singola istanza delVRRP
protocollo in esecuzione su un'interfaccia. Ho arbitrariamente chiamato questa istanza VI_1.state
definisce lo stato iniziale in cui l'istanza deve iniziare.interface
definisce l'interfaccia cheVRRP
continua.virtual_router_id
è l'identificatore univoco che hai appreso nel primo articolo di questa serie.priority
è la priorità pubblicizzata che hai appreso nel primo articolo di questa serie. Come imparerai nel prossimo articolo, le priorità possono essere modificate in fase di esecuzione.advert_int
specifica la frequenza con cui vengono inviati gli annunci (1 secondo, in questo caso).authentication
specifica le informazioni necessarie per i server che partecipano aVRRP
autenticarsi tra loro. In questo caso viene definita una semplice password.virtual_ipaddress
definisce gli indirizzi IP (possono essercene più) cheVRRP
è responsabile di.
Se stai utilizzando un firewall basato su host, come firewalld
o iptables
, quindi è necessario aggiungere le regole necessarie per consentire il traffico del protocollo IP 112. Altrimenti, Keepalived
Il metodo pubblicitario di non funzionerà. La configurazione di un firewall basato su host non rientra nell'ambito di questo articolo, ma assicurati di consultare alcuni degli altri articoli di Enable Sysadmin su iptables e firewalld per ulteriori informazioni.
Con la configurazione di cui sopra, puoi avviare Keepalived
su entrambi i server usando systemctl start keepalived
e osservare gli indirizzi IP su ciascuna macchina. Nota che il server1 è stato avviato come VRRP
master e possiede l'indirizzo IP condiviso (192.168.122.200), mentre gli indirizzi IP del server2 rimangono invariati:
server1# ip -brief address show
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.168.122.101/24 192.168.122.200/24 fe80::5054:ff:fe82:d66e/64
server2# ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.168.122.102/24 fe80::5054:ff:fe04:2c5d/64
Dopo aver confermato che Keepalived
è stato avviato su entrambi i server e server1 è il master attivo, è possibile testare la funzionalità di failover "spostando" il VIP sull'altro server. Interrompendo Keepalived
sul server1, il master attivo smette di inviare pubblicità e il server2 prende il controllo del VIP:
server1# systemctl stop keepalived
server1# ip -brief address show
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.168.122.101/24 fe80::5054:ff:fe82:d66e/64
server2# ip -brief address show
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.168.122.102/24 192.168.122.200/24 fe80::5054:ff:fe04:2c5d/64
E questo è tutto! Ora hai una coppia base di server ridondanti.
Monitoraggio del traffico VRRP
Come discusso nel primo articolo della serie, comprendere il comportamento a livello di protocollo di VRRP
è importante per poterlo configurare e risolvere correttamente. Se hai letto i precedenti articoli di Enable Sysadmin sull'analisi del traffico di rete, probabilmente ti senti a tuo agio con tcpdump
. Il pacchetto della riga di comando acquisisce utilizzando tcpdump
può rivelare tutto ciò che devi sapere sul tuo VRRP
configurazione, incluso il VRID e la priorità del master attivo:
server1# tcpdump proto 112
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
16:51:01.353224 IP 192.168.122.102 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 254, authtype simple, intvl 1s, length 20
16:51:02.353673 IP 192.168.122.102 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 254, authtype simple, intvl 1s, length 20
16:51:03.353753 IP 192.168.122.102 > 224.0.0.18: VRRPv2, Advertisement, vrid 51, prio 254, authtype simple, intvl 1s, length 20
^C
3 packets captured
3 packets received by filter
0 packets dropped by kernel
Provalo tu stesso eseguendo tcpdump
mentre fai scorrere il VIP avanti e indietro tra i due server.
Conclusione
Questo articolo ti ha spiegato i fondamenti di Keepalived
installazione e configurazione. Hai imparato a installare Keepalived
tramite il gestore di pacchetti e compilandolo dal sorgente, e hai creato un Keepalived
di base configurazione per abilitare il failover VIP tra due host. Infine, hai testato questa configurazione e utilizzato tcpdump
osservare VRRP
traffico. Nel prossimo articolo di questa serie, ti guiderò attraverso alcuni Keepalived
avanzati configurazioni.
[ Hai bisogno di saperne di più sull'amministrazione del sistema Linux? Prendi in considerazione un corso di amministrazione di sistema Red Hat. ]