To use an open-channel SSD, the host storage stack must have support for the open-channel ssd specification. Support is available through:
- Linux kernel (4.12+)
- nvme-cli (0.8+ )
- liblightnvm (Linux kernel 4.14+)
The linux kernel implements the 1.2 (since 4.4) and 2.0 (since 4.17) of the Open-Channel SSD specification. When an open-channel SSD is found by the NVMe subsystem, it registers with the "lightnvm" subsystem.
The kernel implements sysfs entries to enumerate the geometry of the SSD through /dev/block/nvme*/lightnvm/. One can access these after the kernel has booted.
After the system bringup, and an open-channel SSD has been detected, one can either initialize a lightnvm target on top, interact directly using traditional block interface (with zoned block device support), or access it with liblightnvm.
The initialization of lightnvm targets is done through nvme-cli, which also implements target management.
If no hardware is availble is available, one can use the open-channel SSD enabled qemu that has support for either revision 1.2 or 2.0 of the specification.