你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

有关启用 NVMe 的常见问题解答

本文解决了有关在 Azure 中创建的虚拟机上启用 NVMe 接口的一些常见问题。

概述

什么是 NVMe?

NVMe 的全称是 nonvolatile memory express(非易失性快速存储器),这是一种通信协议,有助于在服务器和存储系统之间更快、更高效地传输数据。 使用 NVMe,可以以最高吞吐量和最快的响应时间传输数据。

在 VM 系列上使用 NVMe 接口有什么好处?

通过启用 NVMe,VM 可提供更高的 IOPS(每秒输入/输出操作数)和吞吐量(MB/秒),这可以显著提高使用 Azure 托管磁盘的远程磁盘存储的性能。 更高的性能尤其有利于需要快速可靠地将数据传输到 Azure 托管磁盘的 IO 密集型工作负载。

在各 VM 系列中,Azure 支持哪些类型的存储接口?

在 Azure 中,老旧代系(v2、v3、v4)支持小型计算机系统接口 (SCSI),当前代系 (v5) VM 系列同时支持 NVMe 和 SCSI 存储接口。 SCSI 是一种旧标准,在计算机和外围设备之间提供物理连接和数据传输。

Azure 是否继续支持 SCSI 接口 VM?

是,Azure 将继续支持 GP(常规用途)类别中的老旧代系和当前代系 VM 产品/服务上的 SCSI VM(包括 v2、v3、v4 和 v5 系列)。

已启用 NVMe 的 Ebsv5 与 Azure 提供的 L 系列 VM 有何不同?

已启用 NVMe 的 Ebsv5 系列旨在提供最高的 Azure 托管磁盘存储性能。 L 系列 VM 旨在在本地 NVMe 磁盘上提供更高的 IOPS 和吞吐量,这些磁盘是临时的。 有关 Ebsv5 和 L 系列提供的性能的详细信息,请参阅 VM 大小文档

Ebsv5 和 Ebdsv5 上启用 NVMe 时的 Azure 磁盘存储性能

在 Azure 中的 Ebsv5 和 Ebdsv5 VM 系列上使用 NVMe 时,预期会有哪些性能优势?

在 Ebdsv5 和 Ebdsv5 大小上启用的 NVMe 提供的 IOPS 和吞吐量比同一系列中的 SCSI 大小更高,而且无需额外费用。 对于 IO 需求较高且需要提高远程存储性能的工作负载,建议尝试使用新的 NVMe 大小。 有关性能优势的详细信息,请参阅 VM 规范页。

建议使用什么 I/O 大小来实现已发布的性能?

若要达到最大 IOPS,建议使用 4 KiB 或 8 KiB 块大小。 要实现最大性能吞吐量,可以选择使用以下块大小之一:64 KiB、128 KiB、256 KiB、512 KiB 或 1024 KiB。 但是,请务必根据应用程序的特定要求优化 I/O 大小,将建议的块大小仅用作参考。

Ebsv5 系列上启用 NVMe 后,哪些工作负载会受益?

Ebsv5 VM 系列适用于需要高 I/O 和高远程存储性能的各种工作负载。 此类工作负载的一些示例包括:

  • 联机事务处理 (OLTP) 工作负载:这些工作负载涉及频繁、小型和快速的数据库事务,例如网上银行、电子商务和销售点系统。
  • 联机分析处理 (OLAP) 工作负载:这些工作负载涉及复杂查询和大规模数据处理,例如数据挖掘、商业智能和决策支持系统。
  • 数据仓库工作负载:这些工作负载涉及从多个源(例如客户数据、销售数据和财务数据)收集、存储和分析大量数据。
  • 复制和灾难恢复工作负载:这些工作负载涉及在多个数据库或站点之间复制数据以进行备份和灾难恢复。
  • 数据库开发和测试工作负载:这些工作负载涉及创建、修改和测试数据库架构、查询和应用程序。

启用 NVMe 以及兼容的 VM 和平台

哪些平台和代系支持 NVMe VM?

只能在配备第 3 代 Intel® Xeon® Platinum 8370C (Ice Lake) 处理器的平台上访问 NVMe VM。 但即将推出更多平台和代系支持。 关注 Azure 更新中的产品发布公告,随时了解最新信息。

哪些 VM 系列支持 NVMe?

  • 仅 Ebsv5 和 Ebdsv5 VM 系列支持 NVMe 接口。 请留意 Azure 更新中的产品发布公告。
  • 由于添加了对 NVMe 的支持,可以了解有关 SKU 的 SKU API 响应

