5.6 Implement Network Load Balancing (NLB)


5.6.1 Configure NLB prerequisites

5.6.2 Install NLB

5.6.3 Configure affinity

5.6.4 Configure port rules

5.6.5 Configure cluster operation mode

5.6.6 Upgrade an NLB cluster


Network Load Balancing (NLB) er en teknologi for å distribuere en tjeneste på flere maskiner for å mer effektivt kunne tilby tjenesten til flere. Det fører også til at man kan fortsette å levere tjenesten om en server tar kvelden.

5.6.1 Configure NLB prerequisites

Et NLB cluster kan bestå av opp til 32 servere, kalt hosts, som hver kjører en separat kopi av den ønskede applikasjonen/tjenesten. NLB bruker TCP/IP for å sende innkommende trafikk til forskjellige hoster, og balansere lasten mellom dem. NLB passer best for stateless applikasjoner, som webtjenere, med variabel mengde trafikk. Om trafikken øker kan man enkelt legge til en ekstra host i clusteret, og man kan enkelt fjerne den igjen om trafikken avtar.

NB. Husk at Failover Clustering clusters består av noder, mens Network Load Balancing clusters består av hosts.

Hver host sender ut et heartbeat hvert sekund, slik at hostene kan vite om de andre hostene fortsatt er tilgjengelige. Når en host ikke sender heartbeat, vil de andre hostene fjerne den fra clusteret. Når en host legges til eller fjernes utføres NLB clusteret det som kalles convergence, det evaluerer medlemskap i clusteret for å bestemme hvordan klientforespørsler skal bli fordelt på hostene.

NLB clusteret er en egen identitet med navn og ip adresse, som klientene bruker for å koble til. NLB er mye enklere å sette opp, og administrere, enn Failover Clustering, og har færre krav/forutsetninger.

Hardware krav

  • Hostene trenger ikke å være identiske, det er ingen shared storage eller spesialisert hardware.
  • De bør dog være nogenlunde like slik at tjenesten kan leveres med samme kvalitet uavhengig av hvilken host som leverer den.
  • Alle hostene i NLB må være koblet på samme subnett, og latency i nettverket bør være minimal.
  • Man bør ikke plassere hostene langt fra hverandre, det kan føre til at de blir kastet ut av clusteret grunnet manglende svar på heartbeat.
  • Nettverksadaptere brukt til NLB må bruke alle bruke enten multicast eller unicast.

NB. For å tilby feiltoleranse på tvers av lokasjoner ved en katastrofe, bør man sette opp separate NLB clusters for hver lokasjon, og bruke en annen mekanisme for å distribuere trafikk til lokasjonene. F.eks. DNS Round Robin som alternerer mellom sitene for hver forespørsel den mottar.

Software krav

  • Operativsystem: NLB er støttet siden Windows Server 2008, og er for det meste uendret siden den gang. Best practice er å ha samme OS versjon og utgave på alle hostene i clusteret.
  • IP Adresser: Alle hostene i clusteret må ha en statiske IP adresser, NLB støtter ikke DHCP, og den vil faktisk deaktivere DHCP klienten på hostene.
  • Local User Accounts: Alle hostene i NLB clusteret må ha en identisk brukerkonto, med lokal admin tilgang. Network Load Balancing Manager vil bruke denne kontoen for å administrere hostene.

5.6.2 Install NLB

NLB er en feature som må installeres:

Install-WindowsFeature -Name NLB -IncludeManagementTools

Man kan også installere NLB management tools, uten å installere NLB. Det kan være aktuelt om man skal administrere NLB fra en arbeidsstasjon eller management server:

Install-WindowsFeature -Name RSAT-NLB

For å opprette et cluster åpner man Network Load Balancing ManagerNaviger til Cluster > New > Skriv inn navn på den første hosten (lokal maskin) > Connect > Velg interface på hosten som skal brukes til NLB clusteret.

Velg en prioritet (Unique Host Identifier) for hosten (alle hoster må ha en unik prioritet, 0-32). All uregulert trafikk (feile porter) til clusteret går til hosten med lavest prioritet.

Trykk på Add... for å velg hvilken ip adresse som skal tildeles NLB clusteret:

Velg navn på clusteret, og om det skal bruke Unicast, Multicast, eller IGMP Multicast. Om du bare har en nettverksadapter på hosten, så ikke velg Unicast, da mister du forbindelse til alt annet.

Velg Edit... for å endre hvilke porter som skal brukes til å levere applikasjonen.

For en webtjener kan det f.eks. settes opp slik:

Trykk Finnish. Da er clusteret ferdig konfigurert med en host. Man kan så legge til flere ved å navigere til Cluster > Add Host.

5.6.3 Configure affinity

