5.6 Implementeer Network Load Balancing (NLB)

De basisfilosofie van een failovercluster is er een van fouttolerantie, waarbij één computer een service uitvoert terwijl andere inactief blijven, wachtend om als vervanging te dienen in het geval van een storing. Netwerktaakverdeling daarentegen is gebaseerd op het idee dat veel computers allemaal tegelijkertijd dezelfde service bieden. Deze opstelling biedt ook fouttolerantie, maar het primaire doel is om de verkeersbelasting over veel computers te verdelen, zodat het cluster meer clients tegelijk kan bedienen dan een enkele computer ooit zou kunnen.

5.6.1 Configureer NLB-vereisten

Network Load Balancing (NLB)-cluster kan bestaan uit 2 tot 32 servers, hosts genaamd, die elk een afzonderlijke kopie van de gewenste toepassing uitvoeren. NLB gebruikt vervolgens TCP/IP-adressering om inkomende clientverzoeken naar de verschillende hosts te sturen, waarbij de belasting onderling wordt verdeeld. NLB is het meest geschikt voor staatloze toepassingen, zoals webservers, met variabele clientbelastingen. Naarmate het verkeer toeneemt, is het mogelijk om hosts aan het cluster toe te voegen, waardoor de capaciteit toeneemt. U kunt ook gemakkelijk hosts verwijderen wanneer de clientbelasting wordt verminderd.

Examentip

Failover Clustering-clusters bestaan uit knooppunten, terwijl Network Load Balancing-clusters uit hosts bestaan. Onthoud dit onderscheid voor het 70-740-examen.

De NLB-hosts in een cluster wisselen eenmaal per seconde berichten uit die heartbeats worden genoemd. Met deze berichten kunnen ze de voortdurende functionaliteit van de andere hosts volgen. Wanneer de hartslag van een enkele host voor een bepaalde tijd stopt, verwijderen de andere hosts deze uit het cluster. Telkens wanneer een host wordt toegevoegd of verwijderd, voert het NLB-cluster een proces uit dat bekend staat als convergentie, waarbij het het huidige clusterlidmaatschap evalueert en bepaalt hoe clientverzoeken over de hosts moeten worden verdeeld.

Net als bij Failover Clustering heeft een NLB-cluster zijn eigen virtuele identiteit op het netwerk, met een naam en IP-adres die clients gebruiken om verbinding te maken met de toepassing. Als u bijvoorbeeld verbinding maakt met een grote website op internet, maakt u verbinding met een clusteradres met een mechanisme zoals NLB dat uw verzoek doorstuurt naar een van de computers in een serverfarm. Je hebt geen idee tot welke server je toegang hebt, en dat maakt ook niet uit, want ze bieden allemaal dezelfde service.

Omdat de toepassing op alle hosts in het cluster draait, zijn veel van de gecompliceerde onderhandelingen die nodig zijn voor failover-clustering niet nodig. Er is geen quorum, en daar zijn geen vragen waarvan de server een specifieke rol vervult. Ze zijn allemaal actief.

Netwerktaakverdeling is dus veel eenvoudiger in te stellen en te beheren dan Failover Clustering en heeft minder vereisten.

5.6.1.1 Hardware vereisten

NLB-clusters kunnen maximaal 32 hosts ondersteunen. Over het algemeen is er geen gedeelde opslag of andere gespecialiseerde hardware vereist voor NLB. In tegenstelling tot een failovercluster mogen de computers die u gebruikt om NLB-hosts te maken niet identiek zijn. Ze moeten echter vergelijkbaar zijn in hun mogelijkheden, zodat sommige hosts niet aanzienlijk slechter presteren dan andere.

Alle hosts in een NLB-cluster moeten zijn verbonden met hetzelfde subnet en de netwerklatentie moet worden geminimaliseerd om het convergentieproces normaal te laten verlopen. De hosts hoeven zich niet in dezelfde serverkast of hetzelfde datacenter te bevinden, maar als de computers over lange afstanden worden verspreid, kunnen hosts uit het cluster worden verwijderd.

Opmerking Sitegebaseerde fouttolerantie voor NLB

