我们有几个服务器配备 PERC H710,我们正在转向 SSD,我想知道,考虑到我们不使用旋转磁盘,是否需要缓存?我们的一般设置如下
2 X 2TB SSD 组成 RAID 1 读取策略:不预读。写入策略:直写磁盘缓存策略:已禁用
启用缓存有什么好处吗?不启用缓存会不会有什么问题?如果发生断电并且我们的 BBU 也出现故障,我们是否更有可能遭受数据丢失(可以通过启用缓存来缓解这种情况)?
答案1
启用缓存有什么好处吗?
是的,控制器缓存仍有可能带来性能优势。SSD 的性能确实比主轴驱动器快得多,但控制器缓存的进出传输速度仍然快得多。
根据您的工作负载,还可能减少 SSD 上的写入磨损。写入控制器缓存不一定会立即刷新到磁盘。如果在短时间内经常向同一块发出多次写入,则其中一些写入只会在数据位于缓存中时发生,并且只有最后一次更改才会写入 SSD。不过,真正的写入磨损节省可能有点难以衡量/比较。
如果没有启用缓存,我们可能会面临什么问题吗?
这与使用 SSD 没有关系,不是。您只会看到与没有主轴磁盘缓存相同的负面影响,尽管显然严重得多。
如果发生断电并且我们的 BBU 也出现故障,我们是否更有可能遭受数据丢失(可以通过启用缓存来缓解这一损失)?
我假设您指的是“关闭缓存”?使用缓存比直写模式更容易导致数据丢失/损坏。不过,对于未从操作系统完整发送到控制器的不完整写入,无论是否使用控制器缓存,风险都是相同的。
我建议您使用预读和写缓存的每种可能组合来测试配置,并使用您预期的 I/O 工作负载进行测试(尝试匹配读/写比率、大小和随机/顺序混合(如果可能))以帮助您决定哪种配置实际上为您提供了最佳性能。
最后,请记住,写入缓存是唯一带来潜在损坏风险的功能。预读缓存可能会或可能不会提高性能,但肯定不会带来风险。
答案2
对于 SSD 来说,缓存可能不是那么必要,但它仍然有益。RAID 卡上的缓存通常为 RAM 级速度,即每秒数千位。如果您使用的是 SATA II 驱动器,它们的接口速度为 600 Mbit/s,这仍然会受益于缓存。如果您的 SATA 3 驱动器的接口速度为 1200 Mbit/s,那么它可能开始接近一些低端缓存模块。
至于数据丢失的问题以及这种风险的严重程度,这实际上取决于很多因素:
- 如果你所在地区经常停电
- 如果整个系统层面没有足够的发电机或电池备份
- 较新的闪存支持写入缓存 (FBWC) 版本具有更长寿命的电容器。
- 写入活动也会对缓存中丢失多少数据吞吐量产生影响。