Ebben a cikkben megvizsgáljuk a feladatátvételi konfiguráció konfigurálását két tintahal-proxykből, hogy a felhasználók a vállalati hálózatból elérhessék az internetet egyszerű terheléselosztással a Round Robin DNS segítségével. Feladatátvételi konfiguráció létrehozásához egy HA fürtöt hozunk létre a következő felhasználással: keepalived.
HA klaszter - Ez egy beágyazott redundanciával rendelkező kiszolgálók csoportja, amelyet úgy alakítottak ki, hogy minimalizálják az alkalmazás leállását, amikor a csoport egyik tagja hardverrel vagy szoftverrel küszködik. Ezen meghatározás alapján a HA klaszter működéséhez a következőket kell végrehajtani:
- A szerverek állapotának ellenőrzése;
- Erőforrások automatikus váltása szerver hiba esetén;
Mindkét feladat lehetővé teszi a továbbélést. Keepalived - egy rendszerdémon Linux rendszereken, amely lehetővé teszi a szolgáltatás hibatűrését és a terheléselosztást. A hibatolerancia a „lebegő” IP-cím miatt érhető el, amely a fő-cím meghibásodása esetén a biztonsági mentési szerverre vált. A protokollt az IP-címek automatikus váltására használják a megőrzött kiszolgálók között VRRP (Virtuális útválasztó redundancia protokoll), szabványosítva, leírva az RFC-ben (https://www.ietf.org/rfc/rfc2338.txt).
Tartalom:
- VRRP alapelvek
- Telepítse és konfigurálja a folyamatosan kezelt CentOS-on
- Keepalived: figyelemmel kíséri az alkalmazás és az interfész állapotát
- Keepalived: feladatátvételi tesztelés
VRRP alapelvek
Először is figyelembe kell vennie a VRRP elméletét és alapvető meghatározásait.
- VIP - virtuális IP, virtuális IP-cím, amely hiba esetén automatikusan válthat a szerverek között;
- Master - a szerver, amelyen a VIP jelenleg aktív;
- Biztonsági mentés - szerverek, amelyekre a VIP átvált, ha a varázsló megbukik;
- VRID - Virtuális útválasztó azonosító, a közös virtuális IP-vel (VIP) egyesített szerverek alkotják az úgynevezett virtuális útválasztót, amelynek egyedi azonosítója 1 és 255 közötti értéket vesz fel. A szerver egyidejűleg több VRID-ből állhat, egyedi virtuális IP-címekkel minden egyes VRID-hez.
A munka általános algoritmusa:
- A főkiszolgáló megadott időközönként elküldi a VRRP csomagokat a fenntartott multicast (multicast) sugárzási címre a 224.0.0.18 címre, és minden szolgakiszolgáló hallgatja ezt a címet. A csoportos küldés akkor történik, amikor a feladó egy, és sok címzett is lehet.
Fontos. Ahhoz, hogy a szerverek multicast módban működjenek, a hálózati eszközöknek támogatniuk kell a multicast forgalom továbbítását. - Ha a Slave szerver nem fogad csomagokat, akkor elindítja a Mester kiválasztási eljárást, és ha prioritásként vált a Mester állapotba, aktiválja a VIP-t és mérgezi ingyenes ARP. Az ingyenes ARP egy speciális ARP válasz, amely frissíti a csatlakoztatott kapcsolók MAC tábláját, hogy tájékoztassa a virtuális IP cím és a Mac cím tulajdonjogának megváltozásáról a forgalom átirányításához..
Telepítse és konfigurálja a folyamatosan kezelt CentOS-on
A telepítésre és a konfigurálásra egy példa kerül sor proxy-szerv01 szerverek és proxy-serv02 a Centos 7-en, ha a Squid telepítve van. A sémánkban a terheléskiegyenlítés (balancing) legegyszerűbb módszerét - Round Robin DNS - fogjuk használni. Ez a módszer feltételezi, hogy egy névhez több DNS-cím van regisztrálva a DNS-ben, és az ügyfelek kérésre egy-egy címet kapnak, majd egy-egy címet. Ezért két virtuális IP-címre lesz szükségünk, amelyeket azonos névvel regisztrálunk a DNS-ben, és amelyekkel az ügyfelek végül kapcsolatba lépnek. Hálózati diagram:
Minden Linux szervernek két fizikai hálózati interfésze van: az eth1 fehér IP-címmel és internet-hozzáféréssel, és az eth0 a helyi hálózaton.
A következőket használjuk valódi szerver IP-címekként:
192.168.2.251 - proxy-server01 számára
192.168.2.252 - a proxy-server02 számára
A következőket használják virtuális IP-címekként, amelyek hiba esetén automatikusan átváltanak a kiszolgálók között:
192.168.2.101
192.168.2.102
Telepítse a Keepalived csomagot mindkét szerverre a következő paranccsal:
yum install keepalived
Miután a telepítés mindkét kiszolgálón befejeződött, szerkessze a konfigurációs fájlt
/etc/keepalived/keepalived.conf
Színesen kijelölt vonalak különböző paraméterekkel:
a proxy-szerv01 szerverre | a proxy-serv02 szerveren |
A lehetőségeket részletesebben elemezzük:
- vrrp_instance - VRRP példányt meghatározó szakasz;
- state - kezdeti állapot indításkor;
- interfész - az a felület, amelyen a VRRP futni fog;
- virtual_router_id - a VRRP példány egyedi azonosítójának egyeznie kell minden kiszolgálón;
- prioritás - beállítja a prioritást a MASTER kiválasztásakor, a legmagasabb prioritású kiszolgáló pedig MASTER lesz;
- virtual_ipaddress - azon virtuális IP-címek blokkja, amelyek aktívak lesznek a kiszolgálón MASTER állapotban. Egyeznie kell a VRRP-példány összes szerverén.
Ha a jelenlegi hálózati konfiguráció nem engedélyezi a csoportos küldést, a keepalivednek lehetősége van az unicast használatára, azaz küldje el a VRRP csomagokat közvetlenül a lista által meghatározott kiszolgálóknak. Az unicast használatához a következőkre van szüksége:
- unicast_src_ip - a VRRP csomagok forráscíme;
- unicast_peer - azon kiszolgálók IP-címeinek blokkja, amelyekre a VRPP-csomagokat elküldik.
Így a konfigurációnk két VRRP példányt határoz meg, a proxy_ip1 és a proxy_ip2. Normál működés közben a proxy-szerv01 szerver MASTER lesz a virtuális IP 192.168.2.101 és BACKUP a 192.168.2.102 számára, a proxy-serv02 szerver pedig MASTER lesz a virtuális IP 192.168.2.102 számára, és BACKUP a 192.168.2.101 virtuális IP számára..
Ha a kiszolgálón aktiválva van egy tűzfal, akkor az iptables használatával engedélyeznie kell a multicast forgalom és a vrrp protokoll engedélyező szabályait:
iptable -A INPUT -i eth0 -d 224.0.0.0/8 -j ACCEPT
iptable -A INPUT -p vrrp -i eth0 -j ACCEPT
Aktiválja az induló vállalkozásokat, és mindkét kiszolgálón elindítja a folyamatos szolgáltatást:
A systemctl lehetővé teszi a folyamatos élést
a systemctl elindul
A folyamatosan elindított szolgáltatás elindítása után a konfigurációs fájlból virtuális IP-k lesznek hozzárendelve az interfészekhez. Lássuk az aktuális IP-címeket az eth0 szerver felületén:
ip show eth0
A proxy-szerv01 szerveren:
A proxy-serv02 szerveren:
Keepalived: figyelemmel kíséri az alkalmazás és az interfész állapotát
A VRRP protokollnak köszönhetően figyelemmel lehet kísérni a szerver állapotát, például a szerver teljes fizikai meghibásodása vagy a szerver vagy a kapcsoló hálózati portja esetén. Más problematikus helyzetek azonban lehetségesek:
- hiba a proxy szerver szolgáltatásban - Azok az ügyfelek, akik a szerver virtuális címére jutnak, üzenetet kapnak a böngészőben azzal a hibával, hogy a proxy szerver nem érhető el.
- a második internetes interfész tagadása - A kiszolgáló virtuális címére érkező ügyfelek üzenetet kapnak a böngészőben azzal a hibával, hogy a kapcsolatot nem sikerült létrehozni.
A fenti helyzetek kezelésére a következő lehetőségeket használjuk:
- track_interface - az interfészek állapotának megfigyelése; a VRRP-példányt FAULT állapotba helyezi, ha a felsorolt felületek egyike DOWN állapotban van;
- track_script - megfigyelés egy olyan szkript segítségével, amelynek 0-nak kell visszatérnie, ha az ellenőrzés sikeresen befejeződött, 1 - ha az ellenőrzés sikertelen.
Frissítse a konfigurációt, vegye fel az eth1 interfész figyelését (alapértelmezés szerint a VRRP példány ellenőrzi azt a felületet, amelyhez van kötve, azaz a jelenlegi eth0 konfigurációban):
track_interface eth1
irányelv track_script futtat egy szkriptet a blokkban meghatározott paraméterekkel vrrp_script, amelynek formátuma a következő:
vrrp_script szkript intervallum - a szkript gyakorisága, alapértelmezett 1 másodperces esés - hányszor a szkript visszatért egy nullán kívüli értéket, amelyen átválthat a FAULT állapot növekedésére - hányszor a szkript visszatért nulla értékre, amikor kilép a FAULT időtúllépési állapotból - időtúllépés mindaddig, amíg a szkript eredményt nem kap, amely után nem nulla értéket ad vissza. súly - az az érték, amellyel a szerver prioritása csökken a FAULT állapotba való átmenet esetén. Az alapértelmezett érték 0, ami azt jelenti, hogy a kiszolgáló a sikertelen szkriptfuttatás után a fall paraméter által megadott számú alkalommal vált át a FAULT állapotba.
Konfigurálja a kalmárok teljesítményének figyelését. A következő paranccsal ellenőrizheti, hogy a folyamat aktív:
tintahal-ellenőrzés
hozzon létre egy vrrp_script, 3 másodpercenként a végrehajtás gyakoriságának paramétereivel. Ezt a blokkot a blokkokon kívül definiálják. vrrp_instance.
vrrp_script chk_squid_service script "/ usr / sbin / squid -k check" 3. intervallum
Add hozzá a szkriptünket a megfigyeléshez, mindkét blokkban vrrp_instance:
track_script chk_squid_service
Most, ha a Squid proxy szolgáltatás meghiúsul, a virtuális IP cím másik szerverre vált.
Felveheti további tevékenységek amikor a szerver állapota megváltozik.
Ha a Squid úgy van beállítva, hogy bármilyen felületről kapjon kapcsolatot, azaz http_port 0.0.0.0 128, akkor a virtuális IP-cím váltásakor nem lesznek problémák, a Squid elfogadja az új cím kapcsolatait. Ha például meghatározott IP-címek vannak konfigurálva:
http_port 192.168.2.101 128 http_port 192.168.2.102haps128
akkor a Squid nem fogja tudni, hogy új cím jelent meg a rendszerben, ahol meg kell hallgatnia az ügyfelek kéréseit. Az ilyen helyzetek kezelésére, amikor a virtuális IP-cím cseréjekor további műveleteket kell végrehajtania, a keepalived tartalmazza a szkript végrehajtásának lehetőségét, amikor egy esemény történik, amikor a kiszolgáló állapota megváltozik, például MASTER-ről BACKUP-ra, vagy fordítva. Ez a következő lehetőséggel valósul meg:
értesítse a "futtatható fájl elérési útját"
Keepalived: feladatátvételi tesztelés
A virtuális IP beállítása után ellenőrizni fogjuk, hogy a hiba feldolgozása hogyan működik megfelelően. Az első teszt az egyik szerver meghibásodásának szimulálása. Lekapcsoljuk a hálózatot a proxy-szerv01 szerver eth0 belső hálózati interfészéről, miközben leállítja a VRRP csomagok küldését, és a proxy-serv02 szervernek aktiválnia kell a 192.168.2.101 virtuális IP-címet. Az eredményt a következő paranccsal ellenőrizzük:
ip show eth0
A proxy-szerv01 szerveren:
A proxy-serv02 szerveren:
Ahogy az várható volt, a proxy-serv02 szerver aktiválja a 192.168.2.101 virtuális IP-címet. Lássuk, mi történt a naplókban a következő paranccsal:
macska / var / napló / üzenetek | grep - én mindig megőriztem
a proxy-szerv01 szerverre | a proxy-serv02 szerveren |
Keepalived_vrrp [xxxxx]: A rendszermag jelentést készít: eth0 interfész lefelé Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) Hibás állapot beírása Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) VIP protokollok eltávolítása. Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) Most FAULT állapotban | Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) Áttérés a mesterállamra |
A Keepalived jelet kap arról, hogy az eth0 interfész DOWN állapotban van, és a proxy_ip1 VRRP példányát FAULT állapotba helyezi, felszabadítva a virtuális IP címeket. | A Keepalived a proxy_ip1 VRRP példányát MASTER állapotba helyezi, aktiválja a 192.168.2.101 címet az eth0-on és elküldi az ingyenes ARP-t.. |
És ellenőrizni fogjuk, hogy miután a proxy-szerv01 kiszolgálón az eth0 interfész csatlakozik a hálózathoz, a 192.168.2.101 virtuális IP visszavált.
a proxy-szerv01 szerverre | a proxy-serv02 szerveren |
Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) kényszeríti új MASTER választást Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) Áttérés a MASTER STATE államra VIP. Keepalived_vrrp [xxxxx]: Ingyenes ARP küldése az eth0-on a 192.168.2.101-hez | Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) Magasabb prioritású hirdetés érkezett 255-nél, a miénk 100 Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) A Biztonsági Mentési Állam beírása. |
A Keepalived jelet kap az eth0 interfész visszaállításához, és új MASTER választást indít a proxy_ip1 VRRP példányához. A MASTER állapotba való áttérés után aktiválja a 192.168.2.101 címet az eth0 interfészen, és ingyenes ARP-t küld.. | A Keepalived megkapja a proxy_ip1 VRRP példányának elsőbbségi csomagját, a proxy_ip1-et BACKUP állapotba helyezi, és felszabadítja a virtuális IP-címeket. |
A második teszt a külső hálózati interfész meghibásodásának szimulálása, ennek elvégzéséhez válassza le a proxy-szerv01 szerver külső hálózati interfészét a hálózatról. A naplók alapján ellenőrizzük az ellenőrzés eredményét.
a proxy-szerv01 szerverre | a proxy-serv02 szerveren |
Keepalived_vrrp [xxxxx]: A rendszermag jelentést készít: eth1 interfész lefelé Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) Hibás állapot beírása Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) VIP protokollok eltávolítása. Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) Most FAULT állapotban | Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) Átmenet a MASTER STATE-hez Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) A MASTER STATE belépése Keepalived_vrrp [xxxxx]: VRRP_Insts. Proxy. Keepalived_vrrp [xxxxx]: Ingyenes ARP küldése az eth0-on a 192.168.2.101-hez |
A Keepalived jelet kap arról, hogy az eth1 interfész DOWN állapotban van, és a proxy_ip1 VRRP példányát FAULT állapotba helyezi, felszabadítva a virtuális IP címeket. | A Keepalived a proxy_ip1 VRRP példányát MASTER állapotba helyezi, aktiválja a 192.168.2.101 címet az eth0-on és elküldi az ingyenes ARP-t.. |
A harmadik ellenőrzés a Squid proxy szolgáltatás meghibásodásának utánozása, ehhez manuálisan hagyjuk a szolgáltatást a következő paranccsal: systemctl tintahal
A naplók alapján ellenőrizzük az ellenőrzés eredményét.
a proxy-szerv01 szerverre | a proxy-serv02 szerveren |
Keepalived_vrrp [xxxxx]: VRRP_Script (chk_squid_service) nem sikerült Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) Hibaállapot megadása Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1). Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) Most FAULT állapotban | Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) Átmenet a MASTER STATE-hez Keepalived_vrrp [xxxxx]: VRRP_Instance (proxy_ip1) A MASTER STATE belépése Keepalived_vrrp [xxxxx]: VRRP_Insts. Proxy. Keepalived_vrrp [xxxxx]: Ingyenes ARP küldése az eth0-on a 192.168.2.101-hez |
A tintahal-proxy szolgáltatás-ellenőrzési szkript sikertelen. A Keepalived a proxy_ip1 VRRP példányát FAULT állapotba helyezi, felszabadítva a virtuális IP címeket. | A Keepalived a proxy_ip1 VRRP példányát MASTER állapotba helyezi, aktiválja a 192.168.2.101 címet az eth0-on és elküldi az ingyenes ARP-t.. |
Mindhárom ellenőrzés sikeresen befejeződött, és mindig megfelelően konfigurálva vannak. A cikk folytatásaként a Pacemaker használatával konfiguráljuk a HA fürtöt, és megvizsgáljuk ezen eszközök sajátosságait..
Végleges konfigurációs fájl /etc/keepalived/keepalived.conf a szerver számára proxy-serv01:
vrrp_script chk_squid_service script "/ usr / sbin / squid -k check" intervallum 3 vrrp_instance proxy_ip1 state MASTER interfész eth0 virtual_router_id 1. prioritás 255 virtual_ipaddress 192.168.2.101/24 dev eth0 label eth1 track_interface eth1 track_interface eth1 track1interface eth1 track_interface eth1 vrrp_instance proxy_ip2 állapot BACKUP interfész eth0 virtual_router_id 2 prioritás 100 virtuális_cím cím 192.168.2.102/24 dev eth0 címke eth0: 2 track_interface eth1 track_script chk_squid_service
Végleges konfigurációs fájl /etc/keepalived/keepalived.conf a szerver számára proxy-serv02:
vrrp_script chk_squid_service script "/ usr / sbin / squid -k check" intervallum 3 vrrp_instance proxy_ip1 állapot BACKUP interfész eth0 virtual_router_id 1 prioritás 100 virtuális_cím cím 192.168.2.101/24 dev eth0 label eth1 eth1 eth1_et1_et1_interjú eth1_terület eth1_terület et1_interjú eth1_interjú eth1_interjú eth1_interjú eth1_interjú eth1_interjú eth1_1_1_1__1_1_1_1_1_1_1_1_1_1_1_1__1_1__1_1_0_1_1 _1 vrrp_instance proxy_ip2 állapot MASTER interfész eth0 virtual_router_id 2 prioritás 255 virtual_ipaddress 192.168.2.102/24 dev eth0 label eth0: 2 track_interface eth1 track_script chk_squid_service