View on GitHub

Open-Channel Solid State Drives

Manage SSDs directly from your host

Open-channel SSDs are devices that share responsibilities with the host in order to implement and maintain features that typical SSDs keep strictly in firmware. These include (i) the Flash Translation Layer (FTL), (ii) bad block management, and (iii) hardware units such as the flash controller, the interface controller, and large amounts of flash chips. In this way, Open-channels SSDs can expose direct access to their physical flash storage, while keeping a subset of the internal features of SSDs.

LightNVM is a subsystem that supports Open-channel SSDs. LightNVM allows the host to manage data placement, garbage collection, and parallelism. Device specific responsibilities such as bad block management, FTL extensions to support atomic IOs, or metadata persistence continues to be handled by the device.

The architecture of LightNVM consists of three parts: core, media managers and targets. The core implements shared functionality across targets. For example initialization, teardown and statistics. The media manager implements management of flash blocks in the host, and at last the targets implement the interface that exposes physical flash to user-space applications. Examples of such targets include key-value store, object-store, as well as traditional block devices.

Documentation

Available here

Subprojects

Go to github for all sub-projects.

The Open-Channel SSD support is divided into several pieces. Here is a short description of each project and how it relates.

Presentations

A number of presentations on LightNVM have been given:

Available Hardware

A number of platforms supports LightNVM:

Specification

LightNVM Open-Channel Specification 1.2 Final Download

Updates to the LightNVM Open-Channel specification can be found in the working document here. The latest version 1.2 is stable and is what is implemented within the Linux kernel.