如何在 VM 系列上启用 NVMe?

若要为远程磁盘启用 NVMe,请确保满足以下五个条件:

  • 选择支持 NVMe 的 VM 系列。 请务必注意,Intel v5 代 VM 中只有 Ebsv5 和 Ebdsv5 VM 大小才配备 NVMe。 请确保选择该系列之一,即 Ebsv5 或 Ebdsv5 VM。

  • 选择带有 NVMe 支持标记的操作系统映像。 选择支持的 VM 系列和 OS 映像后,系统会提示选择 NVMe 磁盘控制器类型

    屏幕截图为系统提示选择 NVMe 磁盘控制器类型。

  • 通过在 Azure 门户或 ARM/CLI/PowerShell 模板中选择 NVMe 磁盘控制器类型,选择加入 NVMe。 有关分步说明,请参阅此处

  • 仅支持第 2 代映像。

  • 选择其中一个启用了 NVMe 的 Azure 区域。 通过满足这五个条件,你可以即时在支持的 VM 系列上启用 NVMe。 创建 NVMe VM 并调整其大小时,请满足上述条件,以确保功能成功启动。

如何检查给定图像是否已标记为 NVMe?

若要检查给定映像是否已标记为 NVMe,请使用以下命令:

az vm image show --urn URN_OF_IMAGE

如何使用支持 NVMe 的基本映像并为远程磁盘创建自定义映像?

假设你想要标记一个支持 NVMe 的映像,但它尚未标记。 请执行以下四个步骤:

  1. 将 NVMe 支持的 VHD 上传到存储帐户。 AzCopy 是一种快速方法,但也可以使用 Azure 门户上传。
    azcopy copy <local path to your vhd> <container in your storage account>
    
  2. 使用 PowerShell、Azure 门户或 CLI 创建映像库
  3. 创建映像定义,确保包含 --feature DiskControllerTypes=SCSI,NVMe。 请参阅以下 CLI 示例:
    az sig image-definition create --resource-group <resourceGroupName> --gallery-name <galleryName> --gallery-image-definition <imageName> --publisher <publisher> --offer <offerName> --sku <skuName> --os-type <osType> --os-state <osState> --feature DiskControllerTypes=SCSI,NVMe
    
  4. 使用 NVMe 支持的 VHD 在 NVMe 标记的库下创建映像版本。 请参阅以下 CLI 示例:
    az sig image-version create --resource-group <resourceGroupName> --gallery-name <galleryName> --gallery-image-definition <imageName> --gallery-image-version <version> --target-regions <region1> <region2> --replica-count <replicaCount> --os-vhd-uri <NVMe-supported vhd uri> --os-vhd-storage-account <storageAccount>
    

如何将使用无标记映像创建的 SCSI Ebsv5 或 Ebdsv5 VM(例如 8 vCPU)重设为不同大小的已启用 NVMe 的 VM (E112i),而无需重新创建 VM 配置且无需标记映像?

  • 源 VM(例如本例中的 E8bsv5)应使用支持 NVMe 的无 NVMe 标记 OS 映像
  • 确保在 E112i VM 中也将 VM 的目标 discontrollertype 设置为 NVMe。 使用以下 PowerShell 脚本设置磁盘控制器类型:
    azure-nvme-VM-update.ps1 [-subscription_id] <String> [-resource_group_name] <String> [-vm_name] <String> [[-disk_controller_change_to] <String>] [-vm_size_change_to] <String> [[-start_vm_after_update] <Boolean>] [[-write_logfile] <Boolean>]
    

缺少所需的配置

如果想要使用 Ebsv5 或 Ebdsv5 系列以外的其他 VM 系列,会发生什么情况?

如果考虑使用 Ebsv5 或 Ebdsv5 系列以外的 VM 系列,请务必注意,仅这两个系列支持 NVMe 接口。 如果选择了不支持的 VM 系列,则会收到一条错误消息,其中显示:
“所选 VM 大小无法使用 DiskControllerType 启动。 请检查提供的磁盘控制器类型是否是 VM 大小 Y 支持的磁盘控制器类型。请在 https://docs.microsoft.com/rest/api/compute/resource-skus/list 查询 SKU API,以确定该 VM 大小支持的磁盘控制器类型[资源 SKU - 列表 - REST API](Azure 计算)”。
因此,若要确保成功使用 NVMe 接口,请选择 Ebsv5 或 Ebdsv5 VM 系列。

如果错过了选择加入磁盘控制器类型,会发生什么情况?

