关键要点
• 现代SSD容量大,但失败率也高,需要考虑设计容量和性能之间的平衡问题。
• SW处理数据时会存在瓶颈,而目的驱动的设计可以更好地满足特定的软件堆栈需求。
• 为了优化带宽使用,可以采用不平衡架构来实现更高效率的数据传输。
问题意识
现代SSD的问题意识:追求容量、性能,还是两者兼之?
- • 现代SSD带来了问题,设计是为了容量、性能还是两者兼顾?
- • U.2 SSD目前的容量已高达60TB,并且容量还在增加
- • 单路CPU实例通常分配64条通道用于SSD连接
- • 252 GB/秒(64条PCIe Gen5通道,用于主机和SSD)
- • 支持PCIe Gen5的SSD可以支持14 Gb/秒的顺序读取和8.6 GB/秒的顺序写入
- • 使用x4通道连接,假设128条通道 => 448 GB/秒顺序读取,275 GB/秒顺序写入
(Note:2路服务器的理论峰值带宽)
- • 典型的19英寸机箱可以支持大量SSD
- • 当前设备的能力在系统设计中引发了许多权衡
Note:现代通信技术能够实现在单个服务上的超高带宽和存储容量,这两个参考点在实际应用场景往往不是完全兼容的。
容量能力和挑战
- • U.2 SSD目前的容量已高达60TB,并且容量还在增加
- • 大容量意味着更大的故障影响范围
- • 失败恢复所需的重建时间更长,CPU消耗增加
- • 在降级状态下的运行时间更长
- • 典型的19英寸机箱可以支持大量SSD
- • 24到80+个SSD,具体取决于机箱配置
- • 可以轻松部署比PCIe通道连接数更多的SSD
- • 典型的高可用性解决方案,每个控制器为每个SSD分配2条通道
- • 超过32个驱动器时,会产生瓶颈
- • 机械解决方案可以实现支持更多SSD的部署,但无法从性能角度充分利用
- • 由于设备密度导致性能瓶颈
- • 额外的成本投入并没有带来性能的提升
软/硬件 架构分析
性能挑战 - 软件
• 平衡的硬件解决方案(入口通道数 = 出口通道数)本质上效率低下
• 软件是瓶颈,硬件设计可以支持完全平衡的解决方案
• 软件处理数据会产生瓶颈
• 非常高效的解决方案也只有70%的效率(70%的线路速率)
• 网卡效率为85%-90%,操作系统效率为80%
• 具有64条PCIe Gen5通道时,每个控制器的速度不超过176 GB/秒(理论为252,占70%)
• 由于软件开销,无法以线路速率处理数据
• CPU周期、内存跳转和其他处理步骤会消耗周期,导致速率下降
• 即使是顶级的软件也无法充分利用平衡的硬件拓扑
性能挑战 - 硬件
- • 大多数OEM/ODM制造的通用存储设备采用平衡拓扑结构
- • 带宽几乎从未在这种拓扑结构中被100%消耗
- • PCIe Gen5速度提高了设计成本,原因在于材料和布置的要求
- • 通用拓扑结构并未针对软件解决方案进行优化
- • 可以设计更多设备,但无法有效使用
- • 专用解决方案不易为通用应用进行优化
- • Gen5信号完整性要求决定了高成本材料和分布式交换
- • 高速接口有更高的信号损耗,要求更好的材料
- • 信号损耗决定了需要重定时器或开关
- • 对于无法直接连接到CPU的解决方案,需要使用交换结构
- • 高设备解决方案需要分布式交换(对网络通信的优化要求高)
解决方案
解决这些挑战的方法
- • 扩大入口瓶颈
- • 改变传统的高性能阵列架构设计方法
- • 使硬件设计更加定制化,适应特定的软件栈
- • 减少通用架构,这些架构通常是平衡的(通用架构具备高兼容性,但效率较低,也回答了为什么海外云服务供应商都在自己设计硬件架构。)
- • 考虑设计中所有可能的带宽影响,并根据数据进行优化
- • 实施不平衡架构,以提供更多的前端带宽
- • 后端带宽受限于入口数据和处理能力
- • 不平衡架构允许更大的入口数据带宽
- • 设计时要么为高性能,要么为容量进行优化
不平衡的拓扑结构
- • 不平衡的拓扑提供了非传统的解决方案来优化性能
- • 使用Gen5前端与Gen4后端
- • 在平衡的通道拓扑中,较慢的后端可以帮助解决软件效率低下的问题
- • Gen4后端成本更低,实施起来也更简单
- • 效率较低的软件栈的效率可以是50%-60%,因此更适合这样的解决方案
- • 使用成本更低的Gen4 SSD
- • 更多的主机侧连接数相对于设备侧连接数
- • 典型CPU提供128条Gen5通道连接
- • 实现80条主机通道(5个x16)和48条(24个x2)后端设备通道
- • 这种拓扑结构的效率优化为60%的软件/CPU开销
- • 为软件实现提供硬件优化的良好平衡
- • 与平衡的方案相比,更多可用带宽将被利用
两图的区别在于,蓝色框内的SSD代次(建议文末下载原材料,放大比较)。
上图是前后端都基于Gen5的通用架构,因系统/软件层的消耗,后端访问效率会大打折扣,因此通用架构成本高,且通道效率利用有限。
下图是匹配软件层消耗设计的不平衡架构,后端采用Gen4驱动,主要是为了降本。
总结
前进的路径
- • 更多专用架构
- • 设计时要针对高性能或容量
- • 利用更多成本较低的基于Gen4的SSD
- • 设计拓扑结构,充分利用高成本Gen5设备的可用性能