可可读OpenChannelSSD之三_LightNVM子系统

原创内容,转载请注明:  [https://www.ssdfans.com]  谢谢!

Linux内核中Open-Channel SSD  子系统:LightNVM

它是为Open-Channel SSD  的管理设计和实现的Linux子系统。

下图描述了用于Open­channel SSD(LightNVM)的Linux主机体系结构。

它包含三层组件,每个都为open-channel SSD提供了抽象层:与LightNVM兼容的NVMe Device Driver, media manager和 target。

NVMe Device drivers:

  • 检测open-channel SSD
  • 实行PPA接口

启用LightNVM的NVMe设备驱动程序使内核模块可以通过PPA I/O接口访问open-channel SSD。设备驱动程序将设备作为传统的Linux设备公开给用户空间,从而允许应用程序通过ioctl与设备进行交互。 如果PPA接口通过LBA公开,它也可能相应地发出I/O。

存储设备驱动程序的实现支持Open­Channel的Physical Page Address command set。
该命令集包括

  1. ID结构,主机能用来发现open-channel设备的可用功能,扩展和特性
  2. Physical data command能与存储非易失性介质进行有效通信。

LightNVM Subsystem (Media Manager):

  • 通用层
  • 核心功能
  • Target管理(例如pblk

子系统的一个实例在PPA I/O支持的块设备的顶部初始化。该实例使内核可以通过内部nvm_dev数据结构和sysfs公开设备的几何结构。这样,FTL和用户空间的应用程序可以在使用前了解设备的几何特征。它还使用blk-mq设备驱动程序专用的I/O接口公开了vector接口,从而可以通过设备驱动程序有效地发布vector I/Os。

介质管理器抽象化底层物理介质通过隐藏其约束和访问详细信息,主要负责:

  1. 具体地址和通用地址格式之间的名称映射
  2. 设备具体的SSD状态管理
  3. 恢复–保证持久性在处理与SSD状态管理关联的元数据时

介质管理器充当了用户和物理介质之间的调解器,从而消除了介质的复杂性。LightNVM通用介质管理器实现最少的块管理,并允许目标或用户空间应用程序执行实际的FTL。它可以实现整个FTL并管理用户空间接口。例如,它可以暴露类似于传统块存储设备的块设备。这样它将管理诸如data placement, garbage collection, and block management之类的功能。

High-level I/O Interface (Targets):

  • 使用pblk的块设备
  • 整合Liblightnvm的应用

一个target可通过高级I/O接口比如pblk提供的块I/O接口之类的标准接口,或自定义target提供的特定于应用程序的接口为内核空间模块或用户空间应用程序访问open-channel SSD。

具体来说,使用通用介质管理器时,目标将实现FTL的功能(逻辑转换,数据放置,垃圾回收)。它们还将暴露存储接口给用户空间。此类接口包括块设备,键值存储或对象存储。目标和设备(介质管理器)的划分,分组和分配非常灵活,可以将一个设备拆分并分配给多个目标,或者多个设备可以属于一个目标。

基于host端的Flash Translation Layer 叫做pblk, 它将open-channel SSD 公开为传统的block I/O 设备。

此外,LightNVM通过liblightnvm连接到用户空间,该库公开了一个get / put块接口,供应用程序实现自己的应用程序托管FTL。

Flash Translation Layer

  • Data Placement
    • 物理地址到逻辑地址的映射(L2P)
    • Host端的映射表
    • 其他元数据
  • I/O Scheduling
  • Error handling
    • 擦除&写入错误
  • 如今Target
    • Pblk (Kernel 4.17)

Libghtnvm-RocksDB (kernel 4.11)

分类目录 SSD, 技术文章.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。