服务器的SSD或HDD


68

问题

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

主动存储哪个更好?例如对于数据库,磁盘始终处于活动状态?

关于SSD。

优点

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

缺点

  • 比较贵。

题。

  • 如果使用SSD的一个单元的生命周期,那么会发生什么?磁盘是否仅通过该单元减少并且可以正常工作?
  • 最好的文件系统是什么?ext4很好,因为它可以连续保存到单元格中吗?

关于硬盘。

优点

  • 便宜点

缺点

  • 如果发生机械故障,我相信通常无法修复。(请确认。)
  • 最慢,尽管我认为硬盘速度通常足以满足服务器需求。

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


22
旋转防锈仍然是每GB的最佳价格,尤其是当您需要大量存储时。按照任何其他度量标准,功耗,性能,噪声,重量等。旋转磁盘受到(正确指定)SSD和NVMe存储的
打击

您询问有关数据库服务器的信息,但我想澄清一下。该服务器将成为数据库服务器,还是其工作量?您对性能有何要求?HDD价格便宜,SSD在大多数其他方面也很出色。
罗伯·皮尔森

1
我认为固态硬盘是“安静”的专业版。服务器的电源和冷却风扇将产生比驱动器更大的噪声。
Bert

5
从我的角度来看,除了大容量存储之外,SSD在性能或可靠性是任何因素的任何环境中都取代了HDD。(IE我不同意HDD在服务器中是首选的,并在很多年前由我控制的大多数都用ssds代替了HDD-并且从未回头)。在大多数服务器应用程序中,硬盘的速度非常重要。
davidgo,

9
您对SSD的理解似乎不完整。当细胞死亡时,其简单标记为死亡,其内容将重新映射。任何文件系统都可以正常工作。SSD具有更多的单元,然后进行广告(超额配置)和抽象层,因此OS并未意识到移动单元内容的过程。如果在服务器中,请使用RAID> 0,因为当SSD发生故障时,它们更有可能突然发生灾难性的灾难。(尽管它们的强度大约是HDD的10倍)
davidgo,

Answers:


91

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

也就是说,每个人都有其特定的好处。

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

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

  3. 如果处理得当,硬盘的更换和维护成本非常低廉。因为每字节成本较低,所以由于故障而用另一个替换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的层。数据从1级到2级老化。
  3. 层3通常是一个(或几个)仅RAID 10 HDD层。数据从2层老化到3层。
  4. 第4层通常是几组仅RAID 6 HDD的层。数据从3层老化到4层。我们将RAID 6组设置得尽可能小,从而最大程度地支持驱动器故障。

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

在其中散布一些设计良好的光纤通道,您实际上可以构建具有比板载驱动器更高的吞吐量的SAN 。

现在,您要提到的一些具体事项:

您的SSD问题

当一个单元的生命周期用尽时,SSD到底如何工作?磁盘仅被此单元格还原并正常工作吗?还是发生了什么?

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

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

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

您的硬盘问题

如果发生机械故障,无法修复(对)吗?

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

最慢,但是我认为速度不是那么重要,因为HDD的速度对于服务器使用来说绝对足够吗?

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

1
HDD具有更高的功耗。
米哈尔莱昂

2
如今,只要拥有控制器,@JonasSchäfer几乎都会拥有自己的磨损均衡功能。小型嵌入式设备倾向于使用直接连接到具有内置控制器的SoC的SLC NAND。那些人经常使用UBI,这基本上是具有内置损耗平衡的Flash聚焦LVM(并用于实现损耗平衡跨文件系统)。
Jan Dorniak '19

1
@JonasSchäfer:AFAIK,如果没有磨损平衡,您将无法购买SATA或SAS SSD 。(Intel Optane SSD内部使用3D XPoint而不是NAND闪存,因为它具有更高的写耐久性,因此可能不需要它。)如果您仍然要拥有一个在写前处理擦除的控制器(SAS或SATA,甚至是NVMe)透明地,您还将建立损耗平衡。
彼得·科德斯

3
关于SSD类型-SLC,MLC,TLC和QLC现在由PLC(ref)联合起来
乔纳森

1
@JeremyFriesner通常,如果它是备份存储驱动器,或者某些不重要的东西无法备份,或者有人忘记了,就会出现问题。事情发生了,我们只是人类。我看到新的硬盘驱动器掉入了复制设备,旧的驱动器在复制过程中死了,而且只完成了一半。我们有一个选择:数据恢复。
Der Kommissar,

