GNU/Linux >> Znalost Linux >  >> Linux

Nastavení linuxového clusteru s Keepalived:Základní konfigurace

V prvním článku této série, Používání Keepalived pro správu jednoduchého převzetí služeb při selhání v clusterech, jste se dozvěděli o Keepalived a VRRP protokol pro selhání IP adresy z jednoho stroje na druhý. Nyní je čas ušpinit si ruce a dozvědět se o instalaci a základní konfiguraci Keepalived . V tomto článku nastavíte Keepalived povolit převzetí služeb při selhání mezi dvěma servery. Začněme!

Udržovaná instalace

Keepalived je k dispozici ve standardních repozitářích balíčků a lze jej snadno nainstalovat pomocí 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)

Měli byste také vědět, jak zkompilovat Keepalived ze zdrojového kódu. Keepalived je aktivně udržovaný projekt a pravidelně dostává nové funkce a opravy chyb, které nemusí být ve verzi správce balíčků, když je potřebujete. Při psaní této série jsem dokonce narazil na chyby s aktuální verzí v repozitářích balíčků a musel jsem postupovat přesně podle tohoto postupu, abych mohl používat nejnovější verzi 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)

Základní konfigurace

Symboly sítě v diagramech dostupné prostřednictvím VRT Network Equipment Extension, CC BY-SA 3.0.

Konfigurační soubor pro Keepalived je umístěn na /etc/keepalived/keepalived.conf . Jak je uvedeno v předchozím článku Keepalived dokáže více než jen implementovat základní VRRP . To vede ke konfiguračnímu souboru, který se může zdát skličující, když se podíváte na manuálovou stránku Keepalived. Jednoduché topologie, jako je ta výše, však lze dosáhnout s minimální konfigurací.

Nejzákladnější Keepalived konfigurace umožňuje sdílenou IP adresu mezi dvěma servery. Ve výše uvedené topologii je server1 hlavní server a server2 je záloha. Konfigurace pro oba servery je jednoduchá.

Konfigurace serveru 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
        }
}

Konfigurace serveru 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
        }
}

Konfigurační směrnice by měly být zřejmé z jejich konvencí pojmenování, ale projdu si každou z nich:

  • vrrp_instance definuje individuální instanci VRRP protokol běžící na rozhraní. Tuto instanci jsem libovolně pojmenoval VI_1.
  • state definuje počáteční stav, ve kterém by instance měla začít.
  • interface definuje rozhraní, které VRRP běží dál.
  • virtual_router_id je jedinečný identifikátor, o kterém jste se dozvěděli v prvním článku této série.
  • priority je inzerovaná priorita, o které jste se dozvěděli v prvním článku této série. Jak se dozvíte v dalším článku, priority lze upravit za běhu.
  • advert_int určuje frekvenci, s jakou jsou reklamy odesílány (v tomto případě 1 sekunda).
  • authentication specifikuje informace nezbytné pro servery účastnící se VRRP k vzájemné autentizaci. V tomto případě je definováno jednoduché heslo.
  • virtual_ipaddress definuje IP adresy (může jich být více), které VRRP je zodpovědný za.

Pokud používáte hostitelský firewall, jako je firewalld nebo iptables , pak musíte přidat nezbytná pravidla pro povolení provozu protokolu IP 112. V opačném případě Keepalived reklamní metoda nebude fungovat. Konfigurace hostitelského firewallu je mimo rozsah tohoto článku, ale určitě si přečtěte některé z dalších článků Enable Sysadmin o iptables a firewalld, kde najdete další informace.

S výše uvedenou konfigurací můžete spustit Keepalived na obou serverech pomocí systemctl start keepalived a sledujte IP adresy na každém počítači. Všimněte si, že server1 se spustil jako VRRP master a vlastní sdílenou IP adresu (192.168.122.200), zatímco IP adresy serveru2 zůstávají nezměněny:

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

Jakmile potvrdíte, že Keepalived se spustil na obou serverech a server1 je aktivní hlavní server, můžete vyzkoušet funkci převzetí služeb při selhání „přehozením“ VIP na druhý server. Zastavením Keepalived na serveru1 přestane aktivní hlavní server odesílat reklamy a server2 převezme 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

A to je vše! Nyní máte základní pár redundantních serverů.

Monitorování provozu VRRP

Jak je uvedeno v prvním článku série, porozumění chování VRRP na úrovni protokolu je důležité, abyste jej mohli správně nakonfigurovat a odstraňovat problémy. Pokud jste si přečetli předchozí články Enable Sysadmin o analýze síťového provozu, pravděpodobně vám vyhovuje používat tcpdump . Zachycení paketů příkazového řádku pomocí tcpdump může odhalit vše, co potřebujete vědět o vašem VRRP konfigurace, včetně VRID a priority aktivního masteru:

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

Vyzkoušejte si to sami spuštěním tcpdump při překlápění VIP tam a zpět mezi dvěma servery.

Koneckonců

Tento článek vás provede základy Keepalived instalace a konfigurace. Naučili jste se nainstalovat Keepalived prostřednictvím správce balíčků a kompilací ze zdrojového kódu a vytvořili jste základní Keepalived konfigurace umožňující VIP převzetí služeb při selhání mezi dvěma hostiteli. Nakonec jste tuto konfiguraci otestovali a použili tcpdump dodržovat VRRP provoz. V dalším článku této série vás provedu některými pokročilými Keepalived konfigurace.

[ Potřebujete se dozvědět více o správě systému Linux? Zvažte absolvování kurzu správy systému Red Hat. ]


Linux
  1. Služba OS Linux „o2cb“

  2. Visual Basic .Net v Linuxu

  3. Nastavení subdomény s Apache na Linuxu

  1. Základní konfigurace PHP 7 a Nginx na Ubuntu 16.04 Linux

  2. Odstraňování problémů s Linuxem:Nastavení TCP listener pomocí ncat

  3. Nastavení přesměrování portů v Linuxu pomocí ncat

  1. Nainstalujte Linux pomocí LVM

  2. Nahradit du prachem v Linuxu

  3. JQ Command v Linuxu s příklady