概括
建议使用二手的企业级和数据中心固态硬盘进行绘图,因为要绘制大量数据需要更高的容量,更高的性能,持续的带宽以及较高的耐用性等级。您可以在参考硬件Wiki中查看社区使用的内容,以及SSD耐久性Wiki中的数据中心SSD列表。
高性能绘图驱动器PCIe 4.0 NVMe。其中大多数是全新的,更难找到,但可能用于绘制的最快驱动器
-
U.2:Intel SSD D7-P5510,三星PM1735,PM9A3或Kioxia CM6或CD6
-
M.2 110毫米:PM9A3,Kioxia XD6
主流首选
-
U.2:Intel SSD DC P4510或P4610,三星PM983 三星PM1725a,美光9300,Kioxia(以前是东芝Memory)CM5
-
M.2 110mm:三星PM983
-
PCIe 3.0 x8 AIC:P4608,P4618
最有价值的选择(旧驱动器型号3-5年)
-
U.2,PCIe AIC:英特尔SSD DC P3700,英特尔SSD DC P3600,P3608
-
M.2:Kioxia XD5,LiteOn EPX,三星PM963
顶级SATA SSD
-
旧的Intel(S3700,S3710,S3610),新的Intel(S4510,S4610),美光5300,三星PM / SM883、863
绘图过程需要临时(临时)存储容量才能创建绘图。由于该过程需要经过排序和算法压缩,因此需要比最终绘图大小更大的容量。
K值
DRAM(MiB)
临时空间(GiB)
临时空间(GB)
32
3389
239
256.6
33
7400
512
550
34
14800
1041
1118
35
29600
2175
2335
绘图过程使用此临时存储在绘图过程的各个阶段将文件移入和移出DRAM,而高性能磁盘存储将缩短绘图时间。
容量
找出要创建的并行绘图的目标数量,然后将其除以每个绘图所需的临时空间总量。通常,由于总线带宽的限制,SATA SSD在经过两次绘制过程后开始变慢(请参见下面的更多信息),因此,目标是480-960GB SATA SSD。NVMe SSD可以并行支持更多地块,而企业级TLC驱动器通常在读密集型/主流读卡器的容量为1.92、3.84和7.68TB,混合使用时为1.6、3.2和6.4TB。您可以查看使用plotman的情况,该工具是社区的工具,用于通过关键库上著名的@ericaltendorf自动执行绘图过程,或者手动进行交错以获得更好的容量利用率。在整个图创建过程中,该过程不需要完整的临时存储空间。但是要当心……如果驱动器上的空间不足,
以下是不同类别的SSD的容量。使用上面以GB为单位的数学公式和SSD的标签容量,计算出SSD可以支持多少个绘图过程。数学是
(number of SSDs) x (capacity of SSD in GB) / temp space per K=32 = total amount of parallel processes
SSD类型
容量
消费者
500GB,1TB,2TB,4TB
数据中心NVMe –超大规模
960、1920、3840GB
企业SATA最近
480、960GB,1.92、3.84、7.68TB
老企业(2014-2016)
200、400、800、1600GB
老英特尔(2014-2017)
1TB,2TB,4TB,8TB
企业NVMe读密集型(1 DWPD)
960GB,1.92、3.84、7.68TB
企业NVMe混合使用(3 DPWD)
800GB,1.6、3.2、6.4、12.8 TB
一种非常有效的绘图方式是将多个小型SSD一起RAID 0。RAID 0(称为条带化)不提供任何数据完整性–主要目的是提高阵列容量和性能。与单驱动器相比,这具有获得更好的容量利用率的优势(例如,在480GB驱动器上,仅使用356GB,其余未使用)。进程也不是同时写入的,因此RAID有助于在许多驱动器上分配IO并提高性能。小容量数据中心SATA SSD(400、480GB)是连接驱动器(廉价的SATA电缆)的简便方法,因为几乎每个台式机主板都支持4-6个SATA端口。像mdadm这样的软件RAID的效率很高,英特尔使用NVMe RAID以近乎线性的比例发布比例编号。如果您是mdadm的新手,英特尔VROC指南(在Linux中使用mdadm RAID)具有一些基本命令。
消费类固态硬盘
消费类NVMe SSD已针对低功耗,低成本和主流台式机应用程序(例如游戏,内容创建,工作)的性能进行了优化。如今,它们几乎完全采用M.2 80mm尺寸,以兼容具有相同设备的台式机和笔记本电脑。有更高端的发烧友客户端NVMe SSD,它们可以更快地进行优化以提高性能。消费类NVMe市场在2020年出货量超过1亿个,因此NVMe SSD来自许多不同的供应商,产品和固件。消费类驱动器通常采用某种SLC缓存来提高小容量SSD的性能,而NAND芯片随着时间的流逝变得越来越大,这虽然有利于成本,但会导致每个SSD的裸片数量减少以及并行度降低。消费类NVMe SSD通常还具有较少的备用区或预留空间,
驱动器装满后,性能会大大下降。SSD的性能非常细微,因为SSD的性能随工作负载而变化很大。工作负载的块大小(或称为传输大小)和队列深度(未完成的命令数),传输的数据量以及读/写的混合可能会有所不同。性能以IOPS(每秒输入/输出操作数,乘以块大小得出带宽),延迟,服务质量(QoS或随时间变化的延迟)等指标(稳定性和方差)来衡量。更令人困惑的是,SSD的性能取决于驱动器的满载程度(作为“备用区域”的函数),以用于SSD中的垃圾收集以及各种不同的缓存算法。许多经验丰富的工程师被技术公司全职聘用来衡量绩效,不幸的是,通常无法在短时间内测量出设备的真正准确的性能。消费型固态硬盘在驱动器为空时进行测量,数据中心和企业固态硬盘在驱动器已满时(最坏的情况)进行测量。
与数据中心SSD相比,消费类NVMe SSD的性能,形状因数和功率限制之外,它们的NAND耐久力要低得多,因为通常来说,消费者并不需要太多。
数据中心与企业
许多人可以互换使用它们,但是一些SSD供应商拥有“数据中心”类NVMe SSD,该产品出售给Facebook和Microsoft等超大规模数据中心。SNIA有一个方便的图表可以显示出差异,但通常在价格,耐用性,外形和功能方面都存在差异。企业级SSD由Dell EMC,HPE,Oracle,Lenovo等存储公司使用。它们通常以读密集型(1 DWPD持久性)和混合使用(3 DWPD持久性)来使用,后者适合于写密集型工作负载,例如缓存和数据库(或…绘图!)。数据中心固态硬盘的设计采用不同的外形尺寸(如下所述),与消费类M.2 SSD相比,具有更高的性能和功耗,专为100%占空比(每天一整天)的工作负载而设计,甚至是耐久性最低的数据中心硬盘比消费类SSD高3-5倍。企业级固态硬盘的故障率也非常低,这就是为什么在5年保修后很容易在eBay上找到它们的原因,由于没有运动部件(例如HDD),许多产品的使用寿命比这更长。您可以在以下位置找到数据中心SSD的评论ServeTheHome,Storage Review等。
形状因数决定了最高性能
由于该协议具有可扩展性,因此NVMe SSD具有各种形状,尺寸,功率和性能。您具有决定物理特性的形状因数– SSD的容量,电路板的物理尺寸,NAND封装的数量,控制器的大小以及真正决定最高性能的功率。这意味着您具有用于移动系统的小型BGA,用于笔记本电脑和台式机的M.2,用于企业服务器的U.2和用于标准PCIe插槽的AIC(卡中)。诸如EDSFF之类的数据中心正在出现新的标准,这些标准以英特尔的“统治者”形式为基础。在移动笔记本电脑和台式机中,M.2是主流形式。您可以在SNIA上了解有关SSD外形的更多信息。更大的功率=更高的性能=更高的热量。注意…如果将U.2 NVMe放在台式机上(实际上这适用于任何SSD),请确保其具有适当的气流。U.2是最常见的企业SSD尺寸,但是M.2 110mm在Facebook和Microsoft等一些超大规模云提供商中也很受欢迎。我建议使用数据中心U.2 NVMe SSD进行绘图,但是M.2 110mm和AIC中也有很多不错的选择。
许多人正在使用容纳多个M.2的M.2运营商卡。除非它们包含PCIe交换机,否则它们大多需要BIOS中的x16到x4x4x4x4的PCIe分叉支持。
在台式机上使用U.2需要自定义适配器(除非您拥有支持本机U.2 NVMe SSD的X299板或服务器板。可以使用以下适配器。
-
PCIe附加卡式到U.2适配器,斯达PEX4SFF8639
-
DiLinKer M.2到U.2我已经在数十个台式机和驱动器上使用了它,在PCIe 3.0 x4上没有任何问题(尚未在PCIe 4.0 x4上进行过测试)
-
如果您在Supermicro或服务器平台上,则可以将此类重定时器卡与OcuLink电缆一起使用(这是PCIe兼容电缆的正式名称,尽管PCIe在许多不同类型的电缆上运行)
-
如果要在单个台式机上连接4-8 U.2,则可以使用包含PCIe开关的此类卡(无需BIOS设置!)。
耐力
SSD具有有限的耐用性,或者您可以在设备用尽之前将其写入SSD的数据量,从而无法再安全地存储数据。SSD行业使用耐力一词,但也称为SSD寿命或SSD磨损。SSD供应商通常以TBW(写入的兆字节)或DWPD(每天的驱动器写入)这两种方式进行指定,这被认为是在保修期内每天可以写入设备多少的简单指标。由于对工作负载的依赖性(随机写入与顺序写入,大块大小与较小)以及随SSD上的可用空间或“预留空间”而定,SSD的耐用性将与SSD供应商指定的耐用性大不相同。主流SSD固件将未写入的LBA用作垃圾收集的备用区域,直到被写入为止,并且可以使用“ TRIM”命令再次将已使用的LBA标记为空闲。最重要的是,可以通过几个简单的方程式准确地测量和估算耐力。数据中心驱动器通常在磨损前已写入PB,而消费者驱动器在磨损前仅已写入数百TBW(写入TB)。详见SSD耐用性Wiki,我们在其中实际计算出许多不同驱动器模型在磨损之前可以完成的预期地块数量,以及最佳的耐用性价值。可以在http://intel.com/endurance上对英特尔驱动器进行建模。绘图过程每k = 32需要1.6-1.8TiB的磁盘写操作!!!这是写入的大量数据,并且将使具有较低TBW额定值的消费类NVMe驱动器消失。
MLC与TLC与QLC NAND
MLC> TLC> QLC的性能(编程和擦除时间)和耐久性(可以在设备用完之前将其写入设备的数据量)。由于出色的SSD性能和足够的耐久性(通常每天最多写入3个驱动器,并进行10,000个NAND编程/擦除周期),数据中心SSD已专门转移到TLC。这就提出了不再需要MLC的论点。消费者想要成本更低的固态硬盘,因此QLC进入了市场。由于更长的程序时间和更低的续航时间,它的性能目前比TLC差很多,但不要指望像TLC那样提高行业性能。即使对于QLC设备,耐用性实际上也不是消费者使用的问题,这仅仅是由于标准消费者每天在其设备上写入多少数据的性质所致。性能还可以通过奇特的算法,缓存和动态SLC模式来掩盖。通常,这些方法适用于主流和入门设备,但不适用于数据中心,企业和要求苛刻的创建者/工作站用例。如果您要购买5-6年的二手数据中心SSD(例如P3700),则可能仍会找到MLC驱动器。QLC非常适合容量优化的驱动器,并广泛用于云对象存储,AI等…但是,由于写入性能和耐久性(这都是绘图所必需的)之间的折衷,因此它们不适合绘图。如果您要购买5-6年的二手数据中心SSD(例如P3700),则可能仍会找到MLC驱动器。QLC非常适合容量优化的驱动器,并广泛用于云对象存储,AI等…但是,由于写入性能和耐久性(这都是绘图所必需的)之间的折衷,因此它们不适合绘图。如果您要购买5-6年的二手数据中心SSD(例如P3700),则可能仍会找到MLC驱动器。QLC非常适合容量优化的驱动器,并广泛用于云对象存储,AI等…但是,由于写入性能和耐久性(这都是绘图所必需的)之间的折衷,因此它们不适合绘图。
储存介面
数据中心固态硬盘采用SAS,SATA和NVMe(PCIe)。SATA和SAS与2.5英寸HDD共享相同的物理总线和形状因数,并且这些协议已经存在了数十年。SATA 6Gbps于2008-2009年发布,是接口速度的最终版本,除去接口开销后的速度约为560MB / s。SAS现在已经扩展到12和24 Gbps,尽管后者是全新的,并且部署范围不广。SAS适用于大型存储子系统,在该子系统中有许多设备可用于主机,双端口和高可用性以及企业功能。SAS通常比SATA甚至NVMe昂贵得多(来源:Forward Insights SSD报告Q1'21)。该NVM快递规范(NVMe)是为PCIe固态硬盘标准。NVM Express,Inc。该公司是大型科技公司的财团。NVMe包含主机到设备协议,用于操作系统与SSD进行通信所需的所有命令:读取,写入,刷新,TRIM,固件管理,温度,错误以及许多其他功能。它还包含命令结构和排队机制,称为主机控制接口。NVMe是专为SSD设计的,因此与SATA等传统接口相比,它效率更高,延迟更短且具有可扩展性。使用PCIe 4.0 x4的NVMe SSD在最大带宽和IOPS上的速度比SATA SSD快13倍。去年,我录制了代表NVMe团队的SAS vs NVMe网络广播。
带宽
带宽是每秒传输的数据量的度量。由于电气协议,带宽取决于接口。如果PCIe总线上的额外带宽是当前的瓶颈,那么它只会为SSD带来更高的性能。如果您在低容量(没有足够的NAND不足以实现足够的并行化)或在功率方面(由于形状因素功率限制而限制NAND芯片)成为瓶颈,那么增加接口带宽就无关紧要。一个精心设计的SSD,同时尝试突破带宽的接口瓶颈。
可扩展用于PCIe 4.0和PCIe 5.0
PCIe规范归PCI-SIG所有,与NVM Express完全分开。NVMe规范无需更改即可支持更高的PCIe 4.0吞吐量(16GT / s,大约每个通道约2GB / s)以及将来的PCIe 5.0速度(32GT / s)。大多数NVMe SSD使用4通道PCIe。通过添加通道,PCIe具有固有的可扩展性能。像GPU这样需要最大带宽的设备可以使用PCIe x16来添加更多通道和更多带宽。当前的PCIe 3.0 NVMe SSD的性能是SATA SSD的7倍,而PCIe 4.0 NVMe SSD的性能是14倍。
界面和链接
规格
转移率
大约最大SSD速度(MB / s)
SATA 6Gbps
SATA 3.0
6Gbps的
560
SAS 12Gbps
SAS 3.0
12Gbps的
1150
SAS x2 12GBps
SAS 3.0
12Gbps的
2300
SAS 24Gbps
SAS 4.0
24Gbps的
2300
PCIe 3.1 x4
PCIe 3.1
8GT /秒
3700
PCIe 3.1 x8
PCIe 3.1
8GT /秒
7400
PCIe 4.0 x4
PCIe 4.0
16GT /秒
7400
PCIe 4.0 x8
PCIe 4.0
16GT /秒
14800
PCIe 5.0 x4
PCIe 5.0
32GT /秒
14800
更新固件
数据中心固态硬盘通常在首次启动后的1-2年内就有维护版本的固件,以改善兼容性,固件稳定性,功能,安全性和错误修复。购买二手数据中心SSD时,请访问供应商的网站以查找固件更新。在Intel SSD上,该工具称为IntelMAS,其中包含用于最新固件的内置二进制文件。
文件系统
Ext4是Linux中的默认设置,但是基于应用程序,XFS,F2FS和btrfs等文件系统具有优势。在此基准测试中,XFS排名第一。注意,如果只执行mkfs.xfs,它将为文件校验和保留一些容量。您可以通过执行crc = 0禁用此功能。如果您没有ECC RAM,我想启用校验和可能是个好主意,因为Chia团队确实报告了一些怀疑来自非ECC内存位翻转的损坏的绘图文件。
sudo mkfs.xfs -m crc=0 -f -L $DiskLabel $DevName
ZFS和BTRFS非常适合持久存储,具有写时复制,校验和,压缩,快照和数据完整性等功能,但临时/临时存储应用程序不需要这些功能。对于绘图,您只希望生成绘图的文件系统最快。
启用TRIM
TRIM的目的是提高SSD垃圾收集的效率,随着时间的推移有效地提高性能并提高耐用性。NVMe中的取消分配(在规范中称为“分配”)将LBA标记为未使用,因此SSD可以收回空间以供使用。TRIM对于降低WAF至关重要,因为主机必须告知SSD哪些数据未使用。在格式化或清理操作,文件系统创建(Windows中为快速格式,Linux中为废弃)以及文件系统删除期间,将发送TRIM。TRIM是主机软件和SSD之间的通信,以显示需要哪些数据,并在不再需要它时告诉SSD,以便可以回收空间。请记住,SSD无法告诉主机哪些LBA是可用的,哪些LBA是可用的,这是文件系统的工作。TRIM是主机告诉SSD某些LBA现在不包含有效用户数据的主机之间的一种方式。某些SSD模型会告诉您SSD上有多少数据是可用的还是在NVMe命名空间使用字段中使用的(在identify namespace命令中,sudo nvme id-ns / dev / nvme0n1
Linux中最常见的文件系统会禁用挂载丢弃,而倾向于执行计划的fstrim任务,该任务每天或每周将TRIM命令发送到文件系统中所有未使用的空间。启用丢弃将通过在删除文件时立即发送TRIM来提高耐用性和性能,但是由于阻塞IO命令,可能会降低性能,延迟和服务质量。在驱动器型号,接口和固件处理之间,这将有很大的不同,因为较新的驱动器通常可以更好地处理这种类型的工作负载。
示例fstab
/dev/disk/by-uuid/youruuidhere /mnt/ssd xfs discard,defaults 0 0
通过选件丢弃来安装您的SSD,以使其运行平稳,提高耐用性并提高性能。绘图过程对延迟不敏感,因此通过丢弃安装驱动器来启用TRIM是最简单的解决方案。
您可以通过以下方式手动修剪所有SSD上的所有可用空间: sudo fstrim -A