你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在虚拟机上启用 NVMe 和 SCSI 接口
注意
本文引用了 CentOS,这是一个接近生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指南。
NVMe 代表非易失性快速存储器,它是一种通信协议,可促进服务器和存储系统之间更快、更高效的数据传输。 使用 NVMe,可以以最高吞吐量和最快的响应时间传输数据。 Azure 现在支持 Ebsv5 和 Ebdsv5 系列上的 NVMe 接口,为所有 GP v5 VM 系列中的远程磁盘存储提供最高的 IOPS 和吞吐量性能。
SCSI(小型计算机系统接口)是用于在计算机和外围设备之间进行物理连接和传输数据的旧标准。 尽管 Ebsv5 VM 大小仍支持 SCSI,但我们建议切换到 NVMe 以提高性能优势。
先决条件
VM 配置中添加了一项新功能,称为 DiskControllerType,它允许客户选择其首选控制器类型 NVMe 或 SCSI。 如果客户未指定 DiskControllerType 值,则平台将根据 VM 大小配置自动选择默认控制器。 如果 VM 大小默认配置 SCSI 并且支持 NVMe,则除非更新为 NVMe DiskControllerType,否则将使用 SCSI。
若要启用 NVMe 接口,必须满足以下先决条件:
- 选择支持 NVMe 的 VM 系列。 请务必注意,Intel v5 代 VM 中只有 Ebsv5 和 Ebdsv5 VM 大小才配备 NVMe。 请确保选择该系列之一,即 Ebsv5 或 Ebdsv5 VM。
- 选择标记有 NVMe 支持的操作系统映像
- 通过在 Azure 门户或 ARM/CLI/Power Shell 模板中选择 NVMe 磁盘控制器类型,选择加入 NVMe。 有关分步说明,请参阅此处
- 仅支持 Gen2 映像
- 选择其中一个启用了 NVMe 的 Azure 区域
通过满足上述五个条件,你将能够即时在支持的 VM 系列上启用 NVMe。 请遵循上述条件,使用 NVMe 成功创建 VM 或调整其大小,而不会造成任何复杂情况。 有关 NVMe 启用的信息,请参阅常见问题解答。
支持的 OS 映像
Linux
分发 | 映像 |
---|---|
Almalinux 8.x(当前为 8.7) | almalinux: almalinux:8-gen2: latest |
Almalinux 9.x(当前为 9.1) | almalinux: almalinux:9-gen2: latest |
Debian 11 | Debian: debian-11:11-gen2: latest |
CentOS 7.9 | openlogic: centos:7_9-gen2: latest |
RHEL 7.9 | RedHat: RHEL:79-gen2: latest |
RHEL 8.6 | RedHat: RHEL:86-gen2: latest |
RHEL 8.7 | RedHat: RHEL:87-gen2: latest |
RHEL 9.0 | RedHat:RHEL:90-gen2:latest |
RHEL 9.1 | RedHat: RHEL:91-gen2: latest |
Ubuntu 18.04 | Canonical:UbuntuServer:18_04-lts-gen2:latest |
Ubuntu 20.04 | Canonical:0001-com-ubuntu-server-focal:20_04-lts-gen2:latest |
Ubuntu 22.04 | Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest |
Oracle 7.9 | Oracle:Oracle-Linux:79-gen2:latest |
Oracle 8.5 | Oracle: Oracle-Linuz:ol85-lvm-gen2:latest |
Oracle 8.6 | Oracle: Oracle-Linux:ol86-lvm-gen2:latest |
Oracle 8.7 | Oracle: Oracle-Linux:ol87-lvm-gen2:latest |
Oracle 9.0 | Oracle: Oracle-Linux:ol9-lvm-gen2:latest |
Oracle 9.1 | Oracle: Oracle-Linux:ol91-lvm-gen2:latest |
SLES-for-SAP 15.3 | SUSE:sles-sap-15-sp3:gen2:latest |
SLES-for-SAP 15.4 | SUSE:sles-sap-15-sp4:gen2:latest |
SLES 15.4 | SUSE:sles-15-sp4:gen2:latest |
SLES 15.5 | SUSE:sles-15-sp5:gen2:latest |
Windows
- Azure 门户 - 计划 ID:2019-datacenter-core-smalldisk
- Azure 门户 - 计划 ID:2019-datacenter-core-smalldisk-g2
- Azure 门户 - 计划 ID:2019 datacenter-core
- Azure 门户 - 计划 ID:2019-datacenter-core-g2
- Azure 门户 - 计划 ID:2019-datacenter-core-with-containers-smalldisk
- Azure 门户 - 计划 ID:2019-datacenter-core-with-containers-smalldisk-g2
- Azure 门户 - 计划 ID:2019-datacenter-with-containers-smalldisk
- Azure 门户 - 计划 ID:2019-datacenter-smalldisk
- Azure 门户 - 计划 ID:2019-datacenter-smalldisk-g2
- Azure 门户 - 计划 ID:2019-datacenter-zhcn
- Azure 门户 - 计划 ID:2019-datacenter-zhcn-g2
- Azure 门户 - 计划 ID:2019-datacenter-core-with-containers
- Azure 门户 - 计划 ID:2019-datacenter-core-with-containers-g2
- Azure 门户 - 计划 ID:2019-datacenter-with-containers
- Azure 门户 - 计划 ID:2019-datacenter-with-containers-g2
- Azure 门户 - 计划 ID:2019-datacenter
- Azure 门户 - 计划 ID:2019-datacenter-gensecond
- Azure 门户 - 计划 ID:2022-datacenter-core
- Azure 门户 - 计划 ID:2022-datacenter-core-g2
- Azure 门户 - 计划 ID:2022-datacenter-smalldisk
- Azure 门户 - 计划 ID:2022-datacenter-smalldisk-g2
- Azure 门户 - 计划 ID:2022-datacenter
- Azure 门户 - 计划 ID:2022-datacenter-g2
- Azure 门户 - 计划 ID:2022-datacenter-core-smalldisk
- Azure 门户 - 计划 ID:2022-datacenter-core-smalldisk-g2
- Azure 门户 - 计划 ID:2022-datacenter-azure-edition-smalldisk
- Azure 门户 - 计划 ID:2022-datacenter-azure-edition
- Azure 门户 - 计划 ID:2022-datacenter-azure-edition-core
- Azure 门户 - 计划 2022-datacenter-azure-edition-core-smalldisk
使用 NVMe 接口启动 VM
在 VM 创建期间,可以使用各种方法(例如:Azure 门户、CLI、PowerShell 和 ARM 模板)启用 NVMe。 若要创建 NVMe VM,必须先在 VM 上启用 NVMe 选项,并为 VM 选择 NVMe 控制器磁盘类型。 请注意,如果 VM 大小支持 NVMe,则可以在创建期间启用 NVMe diskcontrollertype,或者在 VM 停止并解除分配时将其更新为 NVMe。
Azure 门户视图
添加磁盘控制器筛选器。 若要查找符合 NVMe 条件的大小,请选择“查看所有大小”,选择“磁盘控制器”筛选器,然后选择“NVMe”:
通过访问“高级”选项卡启用 NVMe 功能。
转到“查看并创建”来验证功能是否已启用。
ARM 模板示例
{
"apiVersion": "2022-08-01",
"type": "Microsoft.Compute/virtualMachines",
"name": "[variables('vmName')]",
"location": "[parameters('location')]",
"identity": {
"type": "userAssigned",
"userAssignedIdentities": {
"/subscriptions/ <EnterSubscriptionIdHere> /resourcegroups/ManagedIdentities/providers/Microsoft.ManagedIdentity/userAssignedIdentities/KeyVaultReader": {}
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
],
"properties": {
"hardwareProfile": {
"vmSize": "[parameters('vmSize')]"
},
"osProfile": "[variables('vOsProfile')]",
"storageProfile": {
"imageReference": "[parameters('osDiskImageReference')]",
"osDisk": {
"name": "[variables('diskName')]",
"caching": "ReadWrite",
"createOption": "FromImage"
},
"copy": [
{
"name": "dataDisks",
"count": "[parameters('numDataDisks')]",
"input": {
"caching": "[parameters('dataDiskCachePolicy')]",
"writeAcceleratorEnabled": "[parameters('writeAcceleratorEnabled')]",
"diskSizeGB": "[parameters('dataDiskSize')]",
"lun": "[add(copyIndex('dataDisks'), parameters('lunStartsAt'))]",
"name": "[concat(variables('vmName'), '-datadisk-', copyIndex('dataDisks'))]",
"createOption": "Attach",
"managedDisk": {
"storageAccountType": "[parameters('storageType')]",
"id": "[resourceId('Microsoft.Compute/disks/', concat(variables('vmName'), '-datadisk-', copyIndex('dataDisks')))]"
}
}
}
],
"diskControllerTypes": "NVME"
},
"securityProfile": {
"encryptionAtHost": "[parameters('encryptionAtHost')]"
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', variables('nicName'))]"
}
]
},
"availabilitySet": {
"id": "[resourceId('Microsoft.Compute/availabilitySets', parameters('availabilitySetName'))]"
}
},
"tags": {
"vmName": "[variables('vmName')]",
"location": "[parameters('location')]",
"dataDiskSize": "[parameters('dataDiskSize')]",
"numDataDisks": "[parameters('numDataDisks')]",
"dataDiskCachePolicy": "[parameters('dataDiskCachePolicy')]",
"availabilitySetName": "[parameters('availabilitySetName')]",
"customScriptURL": "[parameters('customScriptURL')]",
"SkipLinuxAzSecPack": "True",
"SkipASMAzSecPack": "True",
"EnableCrashConsistentRestorePoint": "[parameters('enableCrashConsistentRestorePoint')]"
}
}
提示
如果使用 PowerShell 或 CLI 工具启动 NVMe 支持的 VM,请使用同一参数 DiskControllerType。