在服务器中使用消费级 MLC SSD 是否安全?

Zyp*_*her 45 storage

我们(我指的是杰夫)正在研究在我们的备份数据中心使用消费级 MLC SSD 磁盘的可能性。

我们希望尽量降低成本并增加可用空间 - 因此英特尔 X25-E 的价格几乎为每台 700 美元左右,容量为 64GB。

我们正在考虑购买一些低端固态硬盘,以更低的价格提供更多的容量。我的老板认为在备份数据中心耗尽的服务器上花费大约 5k 的磁盘不值得投资。

这些驱动器将用于联想 RD120 上的 6 驱动器 RAID 阵列。RAID 控制器是 Adaptec 8k(更名为联想)。

这种方法有多危险,可以做些什么来减轻这些危险?

Cho*_*er3 62

一些想法;

  • SSD 具有“过量使用”内存。这是用于代替因写入而“损坏”的单元格的内存。低端 SSD 可能只有 7% 的过载空间;中档约 28%;和企业磁盘高达 400%。考虑这个因素。
  • 你每天会给他们写多少信?即使是中端 SSD,例如基于 Sandforce 1200 芯片的 SSD,在严重削减过度使用的内存之前,每天的写入量也很少超过约 35GB。
  • 通常,新 SSD 的第一天充满了写入,无论是操作系统还是数据。如果您在第一天的写入量明显超过 35GB,请考虑将其分批复制,以便在批次之间为 SSD 提供一些“整理时间”。
  • 如果没有 TRIM 支持,如果在此期间有大量写入,随机写入性能可能会在几周内下降多达 75% - 如果可以,请使用支持 TRIM 的操作系统
  • 现代 SSD 执行的内部垃圾收集过程是专门在安静时期完成的,并在活动时停止。对于台式机来说,这不是问题,其中磁盘可以在其通常 8 小时工作周期的 60% 内保持安静,但是您运行 24 小时服务......这个过程什么时候有机会运行?
  • 它通常深藏在规格中,但与廉价的“常规”磁盘一样,廉价的 SSD 也预计只有 30% 左右的占空比。您几乎 100% 的时间都会使用它们 - 这会影响您的 MTBF 率。
  • 虽然 SSD 不会遇到与常规磁盘相同的机械问题,但它们确实存在单位和多位错误 - 因此强烈考虑对它们进行 RAID,即使本能不会这样做。显然,它会影响您刚购买的所有可爱的随机写入速度,但无论如何都要考虑一下。
  • 它仍然是 SATA 而不是 SAS,因此您的队列管理在服务器环境中不会那么好,但是额外的性能提升将非常显着。

祝你好运——只是不要用写来“炒”它们:)

  • RAID 配置是否支持 TRIM 也并不总是很清楚。请记住,SSD 是从具有 RAID 的操作系统中抽象出来的。请务必咨询 RAID 供应商。 (9认同)
  • 我的意思是 400 Chris,特别是在 FC SAN 中使用的那些,虽然非常非常。 (5认同)
  • 从驱动器中获得更多保留空间的一个技巧是进行安全擦除,然后用大部分未使用的部分对其进行分区。此可用空间将增加 SSD 的性能和使用寿命。 (5认同)
  • 你的意思是 400% 的额外空间,还是 40%?我打算编辑你的答案,但找不到引文,所以我想它可能是 400%。(顺便说一句,这是一个很好的观点) (2认同)

Jef*_*ood 12

我确实找到了这个链接,它对服务器中的 MLC 与 SLC SSD 进行有趣而透彻的分析

在我看来,将 MLC 闪存 SSD 阵列用于企业应用程序而不至少使用 Easyco 的 MFT 等技术的(声称的)减轻磨损效果,就像没有降落伞从飞机上跳下来一样。

请注意,一些 MLC SSD 供应商声称他们的驱动器足够“企业化”,可以在写入时幸存下来:

SandForce 的目标是成为第一家拥有控制器的公司,该控制器支持服务器中使用的固态驱动器的多级单元闪存芯片。通过使用 MLC 芯片,SF-1500 为服务器制造商所需的更低的成本和更高密度的驱动器铺平了道路。迄今为止,服务器的闪存驱动器使用的是单级单元闪存芯片。这是因为MLC芯片的耐用性和可靠性普遍达不到服务器的要求。

AnandTech对这些声明进行了进一步分析。

此外,现在英特尔已经公开表示,SLC 可能在 90% 的情况下在服务器中都是过大的

“我们认为 SLC [单层单元] 是必需的,但我们通过与微软甚至希捷的研究发现,这些高计算密集型应用程序确实没有他们想象的那么多,”温斯洛说。“90% 的数据中心应用程序都可以利用这种 MLC [多级单元] 驱动器。”

.. 在过去一年左右的时间里,供应商开始认识到,通过在驱动器控制器中使用特殊软件,他们能够将消费级 MLC SSD 的可靠性和弹性提高到企业已经接受它们的程度高性能数据中心服务器和存储阵列。SSD 供应商已开始使用术语 eMLC(企业 MLC)NAND 闪存来描述这些 SSD。

“从容量的角度来看,我们确实看到确实存在可能仍然需要 SLC 的高写入密集型、高性能计算环境,但这甚至是企业数据中心需求的前 10%,”Winslow 说。

英特尔通过与 Hitachi Global Storage Technologies 的合资企业为这 10% 的企业数据中心市场提供支持。日立正在生产 SSD400S 系列串行连接 SCSI SSD,其速度为 6Gbit/sec。吞吐量——是基于 MLC 的 SATA SSD 的两倍。