18

硬盘仍然是首选

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

HDD现在以合理的价格大批量推出,这是不可否认的,而且我认为人们也相信它们比SSD拥有更长的数据保留时间。同样,当SSD死亡时,它们趋向于完全消失,而HDD倾向于以更可预测的方式死亡,如果需要的话,它可能允许更多的时间首先取出数据。

但是,否则SSD会成为大多数用途的前进之路-您想要一个引导对,R1中的几个500GB SATA不会花费大笔费用,对于DB使用,您无法真正打败SSD(只要您的日志处于打开状态)高耐久性模型)。是的,对于备份,您可能会使用大型7.2k HDD,对于大型数据集也是如此(事实上,去年初,我仅出于此要求就购买了4,000多个10TB HDD),但否则SSD是前进的方向。


那么,SSD现在才很流行吗?难道这不是花哨的话吗?由于某些vps提供商仅具有SSD,因此价格更高。我正确理解,1个单元失效=所有磁盘失效?
性别比

1
“ 1个单元已耗尽=所有磁盘都已失效”-不,距离还很远,但是当它们正确地死亡时,它们往往会一口气掉下来。
Chopper3

3
SSD比HDD快100倍左右或更多。时尚是一件有趣的事。您提到数据库-这是“超载”和“无可测量的负载”之间的区别。您也忽略了具有SSD回写缓冲区的HDD;)
TomTom,

5
我怀疑VPS提供商在使用HDD时发现它们在IOP耗尽之前就已经用完了。
格林

7

固态的一切事物:互动使用,数据库,任何联机的事物。主轴作为廉价的热存储设备,仅用于不太冷的存档或不经常访问的数据。特别是将备份归档到磁带之前,暂存区中的HDD。

冷热介质的不同介质类型也有助于多样性。如果同时读取在线数据和备份数据,则品牌SSD控制器中的数据丢失缺陷将更加严重。不太可能,但是主轴和磁带仍然很便宜,所以为什么要冒险。

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

文件系统是个人喜好问题。尽管有经过SSD优化的文件系统,但是您知道并可以修复的东西可能更为重要。


6

SSD的最大优点是速度和可靠性,但是,肮脏的小秘密之一是SSD的写入周期数有限。如果要构建具有大量硬盘写入活动的服务器(例如数据库或电子邮件服务器),则需要具有更高耐用性的更昂贵的SSD。

NAND闪存有3种类型

  • 薄层色谱
  • 薄层色谱
  • SLC

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

SSD和HDD之间的主要驱动因素是应用程序和预算。在理想的情况下,SLC SSD硬盘驱动器会使标准的HDD过时,但我们还没有到此。


还有一种称为QLC的NAND技术(TLC中的Quad vs Triple)。到那时,您将牺牲更多/更便宜存储的耐用性。
Havegooda

@Havegooda:还有非闪存固态存储,尤其是使用3D XPoint(相变内存)的Intel Optane DC SSD。 出色的写入耐久性,甚至比SLC闪存还快。
彼得·科德斯

4

硬盘仍然是首选,但是为什么呢?

这取决于您与谁交谈,他们的背景(管理,IT,销售等)以及讨论所参考的服务器类型。通常,HDD的每字节成本降低了一个数量级,但使用的功率更高,并且几乎总是较慢,取决于工作负载。

几乎总会降低成本,以及在给定数量的服务器中可以容纳多少存储空间。如果您可以通过单个SSD来获得5磁盘阵列的性能,则SSD可能会便宜很多,并且仅消耗少量的电量,但是您可能还会获得1/10的存储空间。

主动存储哪个更好?

这就是它变得复杂的原因,也是为什么许多人会跳过复杂性而只使用他们知道的HDD的原因。

SSD的等级不同,对可写入单元的数据量有所限制,这与主机写入的数据量不同。写入少量数据最终会向单元中写入大量数据,这称为写入放大,并且可以快速终止具有低耐用性等级的驱动器。

SSD单元以其可以存储的位数来命名,为了存储n位,每个单元需要2 ^ n的电压电平。TLC(三位)需要8个电压电平来寻址这些位。通常,每次增加每个单元的位级别,单元耐久性就会下降3-10倍。对于例如,细胞死亡,企业EMLC 30000倍,MLC 10000,TLC 5000,QLC 1000之前的SLC驱动器可以写所有小区100000倍。

