Unmount an NVMe Storage Drive

  1. Log in to Oracle Linux that is running on the server.
  2. Remove the NVMe storage device path.
    1. To find the PCIe addresses (Bus Device Function), type:

      # find /sys/devices |egrep 'nvme[0-9][0-9]'

      This command returns output similar to the following example, with the PCIe addresses in bold text:

      /sys/devices/pci0000:d7/0000:d7:02.0/0000:e3:00.0/0000:e4:07.0/0000:e8:00.0/nvme/nvme10
       /sys/devices/pci0000:d7/0000:d7:02.0/0000:e3:00.0/0000:e4:07.0/0000:e8:00.0/nvme/nvme10/uevent
       /sys/devices/pci0000:d7/0000:d7:02.0/0000:e3:00.0/0000:e4:07.0/0000:e8:00.0/nvme/nvme10/cntlid
    2. To obtain the slot number (APIC ID) for the bus address, type the following command to list the PCIe slot numbers with corresponding bus addresses:

      # egrep -H ‘.*’ /sys/bus/pci/slots/*/address

      This commands returns output similar to the following example, with the bus addresses for the corresponding NVMe instances in bold text.

      Note:

      In the following output, notice that the instance names for the NVMe drives do not correspond to the NVMe drive labels on the front of the server. That is, pci/slots/12/address: 0000:b2:00 corresponds to instance nvme0; however, on the front of the server, this drive is labeled NVMe2. For a table that shows the relationship between the pci/slot# and the NVMe storage drive label on the front of the server, see Server Operating System Names for NVMe Storage Drives.
      /sys/bus/pci/slots/10/address:0000:b8:00
       /sys/bus/pci/slots/11/address:0000:b6:00
       /sys/bus/pci/slots/12/address:0000:b2:00 (instance nvme0, pcie slot 12, drive label nvme2)
       /sys/bus/pci/slots/13/address:0000:b4:00 (instance nvme1, pcie slot 13, drive label nvme3)
    3. Disconnect all users from the NVMe drive and back up the NVMe drive data, as needed.
      1. Use the umount command to unmount any file systems that are mounted on the device.
      2. Remove the device from any multiple device (md) and Logical Volume Manager (LVM) volume using the device.
      3. If the device uses multipathing, run multipath -l and note all the paths to the device. Then, remove the multipathed device using the multipath -f device command.
      4. Run the blockdev --flushbufs device command to flush any outstanding I/O to all paths to the device.
  3. To prepare the NVMe drive for removal, that is, to detach the NVMe device driver and power off the NVMe drive slot, type:

    # echo 0 > /sys/bus/pci/slots/$slot/power

    Where $slot is the slot number obtained in Step 2.b above.

  4. Verify that the OK to Remove indicator (LED) on the NVMe drive is lit.