问题

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

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

关于SSD。

专业人士。


它们安静
不是机械的。
最快。

缺点。


更贵。

问题。


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

关于HDD。

专业人士。 br




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

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

评论

旋转防锈仍然是每GB的最佳价格,尤其是当您需要大量存储时。通过任何其他指标,功耗,性能,噪声,重量等。旋转磁盘被(正确指定)SSD和NVMe存储击败了。

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

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

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

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

#1 楼

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

说,每个方法都有其特定的好处。每个字节。我可以获得每GB成本$ 0.068 / GB USD的10k SAS 4kn HDD。这意味着大约280美元,我可以得到一个4TB的驱动器。另一方面,SSD的每GB成本通常在10到20美分之间,甚至高达每GB成本。
在处理RAID时,速度变得不那么重要了,而速度和可靠性却变得越来越重要。重要得多。我可以用比SSD便宜得多的HDD构建12TB N + 2 RAID系统。这主要归因于第1点。
如果处理得当,HDD的更换和维护成本非常低廉。因为每字节成本较低,所以由于故障而用另一个替换HDD便宜。而且,由于HDD的故障通常与时间和数据写入有关,因此更换硬盘在重建RAID阵列时不会自动开始消耗TBW。 (可以肯定的是,用于重建的TBW百分比总体上很小,但这很明显。)
SSD市场相对复杂。从支持的总写入数量到最低的四种类型(目前,在撰写本文时)是SSD的主要类型:SLC,MLC,TLC,QLC。 SLC通常支持最大数量的总写入(SSD寿命的主要限制因素),而QLC通常支持最低数量的总写入。可以看到两个驱动器都在使用中。就个人而言,我推荐给客户端的所有存储系统通常都遵循以下层:第1层通常是(或几个)仅RAID 10 SSD层。数据始终写入第1层。
第2层通常是(或几个)RAID 50或5仅限SSD的层。数据从1级到2级老化。
层3通常是一个(或几个)仅RAID 10 HDD层。数据从第2层老化到第3层。
第4层通常是几组仅RAID 6 HDD的层。数据从3层老化到4层。我们将RAID 6组设置得尽可能小,以便最大程度地支持驱动器故障。

读/写性能随着您的提高而降低在层之间,数据将向下传播到一层,其中大多数数据共享相同的访问/修改频率。 (也就是说,数据读取/写入的频率越高,驻留在其上的层就越高。)

在其中撒一些设计良好的光纤通道,您实际上可以构建一个具有

现在,您要提到的一些特定事项:

您的SSD问题


当一个单元的生命周期用尽时,SSD到底如何工作?磁盘仅由该单元减少,并且可以正常工作吗?还是发生了什么?



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


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



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

您的硬盘问题


如果发生机械故障,则无法修复(正确)?



部分不正确。实际上,在大多数故障情况下,HDD都更容易恢复数据。 (注意:我说的容易些,而不是容易的。)需要专用设备,但是这里的成功率似乎很高。通常可以通过特殊设备从HDD本身读取磁盘片,如果驱动器已损坏,则可以恢复数据。 HDD的速度对服务器使用绝对足够吗?




通常,使用RAID时,单驱动器速度变得不那么重要了,因为您可以使用速度配对RAID设置让您提高整体速度。 (RAID 0、5、6经常串联使用。)对于具有较高IO的数据库,除非经过特别设计,否则HDD通常是不够的。您可能需要SLC写密集型SSD,用于数据库级IO。


评论


HDD具有更高的功耗。

–MichałLeon
19-10-5在13:12

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

– Jan Dorniak
19-10-5在16:43

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

– Peter Cordes
19-10-6在0:01



关于SSD类型-PLC现在加入了SLC,MLC,TLC,QLC(参考)

–乔纳森
19-10-6在12:02



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

– Der Kommissar
19-10-17在18:54

#2 楼


HDD还是很受欢迎的


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

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

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

评论


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

– genderbee
19-10-4在12:30

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

–Chopper3
19-10-4在15:27

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

– TomTom
19-10-4在18:24

我怀疑VPS提供商发现HDD在耗尽空间之前就已经耗尽了IOP。

– Peter Green
19-10-4在21:52

#3 楼

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

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

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

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

#4 楼

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

NAND闪存具有3种类型


TLC
MLC
SLC

TLC主要用于Web服务器或具有很少写入周期的存档服务器。
MLC用于具有读写周期混合的服务器,例如低容量数据库服务器。
SLC设计用于具有大量读/写操作的服务器像大容量数据库服务器这样的写入周期。

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

评论


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

– Havegooda
19-10-4在14:22

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

– Peter Cordes
19-10-6在15:07

