Azure Stack Hub-beräkningskapacitet

De vm-storlekar som stöds på Azure Stack Hub är en delmängd av dem som stöds i Azure. Azure inför resursgränser längs många vektorer för att undvika överförbrukning av resurser (server lokalt och på servicenivå). Utan att införa vissa begränsningar för klientanvändningen blir klientupplevelsen lidande när andra klienter överkonsumerar resurser. För utgående nätverk från den virtuella datorn finns det bandbreddsbegränsningar på Azure Stack Hub som matchar Azure-begränsningar. För lagringsresurser på Azure Stack Hub undviker IOPS-lagringsgränser grundläggande över förbrukning av resurser från klientorganisationer för lagringsåtkomst.

Viktigt

Kapacitetshanteraren för Azure Stack Hub överväger inte eller garanterar inte IOPS-prestanda. Administratörsportalen visar en varning när den totala minnesförbrukningen för systemet har nått 85 %. Den här aviseringen kan åtgärdas genom att lägga till ytterligare kapacitet eller genom att ta bort virtuella datorer som inte längre behövs.

Placering av virtuell dator

Placeringsmotorn för Azure Stack Hub placerar virtuella klientdatorer på de tillgängliga värdarna.

Azure Stack Hub använder två saker att tänka på när du placerar virtuella datorer. Ett, finns det tillräckligt med minne på värden för den typen av virtuell dator? Och två, är de virtuella datorerna en del av en tillgänglighetsuppsättning eller är de VM-skalningsuppsättningar?

För att uppnå hög tillgänglighet för en produktionsarbetsbelastning för flera virtuella datorer i Azure Stack Hub placeras virtuella datorer i en tillgänglighetsuppsättning som sprider dem över flera feldomäner. En feldomän i en tillgänglighetsuppsättning definieras som en enskild nod i skalningsenheten. Azure Stack Hub har stöd för att ha en tillgänglighetsuppsättning med högst tre feldomäner som ska vara konsekventa med Azure. Virtuella datorer som placeras i en tillgänglighetsuppsättning isoleras fysiskt från varandra genom att de sprids så jämnt som möjligt över flera feldomäner (Azure Stack Hub-noder). Om det uppstår ett maskinvarufel startas virtuella datorer från feldomänen om i andra feldomäner. Om möjligt förvaras de i separata feldomäner från de andra virtuella datorerna i samma tillgänglighetsuppsättning. När värden är online igen balanseras de virtuella datorerna om för att upprätthålla hög tillgänglighet.

Vm-skalningsuppsättningar använder tillgänglighetsuppsättningar på serverdelen och ser till att varje vm-skalningsuppsättningsinstans placeras i en annan feldomän. Det innebär att de använder separata Azure Stack Hub-infrastrukturnoder. I ett Azure Stack Hub-system med fyra noder kan det till exempel finnas en situation där en VM-skalningsuppsättning med tre instanser misslyckas vid skapandet på grund av bristen på kapacitet med fyra noder för att placera tre vm-skalningsuppsättningsinstanser på tre separata Azure Stack Hub-noder. Dessutom kan Azure Stack Hub-noder fyllas i på olika nivåer innan du provar placering.

Azure Stack Hub överalloker inte minne. Ett överallokering av antalet fysiska kärnor tillåts dock.

Eftersom placeringsalgoritmer inte ser det befintliga överetableringsförhållandet för virtuella till fysiska kärnor som en faktor, kan varje värd ha ett annat förhållande. Som Microsoft ger vi ingen vägledning om förhållandet mellan fysiska och virtuella kärnor på grund av variationen i arbetsbelastningar och servicenivåkrav.

Att tänka på för totalt antal virtuella datorer

