RAID 中 SSD 的当前状态(2016 年)如何?

Dai*_*Dai 54 raid ssd trim

网上有很多资源讨论在 RAID 配置中使用 SSD 驱动器——但是这些资源大多可以追溯到几年前,而且 SSD 生态系统发展非常迅速——正如我们期待英特尔在今年晚些时候发布“傲腾”产品一样这将改变一切......再次。

我将通过肯定消费级 SSD(例如 Intel 535)和数据中心级 SSD(例如 Intel DC S3700)之间存在质的差异来开始我的问题。

我的主要关注点与TRIMRAID 方案中的支持有关。据我了解,尽管 SSD 被引入消费级计算机已有 6 年多,而 NVMe 已商用 4 年——现代 RAID 控制器仍然不支持向TRIM连接的 SSD发出命令——英特尔的 RAID 控制器除外在 RAID-0 模式下。

我很惊讶TRIM在 RAID-1 模式中不提供支持,考虑到驱动器相互镜像的方式,这似乎很简单。但我离题了。

我注意到,如果您想要磁盘(HDD 和 SSD)的容错性,您可以在 RAID 配置中使用它们 - 但由于 SSD 没有 TRIM,这意味着它们会遭受写入放大,从而导致额外磨损,从而反过来会导致 SSD 过早失效——这是一个不幸的讽刺:一个旨在防止驱动器故障的系统可能最终会直接导致它。

所以:

  1. TRIM现代(2015-2016 时代)SSD是否需要支持?

    1.1. TRIMSATA、SATA-Express 和基于 NVMe 的 SSD对支持的需求有什么不同吗?

  2. 通常,驱动器被宣传为具有改进的内置垃圾收集功能;这是否排除了需要TRIM?他们的 GC 过程如何在 RAID 环境中工作?

    1.1. 例如,请参阅 2010 年的此 QA,它描述了由于 not-TRIMming ( https://superuser.com/questions/188985/how-badly-do-ssds-degrade-without-trim )而导致的非常糟糕的性能下降- 以及这个2015 年的文章表明强烈建议使用 TRIM(http://arstechnica.com/gadgets/2015/04/ask-ars-my-ssd-does-garbage-collection-so-i-dont-need-trim -对/)。你对这些关于 必要性的有力论据有何回应TRIM

  3. 早些年的许多文章和讨论都涉及 SLC 与 MLC 闪存,并且 SLC 更可取,因为它的使用寿命更长——但似乎今天所有的 SSD(无论它们位于消费者到企业的哪个领域)都是 MLC这些天 - 这种区别不再相关了吗?

    1.1 TLC闪存呢?

  4. 企业 SSD 往往具有更高的耐用性/写入限制(通常以一天内可以完全覆盖驱动器的次数来衡量,在驱动器的预期 5 年使用寿命中) - 如果它们的写入周期限制非常高(例如每天 100 次完整写入)这是否意味着它们根本不需要TRIM,因为这些限制太高了,或者 - 相反 - 这些限制只能通过使用来实现TRIM

sho*_*hok 26

让我们试着一次回答一个问题:

  • 现代(2015-2016 时代)SSD 是否需要 TRIM 支持?

简短回答:在大多数情况下,不会。长答案:如果您保留足够的备用空间(约 20%),即使是消费级驱动器通常也具有相当好的性能一致性值(但您需要避免驱动器,相反,它们会因持续写入而窒息)。企业级驱动器甚至更好,因为它们默认具有更高的备用空间,并且因为它们的控制器/固件组合针对驱动器的连续使用进行了优化。比如看一下你引用的S3700驱动:即使没有修整,它的写一致性也非常好。

  • 驱动器经常被宣传为具有改进的内置垃圾收集功能,这是否消除了对 TRIM 的需求?他们的 GC 过程如何在 RAID 环境中工作

驱动器垃圾收集器在驱动器沙箱内发挥其魔力——它对外部环境一无所知。这意味着它(大部分)不受阵列的 RAID 级别的影响。也就是说,某些 RAID 级别(基本上是基于奇偶校验的级别)有时(并且在某些特定实现中)会增加写入放大系数,因此这反过来意味着 GC 例程的工作量更高。

  • 早些年的许多文章和讨论都涉及 SLC 与 MLC 闪存,SLC 更可取,因为它的使用寿命更长,但如今似乎所有 SSD(无论它们位于消费者到企业的范围内)都是 MLC - 这种区别不再是相关性了吗

SLC 驱动器已基本从企业中消失,主要用于军事和一些工业任务。标记的企业现分为三个等级:

  • HMLC/MLCe 闪存是一种具有更好分级的 MLC 芯片,并经认证可维持至少 25000/30000 次重写周期;
  • 3D MLC 芯片的额定重写次数约为 5000-10000;
  • 普通平面 MLC 和 3D TLC 芯片的额定重写次数约为 3000 次。

实际上,上述任何一种闪存类型都应该为您提供充足的总写入容量,事实上,您可以找到具有上述所有闪存类型的企业级驱动器。

企业驱动器和消费者驱动器之间的真正区别在于:

  • 控制器/固件组合,由于意外的控制器错误,企业驱动器更难死;
  • 受电源保护的写缓存,对于防止闪存转换层 (FTL) 损坏非常重要,该层存储在闪存本身上。

企业级驱动器更好主要是由于它们的控制器和电源电容器,而不是由于更好的闪存。

  • 企业 SSD 往往具有更高的耐用性/写入限制(通常以一天内可以完全覆盖驱动器的次数来衡量,在驱动器的预期 5 年使用寿命内),这是否消除了对由以下原因引起的写入放大的任何担忧?没有运行TRIM?

如上所述,企业级驱动器具有更高的默认备用空间(~20%),这反过来又大大降低了对常规 TRIM 的需求

无论如何,作为旁注,请考虑一些支持TRIM 的软件 RAID(有人说Linux MDRAID?


eww*_*ite 9

在现代 RAID 控制器上使用 SSD 时,TRIM 不是我所担心的。SSD 得到了改进,硬件 RAID 控制器功能已经针对这些工作负载进行了优化,并且通常会提供耐用性报告。

TRIM 适用于低端 SATA 驱动器。对于 SAS SSD,我们有 SCSI 取消映射,也许这就是我没有遇到 TRIM 需求的原因......

但另一个评论者是正确的。软件定义存储 (SDS) 正在改变我们使用 SSD 的方式。在 SDS 解决方案中,RAID 控制器无关紧要。而像 TRIM 这样的事情往往不那么重要,因为 SSD 正在填补特定的角色。我想到了 Nimble 存储读取缓存或 ZFS L2ARC 和 ZIL……它们都满足特定需求,并且软件正在更智能地利用资源。

  • UNMAP 和 TRIM 做的事情完全一样。 (3认同)
  • 内部垃圾收集不能替代 TRIM。没有固件功能可以替代 TRIM 的功能。有点令人担忧的是,这里的许多答案都不了解 TRIM 实际做了什么以及为什么需要它。参考这样的文章 https://arstechnica.com/gadgets/2015/04/ask-ars-my-ssd-does-garbage-collection-so-i-dont-need-trim-right/ (3认同)
  • 总是需要修剪/取消映射 - 没有它,你将不得不完全依赖内部垃圾收集 (2认同)