扩展附加到虚拟机的非托管虚拟硬盘

本文介绍如何扩展非托管磁盘。 若要了解如何扩展托管磁盘,请参阅 WindowsLinux 文章。

适用于:✔️ Linux VM ✔️ Windows VM ✔️ 灵活规模集

在资源组中通过从 Azure 市场部署映像来创建新的虚拟机 (VM) 时,默认的操作系统 (OS) 驱动器通常为 127 GB(默认情况下,某些映像的 OS 磁盘大小更小)。 尽管可以将数据磁盘添加到 VM(数量取决于所选择的 SKU),并且我们建议将应用程序和需要大量 CPU 的工作负荷安装在这些附加的磁盘上,但通常情况下,客户需要扩展 OS 驱动器以支持特定方案:

  • 支持将组件安装在 OS 驱动器上的传统应用程序。
  • 从本地迁移具有较大 OS 驱动器的物理电脑或 VM。

重要

调整 Azure VM 的 OS 或数据磁盘大小需要解除分配该 VM。

不支持收缩现有磁盘,收缩现有磁盘可能导致数据丢失。

扩展磁盘后,需要在 WindowsLinux 的 OS 中扩展卷才能利用更大的磁盘。

使用 PowerShell 重设非托管磁盘的大小

在管理模式下打开 PowerShell ISE 或 PowerShell 窗口,执行以下步骤:

  • 在资源管理模式下登录 Azure 帐户,然后选择订阅:

    Connect-AzAccount -Environment AzureChinaCloud
    Select-AzSubscription -SubscriptionName 'my-subscription-name'
    
  • 设置资源组名称和 VM 名称:

    $rgName = 'my-resource-group-name'
    $vmName = 'my-vm-name'
    
  • 获取对 VM 的引用:

    $vm = Get-AzVM -ResourceGroupName $rgName -Name $vmName
    
  • 在重设磁盘大小之前停止 VM:

    Stop-AzVM -ResourceGroupName $rgName -Name $vmName
    
  • 将非托管 OS 磁盘的大小设置为所需值,并更新 VM:

    $vm.StorageProfile.OSDisk.DiskSizeGB = 1023
    Update-AzVM -ResourceGroupName $rgName -VM $vm
    

    警告

    新大小应该大于现有磁盘大小。 对于 OS 磁盘来说,允许的最大值为 2,048 GB。 (可以扩展 VHD Blob,使之超出该大小,但 OS 只能使用空间的头 2,048 GB。)

  • 更新要调整大小的任何数据磁盘的大小。 若要扩展附加到 VM 的第一个数据磁盘,请使用数字索引获取对附加的第一个数据盘的引用:

    $vm.StorageProfile.DataDisks[0].DiskSizeGB = 1023
    

    同样,可以使用索引或磁盘的 Name 属性引用附加到 VM 的其他数据磁盘:

    ($vm.StorageProfile.DataDisks | Where ({$_.Name -eq 'my-second-data-disk'})).DiskSizeGB = 1023
    
  • 更新 VM 可能需要几秒钟时间。 命令执行完后,请重启 VM:

    Start-AzVM -ResourceGroupName $rgName -Name $vmName
    

后续步骤

还可以使用 Azure 门户来附加磁盘。