Memigrasikan sumber daya IaaS dari klasik ke Azure Resource Manager dengan menggunakan PowerShell

Berlaku untuk: ✔️ VM Linux ✔️ VM Windows

Penting

Saat ini, sekitar 90% Komputer Virtual IaaS menggunakan Azure Resource Manager. Mulai 28 Februari 2020, VM klasik tidak digunakan lagi dan akan sepenuhnya dihentikan pada 6 September 2023. Pelajari lebih lanjut tentang penghentian ini dan bagaimana pengaruhnya terhadap Anda.

Langkah-langkah ini menunjukkan cara menggunakan perintah Azure PowerShell untuk memigrasi sumber daya infrastruktur sebagai layanan (IaaS) dari model penerapan klasik ke model penyebaran Azure Resource Manager.

Jika diinginkan, Anda juga dapat memigrasikan sumber daya menggunakan Azure CLI.


Berikut adalah diagram alur untuk mengidentifikasi urutan langkah-langkah yang perlu dijalankan selama proses migrasi.

Cuplikan layar yang menunjukkan langkah-langkah migrasi

Langkah 1: Rencanakan migrasi

Berikut adalah beberapa praktik terbaik yang kami sarankan saat Anda mengevaluasi apakah akan memigrasikan resource IaaS dari klasik ke Resource Manager:

  • Baca fitur dan konfigurasi yang didukung dan tidak didukung. Jika Anda memiliki komputer virtual yang menggunakan konfigurasi atau fitur yang tidak didukung, tunggu hingga konfigurasi atau dukungan fitur diumumkan. Atau, jika sesuai dengan kebutuhan Anda, hapus fitur tersebut atau keluar dari konfigurasi itu untuk mengaktifkan migrasi.
  • Jika Anda memiliki skrip otomatis yang menyebarkan infrastruktur dan aplikasi Anda hari ini, coba buat penyiapan pengujian serupa dengan menggunakan skrip tersebut untuk migrasi. Atau, Anda dapat mengatur lingkungan sampel menggunakan portal Microsoft Azure.

Penting

Gateway aplikasi saat ini tidak didukung untuk migrasi dari klasik ke Resource Manager. Untuk memigrasi jaringan virtual dengan gateway aplikasi, hapus gateway sebelum Anda menjalankan operasi Siapkan untuk memindahkan jaringan. Setelah Anda menyelesaikan migrasi, sambungkan kembali gateway di Azure Resource Manager.

Gateway Azure ExpressRoute yang tersambung ke sirkuit ExpressRoute di langganan lain tidak dapat dimigrasikan secara otomatis. Dalam kasus seperti itu, hapus gateway ExpressRoute, migrasikan jaringan virtual, dan buat ulang gateway. Untuk informasi selengkapnya, lihat Memigrasikan sirkuit ExpressRoute dan jaringan virtual terkait dari model penyebaran klasik ke Resource Manager.

Langkah 2: Pasang PowerShell versi terbaru

Ada dua opsi utama untuk menginstal Azure PowerShell: Galeri PowerShell atau Alat Penginstal Platform Web (WebPI). WebPI menerima pembaruan bulanan. Galeri PowerShell menerima pembaruan secara terus menerus. Artikel ini didasarkan pada Azure PowerShell versi 2.1.0.

Untuk petunjuk penginstalan, lihat Cara memasang dan mengonfigurasi Azure PowerShell.

Langkah 3: Pastikan Anda administrator langganan

Untuk melakukan migrasi ini, Anda harus ditambahkan sebagai administrator bersama untuk langganan di portal Microsoft Azure.

  1. Masuk ke portal Microsoft Azure.
  2. Pada menu Hub, pilih Langganan. Jika Anda tidak melihatnya, pilih Semua layanan.
  3. Temukan entri langganan yang sesuai, lalu lihat bidang PERAN SAYA. Untuk administrator bersama, nilainya harus berupa Admin akun.

Jika Anda tidak dapat menambahkan administrator bersama, hubungi administrator layanan atau administrator bersama untuk layanan agar Anda bisa ditambahkan.

Langkah 4: Atur langganan Anda, dan daftarkan untuk migrasi

Pertama, mulai perintah PowerShell. Untuk migrasi, siapkan lingkungan Anda untuk Resource Manager dan klasik.

Masuk ke akun Anda untuk model Resource Manager.

    Connect-AzAccount

Dapatkan langganan yang tersedia menggunakan perintah berikut ini:

    Get-AzSubscription | Sort Name | Select Name

