Práce s tipy pro umístění ve virtuálním počítači Azure Operator Nexus
V tomto článku se dozvíte, jak pomocí tipů vést umístění virtuálních počítačů v prostředí Azure Operator Nexus. Tyto rady pro umístění se dají použít k vytvoření spřažení nebo spřažení mezi virtuálními počítači, holým počítačem nebo racky. Pomocí nápovědy k umístění se ujistěte, že jsou virtuální počítače naplánované požadovaným způsobem v prostředí Azure Operator Nexus.
Pravidla spřažení umožňují určit, že virtuální počítače by měly být hostované na stejném fyzickém počítači nebo racku. Naopak pravidla anti-spřažení zajišťují, že virtuální počítače jsou hostované na různých fyzických počítačích nebo rackech.
Celkovou odolnost aplikace můžete zvýšit pomocí pravidel ochrany proti spřažení k rozložení virtuálních počítačů mezi různé domény selhání (racky, fyzické počítače atd.). Pomocí pravidel spřažení můžete zvýšit nákladovou efektivitu aplikace a zabalit virtuální počítače na méně fyzických počítačů.
Předpoklady
Než budete pokračovat v tomto průvodci postupy, ujistěte se, že jste dokončili všechny kroky v příručce Rychlý start k virtuálnímu počítači Nexus operátora Azure.
Konfigurace tipů pro umístění
Tato část vysvětluje koncept tipů pro umístění a způsob fungování jednotlivých polí v rozhraní API, což je užitečné při nastavování a správě virtuálních počítačů.
{
"hintType": "Affinity/AntiAffinity",
"resourceId": "ARM ID of the virtual machine, bare-metal machine, or rack",
"schedulingExecution": "Hard/Soft",
"scope": "Rack/Machine"
}
Typ nápovědy
Argument hintType
se používá v tipech umístění k určení, zda tip umístění podporuje spřažení nebo anti-spřažení s odkazovanými prostředky.
Argument hintType má dvě možné hodnoty: Affinity
nebo AntiAffinity
.
- Spřažení: Pokud je typ hintType nastavený na Spřažení, použije se tip k vytvoření pravidla spřažení mezi virtuálním počítačem a odkazovanými prostředky. V důsledku toho je virtuální počítač naplánován na konkrétní holý počítač, rack nebo blízko instance virtuálního počítače jako odkazovaný prostředek.
- AntiAffinity: Pokud je hintType nastavena na AntiAffinity, použije se k vytvoření pravidla anti-spřažení mezi virtuálním počítačem a odkazovanými prostředky. V důsledku toho je virtuální počítač naplánován na jiném holém počítači, racku nebo instanci virtuálního počítače z odkazovaného prostředku.
ID zdroje
Argument resourceId
v nápovědě k umístění určuje cílový objekt, proti kterému jsou kontrolovány rady pro umístění. Cílový objekt může být libovolný z následujících.
- Virtuální počítač: Pokud je cílovým objektem virtuální počítač, zkontroluje se v konkrétní instanci virtuálního počítače tip pro umístění.
- A BareMetalMachine: Pokud je cílovým objektem holý počítač, je tip pro umístění zkontrolován na konkrétní holý počítač.
- Rack: Pokud je cílovým objektem rack, je tip pro umístění kontrolován proti všem holým počítačům běžícím na tomto racku.
Důležité
Argument resourceId musí být zadán ve formě ID ARM a musí se jednat o platné ID prostředku pro cílový objekt. Pokud je id prostředku nesprávné nebo neplatné, nápověda k umístění nebude správně fungovat a plánování virtuálního počítače může selhat.
Obor
Argument scope
se používá v tipech umístění k určení rozsahu spřažení virtuálního počítače nebo nápovědy pro umístění proti spřažení. Argument oboru je použitelný pouze v resourceId
případě, že argument cílí na virtuální počítač.
Argument oboru má dvě možné hodnoty: Machine
nebo Rack
.
- Počítač: Pokud je obor nastavený na počítač, použije se nápověda pro umístění stejného holého počítače jako zadaný virtuální počítač. Pokud například tip pro umístění určuje, že by se měl virtuální počítač umístit na stejný holý počítač jako zadaný virtuální počítač, nastaví se obor na Počítač.
- Rack: Pokud je rozsah nastavený na Rack, tip pro umístění se vztahuje na rack, do kterého zadaný virtuální počítač patří. Pokud například tip umístění určuje, že by měl být virtuální počítač umístěn do stejného racku, na který je právě umístěný zadaný virtuální počítač, bude rozsah nastaven na Rack.
Důležité
Tento argument nemůže být prázdný.
Plánování provádění
Argument schedulingExecution
se používá v nápovědě k umístění k určení, zda je tip pro umístění pevný nebo měkký požadavek během plánování.
Argument schedulingExecution má dvě možné hodnoty: Hard
nebo Soft
.
- Hard: Když je plánovacíExecution nastaven na Hard, tip umístění se při plánování považuje za striktní požadavek. V důsledku toho plánovač umístí virtuální počítač pouze do zadaného prostředku zadaného v nápovědě k umístění. Pokud není k dispozici žádný prostředek, který splňuje pevný požadavek, plánování virtuálního počítače selže.
- Soft: Pokud je plánovacíExecution nastaven na Soft, tip umístění se při plánování považuje za předvolbu. V důsledku toho se plánovač pokusí umístit virtuální počítač do zadaného prostředku zadaného v nápovědě k umístění, ale pokud to není možné, může plánovač umístit virtuální počítač do jiného prostředku.
Příklad spřažení racků a tipů pro umístění proti spřažení
Získání dostupných ID racků
Nastavte požadované proměnné.
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 '\"')"
Získejte ID racku.
az networkcloud rack list -g $NEXUS_CLUSTER_MANAGED_RG --subscription $NEXUS_CLUSTER_SUBSCRIPTION --query [].id
Ukázkový výstup
$ 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>" ]
Umístění virtuálního počítače do konkrétního racku
V tomto příkladu prozkoumáme koncepty měkkých a pevných spřažení, zejména o umístění virtuálních počítačů do konkrétních racků.
Poznámka:
V tomto a následujících příkladech jsou k dispozici pouze varianty argumentu --placement-hints
. Pro skutečné vytvoření virtuálního počítače s pokyny pro umístění byste měli přidat --placement-hints
do rozhraní příkazového řádku znázorněného v příručce Rychlý start virtuálního počítače.
Striktní plánování (spřažení racků)
Tento tip pro umístění používá Affinity
hintType k zajištění, že je virtuální počítač naplánovaný pouze na zadaném racku s daným ID racku. Pokud je rack nedostupný nebo nemá kapacitu, plánování selže. Tento tip pro umístění může být užitečný v situacích, kdy chcete zajistit, aby určité virtuální počítače byly umístěny do konkrétních racků z hlediska výkonu, zabezpečení nebo jiných důvodů.
--placement-hints '[{"hintType":"Affinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-2>","schedulingExecution":"Hard","scope":"Rack"}]'
Poznámka:
Aktuální konfigurace nápovědy pro umístění s typem hintType spřažení zajišťuje, že je virtuální počítač naplánovaný výhradně na zadaném racku se zadaným ID racku. Je však důležité si uvědomit, že spřažení racku nelze určit pro více než jeden rack s plánováním Hard
provádění. Toto omezení může ovlivnit vaši strategii nasazení, zejména pokud uvažujete o umístění virtuálních počítačů do více racků a umožníte plánovači vybírat z nich.
Upřednostňované plánování (spřažení racků)
Tento tip pro umístění využívá Affinity
hintType k vytvoření pravidla spřažení mezi virtuálním počítačem a určeným rackem. Využívá Soft
také plánovacíExecution, aby se virtuální počítač mohl umístit do alternativního racku v případě, že zadaný rack není přístupný nebo nemá kapacitu.
--placement-hints '[{"hintType":"Affinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-2>","schedulingExecution":"Soft","scope":"Rack"}]'
Zabránění umístění virtuálního počítače do konkrétního racku
V tomto příkladu prozkoumáme koncepty měkkých a tvrdých spřažení, zejména o zabránění umístění virtuálních počítačů do konkrétních racků.
Striktní plánování (spřažení racku)
Tento tip pro umístění používá AntiAffinity
parametr hintType i Hard
schedulingExecution, aby se zabránilo naplánování virtuálního počítače v zadaném racku identifikovaném ID racku. V této konfiguraci plánovač striktně dodržuje tyto rady pro umístění. Pokud je ale ID racku nesprávné nebo v jiných rackech není dostatek kapacity, může umístění virtuálního počítače selhat kvůli striktnímu použití Hard
pravidla plánování.
--placement-hints '[{"hintType":"AntiAffinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-2>","schedulingExecution":"Hard","scope":"Rack"}]'
Upřednostňované plánování (spřažení racku)
Tento tip pro umístění používá AntiAffinity
hintType se záměrem vyhnout se konkrétnímu racku pro umístění virtuálního počítače. Je ale důležité si uvědomit, že i přes tuto předvolbu může být virtuální počítač stále umístěn do tohoto nežádoucího racku, pokud jiné racky nemají dostatečnou kapacitu. K tomuto umístění dochází, protože plánovacíExecution je nastaven na Soft
hodnotu , která umožňuje, aby se virtuální počítač na začátku vyhnul racku, pokud nejsou možné jiné možnosti.
--placement-hints '[{"hintType":"AntiAffinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/racks/<compute-rack-2>","schedulingExecution":"Soft","scope":"Rack"}]'
Příklad spřažení holých počítačů a spřažení proti spřažení
Získání dostupných ID holých počítačů
Nastavte požadované proměnné.
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 '\"')"
Získejte ID racku.
az networkcloud baremetalmachine list -g $NEXUS_CLUSTER_RG --subscription $NEXUS_CLUSTER_SUBSCRIPTION --query "sort_by([].{ID: id, RackID: rackId}, &RackID)"
Ukázkový výstup
$ 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>" } ]
Umístění virtuálního počítače na konkrétní holý počítač
V tomto příkladu prozkoumáme koncepty měkkých a pevných spřažení, zejména o umístění virtuálních počítačů na konkrétní holé počítače.
Striktní plánování (spřažení holých počítačů)
Tento tip pro umístění používá Affinity
hintType k zajištění, že je virtuální počítač naplánován pouze na zadaném holém počítači s daným ID holého počítače. Pokud holý počítač není dostupný nebo nemá kapacitu, plánování selže. Tento tip pro umístění může být užitečný v situacích, kdy chcete zajistit, aby se určité virtuální počítače umístily na konkrétní holý počítač z hlediska výkonu, zabezpečení nebo jiných důvodů.
--placement-hints '[{"hintType":"Affinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/bareMetalMachines/<machine-name>","schedulingExecution":"Hard","scope":"Machine"}]'
Upřednostňované plánování (spřažení holých počítačů)
Tento tip pro umístění využívá Affinity
hintType k vytvoření pravidla spřažení mezi virtuálním počítačem a určeným holým počítačem. Využívá Soft
také plánovacíExecution, aby byl virtuální počítač umístěn na alternativní holý počítač v případě, že zadaný holý počítač není přístupný nebo nemá kapacitu.
--placement-hints '[{"hintType":"Affinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/bareMetalMachines/<machine-name>","schedulingExecution":"Soft","scope":"Machine"}]'
Zabránění umístění virtuálního počítače na konkrétní holý počítač
V tomto příkladu prozkoumáme koncepty měkkých a pevných antispřažení, zejména o zabránění umístění virtuálních počítačů na konkrétní holé počítače.
Striktní plánování (spřažení holých počítačů)
Tento tip umístění používá AntiAffinity
parametr hintType i Hard
schedulingExecution, aby se zabránilo naplánování virtuálního počítače na určeném holém počítači identifikovaném ID holého počítače. V této konfiguraci plánovač striktně dodržuje tyto rady pro umístění. Pokud je ale ID holého počítače nesprávné nebo na jiných holých počítačích není dostatek kapacity, může umístění virtuálního počítače selhat kvůli striktní aplikaci Hard
pravidla plánování.
--placement-hints '[{"hintType":"AntiAffinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/bareMetalMachines/<machine-name>","schedulingExecution":"Hard","scope":"Machine"}]'
Upřednostňované plánování (spřažení holých počítačů)
Tento tip pro umístění používá AntiAffinity
hintType se záměrem vyhnout se konkrétnímu holému počítači pro umístění virtuálního počítače. Je však důležité si uvědomit, že i přes tuto předvolbu může být virtuální počítač stále umístěn na tento nepotřebný holý počítač, pokud jiné holé počítače nemají dostatečnou kapacitu. K tomuto umístění dochází, protože plánovacíExecution je nastaven na Soft
hodnotu , která umožňuje, aby se virtuální počítač na začátku vyhnul holému počítači, pokud nejsou možné jiné možnosti.
--placement-hints '[{"hintType":"AntiAffinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/bareMetalMachines/<machine-name>","schedulingExecution":"Soft","scope":"Machine"}]'
Příklad tipů pro spřažení virtuálních počítačů a spřažení virtuálních počítačů a doporučení pro umístění proti spřažení
Získání dostupných ID virtuálních počítačů
Nastavte požadované proměnné.
RESOURCE_GROUP=<Target VM resource group> NEXUS_CLUSTER_SUBSCRIPTION="$(az account show -o tsv --query id)"
Získejte ID virtuálního počítače.
az networkcloud virtualmachine list -g $RESOURCE_GROUP --subscription $NEXUS_CLUSTER_SUBSCRIPTION --query [].id
Ukázkový výstup
$ 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>" ]
Umístění virtuálního počítače blízko konkrétního virtuálního počítače
Tato část zkoumá umístění virtuálních počítačů poblíž určitých virtuálních počítačů a zvýrazňuje důležitou roli parametru scope
v konfiguraci tipů pro umístění. Plánovač prostřednictvím definovaného oboru směruje umístění virtuálních počítačů buď na stejný holý počítač, nebo ve stejném racku jako odkazované ID prostředku virtuálního počítače. Je důležité si uvědomit, že i když zde uvedené příklady ilustrují Hard
provádění plánování, můžete podle potřeby použít Soft
plánování na základě vašeho konkrétního případu použití.
Umístění virtuálních počítačů na stejný holý počítač (spřažení virtuálních počítačů)
V tomto příkladu zadáním Affinity
typu nápovědy a Machine
oboru konfigurace způsobí umístění virtuálního počítače na stejný holý počítač jako virtuální počítač identifikovaný daným ID prostředku. V důsledku toho nový virtuální počítač sdílí stejný holý počítač jako odkazovaný virtuální počítač, což vede k potenciálně nižší latenci mezi virtuálními počítači a vyšší výkon.
--placement-hints '[{"hintType":"Affinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.NetworkCloud/virtualMachines/<vm-1>","schedulingExecution":"Hard","scope":"Machine"}]'
Umístění virtuálních počítačů do stejného racku (spřažení virtuálních počítačů)
V tomto příkladu konfigurace s typem Affinity
nápovědy a Rack
rozsahem vede k umístění virtuálních počítačů ve stejném racku jako virtuální počítač identifikovaný daným ID prostředku. V důsledku toho se nové virtuální počítače umístí do fyzické blízkosti referenčního virtuálního počítače, což může snížit latenci sítě a zvýšit výkon.
--placement-hints '[{"hintType":"Affinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.NetworkCloud/virtualMachines/<vm-1>","schedulingExecution":"Hard","scope":"Rack"}]'
Zabránění umístění virtuálních počítačů blízko konkrétního virtuálního počítače (spřažení virtuálního počítače)
V této části se typ nápovědy používá k AntiAffinity
zabránění umístění virtuálních počítačů blízko určitých jiných virtuálních počítačů. Parametr scope
se rozhodne, jestli k tomuto oddělení dojde na úrovni stroje nebo na úrovni racku. Tato konfigurace je užitečná, když je potřeba virtuální počítače rozložit mezi různé hardware, aby nedocházelo k chybám nebo problémům s výkonem.
Zabránění umístění virtuálních počítačů na stejný holý počítač (spřažení virtuálních počítačů)
Když v tomto příkladu nastavíte obor tak, aby Machine
se zabránilo umístění virtuálních počítačů na stejný holý počítač. Tento přístup zvyšuje odolnost proti chybám snížením rizika selhání jednoho počítače, který ovlivňuje zatížení, a tím zvyšuje celkovou odolnost.
--placement-hints '[{"hintType":"AntiAffinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/virtualMachines/<vm-2>","schedulingExecution":"Hard","scope":"Machine"}]'
Zabránění umístění virtuálních počítačů do stejného racku (spřažení virtuálních počítačů)
V tomto příkladu nastavíte rozsah tak, aby Rack
se virtuální počítače nenastavily do stejného racku. Tato konfigurace pomáhá zvýšit odolnost proti chybám tím, že zajišťuje, že selhání jednoho racku nemá vliv na zatížení.
--placement-hints '[{"hintType":"AntiAffinity","resourceId":"/subscriptions/<subscription>/resourceGroups/<managed-resource-group>/providers/Microsoft.NetworkCloud/virtualMachines/<vm-2>","schedulingExecution":"Hard","scope":"Rack"}]'
Další kroky
I když příklady uvedené v tomto článku ukazují některé běžné případy použití, můžete rozhraní API použít k implementaci široké škály scénářů umístění, což z něj dělá flexibilní a přizpůsobitelné řešení pro správu umístění virtuálních počítačů. scope
Upravte parametry a schedulingExecution
hintType
parametry v různých kombinacích, abyste pochopili, jak ovlivňují umístění virtuálních počítačů. Správné použití tipů pro umísťování může zlepšit dostupnost a odolnost aplikací a služeb spuštěných v instanci Azure Operator Nexus.