Přidání uzlů do stávajícího clusteru PowerFlex může způsobit nestabilitu sítě
Shrnutí: Do stávajícího clusteru se přidávají nové uzly a dochází k častému odpojování.
Příznaky
Scénář
Při přidávání nových uzlů do sítě mohou být pozorovány rozsáhlé problémy s připojením. Problémy s konektivitou se mohou vyskytnout i mimo platformu PowerFlex.
Symptomy
Existují různé příznaky a každé pracoviště může obsahovat jeden nebo více z nich:
Zákazník nemusí být schopen odeslat příkaz ping na určité IP adresy z jednoho hostitele, ale může tak učinit z jiného hostitele.
Zákazník se nemusí připojit pomocí SSH k různým síťovým zařízením (například k přepínači).
Server nemusí být schopen navázat spojení s externími službami, jako je například rsyslog.
SDC mohou hlásit chyby přidělování soketů a odpojení:
2022-03-28 15:55:14.310000:4507407:NEW_SDC_CONNECTED WARNING New SDC connected. ID: c39eb4b2000000ca; IP: 192.168.192.239,192.168.176.239,192.168.168.239,192.168.184.239; GUID: 23D8FFD8-E3E3-4A68-9459-D6AFCB1480DF ... 2022-03-28 15:55:17.439000:4507422:OSCILLATION_COUNTER_PASSED_THRESHOLD WARNING SDC (Name: , ID: c39eb4b2000000ca) reports frequently exceeded socket allocation failures. Short window threshold (300 socket allocation failures in 60 seconds). 2022-03-28 15:55:17.439000:4507423:OSCILLATION_COUNTER_PASSED_THRESHOLD WARNING SDC (Name: , ID: c39eb4b2000000ca) reports frequently exceeded socket allocation failures. Medium window threshold (500 socket allocation failures in 3600 seconds). ... 2022-03-28 16:19:29.708000:4507849:SDC_DISCONNECTED WARNING SDC disconnected. ID: c39eb4b2000000ca; GUID: 23D8FFD8-E3E3-4A68-9459-D6AFCB1480DF
Pravděpodobně se vyskytnou události oddělení SDS spolu se stavovými varováními připojení:
2022-03-28 15:55:28.223000:4507431:SDS_DECOUPLED ERROR SDS: Sds-pdc1lfisnxbsn01.fnfis.com (id: b0abeb1300000000) decoupled. 2022-03-28 15:55:34.488000:4507433:CMATRIX_POLICY_BECAME_WORSE WARNING The inter-SDS connectivity health for Protection Domain ID: 7a1f601000000000 has changed from HEALTHY to REBUILD_ALLOWED
Stabilita byla obnovena, když byly nové systémy vypnuty.
Důsledky
K DU může dojít, pokud je chování závažné. Častější je oddělení SDS od úspěšných přebudování.
Příčina
U dalších uzlů byl překročen maximální počet položek ARP nakonfigurovaných na serveru.
Chcete-li zjistit aktuální nastavení protokolu ARP, spusťte následující příkaz:
sysctl -a | grep "net.ipv4.neigh.default.gc_thresh" net.ipv4.neigh.default.gc_thresh1 = 128 net.ipv4.neigh.default.gc_thresh2 = 512 net.ipv4.neigh.default.gc_thresh3 = 1024
Tyto informace budou také v sysctl.txt v balíčku protokolů:
$ grep "net.ipv4.neigh.default.gc_thresh" /path/to/server_directory/sysctl.txt net.ipv4.neigh.default.gc_thresh1 = 128 net.ipv4.neigh.default.gc_thresh2 = 512 net.ipv4.neigh.default.gc_thresh3 = 1024
Chcete-li zjistit, kolik položek ARP se aktuálně používá, spusťte následující příkaz:
Pokud se počet položek ARP blíží (nebo překračuje) prahové hodnotě gc_thresh2, pravděpodobně narážíte na tento problém.
arp –a | grep ether | wc –l
Tyto informace budou také k dispozici v arp_av.txt v balíčku protokolů:
$ grep "ether" /path/to/server_directory/arp_av.txt | wc -l 565
Řešení
Zástupné řešení
Zvyšte prahovou hodnotu ARP.
- PxFM verze 3.7.1 a novější automaticky aktualizuje nastavení (tato změna byla implementována pro podporu 2 000 SDC s V4.0+).
- Níže uvedená nastavení jsou testována a podporována pro PowerFlex 3.6 a novější.
- Níže uvedené změny by měly být provedeny u všech MDM, SDS a SDC kvůli konzistenci.
Aktualizujte prahové hodnoty v souboru sysctl.conf:
file="/etc/sysctl.conf"
cp "$file" "$file".backup
if grep -q "net.ipv4.neigh.default.gc_thresh" "$file"; then
sed -i 's/net.ipv4.neigh.default.gc_thresh1 = [0-9]\+/net.ipv4.neigh.default.gc_thresh1 = 8192/' "$file"
sed -i 's/net.ipv4.neigh.default.gc_thresh2 = [0-9]\+/net.ipv4.neigh.default.gc_thresh2 = 16384/' "$file"
sed -i 's/net.ipv4.neigh.default.gc_thresh3 = [0-9]\+/net.ipv4.neigh.default.gc_thresh3 = 32768/' "$file"
sysctl -p
else
echo -e "net.ipv4.neigh.default.gc_thresh1 = 8192 \nnet.ipv4.neigh.default.gc_thresh2 = 16384 \nnet.ipv4.neigh.default.gc_thresh3 = 32768" >> "$file"
sysctl -p
fi
Zde je to, co skript dělá:
Definuje sysctl.conf jako název souboru v proměnné souboru.
Před provedením jakýchkoli změn vytvoří kopii souboru sysctl.conf.
Pomocí grep -q zkontroluje, zda v souboru existuje řádek obsahující "net.ipv4.neigh.default.gc_thresh". Příznak -q ztiší grep a vrátí pouze stav ukončení úspěšné nebo neúspěšné.
Pokud je grep úspěšný (tj. řádek existuje), použije sed k aktualizaci hodnot pro thresh[1|2|3] na 8192, 16384 a 32768 v souboru a spustí sysctl -p pro použití změn v sysctl.conf.
Pokud grep není úspěšný (tj. řádek neexistuje), připojí řádky "... thresh1 = 8192", "... thresh2 = 16384" a "... thresh3 = 32768" na konec souboru a spustí příkaz sysctl -p pro použití změn v souboru sysctl.conf.
Dotčené verze
Není k dispozici – problém se netýká pouze řešení PowerFlex.
Opraveno ve verzi
Není k dispozici
Informace o zákaznících PxFM naleznete v komentáři výše v části Alternativní řešení.