今天小编要和大家分享的是存储技术相关信息,接下来我将从简述分布式存储中本地存储引擎,兆易创新:中国唯一的存储芯片全平台龙头!这几个方面来介绍。
存储技术相关技术文章简述分布式存储中本地存储引擎
最近几年存储介质得到了高速发展,单位存储介质的性能越来越高,从原来的机械硬盘不足 100 IOPS 到现在的 NVMe SSD 一块就能达到 50W IOPS,但与之形成反差的是 CPU 的速度提升并没有那么多,根据 Red Hat 的相关数据统计,存储介质由原来的单盘几十 IOPS 到现在的单盘 50 万 IOPS,但是 CPU 的主频增长的速度相对并没有那么快,而不同的存储介质每个 IO 需要的 CPU 时钟周期也各不相同,如在 HDD 中一个 IO 需要 2000 万时钟周期,在 NMVE 设备中只需要 6000 时钟周期。
▲图表及数据均来源于Red Hat
With a cpu clocked at 3ghz you can afford:
HDD: ~20 million cycles/IO
SSD: 300,000 cycles/IO
NVMe: 6000 cycles/IO
在这样的背景下,对于存储软件来说能否发挥出存储介质的高性能,其关键是如何高效利用 CPU,其中,单核 CPU 能够提供的 IOPS,是存储系统的一个关键指标。
而分布式存储作为当前存储系统的一个重要分支,其软件定义的特征,能够更好更快地适配新硬件的发展,成为了存储领域的热点。
我们先简单地聊聊分布式存储中开源领域在适配新硬件的进展,而说到开源的分布式存储,我们一定会想到明星开源项目 Ceph,它在国内外都被广泛使用,其良好的扩展性和稳定性也获得大家一致认可。
在 Ceph 的迭代发展中,其本地存储引擎 ObjectStore 也经过了两代的发展,由最初的 FileStore,到现在广泛使用的 BlueStore,但是这些存储引擎对于高性能的存储介质(如 NVMe SSD 等)都存在一定的不足。
所以 Ceph 社区也在 2018 年提出了新一代本地存储引擎 SeaStore,对细节感兴趣的读者可以访问 https://docs.ceph.com/docs/master/dev/seastore/。
下面笔者根据个人的理解对 SeaStore 的设计做一个简单解读。
SeaStore 的设计目标
面向NVMe 设计,不考虑 PEME 和 HDD。
使用SPDK 实现用户态 IO。
使用Seastar 框架进行基于 future&promise 的编程方式实现 run-to-completion。