您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

使用 Azure CLI 扩展 Linux VM 上的虚拟硬盘

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

本文介绍了如何使用 Azure CLI 扩展 Linux 虚拟机 (VM) 的托管磁盘。 可通过添加数据磁盘来扩充存储空间,也可扩展现有的数据磁盘。 在 Azure 中的 Linux VM 上,操作系统 (OS) 的默认虚拟硬盘大小通常为 30 GB。

警告

始终确保文件系统处于正常状态,磁盘分区表类型将支持新大小,并确保在执行磁盘大小调整操作之前备份数据。 有关详细信息,请参阅 Azure 备份快速入门

扩展 Azure 托管磁盘

在不停机的情况下重设大小(预览版)

现在,可以调整托管磁盘的大小,而无需解除 VM 分配。

此功能的预览版具有以下限制:

  • 目前仅在美国中西部提供。
  • 仅支持数据磁盘。
  • 小于 4 TiB 的磁盘无法在不停机的情况下扩展到 4 TiB 或更大。
    • 如果将磁盘大小增加到 4 TiB 或更大,可以在不停机的情况下进行扩展。
  • 安装和使用:

若要注册该功能,请使用以下命令:

az feature register --namespace Microsoft.Compute --name LiveResize

注册可能需要几分钟才能完成。 若要确认是否已注册,请使用以下命令:

az feature show --namespace Microsoft.Compute --name LiveResize

开始使用

确保已安装了最新的 Azure CLI 并已使用 az login 登录到 Azure 帐户。

本文需要 Azure 中的现有 VM 已附加至少一个数据磁盘并且该磁盘已准备就绪。 如果尚无可用的 VM,请参阅使用数据磁盘创建和准备 VM

在以下示例中,请将示例参数名称(例如 myResourceGroupmyVM)替换成自己的值。

重要

如果已启用“LiveResize”,并且磁盘满足在不停机的情况下重设大小(预览版)中的要求,则可以跳过步骤 1 和步骤 3。

  1. 当 VM 正在运行时,无法在虚拟硬盘上执行操作。 使用 az vm deallocate 解除分配 VM。 以下示例在名为 myResourceGroup 的资源组中解除分配名为 myVM 的 VM:

    az vm deallocate --resource-group myResourceGroup --name myVM
    

    注意

    只有释放 VM 才能扩展虚拟硬盘。 使用 az vm stop 停止 VM 不会释放计算资源。 若要释放计算资源,请使用 az vm deallocate

  2. 使用 az disk list 查看资源组中的托管磁盘列表。 以下示例显示名为 myResourceGroup 的资源组中的托管磁盘列表:

    az disk list \
        --resource-group myResourceGroup \
        --query '[*].{Name:name,Gb:diskSizeGb,Tier:accountType}' \
        --output table
    

    使用 az disk update 扩展所需磁盘。 以下示例将名为 myDataDisk 的托管磁盘扩展为 200 GB:

    az disk update \
        --resource-group myResourceGroup \
        --name myDataDisk \
        --size-gb 200
    

    注意

    扩展托管磁盘时,更新的大小将向上舍入到最接近的托管磁盘大小。 有关可用托管磁盘大小和层的表,请参阅 Azure 托管磁盘概述 - 定价和计费

  3. 使用 az vm start 启动 VM。 以下示例在名为 myResourceGroup 的资源组中启动名为 myVM 的 VM:

    az vm start --resource-group myResourceGroup --name myVM
    

扩展磁盘分区和文件系统

若要使用扩展的磁盘,请扩展基础分区和文件系统。

  1. 使用相应的凭据通过 SSH 连接到 VM。 可以使用 az vm show 查看 VM 的 公共 IP 地址:

    az vm show --resource-group myResourceGroup --name myVM -d --query [publicIps] --output tsv
    
  2. 扩展基础分区和文件系统。

    a. 如果磁盘已装载,请将其卸载:

    sudo umount /dev/sdc1
    

    b. 使用 parted 查看磁盘信息并重设分区大小:

    sudo parted /dev/sdc
    

    使用 print 查看有关现有分区布局的信息。 其输出类似于以下示例,该示例显示基础磁盘大小为 215 GB:

    GNU Parted 3.2
    Using /dev/sdc1
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) print
    Model: Unknown Msft Virtual Disk (scsi)
    Disk /dev/sdc1: 215GB
    Sector size (logical/physical): 512B/4096B
    Partition Table: loop
    Disk Flags:
    
    Number  Start  End    Size   File system  Flags
        1      0.00B  107GB  107GB  ext4
    

    c. 使用 resizepart 展开分区。 输入分区号 1 以及新分区的大小:

    (parted) resizepart
    Partition number? 1
    End?  [107GB]? 215GB
    

    d. 若要退出,请输入 quit

  3. 重设分区大小后,请使用 e2fsck 验证分区一致性:

    sudo e2fsck -f /dev/sdc1
    
  4. 使用 resize2fs 重设文件系统大小:

    sudo resize2fs /dev/sdc1
    
  5. 将分区安装到目标位置,例如 /datadrive

    sudo mount /dev/sdc1 /datadrive
    
  6. 若要验证是否已调整数据磁盘的大小,请使用 df -h。 以下示例输出显示数据驱动器 /dev/sdc1 现在为 200 GB:

    Filesystem      Size   Used  Avail Use% Mounted on
    /dev/sdc1        197G   60M   187G   1% /datadrive
    

后续步骤