Når man konfigurerer port filter på NLB, såesifiserer man hvordan clusteret håndterer innkommende trafikk som treffer en spesifikk regel. Hvis man velger Single Host, bruker man NLB clusteret, for den regelen, som et failover cluster. Det gir feiltoleranse, men ikke lastbalansering eller skalering. Bare hosten med lavest prioritet vil håndtere trafikken for den regelen.

Velger man Disable this port range, vil all trafikk for denne regelen bli blokkert.

Når man velger Multiple host så vil trafikken, som treffer regelen, bli distribuert til alle hostene. Det gir feiltoleranse og skalerbarhet. Et potensielt problem med dette er at en klient kan bli sendt til en annen host om han kobler fra, og kobler til igjen. For noen applikasjoner er ikke det noe problem, f.eks. statiske websider. Andre applikasjoner kan ha brukersesjoner, som vil kunne bli brutt om hosten endrer seg. Affinity innstillingen under Multiple host tar for seg denne problemstillingen:

  • None: Innkommende forespørsler fra samme IP kan bli sendt til forskjellige hosts. Bør ikke brukes for appliksjoner som krever at klienten kobler til samme host, og bør ikke brukes om om UDP eller Both er valgt for protokollen. Det kan føre til fragmentert IP trafikk går til forskjellige hoster.
  • Single: Sikrer at all trafikk som kommer fra en IP adresse blir sendt til samme host. Om brukeren kobler av, og på vil dem komme mot samme hosten igjen.
  • Network: Trafikk som kommer fra samme C klasse nettverk, vil bli sendt til samme host. Kan være aktuelt om man har flere proxyer i nettverket, slik at klienten kommer til samme host uansett hvilken proxy den går via.
  • Timeout: Antall minutter mellom tilkoblinger, før affinity regelen ikke gjelder lengre.

5.6.4 Configure port rules

Port regler definerer hvilken type trafikk NLB skal behandle, og hvordan den skal behandles. Standard regel tlllater all IP trafikk, men den kan endres på. For å endre på eksisterende oppsett: NLB Manager > Host> Properties > Port Rules

Trykk Add...\Edit...

Her får man tilgang til to ekstra innstillinger som er host-spesifikke:

  • Load weight: Kun tilgjengelig i multiple host modus, og spesifiserer hvor stor prosentandel av trafikken som treffes av regelen skal denne hosten håndtere. Huker man av for Equal, så vil lasten splittes likt.
  • Handling priority: Kun tilgjengelig i single host modus, og spesifiserer prioriteten til hosten. Den med lavest prioritet vil få all trafikk fra regelen.

5.6.5 Configure cluster operation mode

Cluster Operation Mode: Spesifiserer hvilken type TCP/IP trafikk hostene skal bruke.

  • Unicast: Et unicast er en TCP/IP sending som er adressert til en enkelt destinasjon.
  • Multicast: Et multicast er en TCP/IP sending som er sendt til flere destinasjoner, ved å bruke en spesiell multicast IP adresse.

MAC adressen er en unik, seks bytes lang, adresse som er kodet inn i nettverksadapteren. Når man velger unicast for NLB clusterer, vil NLB erstatte MAC adressen på adapteren, med clusteret sin virtuelle MAC adresse. Det gjør at all trafikk adressert til clusteret vil treffe hostene. Det forvirrer svitsjene og kan føre til flooding av nettverket. Unicast forhindrer også at hostene kan snakke med hverandre over cluster adapteren. Da bør man isåfall ha en ekstra nettverksadapter som ikke brukes til NLB cluster.

Når man velger multicast, legger NLB til en ekstra MAC adresse på hver adapter, en multicast MAC adresse. Man trenger derfor ikke flere adaptere om man bruker multicast, men det fører fortsatt til flooding av nettverket. Løsningen er IGMP multicast som bruker Internet Group Management Protocol til å programmere svitsjene til å kun sende trafikk, som skal til cluster MAC, ut på porter koblet til NLB hosts. Man kan også opprette et VLAN som gir samme resultatet.

Multicast er det foretrukne alternativet, med mindre hardware ikke støtter det, eller det går utover clusterets ytelse.

5.6.6 Upgrade an NLB cluster

Det er to måter å oppgradere en eksisterende NLB cluster til WIndows Server 2016 på:

  • Simultaneous Upgrade: Hele clusteret tas ned, man oppgraderer alle hostene, og tar så clusteret opp igjen. Det fører til en betydelig mengde nedetid, og bør kun utføres om man er komfortabel med at appliksjonen blir utilgjengelig i en periode. Ev. kan man gjøre dette hvis man har et backup cluster som kan ta over.
  • Rolling Upgrade: Fjern hostene fra clusteret, en om gangen. Oppgrader hosten, og legg den tilbake i clusteret.

results matching ""

    No results matching ""