适用于:✔️ Windows 虚拟机 ✔️ 弹性规模集
在资源组中通过从 Azure 市场部署映像来创建新的虚拟机 (VM) 时,默认的操作系统 (OS) 磁盘通常为 127 GiB。 (默认情况下,某些映像的 OS 磁盘大小较小。可以将数据磁盘添加到 VM。 可以附加的数据磁盘数取决于所选的 VM 大小。
应在数据磁盘上安装应用程序和 CPU 密集型工作负荷。 如果您支持在 OS 磁盘上安装组件的旧版应用程序,或者从本地将具有较大 OS 磁盘的物理电脑或虚拟机迁移过来,则可能需要扩展 OS 磁盘。 若要完成扩展,请先使用 Azure 门户或 Azure PowerShell 增大 Azure 托管的 OS 磁盘或数据磁盘的大小,然后在 Windows 中扩展该卷以使用新增的空间。
OS 磁盘的最大容量为 4,095 GiB。 但许多操作系统默认使用主启动记录 (MBR) 进行分区。 MBR 将可用大小限制为 2 TiB。 如果需要超过 2 TiB,请创建并附加数据磁盘并将其用于数据存储。 如果需要将数据存储在 OS 磁盘上并需要额外的空间, 请将其转换为 GUID 分区表 (GPT)。 若要了解 MBR 和 GPT 在 Windows 部署中的区别,请参阅 Windows 和 GPT 常见问题解答。
除非使用在不停机的情况下扩展,否则扩展数据磁盘需要对 VM 进行解除分配。 不支持收缩现有磁盘,可能会导致数据丢失。
扩展磁盘后,在操作系统中扩展卷以利用更大的磁盘。 无法扩展条带卷的大小。
在不停机的情况下扩展
你可以在不解除分配虚拟机的情况下扩展数据磁盘。 磁盘的主机缓存设置不会影响你在不解除虚拟机分配的情况下扩展数据磁盘的能力。
此功能存在以下限制。
重要
此限制不适用于高级 SSD v2 或超级磁盘。
如果标准 HDD、标准 SSD 或高级 SSD 为 4 TiB 或更少,请解除分配 VM 并分离磁盘,然后再将其扩展到 4 TiB 以上。 如果上述某个磁盘类型已经大于 4 TiB,则可以在不解除分配 VM 和拆离磁盘的情况下对其进行扩展。
- 仅支持数据磁盘。
- 必须安装并使用下列选项之一:
- 最新的 Azure CLI。
- 最新的 Azure PowerShell 模块。
- Azure 门户。
- 具有 API 版本为
2021-04-01或更新的 Azure 资源管理器模板。
- 在某些经典 VM 上不可用。 使用此脚本获取支持在不停机的情况下扩展的经典 VM SKU 的列表。
使用超级磁盘和高级 SSD v2 进行扩展
在不停机的情况下扩展 Ultra Disks 和高级 SSD v2 磁盘还存在以下其他限制:
- 当该磁盘上同时正在进行后台数据复制时,无法扩展该磁盘。
可以在所有支持超级磁盘或高级 SSD v2 磁盘的区域内,使用 NVMe 控制器扩展附加到虚拟机的这些磁盘,而无需停机。更改可以通过 Azure 门户、Azure CLI 或 Azure PowerShell 模块进行。
预计最多 10 分钟后就会在 Windows VM 和 Linux VM 中反映正确的大小。 对于 Linux VM,必须执行 Linux rescan 函数。 对于没有工作负荷的 Windows VM,必须执行 Windows 重新扫描功能。 可以立即重新扫描,但如果时间在 10 分钟内,可能需要再次重新扫描以显示正确的大小。 如果重新扫描无法正常工作,可以重复重新扫描或重启 VM 以显示正确的大小。
调整 Azure 门户中托管磁盘的大小
只有在不解除分配 VM 的情况下,才能扩展符合条件的数据磁盘。 不满足无需停机即可扩展的要求的操作系统磁盘和数据磁盘需要解除分配。
在 Azure 门户中,转到您要扩展磁盘的 VM。 如果磁盘需要解除分配,请选择“ 停止”。
在左侧菜单中的 “设置”下,选择“ 磁盘”。
在 “磁盘名称”下,选择要展开的磁盘。
在左侧菜单中的 “设置”下,选择“ 大小 + 性能”。
在 “大小 + 性能”上,选择所需的磁盘大小。
新大小应该大于现有磁盘大小。 OS 磁盘允许的最大值为 4,095 GB。 可以将虚拟硬盘(VHD)Blob 扩展到超过该大小,但操作系统只能使用前 4,095 GiB 的空间。
在页面底部选择“重设大小”。
如果解除分配了 VM,请返回到“VM 概述 ”窗格,然后选择“ 开始”。
使用 PowerShell 重设托管磁盘的大小
在管理模式下打开 PowerShell 窗口,然后按照以下步骤操作。 只有在不解除分配 VM 的情况下,才能扩展符合条件的数据磁盘。 不满足无需停机即可扩展的要求的操作系统磁盘和数据磁盘需要解除分配。
使用 Connect-AzAccount 登录到Azure帐户,并使用 Set-AzContext 设置活动订阅:
Connect-AzAccount -Environment AzureChinaCloud Set-AzContext -Subscription 'my-subscription-name'设置资源组名称和 VM 名称:
$rgName = 'my-resource-group-name' $vmName = 'my-vm-name' $diskName = 'my-disk-name'获取对您的虚拟机 (VM) 的引用:
$vm = Get-AzVM -ResourceGroupName $rgName -Name $vmName如果磁盘需要解除分配,请先停止 VM,然后再调整磁盘大小:
Stop-AzVM -ResourceGroupName $rgName -Name $vmName获取对托管磁盘的引用。 将托管磁盘大小设置为所需的值并更新磁盘:
$disk= Get-AzDisk -ResourceGroupName $rgName -DiskName $diskName $disk.DiskSizeGB = 1023 Update-AzDisk -ResourceGroupName $rgName -Disk $disk -DiskName $disk.Name新大小应该大于现有磁盘大小。 OS 磁盘允许的最大值为 4,095 GB。 可以将 VHD blob 扩展到超过该大小,但操作系统只能使用前 4,095 GiB 的空间。
更新磁盘可能需要几秒钟时间。 如果解除分配 VM,请在命令完成运行后重启 VM:
Start-AzVM -ResourceGroupName $rgName -Name $vmName
远程连接到 VM,打开 计算机管理 (或 磁盘管理),并使用新分配的空间扩展驱动器。
在操作系统中扩展磁盘卷
为虚拟机扩展磁盘后,进入操作系统并扩展卷以包含新空间。 以下几种方法可用于扩展分区。 本部分介绍如何使用远程桌面协议(RDP)连接来连接 VM,以使用 DiskPart 或 磁盘管理器扩展分区。
使用 DiskPart
打开与 VM 的 RDP 连接。
打开命令提示符并输入
diskpart。在
DISKPART提示符下,输入list volume。 记下要扩展的卷。在
DISKPART提示符下,输入select volume <volumenumber>。 该操作将选择要扩展到同一磁盘的连续可用空间的卷volumenumber。在
DISKPART提示符下,输入extend [size=<size>]。 该操作将按大小 (MB) 扩展所选的卷。
使用磁盘管理器
启动与 VM 的远程桌面会话。
打开“磁盘管理”。
右键单击现有的 C: 驱动器分区,然后选择“扩展卷”。
按照向导中的步骤查看具有更新容量的磁盘。
在不中断服务的情况下扩展经典 VM SKU 的支持
如果使用经典 VM SKU,可能不支持在不停机的情况下扩展磁盘。
使用以下 PowerShell 脚本确定哪些经典 VM SKU 支持在不停机的情况下进行扩展:
Connect-AzAccount -Environment AzureChinaCloud
$subscriptionId="yourSubID"
$location="desiredRegion"
Set-AzContext -Subscription $subscriptionId
$vmSizes=Get-AzComputeResourceSku -Location $location | where{$_.ResourceType -eq 'virtualMachines'}
foreach($vmSize in $vmSizes){
foreach($capability in $vmSize.Capabilities)
{
if(($capability.Name -eq "EphemeralOSDiskSupported" -and $capability.Value -eq "True") -or ($capability.Name -eq "PremiumIO" -and $capability.Value -eq "True") -or ($capability.Name -eq "HyperVGenerations" -and $capability.Value -match "V2"))
{
$vmSize.Name
}
}
}
相关内容
还可以使用 Azure 门户附加磁盘。