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: 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
- IaaS kaynaklarının klasikten Azure Resource Manager'a platform destekli geçişine genel bakış
- Klasik modelden Azure Resource Manager’a platform destekli geçişe ayrıntılı teknik bakış
- IaaS kaynaklarının Klasik’ten Azure Resource Manager’a geçişini planlama
- IaaS kaynaklarını klasikten Azure Resource Manager'a geçirmek için PowerShell kullanma
- IaaS kaynaklarını klasikten Azure Resource Manager'a geçirmek için CLI kullanma
- IaaS kaynaklarının klasikten Azure Resource Manager'a geçirilmesine yardımcı olan topluluk araçları
- IaaS kaynaklarını klasikten Azure Resource Manager'a geçirme hakkında en sık sorulan soruları gözden geçirin