Atur langganan Azure Anda untuk sesi saat ini. Contoh ini menetapkan nama langganan default ke Langganan Azure Saya. Ganti contoh nama langganan dengan nama langganan Anda sendiri.

    Select-AzSubscription –SubscriptionName "My Azure Subscription"

Catatan

Pendaftaran berupa langkah satu kali, tetapi Anda harus melakukannya sekali sebelum mencoba migrasi. Tanpa mendaftar, Anda akan melihat pesan kesalahan berikut:

BadRequest: Langganan tidak terdaftar untuk migrasi.

Daftar dengan penyedia sumber daya migrasi menggunakan perintah berikut:

    Register-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

Tunggu lima menit hingga pendaftaran selesai. Periksa status persetujuan menggunakan perintah berikut:

    Get-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate

Pastikan RegistrationState adalah Registered sebelum melanjutkan.

Sebelum beralih ke model penyebaran klasik, pastikan Anda memiliki cukup vCPU komputer virtual Azure Resource Manager di wilayah Azure dari penyebaran atau jaringan virtual Anda saat ini. Anda bisa menggunakan perintah PowerShell berikut ini untuk memeriksa jumlah vCPU yang Anda miliki saat ini di Azure Resource Manager. Untuk mempelajari selengkapnya tentang kuota vCPU, lihat Batasan dan Azure Resource Manager.

Contoh ini memeriksa ketersediaan di wilayah AS Barat. Ganti nama wilayah contoh dengan nama wilayah Anda sendiri.

    Get-AzVMUsage -Location "West US"

Sekarang, masuk ke akun Anda untuk model penyebaran klasik.

    Add-AzureAccount

Dapatkan langganan yang tersedia menggunakan perintah berikut ini:

    Get-AzureSubscription | Sort SubscriptionName | Select SubscriptionName

Atur langganan Azure Anda untuk sesi saat ini. Contoh ini menetapkan langganan default menjadi Langganan Azure Saya. Ganti contoh nama langganan dengan nama langganan Anda sendiri.

    Select-AzureSubscription –SubscriptionName "My Azure Subscription"

Langkah 5: Jalankan perintah untuk memigrasikan sumber daya IaaS Anda

Catatan

Semua operasi yang dijelaskan di sini adalah idempoten. Jika Anda memiliki masalah selain fitur yang tidak didukung atau kesalahan konfigurasi, sebaiknya Anda mencoba kembali operasi persiapan, pembatalan, atau pemrosesan. Platform kemudian mencoba tindakan lagi.

Langkah 5a: Opsi 1 - Memigrasikan komputer virtual dalam layanan cloud (bukan dalam jaringan virtual)

Dapatkan daftar layanan cloud menggunakan perintah berikut ini. Kemudian pilih layanan cloud yang ingin Anda migrasikan. Jika komputer virtual di layanan cloud berada di jaringan virtual atau jika mereka memiliki peran web atau pekerja, perintah akan mengembalikan pesan kesalahan.

    Get-AzureService | ft Servicename

Dapatkan nama penyebaran untuk layanan cloud. Dalam contoh ini, nama layanannya adalah Layanan Saya. Ganti contoh nama layanan dengan nama layanan Anda sendiri.

    $serviceName = "My Service"
    $deployment = Get-AzureDeployment -ServiceName $serviceName
    $deploymentName = $deployment.DeploymentName

