Taakverdeling van virtuele machines
Van toepassing op: Azure Stack HCI, versies 21H2 en 20H2; Windows Server 2022, Windows Server 2019, Windows Server 2016
Een belangrijke overweging voor HCI-implementaties zijn de kapitaaluitgaven (CapEx) die nodig zijn om in productie te gaan. Het is gebruikelijk om redundantie toe te voegen om ondercapaciteit te voorkomen tijdens piekverkeer in productie, maar dit verhoogt De CapEx. Deze redundantie is vaak nodig omdat sommige servers in het cluster meer virtuele machines (VM's) hosten, terwijl andere servers onderbelegd zijn.
Standaard ingeschakeld in Azure Stack HCI, Windows Server 2019 en Windows Server 2016 is VM-taakverdeling een functie waarmee u het servergebruik in uw clusters kunt optimaliseren. Het identificeert over-committed servers en live migreert VM's van deze servers naar onder-vastgelegde servers. Foutbeleidsregels zoals anti-affiniteit, foutdomeinen (sites) en mogelijke eigenaren worden gehonoreerd.
Met VM-taakverdeling wordt de belasting van een server geëvalueerd op basis van de volgende heuristiek:
- Huidige geheugendruk: Geheugen is de meest voorkomende resourcebeperking op een Hyper-V-host.
- GEMIDDELD CPU-gebruik gedurende een venster van vijf minuten: Vermindert het aantal servers in het cluster dat te veel wordt vastgelegd.
Hoe werkt VM-taakverdeling?
VM-taakverdeling vindt automatisch plaats wanneer u een nieuwe server aan uw cluster toevoegt en kan ook worden geconfigureerd om periodieke, terugkerende taakverdeling uit te voeren.
Wanneer een nieuwe server wordt toegevoegd aan een cluster
Wanneer u een nieuwe server aan uw cluster wilt toevoegen, wordt met de functie voor taakverdeling van de VM automatisch de capaciteit van de bestaande servers naar de zojuist toegevoegde server in de volgende volgorde gebalanced:
- De geheugendruk en het CPU-gebruik worden geëvalueerd op de bestaande servers in het cluster.
- Alle servers die de drempelwaarde overschrijden, worden geïdentificeerd.
- De servers met de hoogste geheugendruk en HET CPU-gebruik worden geïdentificeerd om de prioriteit van de taakverdeling te bepalen.
- VM's worden live gemigreerd (zonder downtime) vanaf een server die de drempelwaarde overschrijdt naar de zojuist toegevoegde server in het cluster.
Terugkerende taakverdeling
Standaard wordt de taakverdeling van de VM geconfigureerd voor periodieke taakverdeling: de geheugenbelasting en het CPU-gebruik op elke server in het cluster worden elke 30 minuten geëvalueerd voor taakverdeling. Dit is de stroom van de stappen:
- De geheugendruk en het CPU-gebruik worden geëvalueerd op alle servers in het cluster.
- Alle servers die de drempelwaarde overschrijden en servers onder de drempelwaarde worden geïdentificeerd.
- De servers met de hoogste geheugendruk en HET CPU-gebruik worden geïdentificeerd om de prioriteit van de taakverdeling te bepalen.
- VM's worden live gemigreerd (zonder downtime) van een server die de drempelwaarde overschrijdt naar een andere server die onder de minimumdrempelwaarde valt.
VM-taakverdeling configureren met Windows-beheercentrum
De eenvoudigste manier om VM-taakverdeling te configureren, is met behulp Windows Beheercentrum.
Verbinding maken naar uw cluster en ga naar Hulpprogramma's Instellingen.
Selecteer Instellingentaakverdeling voor virtuele machinesonder Instellingen.
Onder Virtuele machines in balansbrengen selecteert u Altijd om te taakverdeling bij serverkoppeling en om de 30 minuten, Server-joins om alleen te taakverdeling bij serverkoppelingen of Nooit om de taakverdelingsfunctie van de VM uit te schakelen. De standaardinstelling is Altijd.
Selecteer onder Aggresiviteit de optie Laag voor live migreren van VM's wanneer de server meer dan 80% is geladen, Gemiddeld om te migreren wanneer de server meer dan 70% is geladen of Hoog om het gemiddelde van de servers in het cluster te verhogen en te migreren wanneer de server meer dan 5% boven het gemiddelde is. De standaardinstelling is Laag.
Taakverdeling voor VM's configureren met Windows PowerShell
U kunt configureren of en wanneer taakverdeling plaatsvindt met behulp van de gemeenschappelijke eigenschap van het AutoBalancerMode cluster. Als u wilt bepalen wanneer het cluster in balans moet worden, moet u het volgende uitvoeren in PowerShell, door een waarde uit de onderstaande tabel te vervangen:
(Get-Cluster).AutoBalancerMode = <value>
| AutoBalancerMode | Gedrag |
|---|---|
| 0 | Uitgeschakeld |
| 1 | Load balancer bij server-join |
| 2 (standaard) | Load balanceren bij het lid worden van de server en elke 30 minuten |
U kunt ook de agressiviteit van de taakverdeling configureren met behulp van de gemeenschappelijke eigenschap van het AutoBalancerLevel cluster. Als u de drempelwaarde voor de aggresiviteit wilt bepalen, moet u het volgende uitvoeren in PowerShell, door een waarde uit de onderstaande tabel te vervangen:
(Get-Cluster).AutoBalancerLevel = <value>
| AutoBalancerLevel | Agressiviteit | Gedrag |
|---|---|---|
| 1 (standaardinstelling) | Beperkt | Verplaatsen wanneer de host meer dan 80% is geladen |
| 2 | Normaal | Verplaatsen wanneer de host meer dan 70% is geladen |
| 3 | Hoog | Gemiddelde servers in het cluster en verplaatsen wanneer de host meer dan 5% boven het gemiddelde ligt |
Voer het volgende uit in PowerShell om te controleren hoe de eigenschappen en AutoBalancerLevelAutoBalancerMode zijn ingesteld:
Get-Cluster | fl AutoBalancer*
Volgende stappen
Zie voor verwante informatie ook:
