NVME: Veritas Volume Manager (VxVM) is unable to detect NVME devices on AIX

book

Article ID: 100045908

calendar_today

Updated On:

Description

Error Message

 

In this instance, the NVMe device is available as hdisk3 on the AIX system:
 

# lspv hdisk3
PHYSICAL VOLUME: hdisk3 VOLUME GROUP: test
PV IDENTIFIER: 00c04810743489bb VG IDENTIFIER 00c0481000004b000000016b74348a13
PV STATE: active
STALE PARTITIONS: 0 ALLOCATABLE: yes
PP SIZE: 1024 megabyte(s) LOGICAL VOLUMES: 2
TOTAL PPs: 2980 (3051520 megabytes) VG DESCRIPTORS: 2
FREE PPs: 2878 (2947072 megabytes) HOT SPARE: no
USED PPs: 102 (104448 megabytes) MAX REQUEST: 256 kilobytes
FREE DISTRIBUTION: 596..494..596..596..596
USED DISTRIBUTION: 00..102..00..00..00
MIRROR POOL: None

# lsdev -Cc disk |grep NVMe
hdisk3 Available 02-00 NVMe 4K Flash Disk

# ls -la /dev/hdisk3
brw------- 1 root system 41, 1 Jun 19 17:13 /dev/hdisk3

 

The following vxscsiinq commands are failing against different page codes, preventing VxVM from detecting the NVMe device:


# /etc/vx/diag.d/vxscsiinq -d -e 0 -p 0x00 /dev/hdisk3
VxVM /etc/vx/diag.d/vxscsiinq ERROR V-5-1-18670 ioctl failed for /dev/hdisk3, evpd 0 page code 0 einval 0 error A system call received a parameter that is not valid.
VxVM /etc/vx/diag.d/vxscsiinq ERROR V-5-1-9759 ioctl failed for /dev/hdisk3, evpd 0 page code 0. error A system call received a parameter that is not valid.


# /etc/vx/diag.d/vxscsiinq -d -e 1 -p 0x00 /dev/hdisk3
VxVM /etc/vx/diag.d/vxscsiinq ERROR V-5-1-18670 ioctl failed for /dev/hdisk3, evpd 1 page code 0 einval 0 error A system call received a parameter that is not valid.
VxVM /etc/vx/diag.d/vxscsiinq ERROR V-5-1-9759 ioctl failed for /dev/hdisk3, evpd 1 page code 0. error A system call received a parameter that is not valid.

# /etc/vx/diag.d/vxscsiinq -d -e 1 -p 0x80 /dev/hdisk3
VxVM /etc/vx/diag.d/vxscsiinq ERROR V-5-1-18670 ioctl failed for /dev/hdisk3, evpd 1 page code 80 einval 0 error A system call received a parameter that is not valid.
VxVM /etc/vx/diag.d/vxscsiinq ERROR V-5-1-9759 ioctl failed for /dev/hdisk3, evpd 1 page code 80. error A system call received a parameter that is not valid.


# /etc/vx/diag.d/vxscsiinq -d -e 1 -p 0x83 /dev/hdisk3
VxVM /etc/vx/diag.d/vxscsiinq ERROR V-5-1-18670 ioctl failed for /dev/hdisk3, evpd 1 page code 83 einval 0 error A system call received a parameter that is not valid.
VxVM /etc/vx/diag.d/vxscsiinq ERROR V-5-1-9759 ioctl failed for /dev/hdisk3, evpd 1 page code 83. error A system call received a parameter that is not valid.

 

Cause

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.

# lsdev |grep NVMe
hdisk3 Available 02-00 NVMe 4K Flash Disk
nvme0 Available 02-00 PCIe3 x8 NVMe Flash Adapter

# vxddladm_list_devices | grep -w hdisk3

# vxdisk -p list |grep NVMe 
No output

# vxdisk -p list |grep hdisk3
No output

AIX level
7200-03-03-1913

 

Resolution

To support NVMe devices on AIX, it will require changes both in VxVM and also the development of a new Array support Library(ASL) for AIX to detect and claim the NVMe devices.

 

Issue/Introduction

NVMe (Non-Volatile Memory Express) is a host controller interface & storage protocol created to accelerate the transfer of data using solid-state drives (SSDs) NVMe adapter is seen by the OS, however, VxVM is not reporting it.
Uses a servers high-speed Peripheral Component Interconnect Express (PCIe) interface
IS 7.3 initially introduced support for Linux

- Generic ASL support was developed for Infoscale (IS) 7.3 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 introduces support for NVMe (Non-Volatile Memory Express) devices with Solaris SPARC servers.

Additional Information

JIRA: STESC-3314