Klasik modelden Azure Resource Manager’a geçiş sırasında sık karşılaşılan hatalar

Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Windows VM'leri

Önemli

Günümüzde IaaS VM'lerinin yaklaşık %90'ı Azure Resource Manager kullanıyor. 28 Şubat 2020 itibarıyla klasik VM'ler kullanımdan kaldırılmıştır ve 6 Eylül 2023'te tamamen kullanımdan kaldırılacaktır. Bu kullanımdan kaldırma ve bunun sizi nasıl etkilediği hakkında daha fazla bilgi edinin.

Bu makale, IaaS kaynakları Azure klasik dağıtım modelinden Azure Resource Manager yığınına geçirilirken en sık karşılaşılan hataları ve risk azaltma yollarını içerir.

Hata listesi

Hata dizesi Risk azaltma
İç sunucu hatası Bazı durumlarda bu tekrar denendiğinde geçen, geçici bir hatadır. Karşılaşmaya devam ederseniz platform günlüklerinin araştırılması gerekeceğinden Azure desteğine başvurun.

NOT: Olay destek ekibi tarafından izlendikten sonra ortamınızda istenmeyen sonuçlara yol açabileceği için kendi kendini azaltma girişiminde bulunmayın.
Geçiş, Bir PaaS dağıtımı (Web/Çalışan) olduğundan HostedService {hosted-service-name} içindeki Dağıtım {deployment-name} için desteklenmiyor. Bu, dağıtım web/çalışan rolü içerdiğinde gerçekleşir. Geçiş yalnızca Sanal Makineler için desteklendiğinden, web/çalışan rolünü dağıtımdan kaldırın ve geçişi yeniden deneyin.
Şablon {şablon-adı} dağıtımı başarısız oldu. CorrelationId={guid} Geçiş hizmeti arka ucunda Azure Resource Manager yığınında kaynakları oluşturmak için Azure Resource Manager şablonları kullanıyoruz. Şablonları tekrar denenebilir yapıda olduğundan, bu hatayı gidermek için geçiş işlemi güvenli bir şekilde yeniden denenebilir. Bu hata devam ederse Azure desteği başvurun ve CorrelationId değerini verin.

NOT: Olay destek ekibi tarafından izlendikten sonra ortamınızda istenmeyen sonuçlara yol açabileceği için kendi kendini azaltma girişiminde bulunmayın.
{virtual-network-name} sanal ağı yok. Bu hata, sanal ağı yeni Azure portalında oluşturduysanız oluşabilir. Gerçek Sanal Ağ adı "Grup * <VNET adı>" desenini izler
HostedService {hosted-service-name} içindeki VM {vm-name}, Azure Resource Manager'da desteklenmeyen Uzantı {extension-name} içeriyor. Geçişe devam etmeden önce VM'den kaldırmanız önerilir. NOT: Hata İletisi güncelleştirilme sürecindedir ve BGInfo 1.* gibi geçiş XML uzantıları Azure Resource Manager'da desteklenmeden önce uzantının kaldırılması gerekir. Bu nedenle, bu uzantılar geçirilemiyor.
HostedService {barındırılan-service-adı} içindeki VM {vm-adı}, VMSnapshot/VMSnapshotLinux Uzantısı içeriyor. Bu uzantının şu an için geçişi desteklenmemektedir. Uzantıyı sanal makineden kaldırın ve geçiş tamamlandıktan sonra Azure Resource Manager kullanarak tekrar ekleyin Bu, sanal makinenin Azure Backup için yapılandırıldığı senaryodur. Bu şu anda desteklenmeyen bir senaryo olduğundan aşağıdaki geçici çözümü izleyin: https://aka.ms/vmbackupmigration
HostedService {hosted-service-name} içindeki VM {vm-name}, Durumu VM'den bildirilmeyen Uzantı {extension-name} içeriyor. Bu nedenle, bu VM geçirilemiyor. Uzantı durumunun bildirildiğinden emin olun veya uzantıyı VM'den kaldırın ve geçişi yeniden deneyin.

HostedService {barındırılan-hizmet-adı} içindeki VM {vm-adı}, İşleyici Durumu: {işleyici-durumu} bildiren bir Uzantı {uzantı-adı} içeriyor. Bu nedenle VM geçirilemiyor. Uzantı işleyici durumunun {handler-status} olduğundan emin olun veya uzantıyı VM’den kaldırıp geçişi tekrar deneyin.

