OS-6042: Need to handle NVMe devices with EUI64 values

Details

Issue Type:Improvement
Priority:4 - Normal
Status:Resolved
Created at:2017-04-07T23:31:56.000Z
Updated at:2017-04-12T21:12:20.000Z

People

Created by:Former user
Reported by:Former user
Assigned to:Former user

Resolution

Fixed: A fix for this issue is checked into the tree and tested.
(Resolution Date: 2017-04-12T21:11:58.000Z)

Fix Versions

2017-04-13 NATO CONTAINMENT (Release Date: 2017-04-13)

Description

NVMe devices with namespaces with an EUI64 value do not attach to the system. It'd be good if these did.

Comments

Comment by Former user
Created at 2017-04-10T19:05:44.000Z

We have two different devices that support this feature:

To test these, I created a zpool on each drive (for two different pools), performed I/O to each one and then used dd to create data on the system and then scrubbed. Data was from /dev/urandom. I then rebooted and scrubbed both pools again.

The diskinfo for these devices had the EUI based identifier and I've manually verified that the disk nodes match what we're seeing here.

# diskinfo 
TYPE    DISK                    VID      PID              SIZE          RMV SSD
USB     c1t0d0                  Kingston DataTraveler 3.0    7.20 GiB   yes no 
-       c2t0d0                  -        -                   0.00 GiB   yes no 
-       c3t0025385961B09B70d0   Samsung  SSD 950 PRO 512GB  476.94 GiB   no  yes
-       c4t0025385271B01EEFd0   Samsung  SSD 960 EVO 250GB  232.89 GiB   no  yes

From mdb:

> *nvme_state::walk softstate | ::print nvme_t n_ns[0].ns_eui64
n_ns[0].ns_eui64 = [ 0, 0x25, 0x38, 0x59, 0x61, 0xb0, 0x9b, 0x70 ]
n_ns[0].ns_eui64 = [ 0, 0x25, 0x38, 0x52, 0x71, 0xb0, 0x1e, 0xef ]

From the device's properties (via prtconf -v):

                blkdev, instance #1
...
                    Hardware properties:
                        name='devid' type=string items=1
                            value='id1,kdev@w0025385961b09b70'
                        name='inquiry-revision-id' type=string items=1
                            value='1B0QBXX7'
                        name='inquiry-serial-no' type=string items=1
                            value='S2GMNX0H915400P'
                        name='inquiry-product-id' type=string items=1
                            value='SSD 950 PRO 512GB'
                        name='inquiry-vendor-id' type=string items=1
                            value='Samsung'
...
                blkdev, instance #2
...
                    Hardware properties:
                        name='devid' type=string items=1
                            value='id1,kdev@w0025385271b01eef'
                        name='inquiry-revision-id' type=string items=1
                            value='2B7QCXE7'
                        name='inquiry-serial-no' type=string items=1
                            value='S3ESNX0J202968E'
                        name='inquiry-product-id' type=string items=1
                            value='SSD 960 EVO 250GB'
                        name='inquiry-vendor-id' type=string items=1
                            value='Samsung'
...

Comment by Former user
Created at 2017-04-12T21:12:20.000Z

illumos-joyent commit 3a0b3ce (branch master, by Robert Mustacchi)

OS-6042 Need to handle NVMe devices with EUI64 values
Reviewed by: Hans Rosenfeld <hans.rosenfeld@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Approved by: Hans Rosenfeld <hans.rosenfeld@joyent.com>