Det finns en gräns för det totala antalet virtuella datorer som kan skapas. Det maximala antalet virtuella datorer på Azure Stack Hub är 700 och 60 per skalningsenhetsnod. En vm-gräns på åtta servrar i Azure Stack Hub skulle till exempel vara 480 (8 * 60). För en Azure Stack Hub-lösning på 12 till 16 servrar är gränsen 700. Den här gränsen har skapats med alla överväganden för beräkningskapacitet i åtanke, till exempel återhämtningsreserven och det virtuella till fysiska CPU-förhållandet som en operatör vill behålla på stämpeln.

Om vm-skalningsgränsen nås returneras följande felkoder som ett resultat: VMsPerScaleUnitLimitExceeded, VMsPerScaleUnitNodeLimitExceeded.

Anteckning

En del av maxgränsen på 700 virtuella datorer är reserverad för virtuella datorer i Azure Stack Hub-infrastrukturen. Mer information finns i Kapacitetsplaneraren för Azure Stack Hub.

Att tänka på vid batchdistribution av virtuella datorer

I versioner före och inklusive 2002 tillhandahöll 2–5 virtuella datorer per batch med 5 min mellanrum mellan batcharna tillförlitliga VM-distributioner för att nå en skala på 700 virtuella datorer. Med 2005-versionen av Azure Stack Hub och senare kan vi på ett tillförlitligt sätt etablera virtuella datorer i batchstorlekar på 40 med 5 min mellanrum mellan batchdistributioner. Start-, Stop-deallocate- och uppdateringsåtgärder bör utföras med en batchstorlek på 30, vilket lämnar 5 minuter mellan varje batch.

Att tänka på för virtuella GPU-datorer

Azure Stack Hub reserverar minne för att infrastrukturen och de virtuella klientdatorerna ska redundansväxlar. Till skillnad från andra virtuella datorer körs virtuella GPU-datorer i ett icke-HA-läge (hög tillgänglighet) och redundansväxlar därför inte. Därför är reserverat minne för en GPU VM-stämpel vad som krävs av infrastrukturen för redundans, i stället för att ta hänsyn till ha-klientens VM-minne också.

Azure Stack Hub-minne

Azure Stack Hub är utformat för att hålla virtuella datorer igång som har etablerats. Om en värd till exempel är offline på grund av ett maskinvarufel försöker Azure Stack Hub starta om den virtuella datorn på en annan värd. Ett andra exempel vid korrigering och uppdatering av Azure Stack Hub-programvaran. Om du behöver starta om en fysisk värd görs ett försök att flytta de virtuella datorer som körs på värden till en annan tillgänglig värd i lösningen.

Den här VM-hanteringen eller vm-förflyttningen kan bara uppnås om det finns reserverad minneskapacitet som tillåter att omstarten eller migreringen sker. En del av det totala värdminnet är reserverat och otillgängligt för placering av virtuella klientdatorer.

Du kan granska ett cirkeldiagram i administratörsportalen som visar ledigt och använt minne i Azure Stack Hub. Följande diagram visar den fysiska minneskapaciteten på en Azure Stack Hub-skalningsenhet i Azure Stack Hub:

Fysisk minneskapacitet på en Azure Stack Hub-skalningsenhet

