存储系统设计始终需要在三个参数间进行权衡:容量、吞吐量和IOPS。不幸的是,对于系统工程师而言,存储组件的物理限制不允许独立设置这三个参数-至少不能在硬件中设置。
这种参数关联性迫使设计人员在容量和性能之间进行选择。你需要更多的吞吐量?你可以部署更多的主轴或SSD控制器,但这会导致未使用的容量。
如果工作负载需要为微小数据集提供高I / O吞吐量,则会突显预配置IOPS与容量的难题。作为示例,在Azure反馈门户上的评论说明无法独立于Azure托管磁盘的容量来提供性能。
软件定义存储(SDS)可以解耦这些参数,通过在存储资源和组件之间放置逻辑抽象层。此外,集中式软件控制平面使云存储服务能够细粒度地提高容量,通过在存储节点和驱动器之间分布逻辑块卷和文件共享。
即使超大规模分布式存储系统都可以进行独立优化,如下所述,但由于提供它们的成本高昂且需求稀少,因此只有少数服务可以支持这种选项。
问题的根源和早期解决方案
IOPS与容量之间的关联源于旋转磁盘和硬盘磁头的机械限制,我们只有四种方法可增加IOPS:
- 更快的转速
- 更高密度磁性介质
- 更多读写头
- 更大RAM缓存
尽管SSD消除对吞吐量和I / O的机械限制,但它们还有其他限制,包括:
- 存储单元读取和写入 *** 作的速度
- NAND闪存种大型内存块,这会导致写放大和访问延迟
- 驱动控制器的吞吐量受嵌入式微控制器单元和内存缓冲区、NAND I / O和SATA接口速度的限制
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)