Udostępnij przez


Migrowanie maszyn wirtualnych o niskim priorytecie usługi Batch do maszyn wirtualnych typu Spot

Możliwość przydzielania węzłów obliczeniowych o niskim priorytcie w pulach usługi Azure Batch jest wycofywana 30 września 2025 r. Dowiedz się, jak migrować pule usługi Batch z węzłami obliczeniowymi o niskim priorytecie do węzłów obliczeniowych opartych na wystąpieniach typu spot.

Informacje o funkcji

Obecnie w ramach konfiguracji puli usługi Batch można określić docelową liczbę węzłów obliczeniowych o niskim priorytecie dla kont usługi Batch do alokacji puli zarządzanej. W ramach alokacji kont Batch w puli subskrypcji użytkownika można określić docelową liczbę węzłów obliczeniowych typu spot. W obu przypadkach te zasoby obliczeniowe są przydzielane z wolnej pojemności i oferowane z rabatem w porównaniu z dedykowanymi maszynami wirtualnymi na żądanie.

Ilość nieużywanej pojemności, która jest dostępna, różni się w zależności od czynników, takich jak rodzina maszyn wirtualnych, rozmiar maszyny wirtualnej, region i godzina dnia. W przeciwieństwie do pojemności dedykowanej te maszyny wirtualne o niskim priorytcie lub typu spot mogą być odzyskiwane w dowolnym momencie przez platformę Azure. W związku z tym maszyny wirtualne o niskim priorytecie i typu spot są zazwyczaj opłacalne dla obciążeń usługi Batch, które mogą być przerywane lub nie wymagają ściśle określonych terminów ukończenia, co pozwala potencjalnie obniżyć koszty.

Koniec wsparcia dla funkcji

W usłudze Batch są wycofywane tylko węzły obliczeniowe o niskim priorytcie. Węzły obliczeniowe typu spot będą nadal obsługiwane, są ofertą ogólnodostępną i nie zostaną dotknięte tym wycofaniem. 30 września 2025 r. wycofamy węzły obliczeniowe o niskim priorytcie. Po tej dacie istniejące pule o niskim priorytecie w usłudze Batch mogą nie być już używane, próby powrotu do docelowych liczb węzłów o niskim priorytecie nie powiedzą się i nie będzie już można aprowizować nowych pul z węzłami obliczeniowymi o niskim priorytecie.

Alternatywa: Używanie węzłów obliczeniowych opartych na usłudze Azure Spot w pulach usługi Batch

Od grudnia 2021 r. Azure Batch rozpoczął oferowanie węzłów obliczeniowych opartych na instancjach Spot w Batch. Podobnie jak maszyny wirtualne o niskim priorytecie, można użyć instancji typu spot, aby uzyskać wolną pojemność po obniżonej cenie w zamian za możliwość przerwania działania maszyny wirtualnej. Jeśli wystąpi wywłaszczenie, węzeł obliczeniowy typu spot zostanie usunięty, a cała praca, która nie została odpowiednio zarchiwizowana, zostanie utracona. Tworzenie punktów kontrolnych jest opcjonalne i jest decyzją użytkownika końcowego usługi Batch, czy je zaimplementować. Zadanie usługi Batch, które zostało przerwane z powodu wywłaszczenia, będzie automatycznie ponownie zakolejkowane do wykonania przez inny węzeł obliczeniowy. Ponadto usługa Azure Batch automatycznie podejmie próbę powrotu do określonej w puli docelowej liczby węzłów typu spot.

Co zmienia się podczas migracji

W przypadku migracji z maszyn wirtualnych o niskim priorytetu do maszyn wirtualnych typu spot mają wpływ następujące właściwości konfiguracji puli:

  • Tryb alokacji puli: musi być UserSubscription (maszyny wirtualne typu spot nie są dostępne w trybie BatchService)
  • Konfiguracja maszyny wirtualnej: musi być VirtualMachineConfiguration (nieobsługiwana w CloudServiceConfiguration)
  • Właściwości węzła docelowego:
    • targetLowPriorityNodestargetSpotNodes
    • Model cen puli zmienia się z niskiego priorytetu na ceny typu spot
    • Polityka eksmisji może być konfigurowana (usuwanie lub zwalnianie zasobów)

