GNU/Linux >> Linux Esercitazione >  >> Linux

Configurazione di un cluster Linux con Keepalived:configurazione di base

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 del VRRP 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 che VRRP 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 a VRRP autenticarsi tra loro. In questo caso viene definita una semplice password.
  • virtual_ipaddress definisce gli indirizzi IP (possono essercene più) che VRRP è 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. ]


Linux
  1. Configurazione di base di PHP 7 e Nginx su Ubuntu 16.04 Linux

  2. Risoluzione dei problemi di Linux:configurazione di un listener TCP con ncat

  3. Configurazione dei reindirizzamenti delle porte in Linux con ncat

  4. Comando JQ in Linux con esempi

  5. Servizio del sistema operativo Linux "o2cb"

15 Comando Linux ps con esempi

14 Comandi Tar di base in Linux con esempi per i principianti

Bilanciamento del carico con HAProxy, Nginx e Keepalived in Linux

Introduzione ai file di configurazione dei pupazzi con esempi su Linux

Configurazione di un server NFS con Turnkey Linux

Impostazione del fuso orario in Linux