Non-Volatile Memory Express (NVMe) is a host controller interface protocol used to accelerate the transfer of data from non-volatile memory. Alibaba Cloud enhanced SSDs (ESSDs) support NVMe. Each ESSD can be simultaneously attached to multiple Elastic Compute Service (ECS) instances that support NVMe for data sharing. This topic describes ESSDs that support NVMe and the limits for and operations of attaching the ESSDs.

ESSDs and NVMe

Note ESSDs that support NVMe and features related to these ESSDs are in public review in some zones including Hangzhou Zone I, Shanghai Zone B, Beijing Zone K, and Shenzhen Zone F.
ESSDs that support NVMe are called shared NVMe disks. Shared NVMe disks support concurrent read and write access from multiple ECS instances and provide high reliability, concurrency, and performance. Shared NVMe disks provide the multi-attach and I/O blocking features.
  • A shared NVMe disk can be attached to a maximum of 16 ECS instances at the same time.
  • You can run NVMe commands to control the permissions of ECS instances on shared NVMe disks. For more information about NVMe commands, see NVM Express Base Specification.
The preceding features improve service availability without compromising data reliability. Meanwhile, when a single point of failure (SPOF) occurs, you can use shared NVMe disks to quickly schedule and restore data. Data sharing among multiple ECS instances greatly reduces storage costs and improves service flexibility. Shared NVMe disks are suitable for high-availability databases and distributed database clusters that each consist of one write node and multiple read-only nodes.
Shared NVMe disks can be attached to ECS instances that support NVMe. For example, after shared NVMe disks are attached to Linux instances based on NVMe, you can run the lsblk command to check the device names and partition names of the shared NVMe disks, as shown in the following figure.Device names and partition names of ESSDsDescription of the command output:
  • The device names of the shared NVMe disks are displayed in the /dev/nvmeXn1 format. Examples: /dev/nvme0n1, /dev/nvme1n1, and /dev/nvme2n1.
  • The partition names of the shared NVMe disks are displayed in the <Device name of the ESSD>p<Partition number> format. Examples: /dev/nvme0n1p1, /dev/nvme1n1p1, and /dev/nvme1n1p2.

Shared NVMe disks support the multi-attach feature and help enterprises to migrate their high-availability services to the cloud. For more information, see Enable multi-attach.

Limits

Before you can attach shared NVMe disks to an ECS instance based on NVMe, the resources of the instance must meet the conditions described in the following table.
Resource Description
Instance family The instance family must support NVMe by default. Currently, the g7se, c7se, and r7se instance families support NVMe.
Note You can call the DescribeInstanceTypes operation to query instance families and check the NvmeSupport response parameter to determine whether the instance families support NVMe.
Image The image must contain the NVMe driver. The following public images are installed with the NVMe driver.
Note Only some public Linux and Windows images support the NVMe driver.
  • Alibaba Cloud Linux 2.1903 and later
  • Ubuntu 16.04 and later
  • Debian GNU/Linux 10 and later
  • CentOS:
    • CentOS 7: CentOS 7.6 and later
    • CentOS 8: CentOS 8.0 and later
  • openSUSE 15.2 and later
  • Fedora 33 and later
  • Fedora CoreOS
  • Windows Server:
    • Windows Server 2019
    • Windows Server 2016
Disk
  • Disk category: ESSD.
  • Creation method:
    • Create ESSDs when you create instances that support NVMe.
    • When you create disks, select ESSD as the disk category and enable the multi-attach feature.

Billing

NVMe is free of charge. You are charged for resources that support NVMe by using their individual billing methods. For more information about the billing of ECS resources, see Overview.

Operations

This section describes the operations that you can perform on shared NVMe disks.