SSD核心设计
2019/11/23
我们发现SSD性能和生命周期对工作负载非常敏感,并且通常较高的复杂系统问题出现在存储堆栈中甚至在分布式系统中,与设备固件相关。
SSD性能研究点:
延长和带宽:
读写可以多快
随机写会慢
永久行:
最快多久可以代替传统硬盘
Flash块受磨损影响
Introduction
SSD设计中出现的许多问题似乎都模仿了以前在存储堆栈中出现的问题。在解决这些难题时,设计选择有相当大的自由度。我们表明以下系统问题与SSD性能有关:
data placement:在SSD的芯片上仔细放置数据不仅对负载平衡至关重要,而且对于实现耗损均衡至关重要
parallelism: 任何给定闪存芯片的带宽和操作速率都不足以实现最佳性能。因此,存储器组件必须协调以便实行并行操作。
write ordering:Nand闪存的属性给SSD设计者带来了难题。小的,随机排序的写入尤其棘手。
workload management: 性能高度依赖于工作负载。例如,在顺序工作负载下产生良好性能的设计决策可能不会使非顺序工作负载受益,反之亦然。
随着SSD复杂性的增加,现有的磁盘模型将不足以预测性能。特别是,由于磁盘写入操作的位置,随机写入性能和磁盘寿命会有很大差异。我们引入了一种基于清除效率来表征这种行为的新模型,并提出了一种新的耗损均衡算法来延长SSD寿命。
正如我们所示,SSD有许多设计权衡因素会影响性能。硬件和软件组件以及工作负载之间也存在显着的相互作用。我们的工作可以深入了解所有这些组件必须如何合作才能生成满足目标工作负载性能目标的SSD设计。从硬件角度来看,SSD接口(SATA,IDE,PCI-Express)和封装组织决定了理论上的最大I / O性能。在软件方面,分配池的属性,负载平衡,数据放置和块管理(耗损均衡和清理)与工作负载特性相结合,可确定整体SSD性能。此外,我们已经证明所有设计都可以受益于平面交错和某种程度的过度配置,我们已经演示了一种基于仿真的技术,用于对从真实硬件中提取的迹线驱动的SSD性能建模。在某些情况下,跟踪系统需要的存储组件对于大多数组织来说太昂贵,无法提供实验目的。我们的仿真框架已证明具有弹性和灵活性,我们期望继续添加我们可以建模的行为集。共享控制组合和精确的磨损均衡数据是感兴趣的特定主题。
没有固定的规则将NAND闪存作为磁盘存储集成到计算机系统中。然而,NAND的块访问性质表明面向块的接口通常是合适的。虽然超出了这项工作的范围,但我们怀疑我们的仿真技术将适用于独立于架构的NAND闪存块存储,因为仍会出现相同的问题(例如清洁,耗损均衡)。
基于闪存的存储肯定会在未来的存储架构中发挥重要作用。我们的仿真结果的一个必然结果是,支持大量TPC-C工作负载所需的存储系统(过去涉及数百个主轴)将来可能会被少量类似SSD的设备所取代。我们的工作代表了理解和优化此类系统性能的一步。