数码|Open-Channel SSD平台上实现高性能KV到底香不香?


当前大数据环境下 , 高性能、大容量的存储系统的需求日益突出 。 大规模数据存储系统中 , 传统关系型数据库检索性能较慢 , 检索语句较复杂 , 已无法满足海量数据处理对高性能数据检索的要求 。 因此 , 以键值对(Key-Value Pairs , 简称KVP)为基础的数据检索技术以其高扩展、低延时及高性能等优点 , 被广泛应用到承载海量数据的存储系统高速检索场景中 , 但是传统的存储系统由于其自身架构的先天不足 , 限制了KV本该发挥的性能表现 。
具体来说 , 由于单机内存总量的限制 , 内存KV在实际应用中会出现不少问题 , 包括极高的写放大、缓存未命中时的读放大、与设备性能不匹配的业务性能以及极低的空间使用率等等 。
百度携手宝存科技 , 软硬相结合 , 硬刚KV短板
针对这些问题 , 百度结合对KV的深入理解以及SSD的特性把控 , 选择联合宝存科技在其Open-Channel SSD(简称OCS)平台上实现一套高性能原生KV架构 , 以改变当前KV存储平台存在的不足 , 充分发挥KV在SSD上应有的性能 。

数码|Open-Channel SSD平台上实现高性能KV到底香不香?
本文插图
经过短短一年的时间 , 百度就将全新的Open-Channel KV成功实现 。 SSD不再以传统块设备的形式存在 , 而是以KV服务的形式呈现给上层业务 。 KV逻辑向上层提供KV接口 , KV接口接收到的键值对将被直接写入物理介质NAND的某个地址上并在内存中记录映射关系 , 无需经过文件系统/虚拟内存/块设备的层层转换 , 读取时同理 。 数据通过软件层面最短的路径进行传输 , 因此延迟大幅度缩短 。

此次联合项目的开发过程中 , 由于Open Channel接口本身具备的灵活性 , 如何做到软件与硬件的高效协同 , 对双方团队来说都极具价值和挑战 , 为此 , 百度专门对硬件部分提出了多项定制化的需求 。 在不断试错、不断学习的过程中 , 结合宝存科技在SSD产品开发中的经验 , 进行了多次迭代 。 终于将Open-Channel SSD的底层全部打开 , 通过掌握SSD内部逻辑 , 获得了底层存储硬件更多的控制权限 , 最终通过软硬件一体的设计 , 实现了工业界首例Bypass Kernel、直接基于Open-Channe SSD硬件实现的KV存储引擎 。 籍此单盘吞吐能力相比rocksdb实现了大幅度提升 , 配以面向云原生设计的分布式存储框架 , 无限制混布 , 全自动化运维 , 极大降低了业务数据单位成本 。
存储硬件加速 , OCS优化仅仅是开始

作为一个独立的存储引擎 , 百度Open-Channel KV契合了公司软硬一体化存储的发展方向 , 对于未来 , 百度基于存储硬件加速的场景也会不断丰富 。
之前的问题在此次联合开发中都一一得到了改善和解决 , 包括但不仅限于实现了极小的写放大、消除读放大、充分发挥硬件性能、巨幅提升QoS水平以及更高的空间使用率等等 。 简单来说 , 软件栈得到了很大的优化 , 应用延迟也有很大的改善 , 并且精简了平台架构 。 因为这些优势 , 百度Open-Channel KV项目已成功接入多个重要业务 , 实现了同级别产品中仅提升存储性能和仅优化软件逻辑都无法达到的业务性能提升幅度 。 百度也成为国内第一家落地用户态OCS的厂商 。
作为下一代数据中心架构的技术方向 , Open-Channel SSD的生态和标准也在逐步完善 。 百度存储专家认为ZNS(Zoned Namespace)模式是Open Channel SSD的一个重要发展演进方向 。 ZNS模式通过将SSD底层物理存储空间划分为多个分区提供给上层直接数据存储管理的能力 , 同时把NAND相关的底层逻辑保留在SSD内部 。 减轻主机端SSD后台逻辑处理压力的同时 , 依然保留了对底层数据存取进行定制化控制的能力 , 这对于开发者是非常友好的 。 目前NVMe组织已经认可了ZNS的命令集规范 , 这将有助于OCS的生态发展 。 百度也将与宝存科技继续合作开发 , 推动ZNS模式下的OCS产品早日上线应用 。
【数码|Open-Channel SSD平台上实现高性能KV到底香不香?】


    推荐阅读