分析师Jim Jimy表示,与以前的2D NAND相比,SSD单元技术也有了一代又一代的进步,更好的光刻技术和3D NAND改善了密度和性能。

SSD实际上并不直接写入寻址的单元,而是写入单元块。这样,该块具有更一致的单元写入量,并且当单元跌落到容限范围之外时,整个块将被标记为不良,并且数据将移至新的块。SSD的耐用性取决于单元类型,可用的备用块数,纠错的开销以及驱动器如何使用缓存和算法来减少写放大。制造商选择标记为不良的公差也起作用,企业驱动器将标记出不良的块比消费型驱动器更早,即使其中任何一个仍能正常运行。

企业级“高写入” SSD基于SLC或eMLC单元,并具有大量备用块,通常具有带电容器的大缓存,以确保断电时缓存可以冲入磁盘。

对于“高读取”应用程序(例如文件服务器),需要快速访问时间的驱动器的耐用性也要低得多,它们以降低的耐用性为代价,每字节成本更低,具有不同的单元类型,更少的备用空间,依此类推,可能只有“高写入”驱动器耐用性的5%,但是如果正确使用,他们也不需要。

例如对于数据库,磁盘始终处于活动状态?

我的数据库很小,断断续续的读取占访问的95%,并且大多数都缓存在RAM中,在HDD上几乎和在SSD上一样快。如果更大,则系统上将没有足够的RAM,并且SSD开始在访问时间上产生巨大差异。

SSD还可以使备份和恢复速度提高几个数量级。我的数据库从备份在大约10分钟内恢复到了缓慢的SSD,或者从大约11秒恢复到了一个非常快的SSD,到HDD的备份大约需要25分钟。这至少是2个数量级,根据工作量的不同,差异可能很大。它可以在第一天就收回成本。

具有大量小写操作的数据库可在数小时内杀死消费者级TLC驱动器。

SSD对服务器真的有用吗?

绝对,如果为应用程序选择了正确的驱动器类型和等级,则如果选择错误,将是一场灾难。

我的服务器运行多个数据库,再加上高读取网络存储,高写入安全镜头存储,混合读写文件存储和客户端备份。该服务器具有用于大容量网络存储和NVR的RAID-6 HDD阵列,用于MySQL的单个高性能MLC SSD,以及RAID-5中的3个消费者TLC驱动器,用于客户端和数据库备份以及快速访问网络存储。

SSD RAID上的写入速度大约与HDD RAID相同,但是随机存取读取速度在SSD RAID上快10倍以上。这再次是一种消费型TLC SSD,但是由于顺序写入速度比千兆LAN快3倍,因此它永远不会过载,并且如果在远程访问系统时进行本地备份,则会产生大量开销。

大多数SSD还提供即时安全擦除(ISE),可在几秒钟内擦除数据,而对于不具备此功能的HDD则需要数小时或数天,只有少数企业级HDD倾向于提供ISE,但它们正在变得越来越流行。比较普遍;普遍上。如果您要淘汰或重新使用驱动器,这将非常有用。

最好的解决方案(文件系统)是什么?

取决于所需的数据类型和文件系统功能的类型。我仅使用EXT4和BTRFS(需要快照和校验和)。文件系统开销将减少可用空间,并且会稍微缩短SSD的寿命,BTRFS对于校验和和其他功能具有高开销,并且快照将占用大量空间。

如果发生机械故障,无法修复(对)吗?

无论驱动器类型如何,您是否曾经必须在死驱动器上进行数据恢复?这可能会非常昂贵,最好先进行分层备份,在主存储上进行RAID,在不同设备或计算机上本地进行版本备份,然后再同步到异地或云中。1TB的云存储每月需要花费5美元,在HDD上进行数据恢复可能会花费您2英镑,而且失效的SSD可能无法恢复...只需做备份,而无需进行修理。


2

都。

我还没有看到由于写入负载而导致SSD死亡的情况(在这种情况下,它们应该变为只读状态)。并不是说它们不会因为其他原因而死亡-包括但不限于过热和固件错误。

而且我已经看到硬盘坏了。实际上,它们更多。

可靠性如此重要。

