Porównaj ceny domen i usług IT, sprzedawców z całego świata

Pacemaker: Jak skonfigurować domyślną bramę dla wirtualnego adresu IP?


Mam trzy hosty i trzy wirtualne adresy IP w tej samej podsieci. Nie ma znaczenia, który adres jest przypisany do którego węzła. Adresy IP są publicznie dostępne. Węzły to moduły równoważenia obciążenia, które dystrybuują żądania internetowe w wielu systemach zaplecza.
W przypadku, gdy wszystkie trzy węzły są podłączone do sieci, trzy adresy zostaną zrównoważone w trzech węzłach, tak aby każdy węzeł miał dokładnie jeden adres.
Jeśli do sieci podłączone są tylko dwa węzły, jeden węzeł ma jeden adres, a pozostałe dwa.
Jeśli tylko jeden węzeł jest podłączony do sieci, ma wszystkie trzy adresy.
Działa to świetnie z tą konfiguracją zasobów:
primitive IP_10 ocf:heartbeat:IPaddr2 params ip="x.x.x.10" cidr_netmask="24" nic="eth1"
primitive IP_11 ocf:heartbeat:IPaddr2 params ip="x.x.x.11" cidr_netmask="24" nic="eth1"
primitive IP_12 ocf:heartbeat:IPaddr2 params ip="x.x.x.12" cidr_netmask="24" nic="eth1"Rzecz w tym, że mam jedną bramę domyślną (x.x.x.1), którą należy skonfigurować na każdym węźle po przypisaniu jednego z adresów IP. Oczywiście nie ma możliwości skonfigurowania bramy domyślnej przed przypisaniem adresu.
Pierwszą rzeczą, jaką wypróbowałem, było ustawienie drugiego zasobu dla każdego adresu, ocf: heartbeat: Route:
primitive default_gw_1 ocf:heartbeat:Route params destination="default" device="eth1" gateway="x.x.x.1"
primitive default_gw_2 ocf:heartbeat:Route params destination="default" device="eth1" gateway="x.x.x.1"
primitive default_gw_3 ocf:heartbeat:Route params destination="default" device="eth1" gateway="x.x.x.1"a następnie połącz te zasoby w grupy:
group net_10 IP_10 default_gw_1
group net_11 IP_11 default_gw_2
group net_12 IP_12 default_gw_3Dopóki to działa, brama domyślna jest ustawiana poprawnie po przypisaniu adresu. W przypadku awarii wszystko nadal działa zgodnie z oczekiwaniami. Ten przykład pokazuje możliwą alokację zasobów po wyłączeniu Node1:
Node1: offline
Node2: net_10, net_11
Node3: net_12Problemy pojawiają się, gdy Node1 wraca do trybu online. Następnie jeden z zasobów w węźle 2, na przykład net_10, zostanie przeniesiony do węzła 1. Teraz menedżer zasobów ocf: heartbeat: Trasa jest zatrzymana w węźle 2, usuwa bramę domyślną i skutecznie zatrzymuje dostęp do węzła 2, ponieważ nie ma już Brama domyślna. Zatem pozostały adres na Node2 (net_11) nie jest już dostępny.
Następnie próbowałem naprawić menedżera zasobów ocf: heartbeat: Route, aby wyłączyć usuwanie tras. Wydaje się, że działa, ale wydaje się bardzo brzydki.
Przypuszczam, że musi być na to lepsze rozwiązanie. Jak mogę skonfigurować tak, aby brama domyślna pozostała zainstalowana na węźle, o ile ten węzeł ma przypisany co najmniej jeden adres IP?
(Pacemaker 1.1.7 na Debian Wheezy)
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Może być za późno, ale na wypadek, gdyby przydał się ktoś inny.
W takim przypadku powinieneś utworzyć tylko jeden GW, a następnie sklonować go na wszystkich swoich węzłach. Poniższy przykład ilustruje ten scenariusz przy użyciu
         pcs
składnia.
pcs cluster setup --name MyCluster node1 node2 node3 --startpcs cluster cib cluster_cfgpcs -f cluster_cfg property set stonith-enabled="false"pcs -f cluster_cfg resource create IP_10 ocf:heartbeat:IPaddr2 ip="x.x.x.10" cidr_netmask="24" nic="eth1"
pcs -f cluster_cfg resource create IP_20 ocf:heartbeat:IPaddr2 ip="x.x.x.11" cidr_netmask="24" nic="eth1"
pcs -f cluster_cfg resource create IP_30 ocf:heartbeat:IPaddr2 ip="x.x.x.12" cidr_netmask="24" nic="eth1"pcs -f cluster_cfg resource create default_gw ocf:heartbeat:Route destination="default" device="eth1" gateway="x.x.x.1"
pcs -f cluster_cfg resource clone default_gw pcs -f cluster_cfg constraint order IP_10 then default_gw-clone
pcs -f cluster_cfg constraint order IP_20 then default_gw-clone
pcs -f cluster_cfg constraint order IP_30 then default_gw-clonepcs -f cluster_cfg constraint colocation add IP_10 with IP_20 -1
pcs -f cluster_cfg constraint colocation add IP_10 with IP_30 -1
pcs -f cluster_cfg constraint colocation add IP_20 with IP_30 -1pcs cluster cib-push cluster_cfg

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się