Använt minne består av flera komponenter. Följande komponenter förbrukar minnet i användningsavsnittet i cirkeldiagrammet:

  • Användning eller reservation av värdoperativsystem: Det minne som används av operativsystemet (OS) på värden, sidtabeller för virtuellt minne, processer som körs på värdoperativsystemet och minnescachen för Spaces Direct. Eftersom det här värdet är beroende av det minne som används av de olika Hyper-V-processer som körs på värden kan det variera.
  • Infrastrukturtjänster: De virtuella infrastrukturdatorerna som utgör Azure Stack Hub. Som tidigare nämnts är dessa virtuella datorer en del av maxgränsen på 700 virtuella datorer. Minnesanvändningen för infrastrukturtjänstkomponenten kan ändras när vi arbetar med att göra våra infrastrukturtjänster mer skalbara och motståndskraftiga. Mer information finns i Kapacitetsplaneraren för Azure Stack Hub
  • Återhämtningsreserv: Azure Stack Hub reserverar en del av minnet för att möjliggöra klienttillgänglighet vid ett enskilt värdfel samt under korrigering och uppdatering för att möjliggöra en lyckad direktmigrering av virtuella datorer.
  • Virtuella klientdatorer: De virtuella klientdatorer som skapats av Azure Stack Hub-användare. Förutom att köra virtuella datorer förbrukas minnet av alla virtuella datorer som har landat på infrastrukturresurserna. Det innebär att virtuella datorer i tillståndet "Skapa" eller "Misslyckades", eller virtuella datorer som stängs av inifrån gästen, förbrukar minne. Virtuella datorer som har frigjorts med alternativet stoppa frigjord från portalen/powershell/cli förbrukar dock inte minne från Azure Stack Hub.
  • Resursproviders (RPs) för mervärde: Virtuella datorer som distribuerats för mervärdes-RP:er som SQL, MySQL, App Service och så vidare.

Det bästa sättet att förstå minnesförbrukningen på portalen är att använda Kapacitetshanteraren för Azure Stack Hub för att se effekten av olika arbetsbelastningar. Följande beräkning är samma som används av planeraren.

Den här beräkningen resulterar i det totala tillgängliga minnet som kan användas för placering av virtuella klientdatorn. Den här minneskapaciteten gäller för hela Skalningsenheten i Azure Stack Hub.

Tillgängligt minne för VM-placering = totalt värdminne – återhämtningsreserv – minne som används av virtuella klientdatorer – Infrastrukturkostnader för Azure Stack Hub 1

  • Totalt värdminne = Summa av minne från alla noder
  • Återhämtningsreserv = H + R * ((N-1) * H) + V * (N-2)
  • Minne som används av virtuella klientdatorer = Verkligt minne som förbrukas av klientarbetsbelastningen, är inte beroende av HA-konfiguration
  • Infrastrukturkostnader för Azure Stack Hub = 268 GB + (4 GB x N)

Plats:

  • H = Storleken på minne för enskild server
  • N = Storlek på skalningsenhet (antal servrar)
  • R = Operativsystemets reserv för operativsystemomkostnader, som är .15 i den här formeln2
  • V = Största virtuella HA-dator i skalningsenheten

1 Omkostnader för Azure Stack Hub-infrastruktur = 268 GB + (4 GB x antal noder). Cirka 31 virtuella datorer används som värd för Azure Stack Hub-infrastrukturen och förbrukar totalt cirka 268 GB + (4 GB x antal noder) minne och 146 virtuella kärnor. Syftet med det här antalet virtuella datorer är att uppfylla den tjänstavgränsning som krävs för att uppfylla kraven på säkerhet, skalbarhet, service och korrigering. Den här interna tjänststrukturen möjliggör framtida införande av nya infrastrukturtjänster när de utvecklas.

2 Operativsystemreserv för overhead = 15 % (,15) nodminne. Operativsystemets reservvärde är en uppskattning och varierar beroende på serverns fysiska minneskapacitet och allmänna operativsystemkostnader.

Värdet V, den största virtuella ha-datorn i skalningsenheten, baseras dynamiskt på den största minnesstorleken för den virtuella klientdatorn. Till exempel är det största värdet för virtuell ha-dator minst 12 GB (med hänsyn till den virtuella infrastrukturens VIRTUELLA dator) eller 112 GB eller någon annan vm-minnesstorlek som stöds i Azure Stack Hub-lösningen. Om du ändrar den största virtuella ha-datorn i Azure Stack Hub-infrastrukturresurserna ökar återhämtningsreserven och även den virtuella datorns minne. Kom ihåg att virtuella GPU-datorer körs i icke-HA-läge.

Exempelberäkning