在某些情况下,混合RAID1(HDD + SSD)是有意义的。这样,您可以对与这两种故障相关的故障模式进行对冲,并且仍然具有SSD读取性能。

在其他情况下,仅将SSD用于文件系统的日志是有意义的-您将获得HDD的2倍的写入性能(因为您节省了一半的写入和一半的查找),即使滥用了SSD,通常也没有任何风险死。Ext4非常优雅地丢失了它的日志。


许多FS仅记录日记元数据,例如ext4和default data=ordered。除非您的工作负载仅涉及重命名和删除文件/目录以及创建空文件,否则您不会“节省一半的写操作”。但是,可以,SSD日志应该通过删除大量小写来显着提高大多数工作负载。
彼得·科德斯

SSD不会只读。他们通过设计自我毁灭。的确,它们只有在电源关闭之前才读。如果您在快速失败后重新启动并在系统打开时进行读取,则可以复制数据(也许)。如果您关闭它,它就死了。
卢卡斯·霍尔特

我确定我已经在多个SSD文档中阅读了只读内容。因此,我认为这是合理的。实际上,我在USB闪存盘中只看到过两次。我手中没有SSD变为只读状态。
fraxinus

2

要考虑的两个主要因素是:

  • 性能(访问时间和吞吐量)
  • 每GB成本

SSD在性能方面使HDD脱颖而出。如果您需要高吞吐量和低访问时间,那么SSD是无与伦比的

但是,每GB SSD的成本比HDD高得多。如果您需要大量存储空间,那么吞吐量或访问时间的重要性就不那么重要了,那就没什么比HDD更好了。

适当的RAID级别可以帮助提高吞吐量(带宽)数字(不过,访问次数不是很多,除非您的驱动器积压得足够多,以至于无法排队)。

适当的缓存(例如,在服务器中放置更多RAM)可能会有助于小型数据集的读取访问时间数据。但是,对于写操作无济于事(控制器或磁盘中由电池供电的RAM高速缓存除外)。

因此,这实际上取决于您的用例。使用HDD的备份/归档服务器需要大量的容量,但并不关心访问时间或带宽,因此更好。高流量的数据库服务器将首选SSD。之间...取决于。

无论什么情况:

  • 您需要备份。这不是一个问题,如果一个驱动器(SSD或HDD)会失败,这是一个事情的时候

  • 如果服务器具有任何重要性,则需要某种RAID来维护正常运行时间并保护数据。RAID通常也会提高性能。这很大程度上取决于您的要求(同样,性能/成本方面的折衷)。


2

如前所述,最大的区别是每GB价格与随机IO性能之间的差异。

以Seagate Exos 16 TB为例:约为550美元时,其命令价格为0,034美元/ GB。现在,将其与入门级(速度方面)的美光5200 ECO 7.68 TB(价格约为1300美元)进行比较,结果得出的价格为0.14美元/ GB:HDD便宜5倍,而大2倍。另一方面,SSD随机IO性能要好得多,但有一个要点:消费类SSD,缺少受功耗保护的写回缓存,对于同步的随机IO丰富的工作负载(例如:数据库,虚拟机)来说相当慢(有时与HDD一样慢)。 )。这是非常重要的一点,很少通过在线评论来分析。企业SSD几乎都使用电容器作为掉电保护,因此不会遭受这种弱点的困扰,它具有很高的读写随机IO。

从以上内容,您可以了解为什么SSD会杀死高端15K和10K SAS磁盘:它们以可比的价格提供更好的性能(15K磁盘特别昂贵)。另一方面,7.2K HDD在大容量存储系统中具有很强的立足点。

英特尔Optane(基于Xpoint而非NAND)在速度和耐用性方面都属于同类产品,每GB的价格非常高:100 GB Optane P4801x的成本超过260美元,每GB成本为> 2.6美元,是HDD的80倍。因此,它通常用作“应用程序加速器”或日志/日志设备。

由于这些原因,现代SAN和服务器经常使用 分层缓存的存储子系统:

  • 分层系统将热数据放入快速层(SSD),将冷数据放入慢层(HDD)。在这样的系统中,总存储空间是快速层和慢速层的总和。但是,它们是静态所有分区的-如果冷数据突然变热,则需要等待将其移至快速层。此外,快速层必须与慢速层一样持久。

  • 基于缓存的系统将所有数据存储在慢速硬盘上,并在动态数据存储在固态硬盘上的动态缓存中进行了扩充 复制(而不是移动);这意味着此类系统的总存储空间等于慢速层提供的存储空间,但具有动态缓存的更多灵活性。使用基于缓存的系统,可以通过廉价,廉价的SSD形成快速层。