Om site-gebaseerde fouttolerantie te bieden in het geval van een grootschalige ramp, is de beste praktijk om afzonderlijke NLB-clusters op verschillende locaties te maken en een ander mechanisme te gebruiken om clientverzoeken tussen de twee sites te verdelen. DNS-round robin is bijvoorbeeld een techniek waarmee de DNS-servers die de clusternaam oplossen, verschillende IP-adressen kunnen leveren aan opeenvolgende verzoeken. Dit zou het inkomende verkeer effectief verdelen over de sites, en NLB zou het opnieuw verdelen over de hosts op elke site.

De NLB-hosts kunnen zoveel netwerkinterfaceadapters hebben als nodig zijn voor andere doeleinden, maar de netwerkadapters die voor NLB worden gebruikt, moeten allemaal multicast- of unicast-transmissies gebruiken. De clusterparameters en specifiek de Cluster Operation Mode beïnvloeden de hardwareconfiguratie van uw netwerk. Omdat dit is geselecteerd bij het instellen van het NLB-cluster, moet u op dat moment rekening houden met dit punt.

5.6.1.2 Softwarevereisten

Netwerktaakverdeling heeft enkele softwareconfiguratievereisten waarmee u rekening moet houden voordat u een NLB-cluster maakt, waaronder de volgende:

  • Besturingssysteem – Windows Server heeft netwerktaakverdeling in verschillende versies ondersteund en de implementaties sinds Windows Server 2008 zijn grotendeels hetzelfde. Het is echter het beste om alle hosts in een NLB-cluster dezelfde versie en dezelfde editie van Windows Server te laten uitvoeren.
  • IP-adressen – Alle hosts in een NLB-cluster moeten statische IP-adressen hebben. NLB ondersteunt het gebruik van Dynamic Host Configuration Protocol (DHCP) niet en schakelt de DHCP-client uit op de computers die u als hosts configureert. Daarom moet u op de hoogte zijn van de IP-adressering die op het subnet wordt gebruikt en over de juiste IP-adressen beschikken die u aan de hosts en het cluster kunt toewijzen. Als het subnet DHCP gebruikt voor zijn andere computers, moet u adressen hebben die buiten het DHCP-bereik vallen.
  • Lokale gebruikersaccounts – Alle hosts in een NLB-cluster moeten een identieke gebruikersaccount hebben, met lidmaatschap van de lokale groep Administrators, die de Network Load Balancing Manager zal gebruiken om ze te openen. Zonder identieke accounts moet u authenticatiegegevens opgeven voor elke host die u bezoekt. Hoewel lidmaatschap van een Active Directory Domain Services-domein niet vereist is voor een NLB-cluster, wordt het beheer eenvoudiger, omdat de AD DS-domeinbeheerdersgroep lid is van de lokale beheerdersgroep op elke aangesloten computer.

5.6.2 Installeer NLB-knooppunten

Netwerktaakverdeling, zoals Failover Clustering, is een functie die is opgenomen in Windows Server 2016. U moet de functie installeren op alle servers die als NLB-hosts zullen functioneren, met behulp van de wizard Rollen en functies toevoegen in Serverbeheer. Of u kunt deze functie installeren met behulp van de cmdlet Install-WindowsFeature in Windows PowerShell met de volgende opdracht:

Install-WindowsFeature -Name nlb -IncludeManagementTools

U kunt de hulpprogramma’s voor NLB-beheer ook zonder de functie NLB installeren om een cluster vanaf een extern werkstation te beheren met de volgende opdracht:

Install-WindowsFeature -Name rsat-nlb