Zapoznaj się ze szczegółowym podziałem między ofertą o niskim priorytecie i ofertą spot w ramach usługi Batch.

Migracja puli usługi Batch z węzłami obliczeniowymi o niskim priorytecie lub tworzenie puli usługi Batch z wystąpieniami typu spot

Wymagania wstępne

  1. Upewnij się, że używasz trybu alokacji puli subskrypcji użytkownika w koncie usługi Batch.
  2. Sprawdź, czy Twój zasób używa VirtualMachineConfiguration (maszyny wirtualne typu spot nie są obsługiwane w CloudServiceConfiguration).

Utwórz nową pulę z wystąpieniami typu spot:

az batch pool create \
  --id "spot-pool-001" \
  --vm-size "Standard_D2s_v3" \
  --target-low-priority-nodes 5 \
  --enable-inter-node-communication false \
  --image "Canonical:0001-com-ubuntu-server-focal:20_04-lts-gen2" \
  --node-agent-sku-id "batch.node.ubuntu 20.04" \
  --account-name <your-batch-account-name> \
  --account-endpoint "https://<your-batch-account-name>.<region>.batch.azure.com"

Skaluj istniejącą pulę, aby używać wystąpień typu spot:

az batch pool resize \
  --pool-id <existing-pool-id> \
  --target-dedicated-nodes 0 \
  --target-low-priority-nodes 5 \
  --account-name <your-batch-account-name> \
  --account-endpoint "https://<your-batch-account-name>.<region>.batch.azure.com"

Opcja 2. Azure PowerShell (metoda automatyzacji alternatywnej)

Utwórz pulę z wystąpieniami typu spot:

