NVMe Drives: Difference between revisions

From WilliamsNet Wiki
Jump to navigation Jump to search
(Created page with "== What is NVMe? == NVM Express [NVMe] or Non-Volatile Memory Host Controller Interface Specification (NVMHCI), is a specification for accessing solid-state drives (SSDs) atta...")
 
(No difference)

Latest revision as of 00:51, 3 August 2019

What is NVMe?[edit]

NVM Express [NVMe] or Non-Volatile Memory Host Controller Interface Specification (NVMHCI), is a specification for accessing solid-state drives (SSDs) attached through the PCI Express (PCIe) bus. NVM is an acronym for non-volatile memory, as used in SSDs. NVMe defines optimized register interface, command set and feature set for PCIe SSD’s. NVMe focuses to standardize the PCIe SSD’s and improve the performance.

PCIe SSD devices designed based on the NVMe specification are NVMe based PCIeSSD’s. For more details on the NVMe please refer the link http://www.nvmexpress.org/ .The NVMe devices used currently are NVMe 1.0c compliant.

This page is extracted from here: https://www.dell.com/support/article/us/en/04/sln312382/nvme-on-rhel7?lang=en

Installation[edit]

This is actually the hardest part of the process: getting the things into a system.

Many of the newer high-end motherboards have M.2 slots that can handle NVMe drives ... but there can be caveats. Sometimes the M.2 slot is for the SATA version of the drives -- and NVMe drives won't work. If the number of PCIe lanes is limited on the motherboard, it may be a choice between using the M.2 slot or the second PCIe x16 slot.

If an M.2 slot is not present, the next alternative is to get a M.2 PCIE x4 adaptor card. On the surface this is great -- but in practice, it is less than useful as most motherboards only have one PCIe slot that is more than x1 -- and the graphics card usually sits in it.

Configuration[edit]

Once th edevice is installed, most Linux kernels from 3.3 onward have the nvme driver already installed. The easiest way to check is to somply look for the drive in the normal places:

cat /proc/partitions
ls -l /dev/disk/by-id
ls -l /dev/nvme*

All of these should show at least one entry: nvme0n1 -- this is the base partition of the NVMe drive itself. The nvme0 part of the device name is the name of the device controller, and the n1 is the namespace (think of it as a soft hardware partition).

Partition like a normal disk drive:

fdisk /dev/nvme0n1

This will create partitions called nvme0n1p1, etc. At this point you can format it like any other drive<ref>Debian does not come with XFS filesystem tools installed by default. If you want to use XFS to format the drive, you need to install the xfsprogs package</ref>:

mkfs.xfs /dev/nvme0n1p1

There is also a command-line utility that knows how to talk to the device controller to get status and to reformat the drive at a low level if needed. It is not required for simple use, but if needed, just install the nvme-cli package.


<references/>