Windows - Network Load Balancing

Clustering 2. rész

A hálózati terheléselosztás a TCP adatforgalom elérhetőségét, teljesítményét hivatott javítani. A kiszolgálófürtökről szóló sorozatunk mostani részében bemutatjuk az NLB technológia sajátosságait. Ismertetjük az NLB működését, a lehetséges konfigurációkat.
Bevezetés
A hálózati terheléselosztás technológiája a fürtözési szolgáltatások közé tartozik. Segítségével számos előnyhöz jutunk. A szolgáltatásaink elérhetőségének, teljesítményének javulását, a rendszer könnyebb skálázhatóságát is előnyként szokták említeni az NLB-vel kapcsolatban. Tekintsük át, hogy mit tud nyújtani, mire is használható a címben említett technika, illetve milyen rendszerkövetelményei vannak.
Használhatóság
A hálózati terheléselosztás az IP adatforgalom elosztására használható több csomópont között. Nagyon fontos tulajdonsága, hogy a TCP protokollt használó szolgáltatások támogatására szolgál, mint amilyen a HTTP, FTP, terminál szolgáltatás, stb. Nem használhatjuk tehát egyéb hálózati technológiák esetén, mint amilyen az Appletalk, vagy az IPX protokoll. Maximálisan 32 csomópont használható, azaz ennyi kiszolgáló között tudjuk az IP adatforgalmat felosztani.
Rendszerkövetelmények
A szolgáltatás csak a Windows 2000 Advanced és Datacenter szerver, vagy Windows 2003 Enterprise és Datacenter változatokon támogatott. Csupán 1MB lemezterület és 4MB memóriaigénye van, tehát maga a service nem terheli különösebben a kiszolgálót. Ahogy az előzőekben említettük service-ről, tehát egy egyszerű rendszerszolgáltatásról van szó. Természetesen szükséges a TCP/IP protokoll megléte, valamint FDDI, Ethernet LAN, vagy Gigabit Ethernet hálózat. A kiszolgálóknak azonos alhálózaton kell szerepelniük és az NLB szolgáltatás gépenként egy-egy hálózati interface-en kapcsolható csak be.
Az NLB működése
Az NLB, a hálózati kártya, és a TCP/IP protokoll között helyezkedik el. Amikor egy üzenet áthalad a hálózaton, akkor azt valamennyi cluster csomópont hálózati adaptere feldobja az NLB-nek, és a fürt csomópontjaiban külön-külön definiált NLB szabályok alapján születik döntés a csomag sorsáról: az NLB vagy dobja a csomagot, vagy továbbküldi az IP protokollnak.
NLB konfigurációk
Többféle konfiguráció létezik, ami szerint a terheléselosztást megtervezhetjük. Két szempont alapján nézve a kérdést lehet Unicast, vagy Multicast címzés, és lehet egy hálózati interfész, vagy több.
Az Unicast címzés az alapértelmezett használat. Ilyenkor egy virtuális, megosztott MAC címre érkeznek az adatcsomagok. Hátránya, hogy nem tud ezen az interfészen keresztül kommunikálni a többi csomóponttal a cluster tagja. Ez a MAC cím mindig "02-bf"-el kezdődik. Multicast címzés képes használni a virtuális MAC címet és mellette a dedikált MAC címet is, tehát lehetővé teszi a kiszolgálók közötti kommunikációt. A virtuális MAC cím mindig "03-bf"-el kezdődik.
Egy hálózati adapter esetén ugyanazon az egy csatolón keresztül kell a kiszolgálónak a fürtnek szánt virtuális címre érkezett adatforgalmat is, és az egyéb hálózati forgalmat is lebonyolítania az adott alhálózatban. Ha beillesztünk egy újabb hálózati kártyát, akkor ezzel tehermentesíteni tudjuk a cluster virtuális MAC címére szánt forgalmat azzal, hogy a belső adatforgalmat külön hálózati kártya segítségével bonyolítjuk. Ez a külön kártya irányulhat egy külön alhálózatra is.
Convergence
A convergence, vagy összefutási mechanizmuson alapszik a terhelés elosztása, a fürt státusza. Ez az algoritmus jelenti tulajdonképpen magát a terheléselosztást. Az összefutás folyamán egy csomópont előtérbe vagy háttérbe kerül a fürtben. Ez az esemény akkor következik be, ha egy kiszolgáló "szívhangja" kihagy, illetve ha egy új csomópont jelenik meg a fürtben.
A szívhang: minden kiszolgáló 1,5 KB-os "szívhang" broadcast üzenetet küld másodpercenként. Ez pontosabban is konfigurálható. Ha egy csomópont öt szívhang üzenetet kihagy, akkor az összefutási folyamat elindul a fennmaradó csomópontokra (ez is konfigurálható).
A folyamat körülbelül három másodpercet vesz igénybe. A convergence algoritmus veszi az elérhető csomópontokat, és az összes lehetséges befutó IP címeket, amelyek felől adatcsomag érkezhet. Az összes lehetséges IP-t felosztja a csomópontok között, így ezzel meghatározza, hogy melyik adatcsomagot melyik kiszolgálónak kell feldolgoznia.

Clustering cikksorozat