Nadat de functie op alle servers is geïnstalleerd, kunt u doorgaan met het maken van een NLB-cluster met behulp van de volgende procedure.

  1. Start de Network Load Balancing Manager-console, vanuit het menu Tools in Server Manager.
  2. Klik in het menu Cluster op Nieuw.
  3. Typ op de pagina Nieuw cluster: verbinding maken, in het tekstvak Host de naam van de eerste host die u aan het cluster wilt toevoegen (zelfs als dit de naam van de lokale computer is) en klik op Verbinden. De interface(s) en IP-adres(sen) van de computer verschijnen.
  4. Selecteer de interface die de host voor het cluster zal gebruiken.
  5. Geef op de pagina Nieuw cluster: Hostparameters een waarde voor Prioriteit (Unique Host Identifier) op met behulp van de vervolgkeuzelijst. Deze waarde moet uniek zijn op elke host die u installeert. Verkeer dat niet voldoet aan de poortregels die voor het cluster zijn geconfigureerd, wordt doorgestuurd naar de host met de laagste prioriteitswaarde.
  6. Klik op de pagina Nieuw cluster: IP-adressen van clusters op Toevoegen.
  7. Geef in het dialoogvenster IP-adres toevoegen, de waarden voor het IPv4-adres en het subnetmasker op die het cluster zal gebruiken en klik op OK. Hiermee wordt de virtuele identiteit voor het cluster gemaakt, die wordt toegevoegd aan de netwerkadapterconfiguratie van elke host in het cluster.
  8. Geef op de pagina Nieuw cluster: Clusterparameters, de waarde Volledige internetnaam voor het cluster op. Dit is de naam die clients gebruiken om verbinding te maken met de toepassing die op het cluster wordt uitgevoerd. Voor een webservercluster is dit bijvoorbeeld de servernaam in de URL van de website.
  9. Selecteer in het vak Clusterbewerkingsmodus een van de volgende waarden:
    • Unicast – Geeft aan dat het cluster een unicast Media Access Control (MAC)-adres moet gebruiken voor clustercommunicatie.
    • Multicast – Geeft aan dat het cluster een multicast-MAC-adres moet gebruiken voor clustercommunicatie.
    • IGMP Multicast – Geeft aan dat het cluster een multicast-MAC-adres moet gebruiken voor clustercommunicatie, met IGMP (Internet Group Messaging Protocol), om te voorkomen dat poorten vol raken.
  10. Klik op de pagina Nieuw cluster: Poortregels, op Bewerken om de standaardpoortregel te wijzigen.
  11. Wijzig in het dialoogvenster Poortregel toevoegen/bewerken, de poortbereikinstellingen om de poort(en) op te geven voor de toepassing die het cluster zal uitvoeren.
  12. Selecteer in het vak Filtermodus een van de volgende opties en klik op OK om de instellingen in de poortregel te wijzigen.
    1. Multiple Host – Hiermee kan inkomend verkeer dat voldoet aan de poortregel worden afgehandeld door meerdere clusterhosts. Selecteer een Affiniteitsinstelling om op te geven hoe herhaald verkeer van clients over hosts wordt verdeeld.
    2. Single Host – Hiermee kan inkomend verkeer dat voldoet aan de poortregel, worden afgehandeld door een enkele clusterhost.
    3. Disable This Port Range – Zorgt ervoor dat het cluster al het verkeer blokkeert dat de poortregel bevestigt.
  13. Klik op Voltooien.

U hebt nu een NLB-cluster gemaakt en de eerste host geconfigureerd. Om extra hosts aan de cluster toe te voegen, selecteert u deze in de console en klikt u op Cluster | Gastheer toevoegen. Voor elke host die u toevoegt, moet u alleen de pagina’s Verbinden, Hostparameters en Poortregels configureren. Terwijl u elke host toevoegt, convergeert het cluster totdat alle hosts zijn herkend en in het cluster zijn opgenomen, zoals weergegeven in de volgende afbeelding.

5.6.3 Configureer affiniteit

Wanneer u de instelling Filtermodus in een poortregel configureert, geeft u op hoe het cluster het verkeer afhandelt dat aan die poortregel voldoet. Als u Single selecteert, gebruikt u in wezen NLB als een failovercluster voor die regel, met fouttolerantie, maar zonder schaalbaarheid. Alleen de host met de laagste prioriteitswaarde zal verkeer voor die regel afhandelen. Als die host zou falen, zou de host met de volgende laagste prioriteit het overnemen.

Als u Uitschakelen selecteert, wordt voorkomen dat het cluster verkeer accepteert dat aan de regel voldoet. U gebruikt deze instelling om een regel te maken die verkeer blokkeert via een specifiek IP-adres of specifieke poort.

Wanneer u de optie Multiple Host selecteert, wordt het verkeer dat aan die regel voldoet, verdeeld over alle hosts van het cluster. Dit biedt zowel fouttolerantie als schaalbaarheid. Het potentiële probleem met deze opstelling is dat een client mogelijk de verbinding verbreekt en opnieuw verbinding maakt met het cluster, en naar een andere host wordt gestuurd.

