本文編錄了將 IaaS 資源從 Azure 經(jīng)典部署模型遷移到 Azure Resource Manager 堆棧期間的最常見錯誤和緩解措施积蔚。
錯誤列表
錯誤字符串緩解措施
內(nèi)部服務(wù)器錯誤在某些情況下丙躏,這是重試時消失的暫時性錯誤宝恶。 如果該錯誤仍然存在盟迟,請聯(lián)系 Azure 支持人員椎眯,因為它需要調(diào)查平臺日志逝淹。
注意:支持團隊跟蹤事件后啄枕,請不要嘗試任何自我緩解措施,因為這可能會對你的環(huán)境造成意想不到的后果蚓耽。
HostedService {hosted-service-name} 中的部署 {deployment-name} 不支持遷移渠牲,因為它是 PaaS 部署(Web/輔助角色)。當部署包含 Web/輔助角色時步悠,會發(fā)生這種情況签杈。 由于僅虛擬機支持遷移,請從部署中刪除 Web/輔助角色贤徒,然后重試遷移芹壕。
模板 {template-name} 部署失敗。 CorrelationId={guid}在遷移服務(wù)的后端接奈,我們將使用 Azure Resource Manager 模板在 Azure Resource Manager 堆棧中創(chuàng)建資源踢涌。 由于模板是冪等的,通常你可以安全地重試遷移操作序宦,以忽略此錯誤睁壁。 如果此錯誤仍然存在,請聯(lián)系 Azure 支持人員互捌,并向他們提供 CorrelationId潘明。
注意:由支持團隊跟蹤事件后,請不要嘗試任何自我緩解措施秕噪,因為這可能會對你的環(huán)境產(chǎn)生意想不到的后果钳降。
虛擬網(wǎng)絡(luò) {virtual-network-name} 不存在。如果在新的 Azure 門戶中創(chuàng)建虛擬網(wǎng)絡(luò)腌巾,可能會發(fā)生這種情況遂填。 實際的虛擬網(wǎng)絡(luò)名稱遵循模式“Group *”
托管服務(wù) {hosted-service-name} 中的 VM {vm-name} 包含 Azure Resource Manager 不支持的擴展 {extension-name}。 建議先從 VM 中卸載該擴展澈蝙,然后再繼續(xù)進行遷移吓坚。Azure Resource Manager 不支持 XML 擴展(例如 BGInfo 1.*)。 因此灯荧,無法遷移這些擴展礁击。 如果將這些擴展保留安裝在虛擬機上,則在完成遷移之前會自動將其卸載。
托管服務(wù) {hosted-service-name} 中的 VM {vm-name} 包含遷移當前不支持的擴展 VMSnapshot/VMSnapshotLinux哆窿。 請從 VM 中卸載該擴展链烈,在遷移完成后再使用 Azure Resource Manager 重新添加它這是為 Azure 備份配置虛擬機的方案。
托管服務(wù) {hosted-service-name} 中的 VM {vm-name} 包含未從 VM 報告其狀態(tài)的擴展 {extension-name}更耻。 因此测垛,此 VM 無法遷移捏膨。 確保 VM 報告該擴展狀態(tài)或從 VM 中卸載該擴展秧均,然后重試遷移。
托管服務(wù) {hosted-service-name} 中的 VM {vm-name} 包含報告處理程序狀態(tài):{handler-status} 的擴展 {extension-name}号涯。 因此目胡,此 VM 無法遷移。 確保所報告的擴展處理程序狀態(tài)為 {handler-status} 或從 VM 中卸載該擴展链快,然后重試遷移誉己。
托管服務(wù) {hosted-service-name} 中 VM {vm-name} 的 VM 代理報告的總體代理狀態(tài)為“未就緒”。 因此域蜗,該 VM 可能不會遷移(如果它包含可遷移的擴展)巨双。 請確保 VM 代理將總體代理狀態(tài)報告為“就緒”。 請參閱https://www.azure.cn/documentation/articles/virtual-machines-windows-migration-classic-resource-manager/#frequently-asked-questions霉祸。Azure 來賓代理和 VM 擴展需要對 VM 存儲帳戶進行出站 Internet 訪問以填充其狀態(tài)筑累。 狀態(tài)失敗的常見原因包括
阻止出站訪問 Internet 的網(wǎng)絡(luò)安全組
如果 VNET 有本地 DNS 服務(wù)器并且 DNS 連接已丟失
如果仍然看到不支持的狀態(tài),則可以卸載該擴展以跳過此檢查并繼續(xù)進行遷移丝蹭。
托管服務(wù) {hosted-service-name} 中的部署 {deployment-name} 不支持遷移慢宗,因為它具有多個可用性集。目前奔穿,僅具有 1 個或更少可用性集的托管服務(wù)可以遷移镜沽。 若要解決此問題,請將其他可用性集和這些可用性集中的虛擬機移到其他托管服務(wù)贱田。
托管服務(wù) {hosted-service-name} 中的部署 {deployment-name} 不支持遷移缅茉,因為它包含的 VM 不屬于可用性集,盡管該托管服務(wù)包含一個可用性集男摧。這種情況的解決方法是將所有虛擬機都移到單個可用性集中蔬墩,或者從托管服務(wù)的可用性集中刪除所有虛擬機。
存儲帳戶/托管服務(wù)/虛擬網(wǎng)絡(luò) {virtual-network-name} 正處于遷移過程中彩倚,因此無法更改當資源已完成“準備”遷移操作并觸發(fā)了對資源進行更改的操作時筹我,會發(fā)生此錯誤。 由于“準備”操作完成后對管理平面進行了鎖定帆离,將阻止對資源進行任何更改蔬蕊。 若要解鎖管理平面,可以運行“提交”遷移操作以完成遷移,或者運行“中止”遷移操作以回退“準備”操作岸夯。
托管服務(wù) {hosted-service-name} 不允許遷移麻献,因為它包含的 VM {vm-name} 處于狀態(tài): RoleStateUnknown。 僅當 VM 處于以下狀態(tài)(“正在運行”猜扮、“已停止”勉吻、“已停止已解除分配”)之一時,才允許遷移旅赢。該 VM 可能正在進行狀態(tài)轉(zhuǎn)換齿桃,通常在對托管服務(wù)進行更新操作(如重新啟動,擴展安裝等)期間會發(fā)生這種情況煮盼。建議先對托管服務(wù)完成更新操作短纵,然后再嘗試遷移。
HostedService {hosted-service-name} 中的部署 {deployment-name} 包含 VM {vm-name}僵控,該 VM 的數(shù)據(jù)磁盤 {data-disk-name} 的物理 Blob 大小 {size-of-the-vhd-blob-backing-the-data-disk} 字節(jié)與 VM 數(shù)據(jù)磁盤邏輯大小 {size-of-the-data-disk-specified-in-the-vm-api} 字節(jié)不匹配香到。 遷移將繼續(xù),而無需指定 Azure Resource Manager VM 的數(shù)據(jù)磁盤的大小报破。 如果你想要在繼續(xù)遷移之前更正數(shù)據(jù)磁盤大小悠就,請訪問https://www.azure.cn/documentation/articles/virtual-machines-migration-errors/#vm-with-data-disk-whose-physical-blob-size-bytes-does-not-match-the-vm-data-disk-logical-size-bytes。如果已調(diào)整 VHD Blob 的大小充易,而沒有更新 VM API 模型中的大小梗脾,將發(fā)生此錯誤。 詳細的緩解措施步驟如下所述蔽氨。
在云服務(wù) {云服務(wù)名稱} 中使用媒體鏈接 {數(shù)據(jù)磁盤 URI} 為 VM {VM 名稱} 驗證數(shù)據(jù)磁盤 {數(shù)據(jù)磁盤名稱} 時發(fā)生存儲異常藐唠。 請確保該虛擬機可以訪問 VHD 媒體鏈接如果 VM 的磁盤已被刪除或不再可訪問鹉究,則可能發(fā)生此錯誤。 請確保 VM 磁盤存在自赔。
HostedService {cloud-service-name} 中的 VM {vm-name} 包含具有 blob 名稱為 {vhd-blob-name} 的 MediaLink {vhd-uri} 的磁盤,這在 Azure Resource Manager 中不受支持绍妨。當 Blob 的名稱包含“/”(這當前在計算資源提供程序中不支持)時润脸,將出現(xiàn)此錯誤。
HostedService {cloud-service-name} 中的部署 {deployment-name} 不允許遷移毙驯,因為不在區(qū)域范圍內(nèi)灾测。 請參閱http://aka.ms/regionalscope爆价,了解如何將該部署移至區(qū)域范圍。在 2014 年,Azure 宣布:網(wǎng)絡(luò)資源將從群集級別范圍移至區(qū)域范圍铭段。 請參閱 [http://aka.ms/regionalscope] ,了解更多詳細信息 (http://aka.ms/regionalscope). 當要遷移的部署尚未進行更新操作(自動將其移至區(qū)域范圍)時序愚,將會發(fā)生此錯誤。 最好的解決辦法是向 VM 添加終結(jié)點芬膝,或者向 VM 添加數(shù)據(jù)磁盤拗胜,然后重試遷移。
請參閱如何在 Azure 中的經(jīng)典 Windows 虛擬機上設(shè)置終結(jié)點或將數(shù)據(jù)磁盤附加到使用經(jīng)典部署模型創(chuàng)建的 Windows 虛擬機
詳細的緩解措施
VM 中數(shù)據(jù)磁盤的物理 Blob 字節(jié)大小與 VM 數(shù)據(jù)磁盤的邏輯字節(jié)大小不匹配。
當數(shù)據(jù)磁盤邏輯大小與實際 VHD Blob 大小不同步時纫事,將發(fā)生這種情況。 可以輕松使用以下命令驗證這種問題:
驗證問題
PowerShell復(fù)制
# 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.DataVirtualHardDisksHostCaching? ? ? ? : NoneDiskLabel? ? ? ? ? : DiskName? ? ? ? ? ? :coreosvm-coreosvm-0-201611230636240687Lun? ? ? ? ? ? ? ? :0LogicalDiskSizeInGB :11MediaLink? ? ? ? ? : https://contosostorage.blob.core.chinacloudapi.cn/vhds/coreosvm-dd1.vhdSourceMediaLink? ? : IOType? ? ? ? ? ? ? : StandardExtensionData? ? ? :# 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-AzureStorageblob-Blob"coreosvm-dd1.vhd"-Containervhds$blobICloudBlob? ? ? ? : Microsoft.WindowsAzure.Storage.Blob.CloudPageBlobBlobType? ? ? ? ? : PageBlobLength? ? ? ? ? ? :16106127872ContentType? ? ? : application/octet-streamLastModified? ? ? :11/23/20167:16:22AM +00:00SnapshotTime? ? ? : ContinuationToken : Context? ? ? ? ? : Microsoft.WindowsAzure.Commands.Common.Storage.AzureStorageContextName? ? ? ? ? ? ? :coreosvm-dd1.vhd
緩解問題
PowerShell復(fù)制
# 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$newSize15# 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 updatedRemove-AzureDataDisk-LUN$lunToRemove-VM$vm|Update-AzureVm-Name$vmname-ServiceName$servicenameOperationDescription OperationId? ? ? ? ? ? ? ? ? ? ? ? ? OperationStatus----------------------------------------------Update-AzureVM213xx1-b44b-1v6n-23gg-591f2a13cd16? Succeeded# Verify we have the right disk that's going to be updatedGet-AzureDisk-DiskName$diskNameAffinityGroup? ? ? ? : AttachedTo? ? ? ? ? : IsCorrupted? ? ? ? ? : FalseLabel? ? ? ? ? ? ? ? : Location? ? ? ? ? ? : China EastDiskSizeInGB? ? ? ? :11MediaLink? ? ? ? ? ? : https://contosostorage.blob.core.chinacloudapi.cn/vhds/coreosvm-dd1.vhdDiskName? ? ? ? ? ? :coreosvm-coreosvm-0-201611230636240687SourceImageName? ? ? : OS? ? ? ? ? ? ? ? ? : IOType? ? ? ? ? ? ? : StandardOperationDescription :Get-AzureDiskOperationId? ? ? ? ? :0c56a2b7-a325-123b-7043-74c27d5a61fdOperationStatus? ? ? : Succeeded# Now update the disk to the new sizeUpdate-AzureDisk-DiskName$diskName-ResizedSizeInGB$newSize-Label$diskNameOperationDescription OperationId? ? ? ? ? ? ? ? ? ? ? ? ? OperationStatus----------------------------------------------Update-AzureDiskcv134b65-1b6n-8908-abuo-ce9e395ac3e7Succeeded# Now verify that the "DiskSizeInGB" property of the disk matches the size of the blobGet-AzureDisk-DiskName$diskNameAffinityGroup? ? ? ? : AttachedTo? ? ? ? ? : IsCorrupted? ? ? ? ? : FalseLabel? ? ? ? ? ? ? ? :coreosvm-coreosvm-0-201611230636240687Location? ? ? ? ? ? : China EastDiskSizeInGB? ? ? ? :15MediaLink? ? ? ? ? ? : https://contosostorage.blob.core.chinacloudapi.cn/vhds/coreosvm-dd1.vhdDiskName? ? ? ? ? ? :coreosvm-coreosvm-0-201611230636240687SourceImageName? ? ? : OS? ? ? ? ? ? ? ? ? : IOType? ? ? ? ? ? ? : StandardOperationDescription :Get-AzureDiskOperationId? ? ? ? ? :1v53bde5-cv56-5621-9078-16b9c8a0bad2OperationStatus? ? ? : 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$vmnameAdd-AzureDataDisk-Import-DiskName$diskName-LUN0-VM$vm-HostCachingReadWrite |Update-AzureVm-Name$vmname-ServiceName$servicenameOperationDescription OperationId? ? ? ? ? ? ? ? ? ? ? ? ? OperationStatus----------------------------------------------Update-AzureVMb0ad3d4c-4v68-45vb-xxc1-134fd010d0f8 Succeeded
完成遷移后钾唬,將 VM 移動到其他訂閱中
完成遷移過程后,建議將 VM 移動到另一個訂閱中奕巍。 但是儒士,如果在引用 Key Vault 資源的 VM 上有密鑰/證書,則當前不支持移動诅福。 可按照以下說明解決此問題拖叙。
PowerShell
PowerShell復(fù)制
$vm=Get-AzureRmVM-ResourceGroupName"MyRG"-Name"MyVM"Remove-AzureRmVMSecret-VM$vmUpdate-AzureRmVM-ResourceGroupName"MyRG"-VM$vm
Azure CLI 2.0
bash復(fù)制
az vm update -g"myrg"-n"myvm"--setosProfile.Secrets=[]
后續(xù)步驟
平臺支持的從經(jīng)典部署模型到 Azure Resource Manager 部署模型的 IaaS 資源遷移概述
有關(guān)平臺支持的從經(jīng)典部署模型到 Azure Resource Manager 部署模型的遷移的技術(shù)深入探討
規(guī)劃從經(jīng)典部署模型到 Azure Resource Manager 的 IaaS 資源遷移
使用 PowerShell 將 IaaS 資源從經(jīng)典部署模型遷移到 Azure Resource Manager
使用 CLI 將 IaaS 資源從經(jīng)典部署模型遷移到 Azure Resource Manager
用于幫助將 IaaS 資源從經(jīng)典部署模型遷移到 Azure Resource Manager 部署模型的社區(qū)工具
查看有關(guān)將 IaaS 資源從經(jīng)典部署模型遷移到 Azure Resource Manager 部署模型的最常見問題
立即訪問http://market.azure.cn