Vi har en liten Azure Stack Hub-distribution med fyra noder med 768 GB RAM-minne på varje nod. Vi planerar att placera en virtuell dator för SQL Server med 128 GB RAM-minne (Standard_E16_v3). Vad blir det tillgängliga minnet för vm-placering?

  • Totalt värdminne = Summa minne från alla noder = 4 * 768 GB = 3 072 GB
  • Återhämtningsreserv = H + R * ((N-1) * H) + V * (N-2) = 768 + 0,15 * ((4 - 1) * 768) + 128 * (4 - 2) = 1370 GB
  • Minne som används av virtuella klientdatorer = Verkligt minne som förbrukas av klientarbetsbelastningen, är inte beroende av HA-konfiguration = 0 GB
  • Infrastrukturkostnader för Azure Stack Hub = 268 GB + (4 GB x N) = 268 + (4 * 4) = 284 GB

Tillgängligt minne för VM-placering = totalt värdminne – återhämtningsreserv – minne som används av virtuella klientdatorer – Infrastrukturkostnader för Azure Stack Hub

Tillgängligt minne för VM-placering = 3072 – 1 370 – 0 – 284 = 1 418 GB

Överväganden för frigöring

När en virtuell dator är i frigjort tillstånd används inte minnesresurser. Detta gör att andra virtuella datorer kan placeras i systemet.

Om den frigjorda virtuella datorn sedan startas igen behandlas minnesanvändningen eller allokeringen som en ny virtuell dator som placeras i systemet och tillgängligt minne förbrukas. Om det inte finns något tillgängligt minne startar inte den virtuella datorn.

Aktuella distribuerade stora virtuella datorer visar att det allokerade minnet är 112 GB, men minnesbehovet för dessa virtuella datorer är cirka 2–3 GB.

Name Tilldelad minne (GB) Minnesefterfrågan (GB) ComputerName
ca7ec2ea-40fd-4d41-9d9b-b11e7838d508 112 2.2392578125 LISSA01P-NODE01
10cd7b0f-68f4-40ee-9d98-b9637438ebf4 112 2.2392578125 LISSA01P-NODE01
2e403868-ff81-4abb-b087-d9625ca01d84 112 2.2392578125 LISSA01P-NODE04

Det finns tre sätt att frigöra minne för vm-placering med formeln Återhämtningsreserv = H + R * ((N-1) * H) + V * (N-2):

  • Minska storleken på den största virtuella datorn
  • Öka minnet för en nod
  • Lägga till en nod

Minska storleken på den största virtuella datorn

Om du minskar storleken på den största virtuella datorn till den näst minsta virtuella datorn i stämpel (24 GB) minskar storleken på återhämtningsreserven.

Minska storleken på den virtuella datorn

Återhämtningsreserv = 384 + 172,8 + 48 = 604,8 GB

Totalt minne Infra GB Klientorganisation GB Återhämtningsreserv Totalt reserverat minne Totalt antal GB som är tillgängliga för placering
1536 GB 258 GB 329,25 GB 604,8 GB 258 + 329,25 + 604,8 = 1168 GB ~344 GB

Lägga till en nod

Om du lägger till en Azure Stack Hub-nod frigörs minnet genom att minnet fördelas jämnt mellan de två noderna.

Lägga till en nod

Återhämtningsreserv = 384 + (0,15) ((5)*384) + 112 * (3) = 1 008 GB

Totalt minne Infra GB Klientorganisation GB Återhämtningsreserv Totalt reserverat minne Totalt antal GB som är tillgängliga för placering
1536 GB 258 GB 329,25 GB 604,8 GB 258 + 329,25 + 604,8 = 1168 GB ~ 344 GB

Öka minnet på varje nod till 512 GB

Om du ökar minnet för varje nod ökar det totala tillgängliga minnet.

Öka nodens storlek

Återhämtningsreserv = 512 + 230,4 + 224 = 966,4 GB

Totalt minne Infra GB Klientorganisation GB Återhämtningsreserv Totalt reserverat minne Totalt antal GB som är tillgängliga för placering
2048 (4*512) GB 258 GB 505,75 GB 966,4 GB 1730,15 GB ~ 318 GB

