Implementace Windows Load Balancingu (NLB) David Balcárek, Lukáš Sirový Abstrakt: Dokument pojednává o implementaci a testování Windows Load Balancingu NLB. Klíčová slova: Windows Load Balancing, NLB, testování, implementace, unicast, multicast 1 Co je to NLB a NLBS...2 2 Použité zařízení a software...2 3 Topologie...2 4 Příprava...2 5 NLBS...3 6 Jednosměrové vysílání...3 6.1 Změna nastavení přepínače...4 6.2 Testování...4 7 Vícesměrné vysílání a vícesměrné vysílání IGMP...6 8 Závěr...7 9 Literatura...7 prosinec 2011 1/7
1 Co je to NLB a NLBS NLB (Network Load Balancing) je vyvažování síťové zátěže. Microsoft vytvořil pro prostředí svých operačních systém Windows službu Network Load Balancing Services (NLBS), která je softwarovým řešením vyvažování síťové zátěže pro vysokou dostupnost. V našem projektu se pokusíme otestovat chování a funkčnost takto vytvořeného clusteru. 2 Použité zařízení a software Hardware: PC1 (Intel 460M, 2 x 2,53Ghz, 4GB RAM, Windows 7 Ultimate) PC2 (Intel core-i5 M480, 2x2.67 Ghz, 4GB RAM, Windows 7 Profesional) PC3 (Intel 2,4Ghz, Windows XP) Přepínač Cisco Switch 2960 Software: Microsoft Windows 7 Ultimate, Microsoft Windows Server 2008 R2 Enterprise (CZ, ENG), Windows XP, VMware Workstation 7.1.3, WireShark 1.6.4 3 Topologie Pro ověření funkčnosti a chování clusteru jsme zvolili topologii na obrázku 1 s adresním rozsahem 192.168.0.0/24. IP adresa 192.168.0.254 označuje virtuální IP adresu našeho clusteru. Virtuální říkáme proto, že se jedná o softwarové řešení vyvažování zátěže, a tedy všichni členové clusteru mají nejen svou IP adresu, ale i IP adresu clusteru. Obrázek 1: Použitá topologie 4 Příprava Na PC3 s Windows XP jsme si připravili WireShark. Na počítače s Windows 7 (PC1 a PC2) jsme doinstalovali VMware Workstation. Poté jsme ve VMware spustili instalaci Windows Server 2008 R2. Po nainstalování a spuštění Windows serverů jsme museli doinstalovat roli vyvažování síťové zátěže. Synchronizovat čas (Microsoft doporučuje podle společného NTP serveru). Poté jsme nastavili IP adresy a zapojili dle topologie na obrázku 1. Microsoft předpokládá, že pro komunikaci mezi členy clusteru využijeme jiné fyzické rozhrání než pro ostatní komunikaci (firemní síť, Internet ). Proto pokud chceme využít jedno fyzické rozhraní pro veškeprosinec 2011 2/7
rou komunikaci, musíme upravit hodnotu "UnicastInterHostCommSupport" v registrech systému na hodnotu 1 pro každý síťový adaptér GUID(HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\WLBS\Parameters\Interface\ {GUID}). Pokud by jsme toto neupravili, tak by po sblížení nodu do clusteru spolu nody přestaly komunikovat a cluster by se po chvili opět rozpadl. 5 NLBS Po nainstalování patřičné role spustíme Správce vyrovnání vyvážení sítě. Následně spustíme průvoce Nový cluster, kterého připravil Microsoft pro jednoduché nastavení. Po startu se nás zeptá na IP adresu (popřípadě DNS jméno) hlavního člena clusteru. Tato IP adresa slouží pouze ke zkontaktování vybraného serveru a pro vypsání dostupných rozhraní a jejich IP adres. V našem příkladu jsme na PC1 v průvodci zvolili jméno localhost a z vypsaných rozhraní jsme vybrali rozhraní s IP adresou 192.168.0.1. V dalším kroku průvodce máme možnost změnit prioritu člena v clusteru. Priorita je celočíselná hodnota od 1 do 32 včetně. Žádní dva členové clusteru nemohou mít stejnou prioritu, proto celý cluster může obsahovat maximálně 32 členů. Mezi vyhrazené IP adresy můžeme přidat další IP adresu pro komunikaci mezi clustery. Zde může být použita IPv4 nebo IPv6 adresa. Pokud tato IP adresa na rozhraní neexistuje, průvodce tuto IP adresu přidá. V třetím kroků průvodce zadáváme IP adresy clusteru. V našem případě jsme použili pouze jednu IP adresu a to 192.168.0.254. Tato virtuální IP adresa cluteru může být opět IPv4 nebo IPv6. V posledním kroku zvolíme, která z clusterových IP adres bude primární (v našem případě 192.168.0.254), a zvolíme Režim práce clusteru. Na výbeř máme ze tří režimů: Jednosměrové vysílání, Vícesměrové vysílání a Vícesměrové vysílání IGMP. Tyto režimy se liší pouze ve způsobu komunikace mezi členy clusteru. 6 Jednosměrové vysílání Na hlavním členu clusteru (v našem případě 192.168.0.1) jsme spustili průvodce a vytvořili cluster Nový cluster v režimu Jednosměrové vysílání. Virtuální IP adresu clusteru jsme nastavili na 192.168.0.254. K této IP adrese se automaticky vygeneruje MAC adresa našeho clusteru (v našem případě 02bf.c0a8.00fe). Po vytvoření clusteru stačí přidat dalšího člena v menu Správce vyrovnání vyvážení sítě pomocí průvodce Přidat hostitele do clusteru a vložením jeho IP adresy (popřípadě DNS jméno). V našem případě jsme použili IP adresu 192.168.0.2. Samotný proces sblížení nové člena s clusterem proběhne zhruba do dvou minut. Po tomto nastavení má každý server nastavenou virtuální IP clusteru jako druhou IP adresu rozhraní. Změní se i MAC adresa jednotlivých síťových adapterů serverů na MAC adresu clusteru. Ale v odpovědi člena clusteru klientovi server odpovídá s modifikovou zdrojovou MAC adresou. V této modifikované MAC adrese je druhý oktet virtuální MAC adresy clusteru nahrazen prioritou daného serveru. Priorita IP adresa na rozhraní MAC adresa na rozhraní MAC adresa pro odpovědi Cluster --- 192.168.0.254 02:bf:c0:a8:00:fe --- Hlavní člen 1 192.168.0.1, 192.168.0.254 Další člen 2 192.168.0.2, 192.168.0.254 02:bf:c0:a8:00:fe 02:bf:c0:a8:00:fe Tabulka 1: MAC adresy u jednosměrného vysílání 02:01:c0:a8:00:fe 02:02:c0:a8:00:fe Protože žádný z členů clusteru nepoužije pro odpověď MAC adresu clusteru (02:bf:c0:a8:00:fe), přepínač nikdy nenajde tuto MAC adresu v CAM tabulce. Proto při každém dotazu na MAC adresu clusteru záplavově rozešle dotaz na všechny své porty kromě vstupního. prosinec 2011 3/7
6.1 Změna nastavení přepínače Pokud chceme optimalizovat provoz, je vhodnější nastavit na dané porty switche napevno MAC adresu clusteru. Tímto sdělíme přepínači, na kterých portech nalezne zařízení s MAC adresou clusteru. Na cisco přepínači toto nastevení provedeme v konfiguračním režimu pomocí níže uvedeného příkazu: SWITCH(config)#mac address-table static 02bf.c0a8.00fe vlan 80 interface fe0/3 fe0/17 SWITCH#show mac address-table inc fe0/3 80 02bf.c0a8.00fe DYNAMIC fe0/3 80 02bf.c0a8.00fe STATIC fe0/3 fe0/17 Nyní přepínač rozesílá požadavky na MAC adresu clusteru (02bf.c0a8.00fe) na porty fe0/3 a fe0/17, kde se fyzicky nacháejí členové clusteru. 6.2 Testování Průběh testování byl zaznamenáván pomocí programu Wireshark. Z tohoto programu byly vytvrořeny obrázky dokumentující průběh testování. Obrázek 2: Komunikace mezi členy clusteru (heartbeat) prosinec 2011 4/7
Obrázek 3: ICMP Request (ping na virtuální IP) Obrázek 4: ICMP Reply (odpověd od prvniho serveru) V průběhu testování jsme z počítače poslali ICMP ping na virtuální IP adresu clusteru (192.168.0.254). NLBS na této úrovni neřeší vyvažování sítové zatěže, a proto se nám odpověď vrátila od obou serverů. Je to způsobeno tím, že vyvažování sítové zátěže pracuje na 4. vrstvě ale ICMP ping běží na 3.vrstvě RM ISO/OSI modelu. Výsledek je vidět na Obrázek 3, Obrázek 4 a Obrázek 5. prosinec 2011 5/7
Obrázek 5: ICMP Reply (odpověď od druheho serveru) 7 Vícesměrné vysílání a vícesměrné vysílání IGMP Microsoft implementoval do NBLS možnost vícesměrného vysílání ve dvou variantách. První standardizovanou implementaci (vícesměrné vysílání IGMP) a vlastní implementaci (vícesměrné vysílání). Při režimu vícesměrné vysílání zůstává fyzickým adaptérům originální MAC adresa, na adaptér se přiřadí virtuální IP adresa clusteru (192.168.0.254) a na ARP dotazy na cluster IP odpovídají servery virtualní MAC adresou. Když klient odesílá na tuto MAC adresu požadavek, tak přepínač odesílá rámec na všechny porty mimo příchozího v této VLAN (standardní chování multicastu v rámci subnetu, takže opět záplavové šíření). Režim vícesměrného vysílání IGMP se liší od vícesměrného vysílání používáním standardní vícesměných vysilání MAC adresy (začínají 01:00:5e) a také používáním IGMP Report Message (zprávy o zařazování do vícesměných vysilácích skupin). Chování tohoto režimu je stejné jako u režimu vícesměrného vysílání do spuštění IGMP Snoopingu na přepínači. Poté přepínač zkoumá IGMP Report Message a pak posílá data pouze na porty, které jsou přihlášeny k vícesměrné vysílací skupině. Jednosměrné vysílání Vícesměrné vysílání Vícesměrné vysílání IGMP MAC adresa clusteru MAC adresa na rozhraní MAC adresa pro odpovědi 02:bf:c0:a8:00:fe 02:bf:c0:a8:00:fe 02:01:c0:a8:00:fe 03:bf:c0:a8:00:fe 00:0c:29:6e:61:b8 03:bf:c0:a8:00:fe 01:00:5e:7f:00:fe 00:0c:29:6e:61:b8 01:00:5e:7f:00:fe Tabulka 2: Přehled MAC adres hlavního člena clusteru prosinec 2011 6/7
Obrázek 6: heartbeat u vícesměrného vysílání Obrázek 7: heartbeat u vícesměrného vysílání IGMP 8 Závěr Sestavili a zapojili jsme topologii pro otestování NLB. Po zapojení jsme měli poměrně veliké problémy se softwarem Vmware. Po úspěšném nastavení byla již instalace pomocí průvodce bez problémů. Samotná synchronizace serverů trvala asi 2-4 minuty. Jejich funkce byla bezproblémová. 9 Literatura Network Load Balancing. MICROSOFT. Windows Server TechCenter [online]. [cit. 2012-01-17]. Dostupné z: http://technet.microsoft.com/cs-cz/library/cc732855(ws.10).aspx prosinec 2011 7/7