HostedService {barındırılan-hizmet-adı} içindeki VM için VM Aracısı {vm-adı} genel aracı durumunun hazır olmadığı bildiriyor. Bu nedenle, geçirilebilir bir uzantısı varsa VM geçirilemeyebilir. VM Aracısının genel aracı durumunu hazır olarak bildirdiğinden emin olun. öğesine https://aka.ms/classiciaasmigrationfaqsbakın.
Azure konuk aracısı ve VM Uzantılarının, durumlarını bildirmek için VM depolama hesabına giden İnternet erişimine sahip olması gerekir. Durum hatasının yaygın nedenleri şunlardır:
  • İnternet'e giden erişimi engelleyen bir Ağ Güvenlik Grubu
  • Sanal ağda şirket içi DNS sunucuları varsa ve DNS bağlantısı kaybolursa

    Desteklenmeyen durum görmeye devam ederseniz, bu denetimi atlamak ve geçişe devam etmek için uzantıları kaldırabilirsiniz.
  • Birden çok Kullanılabilirlik Kümesi olduğundan, HostedService {hosted-service-name} dağıtımında {deployment-name} geçişi desteklenmiyor. Şu anda yalnızca bir veya daha az kullanılabilirlik kümesine sahip barındırılan hizmetler geçirilebilir. Bu sorunu geçici olarak çözmek için ek kullanılabilirlik kümelerini ve bu kullanılabilirlik kümelerindeki Sanal makineleri farklı bir barındırılan hizmete taşıyın.
    HostedService {hosted-service-name içindeki {deployment-name} Dağıtımı için geçiş desteklenmiyor çünkü HostedService bir tane içerse bile Kullanılabilirlik Kümesi'nin parçası olmayan VM'lere sahip. Bu senaryo için geçici çözüm, tüm sanal makineleri tek bir kullanılabilirlik kümesine taşımak veya barındırılan hizmetteki kullanılabilirlik kümesinden tüm sanal makineleri kaldırmaktır.
    Depolama hesabı/HostedService/Sanal Ağ {sanal ağ-adı} geçiş sürecinde ve bu nedenle değiştirilemiyor Bu hata, kaynakta "Hazırlama" geçiş işlemi tamamlandığında ve kaynakta değişiklik yapacak bir işlem tetiklendiğinde olur. "Hazırlama" işleminden sonra yönetim düzeyindeki kilit nedeniyle, kaynak değişiklikleri engellenir. Yönetim düzeyi kilidini açmak için, "İşleme" geçiş işlemini çalıştırarak geçişi tamamlayabilir veya "Hazırlama" işlemi geri almak için "İptal" geçiş işlemini çalıştırabilirsiniz.
    HostedService {hosted-service-name} için geçişe izin verilmiyor çünkü Durum: RoleStateUnknown'da {vm-name} ADLı VM var. Geçişe yalnızca VM şu durumlardan birinde olduğunda izin verilir: Çalışıyor, Durduruldu, Durduruldu Serbest. VM bir durum geçişi geçiriyor olabilir; bu durum genellikle HostedService'te yeniden başlatma, uzantı yükleme vb. güncelleştirme işlemi sırasında gerçekleşir. Geçiş denemeden önce güncelleştirme işleminin HostedService üzerinde tamamlanması önerilir.
    HostedService {hosted-service-name} içindeki dağıtım {deployment-name}, fiziksel blob boyutu {size-of-the-vhd-blob-backing-the-data-disk} baytları VM Veri Diski mantıksal boyutu {size-of-the-data-disk-specified-in-the-vm-api} bayt ile eşleşmeyen Veri Diski {data-disk-name} içeren bir VM içeriyor. Geçiş, Azure Resource Manager VM için bir veri diski boyutu belirtilmeden devam edecek. Bu hata, VHD blobunun boyutunu VM API modelinde güncelleştirmeden belirlediyseniz oluşur. Ayrıntılı sorun giderme adımları aşağıdadır.
    Bulut Hizmetinde {Bulut-Hizmeti-Adı} VM’si {VM-adı} için medya bağlantısı [veri-diski-Uri’si} olan veri diski {veri-diski-adı} doğrulanırken bir depolama özel durumu oluştu. Bu sanal makine için VHD medya bağlantısının erişilebilir olduğundan emin olun Bu hata, VM diskleri silinmiş veya erişilemez durumda olduğunda oluşabilir. VM için disklerin mevcut olduğundan emin olun.
    HostedService {cloud-service-name} içindeki VM {vm-name}, Azure Resource Manager'da desteklenmeyen {vhd-blob-name} blob adına sahip MediaLink {vhd-uri} içeren Disk içeriyor. Bu hata, blobun adında şu anda İşlem Kaynağı Sağlayıcısı'nda desteklenmeyen bir "/" bulunduğunda oluşur.
    Bölgesel kapsamda olmadığından HostedService {cloud-service-name} dağıtımı {deployment-name} için geçişe izin verilmez. https://aka.ms/regionalscope Bu dağıtımı bölgesel kapsama taşımak için bkz. 2014'te Azure, ağ kaynaklarının küme düzeyi kapsamından bölgesel kapsama taşınacağını duyurdu. Diğer ayrıntılar için bkz https://aka.ms/regionalscope . Geçirilmekte olan dağıtımda otomatik olarak bölgesel kapsama taşınan bir güncelleştirme işlemi yapılmamış olduğunda bu hata oluşur. En iyi çözüm, vm'ye bir uç nokta veya vm'ye bir veri diski eklemek ve sonra geçişi yeniden denemektir.
    Bkz . Azure'da klasik bir sanal makinede uç noktaları ayarlama veya Klasik dağıtım modeliyle oluşturulan bir sanal makineye veri diski ekleme
    Geçiş, ağ geçidi olmayan PaaS dağıtımlarına sahip olduğundan {vnet-name} Sanal Ağ için desteklenmiyor. Bu hata, Sanal Ağ bağlı Application Gateway veya API Management hizmetleri gibi ağ geçidi olmayan PaaS dağıtımlarınız olduğunda oluşur.
    Geçiş devam ettiği için VM'deki yönetim işlemlerine izin verilmiyor Bu hatanın nedeni VM'nin Hazırlama durumunda olması ve bu nedenle herhangi bir güncelleştirme/silme işlemi için kilitlenmesidir. Geçişi geri almak ve güncelleştirme/silme işlemleri için VM'nin kilidini açmak için VM'de PS/CLI kullanarak Abort komutunu çağırın. İşlemeyi çağırmak da VM'nin kilidini açar ancak geçişi ARM'ye kaydeder.

    Ayrıntılı sorun giderme

    Fiziksel blob boyutu baytları, VM Veri Diskinin mantıksal boyut baytlarıyla eşleşmeyen bir Veri Diskine sahip VM.

    Bu, Veri diskinin mantıksal boyutu ile gerçek VHD blob boyutu eşitlenmediğinde görülür. Durum, Aşağıdaki komutlar kullanılarak kolayca doğrulanabilir:

    Sorunu doğrulama

    # Store the VM details in the VM object
    $vm = Get-AzureVM -ServiceName $servicename -Name $vmname
    
    # Display the data disk properties
    # NOTE the data disk LogicalDiskSizeInGB below which is 11GB. Also note the MediaLink Uri of the VHD blob as we'll use this in the next step
    $vm.VM.DataVirtualHardDisks
    
    
    HostCaching         : None
    DiskLabel           : 
    DiskName            : coreosvm-coreosvm-0-201611230636240687
    Lun                 : 0
    LogicalDiskSizeInGB : 11
    MediaLink           : https://contosostorage.blob.core.windows.net/vhds/coreosvm-dd1.vhd
    SourceMediaLink     : 
    IOType              : Standard
    ExtensionData       : 
    
    # Now get the properties of the blob backing the data disk above
    # NOTE the size of the blob is about 15 GB which is different from LogicalDiskSizeInGB above
    $blob = Get-AzStorageblob -Blob "coreosvm-dd1.vhd" -Container vhds 
    
    $blob
    
    ICloudBlob        : Microsoft.WindowsAzure.Storage.Blob.CloudPageBlob
    BlobType          : PageBlob
    Length            : 16106127872
    ContentType       : application/octet-stream
    LastModified      : 11/23/2016 7:16:22 AM +00:00
    SnapshotTime      : 
    ContinuationToken : 
    Context           : Microsoft.WindowsAzure.Commands.Common.Storage.AzureStorageContext
    Name              : coreosvm-dd1.vhd
    

    Sorunu giderme

    # Convert the blob size in bytes to GB into a variable which we'll use later
    $newSize = [int]($blob.Length / 1GB)
    
    # See the calculated size in GB
    $newSize
    
    15
    
    # Store the disk name of the data disk as we'll use this to identify the disk to be updated
    $diskName = $vm.VM.DataVirtualHardDisks[0].DiskName
    
    # Identify the LUN of the data disk to remove
    $lunToRemove = $vm.VM.DataVirtualHardDisks[0].Lun
    
    # Now remove the data disk from the VM so that the disk isn't leased by the VM and it's size can be updated
    Remove-AzureDataDisk -LUN $lunToRemove -VM $vm | Update-AzureVm -Name $vmname -ServiceName $servicename
    
    OperationDescription OperationId                          OperationStatus
    -------------------- -----------                          ---------------
    Update-AzureVM       213xx1-b44b-1v6n-23gg-591f2a13cd16   Succeeded  
    
    # Verify we have the right disk that's going to be updated
    Get-AzureDisk -DiskName $diskName
    
    AffinityGroup        : 
    AttachedTo           : 
    IsCorrupted          : False
    Label                : 
    Location             : East US
    DiskSizeInGB         : 11
    MediaLink            : https://contosostorage.blob.core.windows.net/vhds/coreosvm-dd1.vhd
    DiskName             : coreosvm-coreosvm-0-201611230636240687
    SourceImageName      : 
    OS                   : 
    IOType               : Standard
    OperationDescription : Get-AzureDisk
    OperationId          : 0c56a2b7-a325-123b-7043-74c27d5a61fd
    OperationStatus      : Succeeded
    
    # Now update the disk to the new size
    Update-AzureDisk -DiskName $diskName -ResizedSizeInGB $newSize -Label $diskName
    
    OperationDescription OperationId                          OperationStatus
    -------------------- -----------                          ---------------
    Update-AzureDisk     cv134b65-1b6n-8908-abuo-ce9e395ac3e7 Succeeded 
    
    # Now verify that the "DiskSizeInGB" property of the disk matches the size of the blob 
    Get-AzureDisk -DiskName $diskName
    
    
    AffinityGroup        : 
    AttachedTo           : 
    IsCorrupted          : False
    Label                : coreosvm-coreosvm-0-201611230636240687
    Location             : East US
    DiskSizeInGB         : 15
    MediaLink            : https://contosostorage.blob.core.windows.net/vhds/coreosvm-dd1.vhd
    DiskName             : coreosvm-coreosvm-0-201611230636240687
    SourceImageName      : 
    OS                   : 
    IOType               : Standard
    OperationDescription : Get-AzureDisk
    OperationId          : 1v53bde5-cv56-5621-9078-16b9c8a0bad2
    OperationStatus      : Succeeded
    
    # Now we'll add the disk back to the VM as a data disk. First we need to get an updated VM object
    $vm = Get-AzureVM -ServiceName $servicename -Name $vmname
    
    Add-AzureDataDisk -Import -DiskName $diskName -LUN 0 -VM $vm -HostCaching ReadWrite | Update-AzureVm -Name $vmname -ServiceName $servicename
    
    OperationDescription OperationId                          OperationStatus
    -------------------- -----------                          ---------------
    Update-AzureVM       b0ad3d4c-4v68-45vb-xxc1-134fd010d0f8 Succeeded      
    

    Geçişi tamamlandıktan sonra bir VM’yi farklı bir aboneliğe taşıma

    Geçiş işlemini tamamladıktan sonra VM’yi başka bir aboneliğe taşımak isteyebilirsiniz. Ancak, VM’de bir Key Vault kaynağına başvuran bir gizli diziniz/sertifikanız varsa, taşıma şu an için desteklenmez. Aşağıdaki yönergeler sorunu geçici olarak çözmenize olanak sağlar.

    PowerShell

    $vm = Get-AzVM -ResourceGroupName "MyRG" -Name "MyVM"
    Remove-AzVMSecret -VM $vm
    Update-AzVM -ResourceGroupName "MyRG" -VM $vm
    

    Azure CLI

    az vm update -g "myrg" -n "myvm" --set osProfile.Secrets=[]
    

    Sonraki adımlar