服务器的 SSD 或 HDD

gen*_*bee 73 hardware storage hard-drive ssd

问题

我已经阅读了很多关于存储的讨论,以及 SSD 还是经典 HDD 更好。我很困惑。HDD 仍然很受欢迎,但为什么呢?

哪个更适合主动存储?例如对于数据库,磁盘一直处于活动状态?

关于固态硬盘。

优点。

  • 他们很安静。
  • 不是机械的。
  • 最快的。

缺点。

  • 更贵。

题。

  • 当SSD的一个单元的生命周期被使用时,会发生什么?磁盘是否仅减少了该单元格并正常工作?
  • 最好的文件系统是什么?ext4 好,因为它连续保存到单元格?

关于硬盘。

优点。

  • 更便宜。

缺点。

  • 如果是机械故障,我相信通常没有办法修复它。(请确认。)
  • 最慢,虽然我认为 HDD 速度通常足以满足服务器的需求。

仅仅是价格吗?为什么首选硬盘驱动器?SSD 真的对服务器有用吗?

Der*_*sar 97

我工作的一个方面是设计和构建大型存储系统(通常称为“SAN”或“存储区域网络”)。通常,我们使用 SSD 和 HDD 组合的分层方法。

也就是说,每一种都有特定的好处。

  1. SSD 的每字节成本几乎总是较高。我可以获得 10k SAS 4kn HDD,每 GB 成本为 0.068 美元/GB 美元。这意味着大约 280 美元我可以得到一个 4TB 驱动器。另一方面,SSD 的每 GB 成本通常在 10 到 20 美分之间,甚至高达每 GB 美元。

  2. 在处理 RAID 时,速度变得不那么重要,而大小和可靠性更重要。我可以用比 SSD 便宜得多的 HDD 构建 12TB N+2 RAID 系统。这主要是由于第 1 点。

  3. 如果处理得当,HDD 的更换和维护成本非常低。由于每字节成本较低,因此将因故障而导致的 HDD 更换为另一个更便宜。而且,由于 HDD 故障通常与时间与写入数据有关,因此在重建 RAID 阵列时更换它不会自动开始使用 TBW。(诚​​然,用于重建的 TBW 百分比总体上很小,但重点是。)

  4. SSD市场相对复杂。有四种(当前,在撰写本文时)主要类型的 SSD,从支持的总写入次数最多到最低:SLC、MLC、TLC、QLC。SLC 通常支持最大的总写入数(SSD 寿命的主要限制因素),而 QLC 通常支持最少的总写入数。

也就是说,我见过的最成功的存储系统都是分层使用的两个驱动器。就我个人而言,我向客户推荐的所有存储系统通常都遵循以下层次:

  1. 第 1 层通常是一个(或多个)仅 RAID 10 SSD 层。数据始终写入第 1 层。
  2. 第 2 层通常是一个(或多个)RAID 50 或 5 SSD-only 层。数据从第 1 层老化到第 2 层。
  3. 第 3 层通常是一个(或多个)RAID 10 HDD-only 层。数据从第 2 层老化到第 3 层。
  4. 第 4 层通常是几组 RAID 6 HDD-only 层。数据从第 3 层老化到第 4 层。我们使 RAID 6 组尽可能小,以便最大限度地支持驱动器故障。

随着层的增加,读/写性能会下降,数据将向下传播到大多数数据共享相同访问/修改频率的层。(也就是说,读取/写入数据的频率越高,它驻留在的层级就越高。)

在那里撒上一些精心设计的光纤通道,您实际上可以构建一个吞吐量高于板载驱动器的 SAN 。

现在,对于您提到的某些特定项目:

您的 SSD 问题

SSD究竟是如何工作的,当一个单元的生命周期结束时,然后呢?磁盘仅通过此单元格减少并正常工作?或者当时发生了什么?

  • 两种驱动器类型通常都设计有许多“备用”单元。也就是说,它们上面有“额外”的空间,您无法访问,如果单元格死亡,则支持失败。(IIRC 就像 7-10%。)这意味着如果单个“单元”(HDD 上的扇区)死亡,则使用“备用”。您可以通过两个驱动器上的 SMART 诊断实用程序检查此状态。

编写的最佳解决方案(文件系统)是什么?我认为 ext4 很好,因为它连续保存到单元格?

  • 对于 SSD,这完全无关紧要。单元定位无关紧要,因为访问时间通常是线性的。

您的硬盘问题

万一出现机械故障,没有办法修复(是不是)?

  • 部分不正确。在大多数故障情况下,HDD 实际上更容易恢复数据。(注意:我说容易,不容易。)需要专门的设备,但这里的成功率似乎相当高。盘片通常可以读的专用设备,它允许数据恢复,如果驱动器是死的硬盘本身。

