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 wycofane i zostaną w pełni wycofane 6 września 2023 r. Dowiedz się więcej o tym wycofaniu i sposobie jego wpływu na Ciebie.
Te kroki pokazują, jak używać poleceń programu 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 zapoznać się ze scenariuszami migracji obsługiwanymi przez platformę, zobacz Migracja zasobów IaaS z modelu klasycznego do usługi Azure Resource Manager.
- Aby uzyskać szczegółowe wskazówki i przewodnik po migracji, zobacz Szczegółowe informacje techniczne dotyczące 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 kroki należy wykonać podczas procesu migracji.
Krok 1. Planowanie migracji
Poniżej przedstawiono kilka najlepszych rozwiązań, które zalecamy, aby ocenić, czy przeprowadzić migrację zasobów IaaS z modelu klasycznego do usługi 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 wyjdź z tej konfiguracji, aby włączyć migrację.
- Jeśli masz już zautomatyzowane skrypty, które wdrażają infrastrukturę i aplikacje, spróbuj utworzyć podobną konfigurację testu przy użyciu tych skryptów na potrzeby migracji. Alternatywnie możesz skonfigurować przykładowe środowiska przy użyciu witryny Azure Portal.
Ważne
Bramy aplikacji nie są obecnie obsługiwane w przypadku migracji z wersji klasycznej do usługi Resource Manager. Aby przeprowadzić migrację sieci wirtualnej za pomocą bramy aplikacji, usuń bramę przed uruchomieniem operacji Przygotowywania, 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 usługi Resource Manager.
Krok 2. Instalowanie najnowszej wersji programu PowerShell
Istnieją dwie główne opcje instalowania programu Azure PowerShell: Galeria programu PowerShell lub Instalatora 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 programie Azure PowerShell w wersji 2.1.0.
Aby uzyskać instrukcje dotyczące instalacji, zobacz How to install and configure Azure PowerShell (Jak zainstalować i skonfigurować program Azure PowerShell).
Krok 3. Upewnij się, że jesteś administratorem subskrypcji
Aby przeprowadzić tę migrację, należy dodać go jako współadministrator subskrypcji w witrynie 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 przyjrzyj się polu 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 klasycznego, jak i usługi Resource Manager.
Zaloguj się do swojego konta dla modelu usługi 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 Moja subskrypcja platformy Azure. Zastąp nazwę przykładowej subskrypcji własną nazwą.
Select-AzSubscription –SubscriptionName "My Azure Subscription"
Uwaga
Rejestracja jest jednorazowym krokiem, ale przed podjęciem próby migracji należy to zrobić raz. 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 przy użyciu następującego polecenia:
Register-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
Poczekaj pięć minut na zakończenie rejestracji. Sprawdź stan zatwierdzenia przy użyciu 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 usługi Azure Resource Manager w regionie platformy Azure bieżącego wdrożenia lub sieci wirtualnej. Możesz użyć następującego polecenia programu PowerShell, aby sprawdzić bieżącą liczbę procesorów wirtualnych w usłudze Azure Resource Manager. Aby dowiedzieć się więcej na temat limitów przydziałów procesorów wirtualnych, zobacz Limity i usługa Azure Resource Manager.
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 nazwę przykładowej 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 opisane tutaj operacje są idempotentne. Jeśli masz problem inny niż nieobsługiwana funkcja lub błąd konfiguracji, zalecamy ponowienie próby wykonania operacji przygotowywania, przerwania lub zatwierdzenia. Następnie 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 jeśli mają role sieci Web lub procesu roboczego, polecenie zwraca komunikat o błędzie.
Get-AzureService | ft Servicename
Pobierz nazwę wdrożenia 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 zweryfikuj, 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
Poniższe polecenie wyświetla wszelkie ostrzeżenia i błędy, które blokują 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 usługi Resource Manager.
W tym przykładzie nazwa grupy zasobów jest ustawiana na myResourceGroup, nazwę sieci wirtualnej na myVirtualNetwork i nazwę podsieci mySubNet. Zastąp nazwy w przykładzie nazwami własnych zasobów.
$existingVnetRGName = "myResourceGroup" $vnetName = "myVirtualNetwork" $subnetName = "mySubNet"
Najpierw zweryfikuj, 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
Poniższe polecenie wyświetla wszelkie ostrzeżenia i błędy, które blokują 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 przygotowywania 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 nazwa maszyny wirtualnej jest ustawiana 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 witryny 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 za pomocą sieci wirtualnej. 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 usługi 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 witryna 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 starej witrynie Azure Portal.
W poniższym przykładzie ustawiono nazwę sieci wirtualnej na grupę [nazwa-grupy zasobów] [nazwa-sieci wirtualnej]. Zastąp nazwę przykładowej 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 weryfikacji.
Najpierw zweryfikuj, czy możesz przeprowadzić migrację sieci wirtualnej przy użyciu następującego polecenia:
Move-AzureVirtualNetwork -Validate -VirtualNetworkName $vnetName
Poniższe polecenie wyświetla wszelkie ostrzeżenia i błędy, które blokują migrację. Jeśli walidacja zakończy się pomyślnie, możesz przejść do następującego kroku Przygotowywania:
Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $vnetName
Sprawdź konfigurację przygotowanych maszyn wirtualnych przy użyciu programu Azure PowerShell lub witryny 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 przeprowadzeniem migracji kont magazynu należy wykonać 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 powoduje przerwanie dzierżawy na tych plikach VHD, aby można je było ponownie użyć do tworzenia dysków usługi 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 zwraca dyski, przed migracją konta magazynu upewnij się, że maszyny wirtualne, do których te dyski są dołączone, zostaną zmigrowane.
$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 przy użyciu 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 tego 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ę 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 programu Azure PowerShell lub witryny 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 modelu klasycznego 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 modelu 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 modelu klasycznego do usługi Azure Resource Manager