教程:通过 Azure CLI 对虚拟机规模集创建和使用磁盘
虚拟机规模集使用磁盘来存储虚拟机 (VM) 实例的操作系统、应用程序和数据。 创建和管理规模集时,请务必选择适用于所需工作负载的磁盘大小和配置。 本教程介绍如何创建和管理 VM 磁盘。 在本教程中,你将学习:
- OS 磁盘和临时磁盘
- 数据磁盘数
- 标准磁盘和高级磁盘
- 磁盘性能
- 附加和准备数据磁盘
如果没有 Azure 订阅,可在开始前创建一个试用帐户。
先决条件
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展。
运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
- 本文需要 Azure CLI 2.0.29 或更高版本。
默认 Azure 磁盘
大多数 VM SKU 都包含一个自动创建的临时本地磁盘,在扩展时该磁盘会添加到虚拟机规模集实例中。 但是,某些 SKU 不使用临时磁盘。 在这种情况下,扩展操作不会自动创建临时磁盘并将其添加到新建的实例。 有关使用和不使用临时磁盘的 VM SKU 的详细信息,请参阅不使用本地临时磁盘的 Azure VM 大小。
操作系统磁盘 - 操作系统磁盘大小可达 2 TB,并可托管 VM 实例的操作系统。 默认情况下,操作系统磁盘在 Linux 上标有 /dev/sda,在 Windows 上标有 C:。 已针对 OS 性能优化了 OS 磁盘的磁盘缓存配置。 由于此配置,OS 磁盘不应 托管应用程序或数据。 对于应用程序和数据,请使用数据磁盘,本文后面会对其进行详细介绍。
临时磁盘 - 临时磁盘使用 VM 实例所在的 Azure 主机上的固态硬盘。 临时磁盘具有高性能,可用于临时数据处理等操作。 但是,如果将 VM 实例移到新的主机,临时磁盘上存储的数据都会删除。 VM 实例大小决定了临时磁盘的大小。
Azure 数据磁盘
如果你需要安装应用程序并存储数据,可以添加额外的数据磁盘。 在任何需要持久和灵敏数据存储的情况下,都应使用数据磁盘。 每个数据磁盘的最大容量为 4 TB。 VM 实例的大小决定可附加的数据磁盘数。 可以为每个 VM vCPU 附加两个数据磁盘,直至达到每个虚拟机 64 个磁盘的绝对上限。
VM 磁盘类型
Azure 提供两种类型的磁盘。
标准磁盘
标准存储受 HDD 或 SSD 支持,可以提供经济高效的存储和性能优势。 标准磁盘非常适合经济高效的开发和测试工作负载。
高级磁盘
高级磁盘由基于 SSD 的高性能、低延迟磁盘提供支持。 建议对运行生产工作负荷的 VM 使用这些磁盘。 高级存储支持 DS 系列、DSv2 系列、GS 系列和 FS 系列 VM。 有关详细信息,请参阅 Azure 托管磁盘类型。
创建并附加磁盘
可以在创建规模集时创建和附加磁盘,也可以对现有的规模集创建和附加磁盘。
从 API 版本 2019-07-01
开始,可以使用 storageProfile.osDisk.diskSizeGb 属性设置虚拟机规模集中 OS 磁盘的大小。 预配后,可能需要对磁盘进行扩展或重新分区,以利用整个空间。 详细了解如何在 Windows 或 Linux OS 中扩展卷。
创建规模集时附加磁盘
首先,使用 az group create 命令创建资源组。 本示例在 chinanorth2 区域中创建名为 myResourceGroup 的资源组 。
az group create --name myResourceGroup --location chinanorth2
请使用 az vmss create 命令创建虚拟机规模集。 以下示例创建名为“myScaleSet”的规模集,并生成 SSH 密钥(如果不存在)。 两个磁盘都是 --data-disk-sizes-gb
参数创建的。 第一个磁盘的大小为 64 GB,第二个磁盘的大小为 128 GB:
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image Ubuntu2204 \
--orchestration-mode Flexible \
--admin-username azureuser \
--generate-ssh-keys \
--data-disk-sizes-gb 64 128
创建和配置所有的规模集资源和 VM 实例需要几分钟时间。
将磁盘附加到现有规模集
还可以将额外的磁盘附加到现有规模集的每个实例。 若要使用 az vmss disk attach 添加另一磁盘,请使用在上一步骤中创建的规模集。 以下示例附加另一个 128 GB 的磁盘:
az vmss disk attach \
--resource-group myResourceGroup \
--vmss-name myScaleSet \
--size-gb 128
或者,如果要将数据磁盘添加到规模集中的单个实例,请使用 az vm disk attach。
az vm disk attach \
--vm-name myScaleSet_Instance1 \
--resource-group myResourceGroup \
--size-gb 30 \
--name disk_name \
--new
列出附加的磁盘
若要查看附加到规模集的磁盘的相关信息,请使用 az vmss show 命令并对 virtualMachineProfile.storageProfile.dataDisks 进行查询:
az vmss show \
--resource-group myResourceGroup \
--name myScaleSet \
--query virtualMachineProfile.storageProfile.dataDisks
还会显示有关磁盘大小、存储层和 LUN(逻辑单元号)的信息。 以下示例输出显示了有关三个附加到规模集的数据磁盘的详细信息:
[
{
"additionalProperties": {},
"caching": "None",
"createOption": "Empty",
"diskSizeGb": 64,
"lun": 0,
"managedDisk": {
"additionalProperties": {},
"storageAccountType": "StandardSSD_LRS"
},
"name": null
},
{
"additionalProperties": {},
"caching": "None",
"createOption": "Empty",
"diskSizeGb": 128,
"lun": 1,
"managedDisk": {
"additionalProperties": {},
"storageAccountType": "StandardSSD_LRS"
},
"name": null
},
{
"additionalProperties": {},
"caching": "None",
"createOption": "Empty",
"diskSizeGb": 128,
"lun": 2,
"managedDisk": {
"additionalProperties": {},
"storageAccountType": "StandardSSD_LRS"
},
"name": null
}
]
分离磁盘
不再需要某个给定的磁盘时,可以将其从规模集中分离。 该磁盘会从规模集的所有 VM 实例中删除。 若要从规模集中分离某个磁盘,请使用 az vmss disk detach 并指定磁盘的 LUN。 LUN 显示在上一部分的 az vmss show 命令的输出中。 以下示例从规模集分离 LUN 2:
az vmss disk detach \
--resource-group myResourceGroup \
--name myScaleSet \
--lun 2
还可以使用 az vm disk detach 从单个实例中分离磁盘。
az vm disk detach \
--vm-name myScaleSet_Instance1
--name disk_name
清理资源
若要删除规模集和磁盘,请使用 az group delete 删除资源组及其所有资源。 --no-wait
参数会使光标返回提示符处,无需等待操作完成。 使用 --yes
参数将确认你希望删除资源,不会再通过其他提示进行询问。
az group delete --name myResourceGroup --no-wait --yes
后续步骤
本教程介绍了如何通过 Azure CLI 创建和使用规模集的磁盘:
- OS 磁盘和临时磁盘
- 数据磁盘数
- 标准磁盘和高级磁盘
- 磁盘性能
- 附加和准备数据磁盘
请继续学习下一教程,了解如何对规模集 VM 实例使用自定义映像。