Before you begin working with NVMe storage in the ESXi environment, you can familiarize yourself with basic NVMe concepts.
- NVM Express (NVMe)
- NVMe is a method for connecting and transferring data between a host and a target storage system. NVMe is designed for use with faster storage media equipped with non-volatile memory, such as flash devices. This type of storage can achieve low latency, low CPU usage, and high performance, and generally serves as an alternative to SCSI storage.
- NVMe Transports
- The NVMe storage can be directly attached to a host using a PCIe interface or indirectly through different fabric transports. VMware NVMe over Fabrics (NVMe-oF) provides a distance connectivity between a host and a target storage device on a shared storage array.
The following types of transports for NVMe currently exist. For more information, see
Requirements and Limitations of VMware NVMe Storage.
NVMe Transport ESXi Support NVMe over PCIe Local storage. NVMe over RDMA Shared NVMe-oF storage. With the RoCE v2 technology. NVMe over Fibre Channel (FC-NVMe) Shared NVMe-oF storage. NVME over TCP Shared NVMe-oF storage.
- NVMe Namespaces
- In the NVMe storage array, a namespace is a storage volume backed by some quantity of non-volatile memory. In the context of ESXi, the namespace is analogous to a storage device, or LUN. After your ESXi host discovers the NVMe namespace, a flash device that represents the namespace appears on the list of storage devices in the vSphere Client. You can use the device to create a VMFS datastore and store virtual machines.
- NVMe Controllers
- A controller is associated with one or several NVMe namespaces and provides an access path between the ESXi host and the namespaces in the storage array. To access the controller, the host can use two mechanisms, controller discovery and controller connection. For information, see Add Controller for NVMe over Fabrics.
- Controller Discovery
- With this mechanism, the ESXi host first contacts a discovery controller. The discovery controller returns a list of available controllers. After you select a controller for your host to access, all namespaces associated with this controller become available to your host.
- Controller Connection
- Your ESXi host connects to the controller that you specify. All namespaces associated with this controller become available to your host.
- NVMe Subsystem
- Generally, an NVMe subsystem is a storage array that might include several NVMe controllers, several namespaces, a non-volatile memory storage medium, and an interface between the controller and non-volatile memory storage medium. The subsystem is identified by a subsystem NVMe Qualified Name (NQN).
- VMware High-Performance Plug-in (HPP)
- By default, the ESXi host uses the HPP to claim the NVMe-oF targets. When selecting physical paths for I/O requests, the HPP applies an appropriate Path Selection Scheme (PSS). For information about the HPP, see VMware High Performance Plug-In and Path Selection Schemes. To change the default path selection mechanism, see Change the Path Selection Policy.