如何将 OS 磁盘还原到不同的、已调整大小的 Azure VM 上作为其新的 OS 磁盘?

如何将 OS 磁盘还原到不同的、已调整大小的 Azure VM 上作为其新的 OS 磁盘?

我可以创建一个比当前虚拟机更大的新虚拟机,但我无法将旧虚拟机升级或调整为更大的大小,尽管它们的类型非常相似。所以我想,既然我无法调整虚拟机的大小,我可以创建一个更大的新 VM,然后将旧的、较小的 VM 的 OS 磁盘的内容简单地恢复到它的 OS 磁盘上吗?我的意思是,除了较大类型的虚拟机具有高级磁盘支持之外,这两台虚拟机看起来实际上是相同的。

我之前曾轻松地就地调整过其他 Azure VM 的大小,但在这个特定的新场景中,我尝试调整大小的旧 VM E32a_v4 支持标准 SSD,而新 VM E32as_v4 支持高级 SSD——这正是我尝试升级的原因!我的意思是,这两种 VM 类型只相差一个字母!然而,不幸的是,调整大小操作并不那么简单。Azure 不允许就地执行调整大小,并显示“无法调整虚拟机大小”。以下是详细信息:

“无法将虚拟机‘MyVirtualMachineName’的大小调整为‘Standard E32as_v4’。错误:操作无法完成,因为它导致超出批准的standardEASv4Family Cores配额。其他详细信息 - 部署模型:资源管理器,位置:eastus,当前限制:32,当前使用量:32,额外要求:32,(最小)新限制要求:64。提交配额增加请求 https://aka.ms/ProdportalCRP/?#create/Microsoft.Support/Parameters/bla-bla-bla 通过指定“详细信息”部分中列出的参数来确保部署成功。有关配额限制的更多信息,请访问 https://docs.microsoft.com/en-us/azure/azure-supportability/per-vm-quota-requests“”。

但据我接触过的 Azure 支持技术人员称,

“...如果客户尝试将运行在标准磁盘上的 VM 调整为运行在高级磁盘上的 VM,他们将无法做到这一点,因为存在显著的硬件差异。但是,客户应该能够创建一个全新的 VM 作为 E32asv4 并迁移数据(如果他们愿意的话)。”

这是不可接受的,因为为我创建一个全新的虚拟机并不意味着我可以简单地“迁移数据”——我需要配置很多软件包,并且需要重新创建太多其他 Windows 策略和其他设置。这将是一项非常费力的任务,而且我很有可能会错过许多重要的首选项和配置。

因此我想,我不能简单地备份旧的 E32a_v4 VM 的操作系统磁盘并将其恢复到新创建的 E32as_v4 VM 上作为其新的操作系统磁盘(擦除或替换它已有的内容)吗?

答案1

正在查看此链接

此示例显示如何将虚拟机的所有磁盘从标准存储转换为高级存储或从高级存储转换为标准存储。若要使用高级托管磁盘,虚拟机必须使用支持高级存储的虚拟机大小。此示例还会切换到支持高级存储的大小。

#resource group that contains the virtual machine
rgName='yourResourceGroup'

#Name of the virtual machine
vmName='yourVM'

#Premium capable size 
#Required only if converting from Standard to Premium
size='Standard_DS2_v2'

#Choose between Standard_LRS and Premium_LRS based on your scenario
sku='Premium_LRS'

#Deallocate the VM before changing the size of the VM
az vm deallocate --name $vmName --resource-group $rgName

#Change the VM size to a size that supports Premium storage 
#Skip this step if converting storage from Premium to Standard
az vm resize --resource-group $rgName --name $vmName --size $size

#Update the SKU of all the data disks 
az vm show -n $vmName -g $rgName --query storageProfile.dataDisks[*].managedDisk -o tsv \
| awk -v sku=$sku '{system("az disk update --sku "sku" --ids "$1)}'

#Update the SKU of the OS disk
az vm show -n $vmName -g $rgName --query storageProfile.osDisk.managedDisk -o tsv \
| awk -v sku=$sku '{system("az disk update --sku "sku" --ids "$1)}'

az vm start --name $vmName --resource-group $rgName

关于您的其他错误:

“无法将虚拟机‘MyVirtualMachineName’的大小调整为‘Standard E32as_v4’。错误:操作无法完成,因为它导致超出批准的标准EASv4Family核心配额

您已达到软配额,即在 VM 大小/sku E32as_v4 中部署的 vcore 数量。您有两种方法可以解决此问题:

  1. 删除相同 VM 大小/sku 的 VM,这将释放 vcores
  2. 向 Microsoft 提交工单,说明您想要提高配额。这是 Microsoft 端的自动流程,只需几分钟

答案2

几件事;

  • 正如您所说,错误严格来说是配额问题,因此提高配额将解决该问题。
  • 假设我们讨论的是托管磁盘。如果您有高级磁盘,则无法调整为不支持高级磁盘的 VM 大小,但如果是标准磁盘,则可以调整为任何 VM 大小。
  • 是的,有一个 OS Swap 选项,但是您不需要它,因为您可以转换磁盘然后调整大小。

相关内容