Siapkan komputer virtual di layanan cloud untuk migrasi. Anda memiliki dua opsi untuk dipilih.

  • Opsi 1: Migrasikan komputer virtual ke jaringan virtual yang dibuat platform.

    Pertama, validasikan bahwa Anda dapat memigrasikan layanan cloud menggunakan perintah berikut:

    $validate = Move-AzureService -Validate -ServiceName $serviceName `
        -DeploymentName $deploymentName -CreateNewVirtualNetwork
    $validate.ValidationMessages
    

    Perintah berikut menampilkan peringatan dan kesalahan yang memblokir migrasi. Jika pesan validasi tidak berisi pesan kesalahan jenis, Anda dapat melanjutkan ke langkah Siapkan.

    Move-AzureService -Prepare -ServiceName $serviceName `
        -DeploymentName $deploymentName -CreateNewVirtualNetwork
    
  • Opsi 2: Migrasikan ke jaringan virtual yang ada dalam model penyebaran Resource Manager.

    Contoh ini menetapkan nama grup sumber daya menjadi myResourceGroup, nama jaringan virtual menjadi myVirtualNetwork, dan nama subnet menjadi mySubNet. Ganti nama dalam contoh dengan nama sumber daya Anda sendiri.

    $existingVnetRGName = "myResourceGroup"
    $vnetName = "myVirtualNetwork"
    $subnetName = "mySubNet"
    

    Pertama, validasikan bahwa Anda dapat memigrasikan jaringan virtual menggunakan perintah berikut:

    $validate = Move-AzureService -Validate -ServiceName $serviceName `
        -DeploymentName $deploymentName -UseExistingVirtualNetwork -VirtualNetworkResourceGroupName $existingVnetRGName -VirtualNetworkName $vnetName -SubnetName $subnetName
    $validate.ValidationMessages
    

    Perintah berikut menampilkan peringatan dan kesalahan yang memblokir migrasi. Jika pesan validasi tidak berisi kesalahan, Anda dapat melanjutkan dengan langkah Siapkan berikut ini:

        Move-AzureService -Prepare -ServiceName $serviceName -DeploymentName $deploymentName `
        -UseExistingVirtualNetwork -VirtualNetworkResourceGroupName $existingVnetRGName `
        -VirtualNetworkName $vnetName -SubnetName $subnetName
    

Setelah operasi Siapkan berhasil dengan salah satu opsi sebelumnya, kueri status migrasi komputer virtual. Pastikan mereka dalam status Prepared.

Contoh ini menetapkan nama komputer virtual menjadi myVM. Ganti nama contoh dengan nama VM Anda sendiri.

    $vmName = "myVM"
    $vm = Get-AzureVM -ServiceName $serviceName -Name $vmName
    $vm.VM.MigrationState

Periksa konfigurasi untuk sumber daya yang disiapkan dengan menggunakan PowerShell atau portal Microsoft Azure. Jika Anda belum siap untuk migrasi dan ingin kembali ke status lama, gunakan perintah berikut:

    Move-AzureService -Abort -ServiceName $serviceName -DeploymentName $deploymentName

Jika konfigurasi yang disiapkan sudah terlihat bagus, Anda dapat melanjutkan dan melakukan sumber daya menggunakan perintah berikut:

    Move-AzureService -Commit -ServiceName $serviceName -DeploymentName $deploymentName

Langkah 5a: Opsi 2 - Memigrasikan komputer virtual dalam jaringan virtual

Untuk memigrasikan komputer virtual dalam jaringan virtual, Anda memigrasikan jaringan virtual. Komputer virtual secara otomatis bermigrasi dengan jaringan virtual. Pilih jaringan virtual yang ingin Anda migrasikan.

Catatan

Migrasikan satu komputer virtual yang dibuat menggunakan model penyebaran klasik dengan membuat kompuer virtual Resource Manager baru dengan Disk Terkelola menggunakan file VHD (OS dan data) dari komputer virtual.

Catatan

Nama jaringan virtual mungkin berbeda dari apa yang ditampilkan pada portal baru. Portal Microsoft Azure baru menampilkan nama sebagai [vnet-name], tetapi nama jaringan virtual yang sebenarnya berjenis Group [resource-group-name] [vnet-name]. Sebelum memulai migrasi, cari nama jaringan virtual yang sebenarnya menggunakan perintah Get-AzureVnetSite | Select -Property Name atau lihat di portal Microsoft Azure lama.

Contoh berikut ini mengatur nama jaringan virtual ke Grup [resource-group-name][vnet-name]. Ganti contoh nama jaringan virtual dengan nama yang dikembalikan dari menjalankan perintah di bagian Catatan di atas..

    $vnetName = "Group [resource-group-name] [vnet-name]"

Catatan

Jika jaringan virtual berisi peran web atau pekerja, atau komputer dengan konfigurasi yang tidak didukung, Anda akan mendapatkan pesan kesalahan validasi.

Pertama, validasikan bahwa Anda dapat memigrasikan jaringan virtual menggunakan perintah berikut:

    Move-AzureVirtualNetwork -Validate -VirtualNetworkName $vnetName

Perintah berikut menampilkan peringatan dan kesalahan yang memblokir migrasi. Jika validasi berhasil, Anda dapat melanjutkan ke langkah Persiapkan berikut:

    Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $vnetName

Periksa konfigurasi untuk komputer virtual yang disiapkan dengan menggunakan Azure PowerShell atau portal Microsoft Azure. Jika Anda belum siap untuk migrasi dan ingin kembali ke status lama, gunakan perintah berikut:

    Move-AzureVirtualNetwork -Abort -VirtualNetworkName $vnetName

Jika konfigurasi yang disiapkan sudah terlihat bagus, Anda dapat melanjutkan dan melakukan sumber daya menggunakan perintah berikut:

    Move-AzureVirtualNetwork -Commit -VirtualNetworkName $vnetName

Langkah 5b: Memigrasikan akun penyimpanan

Setelah Anda selesai memigrasikan komputer virtual, lakukan pemeriksaan prasyarat berikut sebelum Anda memigrasikan akun penyimpanan.

Catatan

Jika akun penyimpanan Anda tidak memiliki disk atau data komputer virtual terkait, Anda dapat langsung ke bagian "Validasi akun penyimpanan dan mulai migrasi". Perhatikan juga bahwa menghapus disk klasik, citra komputer virtual, atau citra OS tidak menghapus file sumber VHD di akun penyimpanan. Namun, hal itu melanggar sewa pada file VHD tersebut sehingga dapat digunakan kembali untuk membuat disk atau citra ARM setelah migrasi.

  • Pemeriksaan prasyarat jika Anda memigrasikan komputer virtual atau akun penyimpanan Anda memiliki sumber daya disk:

    • Migrasikan komputer virtual yang disk-nya disimpan di akun penyimpanan.

      Perintah berikut mengembalikan properti RoleName dan DiskName dari semua disk komputer virtual di akun penyimpanan. RoleName adalah nama komputer virtual tempat disk terpasang. Jika perintah ini mengembalikan disk, pastikan bahwa komputer virtual tempat disk ini dilampirkan dimigrasikan sebelum Anda memigrasikan akun penyimpanan.

       $storageAccountName = 'yourStorageAccountName'
        Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storageAccountName)} | Select-Object -ExpandProperty AttachedTo -Property `
        DiskName | Format-List -Property RoleName, DiskName
      
      
    • Hapus disk komputer virtual yang tidak terpasang yang disimpan di akun penyimpanan.

      Temukan disk komputer virtual yang tidak terpasang di akun penyimpanan dengan menggunakan perintah berikut:

          $storageAccountName = 'yourStorageAccountName'
          Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storageAccountName)} | Where-Object -Property AttachedTo -EQ $null | Format-List -Property DiskName  
      
      

      Jika perintah sebelumnya mengembalikan disk, hapus disk ini dengan menggunakan perintah berikut:

         Remove-AzureDisk -DiskName 'yourDiskName'
      
    • Hapus citra komputer virtual yang disimpan di akun penyimpanan.

      Perintah berikut mengembalikan semua citra komputer virtual dengan disk OS yang disimpan di akun penyimpanan.

         Get-AzureVmImage | Where-Object { $_.OSDiskConfiguration.MediaLink -ne $null -and $_.OSDiskConfiguration.MediaLink.Host.Contains($storageAccountName)`
                                 } | Select-Object -Property ImageName, ImageLabel
      

      Perintah berikut mengembalikan semua citra komputer virtual dengan disk data yang disimpan di akun penyimpanan.

      
         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
      

      Hapus semua citra komputer virtual yang dikembalikan oleh perintah sebelumnya dengan menggunakan perintah ini:

      Remove-AzureVMImage -ImageName 'yourImageName'
      
  • Validasi akun penyimpanan dan mulai migrasi.

    Validasi setiap akun penyimpanan untuk migrasi dengan menggunakan perintah berikut. Dalam contoh ini, nama akun penyimpanan adalah myStorageAccount. Ganti nama contoh dengan nama akun penyimpanan Anda sendiri.

        $storageAccountName = "myStorageAccount"
        Move-AzureStorageAccount -Validate -StorageAccountName $storageAccountName
    

    Langkah selanjutnya adalah menyiapkan akun penyimpanan untuk migrasi.

        $storageAccountName = "myStorageAccount"
        Move-AzureStorageAccount -Prepare -StorageAccountName $storageAccountName
    

    Periksa konfigurasi untuk akun penyimpanan yang disiapkan dengan menggunakan Azure PowerShell atau portal Microsoft Azure. Jika Anda belum siap untuk migrasi dan ingin kembali ke status lama, gunakan perintah berikut:

        Move-AzureStorageAccount -Abort -StorageAccountName $storageAccountName
    

    Jika konfigurasi yang disiapkan sudah terlihat bagus, Anda dapat melanjutkan dan melakukan sumber daya menggunakan perintah berikut:

        Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName
    

Langkah berikutnya