英特尔,即使是面向服务器的 SSD 驱动器,也已从 SLC 迁移到 MLC,新的英特尔 SSD 710 系列具有非常高的“过度配置”空间。这些驱动器最多可分配 20% 的整体存储用于内部冗余:

性能并不是 SSD 710 的首要任务。相反,英特尔的目标是通过使用更便宜的 eMLC HET NAND,以合理的价格提供 SLC 级别的耐用性。SSD 710 还支持用户可配置的超额配置 (20%),这显着提高了驱动器的耐用性。SSD 710 的保修期为 3 年或直至磨损指标达到一定水平,以先到者为准。这是我们第一次看到 SSD 保修以这种方式受到限制。


rma*_*ter 7

总是把这些事情建立在事实而不是假设上。在这种情况下,收集事实很容易:记录生产系统的长期读/写 IOPS 配置文件,然后找出在灾难恢复场景中可以承受的情况。您应该使用第 99 个百分位数之类的东西作为您的衡量标准。千万不能测量IOPS cpacity时使用平均-峰都是这个问题!然后,您需要根据 DR 站点的需要购买所需的容量和 IOPS。SSD 可能是做到这一点的最佳方式,也可能不是。

因此,例如,如果您的生产应用程序在第 99 个百分位需要 7500 IOPS,您可能会决定在灾难中可以承受 5000 IOPS。但是,您的 DR 站点至少需要 25 个 15K 磁盘,因此如果您的容量需求很小(听起来不错),SSD 可能是更好的选择。但是,如果您仅测量在生产中执行 400 IOPS,只需购买 6 个 SATA 驱动器,为自己节省一些钱,并使用额外的空间在 DR 站点存储更多备份快照。您还可以将数据集合中的读取和写入分开,以根据其规格确定非企业 SSD 可为您的工作负载持续多长时间。

还要记住,DR 系统的内存可能比生产系统的内存小,这意味着需要更多的 IOPS(更多的交换和更少的文件系统缓存)。


Ian*_*ose 6

即使MLS SSD只使用了一年,几年后更换也会便宜很多。那么,当 MLS SSD 出现故障时,您能否应对必须更换它们?


sho*_*hok 5

由于最初的问题真的很有趣,但所有的答案都很旧,我想给出一个更新的答案。

截至 2020 年,当前的消费级 SSD(或至少是顶级品牌的)非常可靠。控制器故障非常罕见,它们正确地遵守写屏障/同步/刷新/FUA,这对数据持久性来说是好事。尽管使用 TLC 闪光灯,但它们具有相当不错的耐力等级。

但是,通过使用 TLC 芯片,它们的闪存页面大小和编程时间远高于旧的 SLC 或 MLC 驱动器。这意味着他们的私有 DRAM 缓存对于实现良好的写入性能至关重要。禁用该缓存将对任何 TLC(甚至 MLC,尽管影响较小)写入 IOP 造成严重破坏。此外,任何有效绕过 DRAM 缓存的写入组合功能的写入模式(即:由 fsync-rich 工作负载完成的小同步写入)必然会看到非常低的性能。同时写入放大会暴涨,SSD的磨损比预期的要快得多。

一个实际的例子:我的笔记本电脑有三星 960 EVO 的 OEM 变体 - 一个快速的 M.2 SSD。当使用随机写入进行锤击时,它提供出色的 IOP,除非使用fsync写入:在这种情况下,它仅适用于 ~300 IOP(使用 测量fio),这与不强制同步提供的 100K+ IOP 相去甚远。

重点是很多企业工作负载(即:数据库、虚拟机等)fsync很重,不利于消费级SSD。当然,如果您的工作负载以读取为中心,这将不适用;但是,如果在消费类 SSD 上使用 PostgreSQL 之类的东西,您可能会被结果所迷惑。

另一件要考虑的事情是最终使用带有 BBU(或断电保护)写回缓存的 RAID 控制器。大多数此类控制器禁用 SSD DRAM 私有缓存,导致性能远低于预期。一些控制器支持重新启用它,但并非所有控制器都传递所需的同步/屏障/FUA 以在消费类 SSD 上获得可靠的数据存储。

例如,较旧的 PERC 控制器(例如:6/i)宣布自己是直写设备,有效地告诉操作系统根本不发出缓存刷新。连接到此类控制器的消费类 SSD 可能不可靠,除非其缓存被禁用(或控制器使用额外的无证护理),这意味着性能低下。

并非所有控制器都以这种方式运行 - 例如,较新的 PERC H710+ 控制器将自己声明为回写设备,使操作系统能够根据需要发出缓存刷新。除非附加的磁盘启用了缓存,否则控制器可以忽略这些刷新:在最后一种情况下,它们应该传递所需的同步/刷新。

然而,这与所有控制器(和固件)有关;作为硬件 RAID 控制器的黑匣子,人们无法确定它们的具体行为,只能希望最好。值得注意的是,开源 RAID 实现(即:Linux MDRAID 和 ZFS 镜像/ZRAID)是更可控的野兽,通常在从消费级 SSD 中提取性能方面要好得多。出于这个原因,我尽可能使用开源软件 RAID,尤其是在使用消费级 SSD 时。

具有断电保护回写缓存的企业级 SSD 不受所有这些问题的影响:拥有非易失性缓存,它们可以忽略同步/刷新请求,提供非常高的性能和低写入放大,而不管硬件 RAID 控制器如何。考虑到如今企业级 SATA SSD 的价格有多低,我通常认为在繁忙的服务器中使用消费级 SSD 没有任何价值(除非预期的工作负载以读取为中心或以其他方式缺乏同步)。