若要在 Ebsv5 或 Ebdsv5 VM 系列中使用 NVMe 接口启动 VM,选择加入 NVMe 磁盘控制器类型至关重要。 如果没有这样做,VM 将使用其默认配置 SCSI。 由于目前没有其他 VM 系列支持 NVMe 接口,因此必须指定 NVMe 磁盘控制器类型才能使用 NVMe 接口成功启动 VM。 因此,请选择加入 NVMe 磁盘控制器类型,以避免启动 VM 时出现任何复杂情况。

如果使用的 OS 未标记为 NVMe 支持,会发生什么情况?

若要在 Ebsv5 或 Ebdsv5 VM 系列中使用 NVMe 接口启动 VM,必须选择标记为 NVMe 的一个受支持的 OS 映像。 如果 NVMe 不支持当前 OS 映像,则会收到一条错误消息,其中显示:“NVMe 不支持所选映像。 请查看受支持的 VM 映像。”

屏幕截图为选择一个受 NVMe 支持的 OS 映像的示例

何时将 NVMe 支持添加到我当前使用的 OS 映像?

NVMe 支持在大约 33 个以上的 OS 版本中可用。 我们不断改善 OS 映像覆盖范围,建议参考有关添加的最新 OS 映像支持的更新页面。 此页提供有关哪些 OS 映像标记为受 NVMe 支持,以及新 OS 映像何时可以使用 NVMe 支持的最新信息。

在 Azure 中使用第 1 代映像有何影响?

使用第 2 代映像是在 Ebsv5 或 Ebdsv5 VM 系列上启用 NVMe 接口的先决条件。 如果使用第 1 代 VM 映像,则会收到一条错误消息,其中显示:“NVMe 不支持所选映像。 请查看受支持的 VM 映像。”

屏幕截图为选择一个受 NVMe 接口支持的第 2 代 OS 映像的示例

选择当前未启用 NVMe 的 Azure 区域会产生什么后果?

NVMe 目前仅在以下 13 个 Azure 区域中可用:美国北部、东南亚、西欧、澳大利亚东部、北欧、美国西部 3、英国南部、瑞典中部、美国东部、美国中部、美国西部 2、美国东部 2 和美国中南部。 如果选择一个不支持的区域,大小选择下拉列表中会禁用 E96bsv5 或 E112i。 即使你可能会看到较小的 E2-64bsv5 或 E2-64bdsv5,NVMe 部署也不会成功,因为缺少配置。

我需要的 Azure 区域不支持 NVMe,NVMe 将何时可用?

请留意 Azure 更新中的产品发布公告。

NVMe 可支持性

Ebsv5 和 Ebdsv5 系列中的哪些大小支持 NVMe?

E2-E112i 大小支持 Ebsv5 和 Ebdsv5 系列上的 NVMe。

Ebsv5 和 Ebdsv5 系列中的哪些大小支持 SCSI?

Ebsv5 和 Ebsdv5 系列上的所有大小 (E2-E96) 都支持 SCSI,E112i 除外。

哪些 OS 类型和版本是受支持的?

NVMe 支持在大约 30 个以上的 OS 版本中可用。 请参阅有关添加的最新 OS 映像支持的更新页面。 此页提供有关哪些 OS 映像标记为受 NVMe 支持,以及新 OS 映像何时可以使用 NVMe 支持的最新信息。

是否支持在第 1 代 VM 上启用 NVMe?

否,近期没有在第 1 代 VM 上支持 NVMe 的计划。 如果你认为工作负载会受益于 NVMe 性能,建议切换到第 2 代 VM。 请参阅此处的步骤,将第 1 代 VM 映像转换为第 2 代 VM 或创建新的第 2 代 VM

哪些 Azure 磁盘存储选项与 NVMe 兼容?

NVMe 大小可与高级 SSD v1、高级 SSD v2 和超级磁盘结合使用。 有关 Azure 磁盘产品/服务的其他信息,请参阅 Azure 托管磁盘

我有一个 SCSI Ebsv5 VM。 如何切换到相同 VM 大小的 NVMe?

从 SCSI 切换到 NVMe 的步骤与常见问题解答中所述的步骤相同。

如何从 NVMe VM 切换回 SCSI 接口?

要从 NVMe 切换回 SCSI,请按照常见问题解答中所述的相同步骤操作。

Azure 支持在使用 NVMe VM 大小的磁盘上实时调整大小吗?

高级 v1、标准 SSD 和标准 HDD 磁盘目前支持实时调整大小。 不过,可以在不重启 VM 的情况下添加磁盘。

