几天前, Linux 基金会宣布首次发布 软件驱动闪存的开放平台,称为 海基会 (软件启用闪存)。相关的SDK是 来自铠侠的慷慨捐助,一家几年前从东芝分拆出来的存储公司。
软件支持的闪存项目对于寻求特殊途径发挥闪存存储应用的创造潜力的开发人员来说是一个变革性的里程碑。
关于软件支持的闪存
软件支持的闪存 它由一组工具组成 其中包括一系列 Linux 内核补丁,专为 SEF 设备设计的块驱动程序 (软件启用闪存),用于命令行管理的实用程序, QEMU 的半虚拟化 SEF 驱动程序,一个提供应用程序开发 API 的库,nvme-cli 和 FIO 的补丁,增加了对 SEF 的支持。
捐赠的硬件包括 SEF 项目 SDK,它使数据中心存储开发人员能够访问示例代码并能够充分发挥闪存媒体控制的潜力。这包括 WAF 减少、延迟控制、对 ZNS 和 FDP 或 Block 等多种协议的支持,并通过这种动态可编程软件定义闪存方法承诺未来的功能。
此外,SDK 有FTL软件层的参考实现 (Flash Translation Layer),负责将块设备命令翻译成对真实Flash存储器芯片的访问。该层还负责内存单元之间的垃圾收集和数据分配。超光速 实现对灵活数据放置的支持 (FDP – 灵活数据放置)、分区(ZNS – 分区命名空间)并符合 NVMe 规范。
值得注意的是,在用于外部系统的传统闪存的情况下,驱动器被视为黑匣子,其中分配一部分内存用于清理操作,而性能指标往往不一致,并且由于以下原因而导致延迟难以预测。内部驱动程序活动,例如垃圾收集期间。
KIOXIA America, Inc. 内存和存储战略部门高级副总裁 Eric Ries 表示:“我们很高兴能够实现这一里程碑,并发布软件支持闪存项目的软件开发套件。”为闪存在存储应用中的创新用途铺平了道路,这些应用可以充分发挥用户、开发人员和开源社区的创造力和创造力。”
与传统闪存驱动器不同,其中数据分发、坏块隔离和垃圾收集由内部控制器固件处理, 支持 SEF 的单元允许传输作业逻辑 低层采用闪存芯片到软件和操作系统。
SEF 可以直接控制数据的物理位置,负载分配算法的修改, 优先管理和服务质量 (QoS)、消除额外的块转换层、充分利用可用内存、实现驱动器的可预测操作以及在输入/输出操作 (I/O) 中将驱动器划分为隔离的虚拟设备具有不同的处理优先级。 SEF 提出的方法有助于降低总体成本并提高与驱动器交互的效率,调整垃圾收集逻辑、内存预留和块分配以满足当前需求。
例如: SEF 使性能标准化 通过使用在不同时间购买的具有不同特征的各种单位。对于主要是只读的驱动器,SEF 可以采用更简单的块分配算法并减少为通用目的保留的内存量。
最后,值得一提的是,SEF SDK 是用 C 语言编写的,并在 BSD 许可下连同 API 和命令规范一起分发。你可以检查一下代码 来自 GitHub 上的 SEF。
数据来源: https://www.linuxfoundation.org