对于基于闪存的SSD,最佳的文件系统是什么?一个简单的答案可能是“写得更少的答案”,但是现实情况是,任何先进的文件系统技术都基于CoW方法,基于特定的实现,它可能导致相当大的写放大(即:ZFS和WALF)编写的内容将超过EXT4或XFS)。从纯粹的“无写”观点来看,我认为很难击败EXT4和XFS(尤其是在lvmthin的支持下,即使在这些经典文件系统上也可以实现快速快照);但是,我真的很喜欢ZFS增加的数据保护保证和lz4压缩。

那么,您真的需要SSD存储来完成服务器工作吗?这取决于:

  • 如果您需要廉价地存储多个TB的数据,那么HDD(或至多便宜的家用SSD)是您的最佳选择。

  • 如果您的工作负载通常是连续的(例如:文件服务器),则不需要SSD。

  • 如果您的工作负载是随机IO丰富的,则您将极大地受益于SSD;

  • 如果您具有繁重的写同步模式,则企业级SSD(或具有受功耗保护的写回缓存的强大RAID控制器)是您的最佳选择,但缺点是成本较高。


1

此处的简单答案:例如,在构建服务器以进行大而快速的数据操作(例如视频编辑)时,使用SSD来获得快速性能数据

使用HHD进行慢速归档存储。

通常,HDD的可靠性要比SSD低,即使它们的单位演出成本比SSD低。

如果要存储敏感数据,请考虑使用ssd以及hdd进行备份。


1

安静并不总是很好。就像路上的电动汽车太安静了。HDD访问噪音可以提供安全性(我在看电影时如何检测到perforce服务器的中断。(此外:链接到/ var / log / messages的换行打印机更难擦除单个条目)


1

我这样看

我正在构建服务器的服务是什么?

如果它是诸如LDAP / AUTH / Printing之类的基础结构服务,通过它您可以提供服务,则主要是内存问题,可以节省金钱并使用HDD(7.2k或10k可能是RAID 1 SSD引导设备)并向其扔内存。

确保对文件服务器使用电池备份的闪存RAID控制器,然后可以通过控制器而不是磁盘提交写入来有效地使用HDD。

如果是数据服务数据库等,则可以使用SSD突袭来实现高吞吐量,但也可以通过使用HDD来控制成本,例如,某些数据库将不需要很高的写入速度,或者不需要运行IOP即可保证使用高成本存储。

归根结底,这取决于资金和您的CFO /财务总监/ VP财务。


1

固态硬盘显然是最好的,它们会变得更好,并且将继续变得更便宜,但是今天它们变得更加昂贵。

HDD非常适合顺序存储任务:

  • 数据库日志文件
  • 影片储存
  • 备份卷(批量)
  • 虚拟机快照

HDD也适合延迟不敏感的任务:

  • 归档文件(单独)
  • 足够小以足以在内存中运行的小型数据库
  • 非OS软件文件(如果您的SSD装满了)

因此,对于服务器而言,如果您有预算,则可以用SSD填充它。除此之外,使用上面不完整的列表,您可以通过与HDD混合来节省金钱。

RAID和分层不在此问题的范围内,我敢肯定还有很多其他问题。

至于SSD的生命周期,(我记得阅读Samsung Evo Pro(消费类产品)的时间比承诺的要长得多)。各个单元肯定会随着时间的流逝而中断,但这并不会破坏整个磁盘。单元寿命与写入量有关。在那个细胞上。SSD控制器会随着时间的推移将写操作分散到多个单元中。如果SSD已满99%,并且剩余空间用于大量写入操作,则剩余空间将更快地用完。


1

如果有需要

  1. 挂载基于文件的交换以增加内存
  2. 视频聊天或视频流或视频处理
  3. 处理导致单个文件大

则HDD更可靠。SSD
的覆盖速度似乎较慢

SSD真是太神奇了!
它在一个小机柜/机架中掀起了EB / Y物理存储的革命。

可以安装大型氮气冷却器,而较小的空间可以用作纯储物架

SSD缓存是另一种惊人的更快的读取技术,可将缓存提高到另一个层次

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.