Arbeta med placeringstips i den virtuella Azure Operator Nexus-datorn
I den här artikeln får du lära dig hur du använder tips för att styra placeringen av virtuella datorer i Azure Operator Nexus-miljön. De här placeringstipsen kan användas för att skapa tillhörighet eller antitillhörighet mellan virtuella datorer, datorer utan operativsystem eller rack. Använd placeringstips för att säkerställa att virtuella datorer schemaläggs på önskat sätt i Azure Operator Nexus-miljön.
Med tillhörighetsregler kan du ange att virtuella datorer ska finnas på samma fysiska dator eller rack. Omvänt säkerställer regler mot tillhörighet att virtuella datorer finns på olika fysiska datorer eller rack.
Du kan öka programmets övergripande motståndskraft genom att använda regler mot tillhörighet för att sprida virtuella datorer över olika feldomäner (rack, fysiska datorer osv.). Du kan öka kostnadseffektiviteten för ditt program genom att använda tillhörighetsregler för att packa virtuella datorer på färre fysiska datorer.
Förutsättningar
Innan du fortsätter med den här guiden ska du se till att du har slutfört alla steg i snabbstartsguiden för den virtuella Azure-operatören Nexus-datorn.
Konfiguration av placeringstips
I det här avsnittet beskrivs begreppet placeringstips och hur varje fält i API:et fungerar, vilket är användbart när du konfigurerar och hanterar virtuella datorer.
{
"hintType": "Affinity/AntiAffinity",
"resourceId": "ARM ID of the virtual machine, bare-metal machine, or rack",
"schedulingExecution": "Hard/Soft",
"scope": "Rack/Machine"
}
Tipstyp
Argumentet hintType
används i placeringstips för att ange om placeringstipset stöder tillhörighet eller antitillhörighet med de refererade resurserna.
Argumentet hintType har två möjliga värden: Affinity
eller AntiAffinity
.
- Tillhörighet: Om hintType är inställt på Tillhörighet används placeringstipset för att skapa en tillhörighetsregel mellan den virtuella datorn och de refererade resurserna. Därför schemaläggs den virtuella datorn på den specifika dator utan operativsystem, rack eller nära den virtuella datorinstansen som den refererade resursen.
- AntiAffinitet: Om hintType är inställt på AntiAffinity används placeringstipset för att skapa en regel mot tillhörighet mellan den virtuella datorn och de refererade resurserna. Därför schemaläggs den virtuella datorn på en annan dator, rack eller virtuell datorinstans utan operativsystem från den refererade resursen.
Resurs-ID
Argumentet resourceId
i placeringstips anger det målobjekt som placeringstipsen kontrolleras mot. Målobjektet kan vara något av följande.
- En virtuell dator: Om målobjektet är en virtuell dator kontrolleras placeringstipset mot den specifika virtuella datorinstansen.
- BareMetalMachine: Om målobjektet är en bare metal-maskin kontrolleras placeringstipset mot den specifika bare metal-datorn.
- Ett rack: Om målobjektet är ett rack kontrolleras placeringstipset mot alla datorer utan operativsystem som körs på det racket.
Viktigt!
ResourceId-argumentet måste anges i form av ett ARM-ID och det måste vara ett giltigt resurs-ID för målobjektet. Om resourceId är felaktigt eller ogiltigt fungerar inte placeringstipset korrekt och vm-schemaläggningen kan misslyckas.
Omfång
Argumentet scope
används i placeringstips för att ange omfånget för den virtuella datorns tillhörighets- eller placeringstips för tillhörighet mot tillhörighet. Omfångsargumentet gäller endast när resourceId
argumentet riktar sig mot en virtuell dator.
Omfångsargumentet har två möjliga värden: Machine
eller Rack
.
- Dator: Om omfånget är inställt på Dator gäller placeringstipset för samma dator utan operativsystem som den angivna virtuella datorn. Om till exempel placeringstipset anger att den virtuella datorn ska placeras på samma dator utan operativsystem som den angivna virtuella datorn, skulle omfånget anges till Dator.
- Rack: Om omfånget är inställt på Rack gäller placeringstipset för det rack som den angivna virtuella datorn tillhör. Om till exempel placeringstipset anger att den virtuella datorn ska placeras på samma rack som den angivna virtuella datorn för närvarande är placerad, skulle omfånget anges till Rack.
Viktigt!
Det här argumentet kan inte lämnas tomt.
Schemaläggningskörning
Argumentet schedulingExecution
används i placeringstips för att ange om placeringstipset är ett hårt eller mjukt krav under schemaläggningen.
Argumentet schedulingExecution har två möjliga värden: Hard
eller Soft
.
- Hårt: När schedulingExecution har angetts till Hård anses placeringstipset vara ett strikt krav under schemaläggningen. Därför placerar schemaläggaren bara den virtuella datorn på den angivna resursen som anges i placeringstipset. Om det inte finns någon tillgänglig resurs som uppfyller det hårda kravet misslyckas schemaläggningen av den virtuella datorn.
- Mjuk: När schedulingExecution är inställt på Mjuk anses placeringstipset vara en inställning under schemaläggningen. Därför försöker schemaläggaren placera den virtuella datorn på den angivna resursen som anges i placeringstipset, men om det inte är möjligt kan schemaläggaren placera den virtuella datorn på en annan resurs.
Exempel på racktillhörighet och placeringstips för antitillhörighet
Hämta tillgängliga rack-ID:t
Ange de variabler som krävs.
NEXUS_CLUSTER_NAME=<Operator Nexus cluster name> NEXUS_CLUSTER_RG=<Operator Nexus cluster resource group> NEXUS_CLUSTER_SUBSCRIPTION="$(az account show -o tsv --query id)" NEXUS_CLUSTER_MANAGED_RG="$(az networkcloud cluster show -n $NEXUS_CLUSTER_NAME -g $NEXUS_CLUSTER_RG --query managedResourceGroupConfiguration.name | tr -d '\"')"
Hämta rack-ID:t.
az networkcloud rack list -g $NEXUS_CLUSTER_MANAGED_RG --subscription $NEXUS_CLUSTER_SUBSCRIPTION --query [].id
Exempel på utdata.
$ az networkcloud rack list -g $NEXUS_CLUSTER_MANAGED_RG --subscription $NEXUS_CLUSTER_SUBSCRIPTION --query [].id [ "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<network-aggregation-rack>", "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-1>", "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-2>", "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-3>", "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-4>", "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-n>" ]
Placera en virtuell dator på ett specifikt rack
I det här exemplet utforskar vi begreppen mjuk och hård mappning, särskilt om att placera virtuella datorer på specifika rack.
Kommentar
I det här och följande exempel tillhandahålls endast varianter av --placement-hints
argumentet. Om du vill skapa den virtuella datorn med placeringstips bör du lägga till --placement-hints
i CLI som illustreras i snabbstartsguiden för virtuella datorer.
Strikt schemaläggning (racktillhörighet)
Det här placeringstipset Affinity
använder hintType för att säkerställa att den virtuella datorn endast schemaläggs på det angivna racket med det angivna rack-ID:t. Om racket inte är tillgängligt eller saknar kapacitet misslyckas schemaläggningen. Det här placeringstipset kan vara användbart i situationer där du vill se till att vissa virtuella datorer placeras på specifika rack av prestanda, säkerhet eller andra orsaker.
--placement-hints '[{"hintType":"Affinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-2>","schedulingExecution":"Hard","scope":"Rack"}]'
Kommentar
Den aktuella konfigurationen för placeringstips med hintType för tillhörighet säkerställer att den virtuella datorn endast schemaläggs på det angivna racket med det angivna rack-ID:t. Det är dock viktigt att observera att racktillhörigheten inte kan anges för fler än ett rack med Hard
schemaläggningskörning. Den här begränsningen kan påverka distributionsstrategin, särskilt om du överväger att placera virtuella datorer på flera rack och låta schemaläggaren välja bland dem.
Prioriterad schemaläggning (racktillhörighet)
Det här placeringstipset Affinity
använder hintType för att upprätta en tillhörighetsregel mellan den virtuella datorn och det avsedda racket. Den använder också en Soft
schedulingExecution för att göra det möjligt för den virtuella datorn att placeras på ett alternativt rack om det angivna racket inte är tillgängligt eller saknar kapacitet.
--placement-hints '[{"hintType":"Affinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-2>","schedulingExecution":"Soft","scope":"Rack"}]'
Förhindra att den virtuella datorn placeras på ett specifikt rack
I det här exemplet utforskar vi begreppen mjuka och hårda antitillhörigheter, särskilt om att förhindra att virtuella datorer placeras på specifika rack.
Strikt schemaläggning (rackskyddstillhörighet)
Det här placeringstipset AntiAffinity
använder både hintType och Hard
schedulingExecution för att förhindra att den virtuella datorn schemaläggs på det angivna rack som identifierats av rack-ID:t. I den här konfigurationen följer schemaläggaren strikt dessa placeringstips. Men om rack-ID:t är felaktigt eller om det inte finns tillräckligt med kapacitet på andra rack kan placeringen av den virtuella datorn misslyckas på grund av den strikta tillämpningen av Hard
schemaläggningsregeln
--placement-hints '[{"hintType":"AntiAffinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-2>","schedulingExecution":"Hard","scope":"Rack"}]'
Prioriterad schemaläggning (rackskyddstillhörighet)
Det här placeringstipset AntiAffinity
använder hintType för att undvika ett specifikt rack för den virtuella datorns placering. Det är dock viktigt att observera att den virtuella datorn trots den här inställningen fortfarande kan placeras på det här oönskade racket om andra rack inte har tillräckligt med kapacitet. Den här placeringen sker eftersom schedulingExecution är inställt Soft
på , vilket gör att den virtuella datorn kan hanteras på det ursprungligen undvikna racket om andra alternativ inte är möjliga.
--placement-hints '[{"hintType":"AntiAffinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-2>","schedulingExecution":"Soft","scope":"Rack"}]'
Exempel på tillhörighet mellan datorer utan operativsystem och placering mot tillhörighet
Hämta tillgängliga dator-ID:er utan operativsystem
Ange de variabler som krävs.
NEXUS_CLUSTER_NAME=<Operator Nexus cluster name> NEXUS_CLUSTER_RG=<Operator Nexus cluster resource group> NEXUS_CLUSTER_SUBSCRIPTION="$(az account show -o tsv --query id)" NEXUS_CLUSTER_MANAGED_RG="$(az networkcloud cluster show -n $NEXUS_CLUSTER_NAME -g $NEXUS_CLUSTER_RG --query managedResourceGroupConfiguration.name | tr -d '\"')"
Hämta rack-ID:t.
az networkcloud baremetalmachine list -g $NEXUS_CLUSTER_RG --subscription $NEXUS_CLUSTER_SUBSCRIPTION --query "sort_by([].{ID: id, RackID: rackId}, &RackID)"
Exempel på utdata.
$ az networkcloud baremetalmachine list -g $NEXUS_CLUSTER_RG --subscription $NEXUS_CLUSTER_SUBSCRIPTION --query "sort_by([].{ID: id, RackID: rackId}, &RackID)" [ { "ID": "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/bareMetalMachines/<machine-name>", "RackID": "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-1>" }, { "ID": "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/bareMetalMachines/<machine-name>", "RackID": "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-2>" }, { "ID": "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/bareMetalMachines/<machine-name>", "RackID": "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-3>" }, { "ID": "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/bareMetalMachines/<machine-name>", "RackID": "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-4>" }, { "ID": "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/bareMetalMachines/<machine-name>", "RackID": "/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-n>" } ]
Placera en virtuell dator på en specifik dator utan operativsystem
I det här exemplet utforskar vi begreppen mjuk och hård mappning, särskilt om att placera virtuella datorer på specifika datorer utan operativsystem.
Strikt schemaläggning (tillhörighet utan operativsystem)
Det här placeringstipset Affinity
använder hintType för att säkerställa att den virtuella datorn endast schemaläggs på den angivna bare metal-datorn med det angivna dator-ID:t utan operativsystem. Om bare metal-datorn inte är tillgänglig eller saknar kapacitet misslyckas schemaläggningen. Det här placeringstipset kan vara användbart i situationer där du vill se till att vissa virtuella datorer placeras på en specifik dator utan operativsystem av prestanda, säkerhet eller andra orsaker.
--placement-hints '[{"hintType":"Affinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/bareMetalMachines/<machine-name>","schedulingExecution":"Hard","scope":"Machine"}]'
Prioriterad schemaläggning (tillhörighet utan operativsystem)
Det här placeringstipset Affinity
använder hintType för att upprätta en tillhörighetsregel mellan den virtuella datorn och den avsedda bare metal-datorn. Den använder också en Soft
schedulingExecution för att göra det möjligt för den virtuella datorn att placeras på en alternativ dator utan operativsystem om den angivna bare metal-datorn inte är tillgänglig eller saknar kapacitet.
--placement-hints '[{"hintType":"Affinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/bareMetalMachines/<machine-name>","schedulingExecution":"Soft","scope":"Machine"}]'
Förhindra att den virtuella datorn placeras på en specifik dator utan operativsystem
I det här exemplet utforskar vi begreppen mjuka och hårda antitillhörigheter, särskilt om att förhindra att virtuella datorer placeras på specifika datorer utan operativsystem.
Strikt schemaläggning (bare-metal machine anti-affinity)
Det här placeringstipset AntiAffinity
använder både hintType och Hard
schedulingExecution för att förhindra att den virtuella datorn schemaläggs på den angivna bare metal-datorn som identifieras av dator-ID:t utan operativsystem. I den här konfigurationen följer schemaläggaren strikt dessa placeringstips. Men om dator-ID:t utan operativsystem är felaktigt eller om det inte finns tillräckligt med kapacitet på andra datorer utan operativsystem kan placeringen av den virtuella datorn misslyckas på grund av den strikta tillämpningen av Hard
schemaläggningsregeln
--placement-hints '[{"hintType":"AntiAffinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/bareMetalMachines/<machine-name>","schedulingExecution":"Hard","scope":"Machine"}]'
Prioriterad schemaläggning (bare-metal machine anti-affinity)
Det här placeringstipset AntiAffinity
använder hintType för att undvika en specifik dator utan operativsystem för den virtuella datorns placering. Det är dock viktigt att observera att den virtuella datorn trots den här inställningen fortfarande kan placeras på den här oönskade bare metal-datorn om andra datorer utan operativsystem inte har tillräckligt med kapacitet. Den här placeringen sker eftersom schedulingExecution är inställt Soft
på , vilket gör att den virtuella datorn kan hanteras på den ursprungligen undvikna bare metal-datorn om andra alternativ inte är möjliga.
--placement-hints '[{"hintType":"AntiAffinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/bareMetalMachines/<machine-name>","schedulingExecution":"Soft","scope":"Machine"}]'
Exempel på vm-till-VM-tillhörighet och placeringstips för tillhörighet mot tillhörighet
Hämta de tillgängliga virtuella dator-ID:na
Ange de variabler som krävs.
RESOURCE_GROUP=<Target VM resource group> NEXUS_CLUSTER_SUBSCRIPTION="$(az account show -o tsv --query id)"
Hämta det virtuella dator-ID:t.
az networkcloud virtualmachine list -g $RESOURCE_GROUP --subscription $NEXUS_CLUSTER_SUBSCRIPTION --query [].id
Exempel på utdata.
$ az networkcloud virtualmachine list -g $RESOURCE_GROUP --subscription $NEXUS_CLUSTER_SUBSCRIPTION --query [].id [ "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.NetworkCloud/virtualMachines/<vm-1>", "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.NetworkCloud/virtualMachines/<vm-2>", "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.NetworkCloud/virtualMachines/<vm-3>", "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.NetworkCloud/virtualMachines/<vm-n>" ]
Placera en virtuell dator nära en specifik virtuell dator
I det här avsnittet går vi igenom placeringen av virtuella datorer nära vissa virtuella datorer och belyser parameterns viktiga roll i konfigurationen scope
av placeringstips. Genom det definierade omfånget dirigerar schemaläggaren VM-placeringar antingen på samma dator utan operativsystem eller i samma rack som det refererade VM-resourceId. Det är viktigt att observera att även om exemplen här illustrerar schemaläggningskörningen Hard
kan du använda Soft
schemaläggning efter behov, baserat på ditt specifika användningsfall.
Placera virtuella datorer på samma dator utan operativsystem (VM-tillhörighet)
I det här exemplet, genom att Affinity
ange som tipstyp och Machine
som omfång, resulterar konfigurationen i att den virtuella datorn placeras på samma dator utan operativsystem som den virtuella datorn som identifieras av det angivna resurs-ID:t. Därför delar den nya virtuella datorn samma dator utan operativsystem som den refererade virtuella datorn, vilket leder till potentiellt lägre fördröjningar mellan virtuella datorer och bättre prestanda.
--placement-hints '[{"hintType":"Affinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.NetworkCloud/virtualMachines/<vm-1>","schedulingExecution":"Hard","scope":"Machine"}]'
Placera virtuella datorer i samma rack (VM-tillhörighet)
I det här exemplet leder konfigurationen med Affinity
som tipstyp och Rack
som omfång till placeringen av virtuella datorer i samma rack som den virtuella datorn som identifieras av det angivna resurs-ID:t. Därför placeras de nya virtuella datorerna i fysisk närhet till den virtuella referensdatorn, vilket kan minska nätverksfördröjningen och förbättra prestandan.
--placement-hints '[{"hintType":"Affinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.NetworkCloud/virtualMachines/<vm-1>","schedulingExecution":"Hard","scope":"Rack"}]'
Förhindra att virtuella datorer placeras nära en specifik virtuell dator (antitillhörighet för virtuella datorer)
I det här avsnittet AntiAffinity
används tipstypen för att förhindra att virtuella datorer placeras nära vissa andra virtuella datorer. Parametern scope
avgör om den här separationen sker på datornivå eller racknivå. Den här konfigurationen är användbar när virtuella datorer måste spridas ut över olika maskinvara för att undvika fel eller prestandaproblem.
Förhindra att virtuella datorer placeras på samma dator utan operativsystem (antitillhörighet för virtuella datorer)
I det här exemplet, när du anger omfånget till Machine
, förhindrar det att virtuella datorer placeras på samma dator utan operativsystem. Den här metoden ökar feltoleransen genom att minska risken för att en enskild dators fel påverkar arbetsbelastningen, vilket ökar den övergripande robustheten.
--placement-hints '[{"hintType":"AntiAffinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/virtualMachines/<vm-2>","schedulingExecution":"Hard","scope":"Machine"}]'
Förhindra att virtuella datorer placeras i samma rack (antitillhörighet för virtuella datorer)
I det här exemplet anger du omfånget så att Rack
virtuella datorer inte placeras i samma rack. Den här konfigurationen hjälper till att förbättra feltoleransen genom att säkerställa att ett fel i ett enskilt rack inte påverkar arbetsbelastningen.
--placement-hints '[{"hintType":"AntiAffinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/virtualMachines/<vm-2>","schedulingExecution":"Hard","scope":"Rack"}]'
Nästa steg
Även om exemplen i den här artikeln visar några vanliga användningsfall kan API:et användas för att implementera en mängd olika placeringsscenarier, vilket gör det till en flexibel och anpassningsbar lösning för att hantera placering av virtuella datorer. Justera parametrarna scope
, schedulingExecution
och hintType
i olika kombinationer för att förstå hur de påverkar VM-placeringar. Korrekt användning av placeringstips kan förbättra tillgängligheten och motståndskraften för program och tjänster som körs i Azure Operator Nexus-instansen.