最慢,但我认为速度不是那么重要,因为硬盘的速度绝对足够服务器使用?

  • 通常,在使用 RAID 时,单驱动器速度不再是一个因素,因为您可以使用速度配对 RAID 设置来提高整体速度。(RAID 0,5,6中经常使用,常在串联)。对于具有高IO的,HDD的数据库通常是不够的,除非设计非常故意。您可能需要 SLC 写入密集型 SSD 用于数据库级 IO。

  • 关于 SSD 类型 - SLC、MLC、TLC、QLC 现在由 PLC 加入([ref](https://arstechnica.com/gadgets/2019/09/new-intel-toshiba-ssd-technologies-squeeze-more-bits -进入每个单元格/)) (3认同)
  • @JonasSchäfer 现在几乎任何东西都有自己的磨损平衡,只要它有一个控制器。小型嵌入式设备倾向于使用直接连接到具有内置控制器的 SoC 的 SLC NAND。那些经常使用 UBI,它基本上是一个以闪存为中心的 LVM,具有内置的磨损均衡(并用于跨文件系统进行磨损均衡)。 (2认同)
  • @JeremyFriesner通常,如果它是备份存储驱动器,或者某些东西不够重要而无法备份,或者有人忘记了,那么问题就会出现。事情发生了,我们只是人类。我看到一个新的硬盘驱动器被放入复制设备中,旧驱动器在复制过程中损坏,并且只完成了一半。我们有一个选择:数据恢复。 (2认同)

Cho*_*er3 18

HDD仍然是首选

是吗?我不确定这是不是诚实。

HDD 现在以合理的价格提供大尺寸,这是不可否认的,而且我认为人们也相信它们比 SSD 具有更长的数据保留时间。此外,当 SSD 死亡时,它们往往会一次性完全死亡,而 HDD 倾向于以更可预测的方式死亡,这可能允许更多时间在需要时首先获取数据。

但除此之外,SSD 是大多数用途的前进方向 - 您需要一个引导对,R1 中的几个 500GB SATA 不会花费地球,对于数据库使用,您无法真正击败 SSD(只要您的日志在无论如何都是高耐力型号)。对于备份,是的,您可能会使用大型 7.2k 硬盘,对于非常大的数据集也是如此(事实上,我去年年初购买了超过 4,000 个 10TB 硬盘,仅用于满足此要求),但除此之外,SSD 才是前进的方向。

  • 我怀疑 VPS 提供商发现硬盘驱动器在空间用完之前就用完了 IOP。 (5认同)
  • SSD 大约比 HDD 快 100 倍或更多。时尚是一件很有趣的事情。你提到了数据库——这就是“过载”和“不可测量的负载”之间的区别。您也忽略了带有 SSD 回写缓冲区的 HDD ;) (4认同)

Joh*_*ald 7

适用于所有热门事物的固态:交互式使用、数据库、任何在线事物。主轴作为廉价的热存储,仅用于不太冷的存档或不常访问的数据。特别是,备份之前暂存区中的 HDD 会归档到磁带。

热与冷的不同媒体类型也有助于一些多样性。如果同时取出在线和备份数据,某个品牌的 SSD 控制器中的数据丢失缺陷会严重得多。不太可能,但无论如何,主轴和磁带都很便宜,所以为什么要冒险。

只要阵列保持冗余并备份,任何特定设备的故障模式并不重要。通常该过程是更换出现任何故障症状的驱动器。尝试在您的测试系统中修复它们,其中任何灾难性故障都不会影响生产服务。

文件系统是个人喜好的问题。虽然有 SSD 优化的文件系统,但您知道并可以修复的内容可能更为重要。


Joe*_*Joe 6

SSD 的一大优势是速度和可靠性,但其中一个肮脏的小秘密是 SSD 的写入周期数有限。如果您正在构建具有大量硬盘驱动器写入活动的服务器,例如数据库或电子邮件服务器,您将需要具有更高耐用性的更昂贵的 SSD。

NAND Flash 有 3 种类型

  • 薄层色谱
  • MLC
  • SLC

TLC 主要设计用于写入周期很少的 Web 服务器或存档服务器。MLC 适用于混合读取和写入周期的服务器,例如低容量数据库服务器。SLC 专为具有大量读/写周期的服务器而设计,例如大容量数据库服务器。

SSD 和 HDD 之间的主要驱动因素是应用和预算。在一个完美的世界中,SLC SSD 硬盘将使标准 HDD 过时,但我们还没有做到这一点。