Voor sommige toepassingen is dit geen probleem. Als u bijvoorbeeld een webserver gebruikt die alleen statische pagina’s biedt, maakt het niet uit of een client van de ene host naar de andere wordt verplaatst. Voor een e-commercewebsite zou het onderbreken van een sessie en het verplaatsen van de client naar een andere host de transactie echter onderbreken. De affiniteitsinstellingen voor de optie Meerdere hosts lossen dit probleem op.

De Affinity-instelling die u kiest, geeft aan hoe het cluster moet reageren op herhaalde verzoeken van dezelfde client. De beschikbare instellingen zijn als volgt:

  • Geen – Zonder clientaffiniteit kunnen inkomende verzoeken van hetzelfde IP-adres door elke host worden afgehandeld. Vermijd deze instelling voor op transacties gebaseerde toepassingen die consistente verbindingen met één host vereisen. U moet deze instelling ook vermijden wanneer de regel UDP of Beide gebruikt voor de instelling Protocollen, zodat IP-fragmenten niet naar verschillende hosts worden verzonden.
  • Single – Deze instelling zorgt ervoor dat al het verkeer dat van een enkel IP-adres komt, naar dezelfde host wordt gestuurd. Als een client de verbinding verbreekt, zal een nieuwe verbinding hetzelfde bron-IP-adres gebruiken, en NLB zal dit herkennen en het verkeer dienovereenkomstig doorsturen, zodat de sessie kan doorgaan.
  • Netwerk – Met deze instelling kan al het verkeer dat afkomstig is van hetzelfde klasse C-netwerk naar dezelfde host worden verzonden. In sommige gevallen kunnen clients verschillende proxyservers op hetzelfde netwerk gebruiken wanneer ze verbinding maken met het cluster. Zolang die proxyservers zich op hetzelfde subnet bevinden, zal NLB herkennen dat het verkeer waarschijnlijk afkomstig is van dezelfde client en het naar een enkele host verzenden.

Schakel het selectievakje Time-out in om de maximale hoeveelheid tijd op te geven die tussen verbindingen mag verstrijken voordat de affiniteitsregel niet langer van toepassing is.

5.6.4 Configureer poortregels

Poortregels bepalen welke typen TCP/IP-verkeer het NLB-cluster moet afhandelen en hoe elk type moet worden verwerkt. Wanneer u voor het eerst een cluster maakt, staat de standaardpoortregel verkeer toe dat alle IP-adressen en alle poorten gebruikt. U kunt deze regel naar behoefte wijzigen en andere maken om verschillende instellingen voor verschillende soorten verkeer te specifiëren.

Naast de instellingen voor Filtermodus en Affiniteit die al zijn beschreven, zijn de beschikbare instellingen in een poortregel als volgt:

  • Cluster IP-adres – Een cluster kan meerdere IP-adressen hebben, die verschillende services vertegenwoordigen, zoals verschillende websites die worden gehost door Internet Information Services (IIS). Door een specifiek adres te selecteren, kunt u voor elke service een andere regel maken. Door het selectievakje Alles in te schakelen, wordt een algemene regel gemaakt voor alle IP-adressen van het cluster.
  • Poortbereik – Een cluster kan ook services leveren die verschillende poorten gebruiken. De bekende poort voor een webserver is bijvoorbeeld 80, maar de bekende poort voor een beveiligde webserver is 443. Als u NLB gebruikt om het verkeer te verdelen voor een webserver waarop meerdere sites worden uitgevoerd, kunt u een regel voor elke site door het IP-adres op te geven en/of het poortnummer. Een site die statische webpagina’s biedt, kan de filtermodus voor meerdere hosts gebruiken zonder clientaffiniteit, maar voor een veilige e-commercesite die op slechts één host wordt ondersteund, kunt u de filtermodus voor één host gebruiken.
  • Protocollen – Geeft aan of de regel van toepassing moet zijn op TCP-, UDP-verkeer of beide. TCP wordt meestal gebruikt voor langere transacties waarvoor meerdere pakketten nodig zijn, terwijl UDP vaak wordt gebruikt voor snelle verzoek-/antwoordtransacties. Afhankelijk van de toepassing die u op het cluster uitvoert, wilt u mogelijk verschillende affiniteitsinstellingen configureren voor elk protocol.