New-AzBatchPool `
  -Id "spot-pool-001" `
  -VirtualMachineSize "Standard_D2s_v3" `
  -TargetLowPriorityComputeNodes 5 `
  -VirtualMachineImageId "/subscriptions/{subscription}/resourceGroups/{rg}/providers/Microsoft.Compute/images/{image}" `
  -BatchContext $context

Zweryfikuj przy użyciu programu PowerShell:

$pool = Get-AzBatchPool -Id "spot-pool-001" -BatchContext $context
$pool | Select-Object Id, VmSize, @{Name="SpotNodes";Expression={$_.TargetLowPriorityComputeNodes}}, State

Opcja 3. Witryna Azure Portal (metoda interfejsu użytkownika)

  1. W witrynie Azure Portal wybierz konto usługi Batch i wyświetl istniejącą pulę lub utwórz nową pulę.

  2. W obszarze Skalowanie wybierz Docelowe dedykowane węzły lub Docelowe węzły typu spot/o niskim priorytecie.

    Zrzut ekranu przedstawiający sposób skalowania węzłów docelowych.

  3. W przypadku istniejącej puli wybierz pulę, a następnie wybierz pozycję Skaluj , aby zaktualizować liczbę węzłów typu spot wymaganych na podstawie zaplanowanego zadania.

  4. Wybierz pozycję Zapisz.

Weryfikowanie migracji

Sprawdź konfigurację puli po migracji:

az batch pool show \
  --account-name <your-batch-account-name> \
  --account-endpoint "https://<your-batch-account-name>.<region>.batch.azure.com" \
  --pool-id <your-pool-id> \
  --query "{PoolID:id, VMSize:vmSize, SpotNodes:scaleSettings.targetLowPriorityNodes, AllocationMode:poolAllocationMode, VMConfig:virtualMachineConfiguration.nodeAgentSkuId}"

Oczekiwane pomyślne dane wyjściowe:

{
  "AllocationMode": "UserSubscription",
  "PoolID": "spot-pool-001",
  "SpotNodes": 5,
  "VMConfig": "batch.node.ubuntu 20.04",
  "VMSize": "Standard_D2s_v3"
}

Zweryfikuj stan puli i przydział węzłów:

az batch pool show \
  --account-name <your-batch-account-name> \
  --account-endpoint "https://<your-batch-account-name>.<region>.batch.azure.com" \
  --pool-id <your-pool-id> \
  --query "{State:state, CurrentSpotNodes:currentLowPriorityNodes, TargetSpotNodes:scaleSettings.targetLowPriorityNodes, ResizeErrors:resizeErrors}"

Oczekiwane dane wyjściowe dla puli w dobrej kondycji:

{
  "CurrentSpotNodes": 5,
  "ResizeErrors": null,
  "State": "steady",
  "TargetSpotNodes": 5
}

Rozwiązywanie problemów: Co wskazuje na problem?

  • Stan: "resizing" (w przypadku dłuższych okresów) wskazuje problemy z alokacją
  • ResizeErrors: Każda wartość inna niż null wskazuje problemy z pojemnością lub limitem przydziału
  • CurrentSpotNodes<TargetSpotNodes: pula nie osiągnęła pojemności docelowej

Zmienne konfiguracji dla automatyzacji

W przypadku zespołów tworzących zautomatyzowane rozwiązania są to kluczowe właściwości konfiguracji i ich wartości:

Właściwości interfejsu API REST

  • Tryb alokacji puli: poolAllocationMode: "UserSubscription"
  • Typ konfiguracji maszyny wirtualnej: virtualMachineConfiguration (wymagane)
  • Docelowe węzły typu spot: targetLowPriorityNodes: <number>
  • Zasady eksmisji: virtualMachineConfiguration.spotPolicy.evictionPolicy: "delete" lub "deallocate"

Zmienne szablonu usługi ARM

{
  "poolAllocationMode": "UserSubscription",
  "scaleSettings": {
    "targetDedicatedNodes": 0,
    "targetLowPriorityNodes": 5
  },
  "virtualMachineConfiguration": {
    "imageReference": {...},
    "nodeAgentSkuId": "batch.node.ubuntu 20.04"
  }
}

Konfiguracja narzędzia Terraform

resource "azurerm_batch_pool" "spot_pool" {
  pool_allocation_mode = "UserSubscription"
  
  scale_settings {
    target_dedicated_nodes     = 0
    target_low_priority_nodes  = 5
  }
  
  virtual_machine_configuration {
    image_reference {...}
    node_agent_sku_id = "batch.node.ubuntu 20.04"
  }
}

Często zadawane pytania

  • Jak utworzyć konto Batch do alokacji puli subskrypcji użytkownika?

    Zobacz przewodnik szybkiego startu aby utworzyć nowe konto Batch w trybie alokacji puli w subskrypcji użytkownika.

  • Czy maszyny wirtualne typu spot są dostępne w kontach alokacji puli zarządzanych przez usługę Batch?

    Nr. Maszyny wirtualne typu spot są dostępne tylko w kontach usługi Batch, gdzie alokacja odbywa się w ramach puli subskrypcji użytkownika.

  • Czy wystąpienia typu spot są dostępne dla CloudServiceConfiguration pul?

    Nr. Instancje typu spot są dostępne tylko dla VirtualMachineConfiguration pul. CloudServiceConfiguration baseny zostaną wycofane przed basenami o niższym priorytecie. Zalecamy przeprowadzenie migracji do VirtualMachineConfiguration pul oraz alokacji kont usługi Batch w pulach subskrypcji użytkowników przed tym czasem.

  • Jakie są zasady dotyczące kosztów i usuwania wystąpień typu spot? Czy mogę wyświetlić historię cen i stawki eksmisji?

    Tak. W portalu Azure możesz zobaczyć historyczne ceny i stawki eksmisji według rozmiaru w regionie.

    Aby uzyskać więcej informacji na temat korzystania z maszyn wirtualnych typu spot, zobacz Spot Virtual Machines (Maszyny wirtualne typu spot).

  • Czy mogę przenieść przydziały między kontami usługi Batch?

    Obecnie nie można przenosić przydziałów między kontami Batch.

Następne kroki

Aby uzyskać szczegółowe informacje na temat różnic między ofertami, ograniczeniami i przykładami wdrażania, zobacz przewodnik dotyczący wystąpienia obliczeniowego usługi Batch Spot.