Rozwiązywanie problemów z zarządzaniem maszynami wirtualnymi usługi Azure Arc

Dotyczy: Azure Stack HCI, wersja 23H2

Ten artykuł zawiera wskazówki dotyczące zbierania dzienników i rozwiązywania problemów z maszynami wirtualnymi usługi Azure Arc w klastrze azure Stack HCI. Zawiera również listę ograniczeń i znanych problemów, które obecnie istnieją w przypadku zarządzania maszynami wirtualnymi usługi Azure Arc.

Zbieranie dzienników

Dzienniki można zbierać w celu identyfikowania i rozwiązywania problemów z maszynami wirtualnymi usługi Arc w systemie Azure Stack HCI. Te dzienniki służą do zbierania kluczowych informacji przed skontaktowanie się z pomocą techniczną firmy Microsoft w celu uzyskania dodatkowej pomocy.

Upewnij się, że masz najnowszy moduł programu PowerShell do zbierania dzienników. Aby zaktualizować moduł programu PowerShell, uruchom następujące polecenie:

#Update the PowerShell module
Install-Module -Name ArcHci -Force -Confirm:$false -SkipPublisherCheck -AcceptLicense

Aby zebrać dzienniki maszyn wirtualnych usługi Arc w klastrze rozwiązania Azure Stack HCI, uruchom następujące polecenie:

$csv_path="<input-from-admin>"
$VMIP_1="<input-from-admin>"
az login --use-device-code
Get-ArcHCILogs -workDirectory $csv_path\ResourceBridge -kvaTokenPath $csv_path\ResourceBridge\kvatoken.tok -ip $VMIP_1

gdzie:

  • $csv_path to pełna ścieżka udostępnionego woluminu klastra udostępnionego na potrzeby tworzenia mostka zasobów usługi Arc.

  • $VMIP_1 to adres IP maszyny wirtualnej mostka zasobów usługi Arc.

  • Opcjonalnie ustaw -logDir parametr , aby określić ścieżkę do katalogu, w którym są przechowywane wygenerowane dzienniki. Jeśli nie określisz ścieżki ani parametru, domyślnie dzienniki są przechowywane w bieżącym katalogu roboczym.

Rozwiązywanie problemów z maszynami wirtualnymi usługi Azure Arc

W tej sekcji opisano błędy związane z zarządzaniem maszyną wirtualną usługi Azure Arc i ich zalecane rozwiązania.

Niepowodzenie podczas próby włączenia zarządzania gościem

Podczas próby uruchomienia polecenia w celu włączenia zarządzania gościem zostanie wyświetlony następujący błąd:

Błąd:Deployment failed. Correlation ID: 5d0c4921-78e0-4493-af16-dffee5cbf9d8. VM Spec validation failed for guest agent provisioning: Invalid managed identity. A system-assigned managed identity must be enabled in parent resource: Invalid Configuration

Powyższy błąd jest spowodowany tym, że tożsamość zarządzana nie została utworzona dla tej maszyny wirtualnej. Tożsamość zarządzana przypisana przez system jest wymagana do włączenia zarządzania gościem.

Rozwiązanie:

Wykonaj następujące kroki, aby sprawdzić, czy tożsamość zarządzana nie została utworzona dla tej maszyny wirtualnej, a następnie włącz tożsamość zarządzaną przypisaną przez system.

  1. W Azure Portal przejdź do maszyny wirtualnej. Przejdź do strony Przegląd . Na karcie Właściwości w obszarze Konfiguracjazarządzanie gościem powinno być wyświetlane jako Wyłączone. Wybierz widok JSON w prawym górnym rogu.

    Zrzut ekranu przedstawiający sposób uzyskiwania dostępu do widoku JSON.

  2. W obszarze Identity parametru wartość powinna być wyświetlana type jako None.

    Zrzut ekranu przedstawiający widok JSON wskazujący, że tożsamość zarządzana jest nieobecna.

  3. Aby utworzyć tożsamość zarządzaną, połącz się z serwerem Azure Stack HCI za pośrednictwem protokołu RDP. Uruchom następujące polecenie:

    az extension add --name connectedmachine
    
  4. Sprawdź, czy rozszerzenie interfejsu wiersza polecenia połączonej maszyny jest zainstalowane w klastrze. Oto przykładowe dane wyjściowe z pomyślnie zainstalowanym rozszerzeniem. Wskazuje connectedmachine , że zainstalowano wersję 0.7.0.

    [v-hostl]: PS C:\Clusterstorage\lnfrastructure_l\ArcHci> az version
    {
    "azure-cli": "2.53.0",
    "azure-cli-core": "2.53.0",
    "azure-cli-telemetry": "1.1.0",
    "extensions": {
        "akshybrid": "0.1.1",
        "arcappliance"^ "1.0.2”,
        "connectedk8s": "1.5.4",
        "connectedmachine": "0.7.0",
        "customlocation": "0.1.3",
        "hybridaks": "0.2.4",
        "k8s-extension": "1.4.5",
        "stack-hci-vm": “0.1.8"
        }
    }
    [v-hostl]: PS C:\ClusterStorage\Infrastructure_l\ArcHci>
        ```
    
  5. Uruchom następujące polecenie, aby przypisać tożsamość zarządzaną przez system do maszyny wirtualnej.

    az connectedmachine update --ids "<ARM ID for the VM>" --set identity.type="SystemAssigned"
    
  6. Przejdź do Azure Portal i przejdź do strony Przegląd. Widok JSON powinien wskazywać, że tożsamość zarządzana przez system jest teraz przypisana do maszyny wirtualnej.

    Zrzut ekranu przedstawiający widok JSON po włączeniu tożsamości zarządzanej.

Niepowodzenie wdrażania maszyny wirtualnej z usługą Arc

Podczas próby wdrożenia maszyny wirtualnej usługi Arc w klastrze azure Stack HCI jest wyświetlany następujący błąd:

Błąd:{"code":"ConflictingOperation","message":"Unable to process request 'Microsoft.AzureStackHCI/virtualMachineInstances'. There is already a previous running operation for resource '/subscriptions/<subscription ID>/resourceGroups/<Resource group name>/providers/Microsoft.HybridCompute/machines/<VM name>/providers/Microsoft.AzureStackHCI/virtualMachineInstances/default'. Please wait for the previous operation to complete."}

Powyższy błąd jest spowodowany tym, że SystemAssigned obiekt tożsamości zarządzanej nie znajduje się pod typem Microsoft.HybridCompute/machines zasobu.

Rozwiązanie:

Sprawdź w szablonie wdrożenia, że:

Obiekt tożsamości zarządzanej SystemAssigned jest w obszarze Microsoft.HybridCompute/machines typu zasobu, a nie w obszarze Microsoft.AzureStackHCI/VirtualMachineInstances typu zasobu.

Szablon wdrożenia powinien być zgodny z podanym przykładowym szablonem. Aby uzyskać więcej informacji, zobacz przykładowy szablon w maszynach wirtualnych usługi Twórca Arc w usłudze Azure Stack HCI.

Instalacja interfejsu wiersza polecenia platformy Azure nie jest rozpoznawana

Jeśli środowisko nie rozpoznaje interfejsu wiersza polecenia platformy Azure po jego zainstalowaniu, uruchom następujący blok kodu, aby dodać ścieżkę instalacji interfejsu wiersza polecenia platformy Azure do ścieżki środowiska.

        if ( -not( $env:PATH -like '*C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin*') ) {
            $env:PATH += "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin;"
            Write-Host "Updated path $env:PATH"
        }

Następne kroki