Wanneer u de poortregels opent via het Eigenschappenblad voor een van de hosts, zoals weergegeven in onderstaande afbeelding, kunt u de eerder genoemde regelinstellingen niet wijzigen, maar er zijn twee hostspecifieke instellingen die u als volgt kunt configureren:

  • Laadgewicht – Alleen toegankelijk in meervoudige hostmodus, specificeert hoeveel van het verkeer dat aan de regel voldoet, moet worden afgehandeld door de geselecteerde host. De standaardinstelling is om het verkeer gelijk te verdelen, maar u kunt een relatieve waarde van 0 tot 100 opgeven.
  • Afhandelingsprioriteit – Alleen toegankelijk in de modus voor één host, specificeert een prioriteit voor de afhandeling door de host van het verkeer in overeenstemming met de regel. De host met de laagste waarde zal al het verkeer voor de regel afhandelen.

5.6.5 Configureer de clusterwerkingsmodus

De instelling Cluster Operation Mode specificeerde wat voor soort TCP/IP-verkeer de clusterhosts moesten gebruiken. Een unicast is een TCP/IP-transmissie die is geadresseerd aan een enkele bestemming. Een multicast is een verzending die naar meerdere bestemmingen wordt verzonden met behulp van een speciaal multicast-IP-adres.

Het MAC-adres is een unieke waarde van zes bytes die in de fabriek in netwerkinterfaceadapters is gecodeerd. Wanneer u de unicast-modus voor een cluster selecteert, vervangt NLB het hardware-MAC-adres op de interface die u voor elke host selecteert door het virtuele MAC-adres van het cluster. Dit zorgt ervoor dat verkeer dat is geadresseerd aan het cluster, naar al zijn hosts gaat. Deze praktijk verwart ook uw netwerkswitches, die niet kunnen bepalen tot welke poort het MAC-adres van het cluster behoort, en daarom het verkeer via al zijn poorten moeten doorsturen, waardoor het netwerk wordt overspoeld.

Unicast-modus voorkomt ook dat clusterhosts met elkaar communiceren via hun aangewezen clusteradapters. Omdat alle hosts hetzelfde MAC-adres gebruiken, loopt het uitgaand verkeer terug en bereikt het het netwerk nooit. U moet daarom in elke host een tweede netwerkadapter installeren als u van plan bent de unicast-modus te gebruiken en normale communicatie tussen de hosts nodig heeft.

Wanneer u de multicast-optie selecteert, voegt NLB een tweede MAC-adres toe aan de netwerkinterface op elke host. Dit is een multicast-MAC-adres dat het oorspronkelijke adres niet vervangt. Omdat elke host zijn unieke MAC-adres behoudt, is er geen tweede netwerkadapter nodig. De multicast-optie veroorzaakt standaard ook switch-flooding, maar daar zijn oplossingen voor. De IGMP-multicastoptie gebruikt het Internet Group Management Protocol om de switches te programmeren, zodat verkeer dat bestemd is voor het MAC-adres van het cluster alleen wordt doorgestuurd via de switchpoorten die zijn aangesloten op NLB-hosts. Beheerders kunnen ook een virtueel lokaal netwerk (VLAN) in de switch maken waarmee dezelfde resultaten worden bereikt.

Multicast-modus heeft de voorkeur, behalve in gevallen waarin uw netwerkhardware geen multicast-transmissies ondersteunt of het gebruik van multicasts de clusterprestaties ernstig vermindert.

5.6.6 Upgrade een NLB-cluster

Er zijn twee manieren om een bestaand Windows Server NLB-cluster te upgraden naar Windows Server 2016-versie:

  • Gelijktijdige upgrade – Bij deze optie haalt u het hele NLB-cluster naar beneden, upgradet u alle hosts en brengt u het cluster weer omhoog. Dit brengt uiteraard een aanzienlijke hoeveelheid downtime met zich mee voor de geclusterde applicatie. Dit is alleen een haalbare optie als u het prettig vindt om uw toepassing een tijdje niet beschikbaar te houden, of als u een back-upcluster beschikbaar heeft om zijn plaats in te nemen.
  • Doorlopende upgrade – Bij deze optie verwijdert u de hosts één voor één uit het cluster, voert u een upgrade uit en voegt u deze vervolgens weer toe aan het cluster. NLB is ontworpen om het toevoegen en verwijderen van hosts mogelijk te maken, zodat het cluster convergeert telkens wanneer u een van de servers verwijdert of toevoegt.