共用方式為

将磁盘添加到 Linux VM

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

本文介绍如何将永久性磁盘附加到虚拟机(VM),以保留数据,即使 VM 由于维护或调整大小而重新预配。

注意

在可以在由世纪互联运营的 Microsoft Azure 中使用 Azure CLI 之前,请先运行 az cloud set -n AzureChinaCloud 来更改云环境。 若要切换回 Azure 公有云,请再次运行 az cloud set -n AzureCloud

将新磁盘附加到 VM

如果要向 VM 添加新的空数据磁盘,请使用带参数的 az vm disk attach 命令 --new 。 如果 VM 位于某个可用性区域中,则会自动在与 VM 相同的区域中创建磁盘。 有关详细信息,请参阅可用性区域概述。 以下示例创建一个名为“myDataDisk”且大小为 50 GB 的磁盘:

az vm disk attach \
   -g myResourceGroup \
   --vm-name myVM \
   --name myDataDisk \
   --new \
   --size-gb 50

降低延迟

在选择区域中,磁盘附加延迟会降低。 在这些地区,改善幅度高达15%。 如果 VM 之间发生计划内或计划外故障转移、正在扩展工作负荷或运行高比例有状态工作负荷(例如 Azure Kubernetes 服务),则此改进非常有用。 但是,此改进仅限于显式磁盘附加命令 az vm disk attach。 如果您调用可能会隐式执行附加操作的命令,则不会看到性能改进,例如 az vm update。 无需执行除调用显式附加命令以外的任何操作即可查看此改进。

附加现有磁盘

若要附加现有磁盘,请查找磁盘 ID 并将该 ID 传递到 az vm disk attach 命令。 以下示例查询 myResourceGroup 中名为 myDataDisk 的磁盘,然后将其附加到名为 myVM 的 VM:

diskId=$(az disk show -g myResourceGroup -n myDataDisk --query 'id' -o tsv)

az vm disk attach -g myResourceGroup --vm-name myVM --name $diskId

标识磁盘

Azure Linux VM 使用不同的磁盘接口,具体取决于 VM 大小和生成:

  • VM 大小 v6 及更新版本:使用 NVMe 接口以提高性能
  • VM 规格 v5 及更早版本:使用 SCSI 接口进行磁盘管理

连接到虚拟机

若要标识与 Linux VM 关联的磁盘,请使用 SSH 连接到 VM。 有关详细信息,请参阅 如何在 Azure 上将 SSH 与 Linux 配合使用。 以下示例使用用户名 azureuser 连接到公共 IP 地址为 10.123.123.25 的 VM:

ssh azureuser@10.123.123.25

注意

在标识特定磁盘之前,请确定 VM 是使用 SCSI、NVMe 还是两个接口的组合。

azure-vm-utils 包提供实用工具来优化 Azure VM 上的 Linux 体验,使磁盘识别在不同的 VM 配置中更加可靠。

使用以下命令列出 VM 上的磁盘:

# List all disks
sudo azure-disk-list

# List NVMe disks with detailed information
sudo azure-nvme-id

azure-nvme-id 的输出类似于:

/dev/nvme0n1: type=os
/dev/nvme0n2: type=data, lun=0
/dev/nvme1n1: type=local, index=1, name=nvme-50G-1

后续步骤