如何识别 Linux VM 上的 NVMe 磁盘?

  • 使用命令 =” sudo apt install nvme-cli”获取 nvme-cli 包

  • 运行 NVMe list 命令 =“sudo nvme list”提取 NVMe 磁盘详细信息:

    屏幕截图为识别 Linux VM 上的 NVMe 磁盘的说明。

    屏幕截图为在 Linux 门户中选择命名空间 ID 的说明。

    下面是数据在响应 Azure PowerShell 命令时的显示方式

    屏幕截图为响应 Azure PowerShell 命令的示例。

如何识别 Windows VM 上的 NVMe 磁盘?

启动 PowerShell 并使用以下命令:wmic diskdrive get model,scsilogicalunit

屏幕截图为用于在 Windows 上启动 NVMe 的 Powershell 命令示例。

ASAP 附加的磁盘以模型字符串“Virtual_Disk NVME Premium”的形式显示在来宾中,SCSI 逻辑单元的值门户可见 LUN ID 将递增 1。 
下面的快照展示了 NVMe 磁盘会如何显示在启用了 NVMe 的 Windows VM 中:

示意图显示用于识别 Windows VM 上的 NVMe 磁盘的 PowerShell 命令。

以下快照显示在 LUN 0 和 LUN 4 处附加的数据磁盘的来宾输出中 (CRP)。 LUN ID 等效于命名空间 ID。

示意图展示 NVMe 磁盘将如何在启用了 NVMe 的 Windows VM 中显示。

NVMe 定价

NVMe Ebsv5 的价格是多少?

已启用 NVMe 的 Ebsv5 和 Ebdsv5 VM 的价格与 SCSI VM 相同。 请参阅适用于 WindowsLinux 的定价页。 使用 NVMe,无需额外付费即可获得更高的性能。

在购买此 VM 系列之前,如何试用? 预览版是否仍然可用?

此产品/服务的预览版使用期已结束,现可购买正式版。 可以申请一个可用 Azure 区域的配额,以试用新的 NVMe Ebsv5 或 Ebdsv5 大小。

已知问题

如果使用未标记为 NVMe 的 OS 映像创建 E112i VM,会发生什么情况?

只能使用标记为 NVMe 的映像 (PIR & Azure Compute Gallery) 创建 NVMe E112i VM。 如果使用未标记的映像,则会创建 SCSI VM,并且 VM 可能无法按预期工作。 在开发中有一种解决方案可以防止根据无标记的 NVMe 映像创建 NVMe VM。 请确保遵循常见问题解答中列出的所有说明。

如何在不重新创建 VM 配置的情况下,将 SCSI Ebsv5 或 Ebdsv5 VM(例如 48 vCPU)重新设置为其他大小 (E112i) 的已启用 NVMe 的 VM?

假设要将 E48 vCPU SCSI VM 的大小调整为 E112i NVMe,请使用下面的 PowerShell 脚本。

  • 源 VM(例如本例中的 E48bsv5)应使用 NVMe 标记的 OS 映像
  • 确保在 E112i VM 中也将 VM 的目标 diskcontrollertype 设置为 NVMe
azure-nvme-VM-update.ps1 [-subscription_id] <String> [-resource_group_name] <String> [-vm_name] <String> [[-disk_controller_change_to] <String>] [-vm_size_change_to] <String> [[-start_vm_after_update] <Boolean>] [[-write_logfile] <Boolean>]

是否可以将 SCSI Ebv5 或 Ebdsv5 VM 转换为启用 NVMe,同时保留相同的 VM vCPU 大小,并将 NVMe 标记为 OS 映像?

目前,此方案仅受 Linux 操作系统支持,在 Windows 操作系统中不受支持。

NVMe VM 是否支持远程磁盘中的共享磁盘?

目前,所有磁盘高级 SSD、高级 SSD v2 和 Ultra 都支持共享磁盘功能。

报告问题

我的 VM 未达到已发布的性能限制。 在哪里报告此问题?

如果遇到性能问题,可以提交支持工单。 提供有关工单的所有相关信息,例如订阅、使用的 VM 大小、区域、日志和屏幕截图。

屏幕截图为数据磁盘的来宾输出示例。

如果设置使用 NVMe 接口的 VM 时遇到问题,如何获得更多帮助?

如果在创建 NVMe Ebsv5 或 Ebdsv5 或者调整其大小时遇到问题,并且需要帮助,可以提交支持工单

屏幕截图为通过提交支持工单报告功能问题的示例。

支持工单选择详细信息的屏幕截图。