Vanliga frågor och svar

F: Min klientorganisation har distribuerat en ny virtuell dator, hur lång tid tar det för kapacitetsdiagrammet i administratörsportalen att visa återstående kapacitet?

S: Kapacitetsbladet uppdateras var 15:e minut, så ta hänsyn till det.

F: Hur kan jag se tillgängliga kärnor och tilldelade kärnor?

S: I PowerShell kör test-azurestack -include AzsVmPlacement -debugdu , som genererar utdata som denna:

    Starting Test-AzureStack
    Launching AzsVmPlacement
     
    Azure Stack Scale Unit VM Placement Summary Results
     
    Cluster Node    VM Count VMs Running Physical Core Total Virtual Co Physical Memory Total Virtual Mem
    ------------    -------- ----------- ------------- ---------------- --------------- -----------------
    LNV2-Node02     20       20          28            66               256             119.5            
    LNV2-Node03     17       16          28            62               256             110              
    LNV2-Node01     11       11          28            47               256             111              
    LNV2-Node04     10       10          28            49               256             101              
    
    PASS : Azure Stack Scale Unit VM Placement Summary

F: Antalet distribuerade virtuella datorer på min Azure Stack Hub har inte ändrats, men min kapacitet varierar. Varför?

S: Det tillgängliga minnet för VM-placering har flera beroenden, varav ett är värdoperativsystemets reserv. Det här värdet är beroende av det minne som används av de olika Hyper-V-processer som körs på värden, vilket inte är ett konstant värde.

F: Vilket tillstånd måste virtuella klientdatorer vara i för att förbruka minne?

S: Förutom att köra virtuella datorer förbrukas minnet av alla virtuella datorer som har landat i infrastrukturresurserna. Det innebär att virtuella datorer som har tillståndet "Skapa" eller "Misslyckades" förbrukar minne. Virtuella datorer som stängs av från gästen i stället för att stoppa frigöring från portalen/powershell/cli förbrukar också minne.

F: Jag har en Azure Stack Hub med fyra värdar. Min klientorganisation har 3 virtuella datorer som förbrukar 56 GB RAM-minne (D5_v2) vardera. En av de virtuella datorerna har storleksanpassats till 112 GB RAM(D14_v2) och tillgänglig minnesrapportering på instrumentpanelen resulterade i en topp på 168 GB användning på kapacitetsbladet. Efterföljande storleksändring av de andra två D5_v2 virtuella datorerna till D14_v2 resulterade i att endast 56 GB RAM-minne ökade var och en. Varför är det så?

S: Det tillgängliga minnet är en funktion av återhämtningsreserven som underhålls av Azure Stack Hub. Återhämtningsreserven är en funktion av den största VM-storleken på Azure Stack Hub-stämpeln. Först var den största virtuella datorn på stämpeln 56 GB minne. När den virtuella datorn ändrades blev den största virtuella datorn på stämpeln 112 GB minne, vilket inte bara ökade det minne som användes av den virtuella klientdatorn utan också ökade återhämtningsreserven. Den här ändringen resulterade i en ökning med 56 GB (56 GB till 112 GB minnesökning för den virtuella klientdatorn) + 112 GB minnesökning för återhämtningsreserven. När efterföljande virtuella datorer ändrades fanns den största storleken på den virtuella datorn kvar som den virtuella datorn på 112 GB och därför fanns det ingen resulterande återhämtningsreservökning. Den ökade minnesförbrukningen var bara den virtuella klientorganisationens minnesökning (56 GB).

Anteckning

Kapacitetsplaneringskraven för nätverk är minimala eftersom endast storleken på den offentliga VIP:en kan konfigureras. Information om hur du lägger till fler offentliga IP-adresser till Azure Stack Hub finns i Lägga till offentliga IP-adresser.

Nästa steg

Lär dig mer om Azure Stack Hub Storage