NVMe (Non-Volatile Memory Express) is a host controller interface & storage protocol created to accelerate the transfer of data using solid-state drives (SSDs).
Uses a servers high-speed Peripheral Component Interconnect Express (PCIe) interface.
InfoScale (IS) 7.3 initially introduced support for Linux
- Generic ASL support was developed for NVMe & SATA disks
- The existing IS 7.3 based Intel NVMe ASL was also enhanced to claim other NVMe disks as well
- The Generic NVMe ASL (Array Support Library) will attempt to claim NVMe type devices
InfoScale (IS) 7.3.1 introduced support for NVMe (Non-Volatile Memory Express) devices with Solaris Sparc servers.
InfoScale 7.4.3 Changes
The existing NVMe ASL does SCSI inquiries to get device formation when discovering NVMe related devices. Due to RHEL8 requirements, Veritas have developed a revised ASL which uses NVMe IOCTLs to fetch device information and discover NVMe devices.
KEY POINTS:
- Older SCSI NVMe ASL are now deprecated with InfoScale 7.4.3, as we have changed the way of discovering NVMe devices
- SCSI inquiry support for NVMe devices is deprecated with RHEL8 and future RedHat releases
- Effectively, the existing NVMe ASL (ddlnvme.so) is unable to claim NVMe devices on RHEL8 platform
As a resolution, new ASL is developed which uses NVMe IOCTL instead of SCSI inquiry to detect NVMe attributes.
NVMe IOCTL ASL works on all Linux platform (Supported for VOLGA).
The SCSI inquiry based NVMe ASL will be deprecated from InfoScale 7.4.3 onwards for all supported Linux platforms.
- The New NVMe IOCTL based ASL is only for Linux platforms.
- No changes are required for Solaris Sparc environments.
Solaris Example:
# vxddladm list devices
DEVICE TARGET-ID STATE DDL-STATUS (ASL)
===============================================================
c1t0d0s2 - Online CLAIMED (ALUA)
c6t5000CCA01D1EF4B9d0 - Online CLAIMED (Disk)
c3t1d0 - Online CLAIMED (libvxnvme_sol.so)
Exclusion of the NVMe ASL array will not work for the RHEL8 platform:
RHEL8:
As RHEL8 dropped SCSI support for NVMe devices. There will be no fallback ASL to claim those disks, if the NVMe-ASL is excluded. Hence NVMe-disks will go into an error state after the exclusion of the NVMe-ASL.
RHEL7:
If the new NVMe ASL is excluded on RHEL7 servers, NVMe disks will be claimed under the default SCSI3 JBOD category. This is because SCSI support for NVMe is still available in RHEL7. In that case, NVMe disks will be shown as OTHER_DISKS.
AIX & HP-UX
We do not support NVMe devices on AIX and HP-UX platforms.
Veritas Volume Manager (VxVM) is unable to detect NVME devices on AIX
The NVMe devices are not supporting SCSI inquiry requests on AIX.
The generic libvxnvme ASL responsible for detecting and claiming NVMe devices is not available on AIX. As a result the Device Discovery Layer (DDL) is unable to detect NVMe devices on AIX.
New ASL changes becomes available with the InfoScale 7.4.3 VRTSaslapm package installation.
Name of the new ASL is: libvxnvme_nonscsi.so
Run following command to verify presence of newly added ASL.
# vxddladm listsupport | grep libvxnvme_nonscsi.so
libvxnvme_nonscsi.so NVMe All
If NVMe devices are available on the system and the claiming is succesful using the new ASL can be verified using the following command.
# vxddladm list devices | grep libvxnvme_nonscsi.so
nvme0n1 - Online CLAIMED (libvxnvme_nonscsi.so)
Known issue:
On RHEL8 platform Excludearray of nonscsi_nvme.so ASL causes a NVMe disk to go into an error state.
eTrack : 4015783
After the exclusion of libvxnvme_nonscsi.so ASL, NVMe disks will go into an error state. This is expected, as there is no fallback ASL for NVMe devices on RHEL8. RHEL8 dropped SCSI support for NVMe devices.
Workaround is to include the NVMe ASL back and rescan using the "vxdisk scandisk" command:
# vxddladm includearray libname=libvxnvme_nonscsi.so
# vxdisk scandisks
When excluding the ASLs, the NVMe device(s) will be shown in an error state
# vxddladm excludearray all
# vxdisk scandisks
# vxdisk list
DEVICE TYPE DISK GROUP STATUS
nvme0n1 auto:cdsdisk - - error
sda auto:LVM - - LVM
Once the NVMe ASL has been included the for nonscsi_nvme.so disk(s) will transition from "error" back to the normal "online" state
# vxddladm includearray all
# vxdisk scandisks
# vxdisk list
DEVICE TYPE DISK GROUP STATUS
nvme0n1 auto:cdsdisk - - online
sda auto:LVM - - LVM