Migrowanie zasobów IaaS z modelu klasycznego do modelu opartego na usłudze Azure Resource Manager przy użyciu programu PowerShell
Dotyczy: ✔️ Maszyny wirtualne z systemem Linux maszyny wirtualne z ✔️ systemem Windows
Ważne
Obecnie około 90% maszyn wirtualnych IaaS korzysta z usługi Azure Resource Manager. Od 28 lutego 2020 r. klasyczne maszyny wirtualne zostały przestarzałe i zostaną w pełni wycofane 6 września 2023 r. Dowiedz się więcej o tym wycofaniu i o tym, jak wpływa na Ciebie.
W tych krokach pokazano, jak używać poleceń Azure PowerShell do migrowania zasobów infrastruktury jako usługi (IaaS) z klasycznego modelu wdrażania do modelu wdrażania usługi Azure Resource Manager.
Jeśli chcesz, możesz również migrować zasoby przy użyciu interfejsu wiersza polecenia platformy Azure.
- Aby uzyskać informacje na temat obsługiwanych scenariuszy migracji, zobacz Migracja zasobów IaaS obsługiwanych przez platformę z wersji klasycznej do usługi Azure Resource Manager.
- Aby uzyskać szczegółowe wskazówki i przewodnik po migracji, zobacz Szczegółowe omówienie techniczne migracji obsługiwanej przez platformę z wersji klasycznej do usługi Azure Resource Manager.
- Przejrzyj najczęstsze błędy migracji.
Oto schemat blokowy, aby zidentyfikować kolejność, w której należy wykonać kroki podczas procesu migracji.
Krok 1. Planowanie migracji
Poniżej przedstawiono kilka najlepszych rozwiązań, które zalecamy podczas oceny, czy przeprowadzić migrację zasobów IaaS z wersji klasycznej do Resource Manager:
- Zapoznaj się z obsługiwanymi i nieobsługiwanymi funkcjami i konfiguracjami. Jeśli masz maszyny wirtualne korzystające z nieobsługiwanych konfiguracji lub funkcji, poczekaj na ogłoszenie konfiguracji lub obsługi funkcji. Alternatywnie, jeśli odpowiada Twoim potrzebom, usuń tę funkcję lub wyjmij ją z tej konfiguracji, aby umożliwić migrację.
- Jeśli masz obecnie zautomatyzowane skrypty, które wdrażają infrastrukturę i aplikacje, spróbuj utworzyć podobną konfigurację testową przy użyciu tych skryptów do migracji. Alternatywnie można skonfigurować przykładowe środowiska przy użyciu Azure Portal.
Ważne
Bramy aplikacji nie są obecnie obsługiwane w przypadku migracji z wersji klasycznej do Resource Manager. Aby przeprowadzić migrację sieci wirtualnej za pomocą bramy aplikacji, usuń bramę przed uruchomieniem operacji Przygotowanie, aby przenieść sieć. Po zakończeniu migracji ponownie połącz bramę w usłudze Azure Resource Manager.
Bramy usługi Azure ExpressRoute łączące się z obwodami usługi ExpressRoute w innej subskrypcji nie mogą być migrowane automatycznie. W takich przypadkach usuń bramę usługi ExpressRoute, zmigruj sieć wirtualną i ponownie utwórz bramę. Aby uzyskać więcej informacji, zobacz Migrowanie obwodów usługi ExpressRoute i skojarzonych sieci wirtualnych z modelu klasycznego do modelu wdrażania Resource Manager.
Krok 2. Instalowanie najnowszej wersji programu PowerShell
Istnieją dwie główne opcje instalacji Azure PowerShell: Galeria programu PowerShell lub Instalator platformy internetowej (WebPI). Interfejs WebPI otrzymuje comiesięczne aktualizacje. Galeria programu PowerShell otrzymuje aktualizacje w sposób ciągły. Ten artykuł jest oparty na Azure PowerShell wersji 2.1.0.
Aby uzyskać instrukcje instalacji, zobacz How to install and configure Azure PowerShell (Jak zainstalować i skonfigurować Azure PowerShell).
Krok 3. Upewnij się, że jesteś administratorem subskrypcji
Aby przeprowadzić tę migrację, należy dodać go jako współadministratora subskrypcji w Azure Portal.
- Zaloguj się w witrynie Azure Portal.
- W menu Centrum wybierz pozycję Subskrypcja. Jeśli go nie widzisz, wybierz pozycję Wszystkie usługi.
- Znajdź odpowiedni wpis subskrypcji, a następnie zapoznaj się z polem MOJA ROLA . W przypadku współadministratora wartość powinna być administratorem konta.
Jeśli nie możesz dodać współadministratora, skontaktuj się z administratorem usługi lub współadministratorem subskrypcji, aby samodzielnie dodać subskrypcję.
Krok 4. Ustawianie subskrypcji i rejestrowanie się w celu migracji
Najpierw uruchom wiersz polecenia programu PowerShell. Na potrzeby migracji skonfiguruj środowisko zarówno dla wersji klasycznej, jak i Resource Manager.
Zaloguj się do swojego konta dla modelu Resource Manager.
Connect-AzAccount
Pobierz dostępne subskrypcje przy użyciu następującego polecenia:
Get-AzSubscription | Sort Name | Select Name
Ustaw subskrypcję platformy Azure dla bieżącej sesji. W tym przykładzie ustawiono domyślną nazwę subskrypcji na Wartość Moja subskrypcja platformy Azure. Zastąp przykładowa nazwa subskrypcji własną nazwą.
Select-AzSubscription –SubscriptionName "My Azure Subscription"
Uwaga
Rejestracja jest jednorazowym krokiem, ale należy to zrobić raz przed podjęciem próby migracji. Bez rejestrowania zostanie wyświetlony następujący komunikat o błędzie:
BadRequest: subskrypcja nie jest zarejestrowana do migracji.
Zarejestruj się przy użyciu dostawcy zasobów migracji, używając następującego polecenia:
Register-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
Poczekaj pięć minut na zakończenie rejestracji. Sprawdź stan zatwierdzenia, używając następującego polecenia:
Get-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
Przed kontynuowaniem upewnij się, że wartość RegistrationState jest Registered
włączona.
Przed przejściem do klasycznego modelu wdrażania upewnij się, że masz wystarczającą liczbę procesorów wirtualnych maszyn wirtualnych platformy Azure Resource Manager w regionie platformy Azure bieżącego wdrożenia lub sieci wirtualnej. Aby sprawdzić bieżącą liczbę procesorów wirtualnych dostępnych w usłudze Azure Resource Manager, możesz użyć następującego polecenia programu PowerShell. Aby dowiedzieć się więcej na temat limitów przydziałów procesorów wirtualnych, zobacz Limity i Resource Manager Platformy Azure.
W tym przykładzie sprawdza dostępność w regionie Zachodnie stany USA . Zastąp nazwę przykładowego regionu własną nazwą.
Get-AzVMUsage -Location "West US"
Teraz zaloguj się do swojego konta dla klasycznego modelu wdrażania.
Add-AzureAccount
Pobierz dostępne subskrypcje przy użyciu następującego polecenia:
Get-AzureSubscription | Sort SubscriptionName | Select SubscriptionName
Ustaw subskrypcję platformy Azure dla bieżącej sesji. W tym przykładzie ustawiono domyślną subskrypcję na Wartość Moja subskrypcja platformy Azure. Zastąp przykładowa nazwa subskrypcji własną nazwą.
Select-AzureSubscription –SubscriptionName "My Azure Subscription"
Krok 5. Uruchamianie poleceń w celu migracji zasobów IaaS
- Migrowanie maszyn wirtualnych w usłudze w chmurze (nie w sieci wirtualnej)
- Migrowanie maszyn wirtualnych w sieci wirtualnej
- Migrowanie konta magazynu
Uwaga
Wszystkie operacje opisane tutaj są idempotentne. Jeśli masz problem inny niż nieobsługiwana funkcja lub błąd konfiguracji, zalecamy ponowić próbę wykonania operacji przygotowywania, przerwania lub zatwierdzenia. Platforma spróbuje ponownie wykonać akcję.
Krok 5a: Opcja 1 — Migrowanie maszyn wirtualnych w usłudze w chmurze (nie w sieci wirtualnej)
Pobierz listę usług w chmurze przy użyciu następującego polecenia. Następnie wybierz usługę w chmurze, którą chcesz przeprowadzić migrację. Jeśli maszyny wirtualne w usłudze w chmurze znajdują się w sieci wirtualnej lub mają role sieci Web lub procesu roboczego, polecenie zwraca komunikat o błędzie.
Get-AzureService | ft Servicename
Pobierz nazwę wdrożenia dla usługi w chmurze. W tym przykładzie nazwa usługi to Moja usługa. Zastąp przykładową nazwę usługi własną nazwą usługi.
$serviceName = "My Service"
$deployment = Get-AzureDeployment -ServiceName $serviceName
$deploymentName = $deployment.DeploymentName
Przygotuj maszyny wirtualne w usłudze w chmurze do migracji. Dostępne są dwie opcje wyboru.
Opcja 1. Migrowanie maszyn wirtualnych do utworzonej przez platformę sieci wirtualnej.
Najpierw sprawdź, czy możesz przeprowadzić migrację usługi w chmurze przy użyciu następujących poleceń:
$validate = Move-AzureService -Validate -ServiceName $serviceName ` -DeploymentName $deploymentName -CreateNewVirtualNetwork $validate.ValidationMessages
Następujące polecenie wyświetla wszelkie ostrzeżenia i błędy blokujące migrację. Jeśli komunikaty sprawdzania poprawności nie zawierają komunikatu o błędzie typu, możesz przejść do kroku Przygotowywanie.
Move-AzureService -Prepare -ServiceName $serviceName ` -DeploymentName $deploymentName -CreateNewVirtualNetwork
Opcja 2. Migracja do istniejącej sieci wirtualnej w modelu wdrażania Resource Manager.
Ten przykład ustawia nazwę grupy zasobów na myResourceGroup, nazwę sieci wirtualnej na myVirtualNetwork i nazwę podsieci mySubNetnet. Zastąp nazwy w przykładzie nazwami własnych zasobów.
$existingVnetRGName = "myResourceGroup" $vnetName = "myVirtualNetwork" $subnetName = "mySubNet"
Najpierw sprawdź, czy możesz przeprowadzić migrację sieci wirtualnej przy użyciu następującego polecenia:
$validate = Move-AzureService -Validate -ServiceName $serviceName ` -DeploymentName $deploymentName -UseExistingVirtualNetwork -VirtualNetworkResourceGroupName $existingVnetRGName -VirtualNetworkName $vnetName -SubnetName $subnetName $validate.ValidationMessages
Następujące polecenie wyświetla wszelkie ostrzeżenia i błędy blokujące migrację. Jeśli komunikaty sprawdzania poprawności nie zawierają błędów, możesz wykonać następujący krok Przygotowywania:
Move-AzureService -Prepare -ServiceName $serviceName -DeploymentName $deploymentName ` -UseExistingVirtualNetwork -VirtualNetworkResourceGroupName $existingVnetRGName ` -VirtualNetworkName $vnetName -SubnetName $subnetName
Po pomyślnym wykonaniu operacji Prepare z jedną z powyższych opcji wykonaj zapytanie dotyczące stanu migracji maszyn wirtualnych. Upewnij się, że są w Prepared
stanie.
W tym przykładzie ustawiono nazwę maszyny wirtualnej na maszynę wirtualną myVM. Zastąp nazwę przykładu własną nazwą maszyny wirtualnej.
$vmName = "myVM"
$vm = Get-AzureVM -ServiceName $serviceName -Name $vmName
$vm.VM.MigrationState
Sprawdź konfigurację przygotowanych zasobów przy użyciu programu PowerShell lub Azure Portal. Jeśli nie jesteś gotowy do migracji i chcesz wrócić do starego stanu, użyj następującego polecenia:
Move-AzureService -Abort -ServiceName $serviceName -DeploymentName $deploymentName
Jeśli przygotowana konfiguracja wygląda dobrze, możesz przejść do przodu i zatwierdzić zasoby przy użyciu następującego polecenia:
Move-AzureService -Commit -ServiceName $serviceName -DeploymentName $deploymentName
Krok 5a: Opcja 2 — Migrowanie maszyn wirtualnych w sieci wirtualnej
Aby przeprowadzić migrację maszyn wirtualnych w sieci wirtualnej, należy przeprowadzić migrację sieci wirtualnej. Maszyny wirtualne są automatycznie migrowane z siecią wirtualną. Wybierz sieć wirtualną, którą chcesz przeprowadzić migrację.
Uwaga
Migrowanie pojedynczej maszyny wirtualnej utworzonej przy użyciu klasycznego modelu wdrażania przez utworzenie nowej maszyny wirtualnej Resource Manager z Dyski zarządzane przy użyciu plików VHD (OS i danych) maszyny wirtualnej.
Uwaga
Nazwa sieci wirtualnej może różnić się od nazwy wyświetlanej w nowym portalu. Nowa Azure Portal wyświetla nazwę jako [vnet-name]
, ale rzeczywista nazwa sieci wirtualnej ma typ Group [resource-group-name] [vnet-name]
. Przed rozpoczęciem migracji wyszukaj rzeczywistą nazwę sieci wirtualnej przy użyciu polecenia Get-AzureVnetSite | Select -Property Name
lub wyświetl ją w starym Azure Portal.
W poniższym przykładzie ustawiono nazwę sieci wirtualnej na grupę [nazwa-grupy zasobów][nazwa sieci wirtualnej]. Zastąp przykładowa nazwa sieci wirtualnej nazwą, która została zwrócona z uruchomienia polecenia w powyższej sekcji Uwaga .
$vnetName = "Group [resource-group-name] [vnet-name]"
Uwaga
Jeśli sieć wirtualna zawiera role sieci Web lub procesu roboczego albo maszyny wirtualne z nieobsługiwanymi konfiguracjami, zostanie wyświetlony komunikat o błędzie walidacji.
Najpierw sprawdź, czy możesz przeprowadzić migrację sieci wirtualnej przy użyciu następującego polecenia:
Move-AzureVirtualNetwork -Validate -VirtualNetworkName $vnetName
Następujące polecenie wyświetla wszelkie ostrzeżenia i błędy blokujące migrację. Jeśli walidacja zakończy się pomyślnie, możesz wykonać następujący krok Przygotowywanie:
Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $vnetName
Sprawdź konfigurację przygotowanych maszyn wirtualnych przy użyciu Azure PowerShell lub Azure Portal. Jeśli nie jesteś gotowy do migracji i chcesz wrócić do starego stanu, użyj następującego polecenia:
Move-AzureVirtualNetwork -Abort -VirtualNetworkName $vnetName
Jeśli przygotowana konfiguracja wygląda dobrze, możesz przejść do przodu i zatwierdzić zasoby przy użyciu następującego polecenia:
Move-AzureVirtualNetwork -Commit -VirtualNetworkName $vnetName
Krok 5b. Migrowanie konta magazynu
Po zakończeniu migracji maszyn wirtualnych przed migracją kont magazynu wykonaj następujące testy wstępne.
Uwaga
Jeśli konto magazynu nie ma skojarzonych dysków ani danych maszyny wirtualnej, możesz przejść bezpośrednio do sekcji "Weryfikowanie kont magazynu i rozpoczynanie migracji". Należy również pamiętać, że usunięcie dysków klasycznych, obrazów maszyn wirtualnych lub obrazów systemu operacyjnego nie powoduje usunięcia źródłowych plików VHD na koncie magazynu. Jednak przerywa dzierżawę tych plików VHD, aby można było ich użyć ponownie do tworzenia dysków arm lub obrazów po migracji.
Wymagania wstępne sprawdzają, czy zostały zmigrowane jakiekolwiek maszyny wirtualne lub konto magazynu ma zasoby dysku:
Migrowanie maszyn wirtualnych, których dyski są przechowywane na koncie magazynu.
Następujące polecenie zwraca właściwości RoleName i DiskName wszystkich dysków maszyn wirtualnych na koncie magazynu. RoleName to nazwa maszyny wirtualnej, do której jest dołączony dysk. Jeśli to polecenie zwróci dyski, upewnij się, że maszyny wirtualne, do których te dyski są dołączone, zostaną zmigrowane przed migracją konta magazynu.
$storageAccountName = 'yourStorageAccountName' Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storageAccountName)} | Select-Object -ExpandProperty AttachedTo -Property ` DiskName | Format-List -Property RoleName, DiskName
Usuń nieprzyłączone dyski maszyn wirtualnych przechowywane na koncie magazynu.
Znajdź nieprzyłączone dyski maszyn wirtualnych na koncie magazynu, używając następującego polecenia:
$storageAccountName = 'yourStorageAccountName' Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storageAccountName)} | Where-Object -Property AttachedTo -EQ $null | Format-List -Property DiskName
Jeśli poprzednie polecenie zwraca dyski, usuń te dyski przy użyciu następującego polecenia:
Remove-AzureDisk -DiskName 'yourDiskName'
Usuń obrazy maszyn wirtualnych przechowywane na koncie magazynu.
Następujące polecenie zwraca wszystkie obrazy maszyn wirtualnych z dyskami systemu operacyjnego przechowywanymi na koncie magazynu.
Get-AzureVmImage | Where-Object { $_.OSDiskConfiguration.MediaLink -ne $null -and $_.OSDiskConfiguration.MediaLink.Host.Contains($storageAccountName)` } | Select-Object -Property ImageName, ImageLabel
Następujące polecenie zwraca wszystkie obrazy maszyn wirtualnych z dyskami danych przechowywanymi na koncie magazynu.
Get-AzureVmImage | Where-Object {$_.DataDiskConfigurations -ne $null ` -and ($_.DataDiskConfigurations | Where-Object {$_.MediaLink -ne $null -and $_.MediaLink.Host.Contains($storageAccountName)}).Count -gt 0 ` } | Select-Object -Property ImageName, ImageLabel
Usuń wszystkie obrazy maszyn wirtualnych zwrócone przez poprzednie polecenia przy użyciu następującego polecenia:
Remove-AzureVMImage -ImageName 'yourImageName'
Zweryfikuj konta magazynu i rozpocznij migrację.
Zweryfikuj każde konto magazynu do migracji przy użyciu następującego polecenia. W tym przykładzie nazwa konta magazynu to myStorageAccount. Zastąp przykładową nazwą własnego konta magazynu.
$storageAccountName = "myStorageAccount" Move-AzureStorageAccount -Validate -StorageAccountName $storageAccountName
Następnym krokiem jest przygotowanie konta magazynu do migracji.
$storageAccountName = "myStorageAccount" Move-AzureStorageAccount -Prepare -StorageAccountName $storageAccountName
Sprawdź konfigurację przygotowanego konta magazynu przy użyciu Azure PowerShell lub Azure Portal. Jeśli nie jesteś gotowy do migracji i chcesz wrócić do starego stanu, użyj następującego polecenia:
Move-AzureStorageAccount -Abort -StorageAccountName $storageAccountName
Jeśli przygotowana konfiguracja wygląda dobrze, możesz przejść do przodu i zatwierdzić zasoby przy użyciu następującego polecenia:
Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName
Następne kroki
- Omówienie migracji zasobów IaaS obsługiwanych przez platformę z wersji klasycznej do usługi Azure Resource Manager
- Rozbudowana technicznie migracja z obsługą platformy od modelu klasycznego do modelu opartego na usłudze Azure Resource Manager
- Planowanie migracji zasobów rozwiązania IaaS z wdrożenia klasycznego do usługi Azure Resource Manager
- Migrowanie zasobów IaaS z klasycznego do usługi Azure Resource Manager przy użyciu interfejsu wiersza polecenia
- Narzędzia społeczności ułatwiające migrację zasobów IaaS z wersji klasycznej do usługi Azure Resource Manager
- Przegląd najbardziej typowych błędów migracji
- Zapoznaj się z najczęściej zadawanymi pytaniami dotyczącymi migrowania zasobów IaaS z wersji klasycznej do usługi Azure Resource Manager