#5 楼


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


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

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


哪种存储更适合主动存储?


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

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

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

SSD单元技术也有了一代又一代的改进,更好光刻和3D NAND相比旧的2D NAND改善了密度和性能,正如分析师Jim Handy所说,“今天的MLC比昨天的SLC更好。”

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

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

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


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


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

SSD还可以使备份和恢复的数量级更快。我的数据库从备份大约需要10分钟才能恢复到慢速SSD,或者大约11秒可以恢复到非常快的SSD,而备份到HDD大约需要25分钟。这至少是2个数量级,根据工作量的不同,差异可能很大。它实际上可以在第1天收回成本。

具有大量小写操作的数据库可以在数小时内杀死消费者级的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可能无法恢复...只需做备份,而无需进行维修。

#6 楼

两者。

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

我已经看到硬盘坏了。实际上,它们的数量更多。

可靠性方面有很多。

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

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

评论


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

– Peter Cordes
19-10-6在15:14

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

–卢卡斯·霍尔特(Lucas Holt)
19-10-17在16:48

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

–fraxinus
19-10-18在6:52

#7 楼

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


性能(在访问时间和吞吐量方面)
每GB的成本

SSD将HDD从水中吹走在性能方面。如果您需要高吞吐量和低访问时间,那么固态硬盘是无与伦比的。

但是,每GB固态硬盘的成本比HDD高得多。如果您需要大量存储空间,那么吞吐量或访问时间的重要性就不那么重要了。没有什么能比HDD胜过了。

适当的RAID级别可能有助于提高吞吐率(带宽)(虽然访问时间并不多,除非您的驱动器积压得足够多,以至于没有排队问题。)

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

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

无论什么情况:


您需要备份。与驱动器(SSD或HDD)是否发生故障无关,而与时间无关。
如果服务器具有任何重要性,则您需要某种RAID来维持正常运行时间并保护数据。 RAID通常也会提高性能。这很大程度上取决于您的要求(同样,性能/成本方面的折衷)。


#8 楼

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

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

Intel Optane(基于Xpoint而不是NAND)在速度和速度方面都处于自己的一类。耐用性,每GB的价格非常高:100 GB的Optane P4801x的成本超过260美元,每GB的成本> 2.6美元,与HDD相比要高出80倍。因此,它经常被用作“应用程序加速器”或日志/日志设备。出于这些原因,现代的SAN和服务器通常使用分层或缓存的存储子系统:


分层系统将热数据放入快速层(SSD),将冷数据放入慢层(HDD)。在这样的系统中,总存储空间是快和慢层的总和。但是,它们是静态所有分区的-如果冷数据突然变热,则需要等待将其移至快速层。此外,快速层必须与慢速层一样持久;
基于缓存的系统将所有数据存储在慢速HDD上,并在SSD上添加了动态缓存,用于复制(而不是移动)热数据;这意味着此类系统的总存储空间等于慢速层提供的存储空间,但具有动态缓存的更多灵活性。使用基于缓存的系统,可以通过廉价,廉价的SSD形成快速层。

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

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


如果需要廉价地存储多个TB的数据,那么HDD(或最便宜的消费类SSD)才是行之有效的方法。顺序工作负载(例如文件服务器),则不需要SSD;
如果工作负载是随机IO丰富的,则可以从SSD中受益匪浅;
如果您具有fsync繁重的写入模式,则企业SSD (或具有受功耗保护保护的写回缓存的强大RAID控制器)是您的最佳选择,但缺点是成本较高。


#9 楼

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

将HHD用于缓慢的存档存储。 />
通常,尽管HDD的单位演出成本低于SSD,但其可靠性却低于SSD。 。

#10 楼

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

#11 楼

我是这样看的,

我要为服务器构建服务的是什么?

如果它是诸如LDAP / AUTH / Printing等基础设施服务,而您要提供服务,这主要是内存问题,可以省钱并使用HDD(7.2k或10k可能是RAID 1 SSD引导设备)并向其扔出大量内存。

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

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

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

#12 楼

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

HDD可以很好地执行顺序存储任务:


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

HDD也适用于对延迟不敏感的任务:


(单个地)归档文件
小到足以在内存中运行的小数据库
非OS软件文件(如果SSD装满)

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

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

#13 楼

如果需要安装


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

然后HDD更加可靠
SSD的覆盖速度似乎更慢

SSD令人惊叹!它使一次EB的物理存储革命了小柜子/机架

可以安装一个大的氮气冷却器,一个很小的空间可以容纳一个纯粹的存储架

SSD Cache是​​另一种惊人的快速读取技术,可以将其缓存到另一个级别