在几乎不涉及删除的操作中使用 SSD 驱动器进行突袭

在几乎不涉及删除的操作中使用 SSD 驱动器进行突袭

从我阅读有关固态硬盘和磁盘阵列的情况时能够理解的情况来看,问题在于在磁盘阵列配置中不能对它们使用 TRIM,因此导致在删除文件时磁盘随着时间的推移变得越来越慢。

我目前正在考虑的一个用例是在 raid 中使用 SSD:s 存储数据库而不进行删除,只执行读写操作。

这是否会绕过在运行突袭 SSD 时无法使用 TRIM 的常见问题,或者是否会出现其他问题(据称与数据库如何管理数据有关)?

更新:值得一提的是,我开始考虑这样做的可行性是因为这些 Stack Exchange 网站似乎已经使用 SSD 作为存储一段时间了(http://blog.serverfault.com/post/our-storage-decision/

答案1

使用 SSD 进行写入有点像转移注意力

与传统磁盘相比,无论是否采用 TRIM,只要采用随机而非连续模式(最终 IO 活动似乎总是随机的),每 IO 成本都会更高。虽然写入繁重的环境与 SSD 和 TRIM 支持相结合令人担忧,但我认为这有点转移注意力。我会将注意力转移到可靠性上。这是因为据我所知,许多 SSD 故障发生在写入应该导致驱动器损坏之前。这可能是固件极端情况,也可能是芯片问题。例如,最近:

在此处输入图片描述

您可以与 SSD 和存储专家就该主题讨论数天,但归根结底,SSD 仍然是一项相对较新的技术 - 不是尖端技术,而是新技术。该技术发展迅速,这意味着目前关于故障率的数据并不多。等到有数据时,您已经进入了下一代。此外,就 SSD 而言,堆栈的其他一些部分(例如文件系统和磁盘调度程序)可能尚未完善。

Tom's Hardware 表现不错SSD可靠性研究并得出结论:

“目前我们唯一可以得出的明确结论是,对于 SSD 供应商的任何可靠性声明,你都应该持怀疑态度。”

因此大多数人做的只是猜测。

极端暴力

这意味着 SSD 是为勇敢者准备的,如果您无法在“极度暴力”或“噩梦!”模式下使用存储,那么您应该继续使用磁盘。一如既往,技术应该反映业务——在 Stack Exchange,我们选择 SSD,因为我们是性能迷,不需要全球银行的正常运行时间/风险缓解。那么,如果您决定使用它们,这对系统管理员意味着什么?

  • 准备好冷备件。在机架中准备好替换驱动器,以便更换驱动器(SSD 的一个优点是重建率高)
  • 监控所有阵列。一旦驱动器发生故障,您就会收到警报
  • 设置大量冗余,做好发生故障的准备
  • 确保您的备份正常运行

最后,只要意识到自己将要面对什么,并做好准备即可。根据我的经验,无论是否使用 trim,性能都会非常出色。由于我们在撰写博文时已经在 DB 服务器中安装了这些 SSD(Raid 10 6 磁盘),因此以下是目前不使用 TRIM 且传输速度为 100-800/s 时的性能:

在此处输入图片描述

在此处输入图片描述

答案2

记住更新对现有数据的更新在 SSD 层也实际上是“删除”。闪存转换层需要写入新块,旧块将被垃圾回收。您的应用程序是否对现有数据进行更新?(如果您正在运行数据库,即使简单地插入索引表也会更新一个或多个 B 树索引页!)

我建议选择专为更高写入工作负载而设计的 SSD,例如英特尔 510 系列,或者更好(且更昂贵)的全新 710 系列。我会远离基于 SLC 的 SSD,仅仅是因为成本太高,并且远离面向桌面的“廉价” SSD,因为它们没有太多的写入储备(并且通常还具有有缺陷的控制器和固件)。

答案3

如果您有足够的钱,即使由于没有 TRIM 维护而导致 SSD 性能下降,其性能也应该优于普通硬盘,而当它成为真正的问题时,您应该已经接近硬件循环的临界点,此时需要使用升级的服务器/硬件来循环淘汰它们。

在某些情况下,正如@ChrisS 所说,您最终还是会更换 RAID 阵列中由于磨损/故障而出现的某些驱动器,因此无论如何您都会增加对缺乏 TRIM 维护的计数器。

如果 TPTB 愿意投资购买配备 SSD 驱动器的超高速 RAID 服务器,那就去买吧,并为日后的维护/更换预留适当的预算。我认为,在考虑网络 I/O 瓶颈和 CPU 瓶颈后,几个百分点的性能下降不会那么明显,而且整体性能提升仍将大于您原本的预期。

相关内容