一,前言
目前不仅仅是家用电脑系统盘很多都采用了固态硬盘,很多工业产品也选用固态硬盘作为存储介质,这主要得益于固态硬盘相对于机械硬盘的优势。
固态硬盘(Solid State Disk)都是由主控芯片和闪存芯片组成,简单来说就是用固态电子存储芯片阵列而制成的硬盘,其接口规范和定义、功能及使用方法上与普通硬盘的完全相同在产品外形和尺寸上也完全与普通硬盘一致。存储单元负责存储数据,控制单元负责读取、写入数据。拥有速度快,耐用防震,无噪音,重量轻等优点。广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等领域。
SSD固态硬盘的优点:
第一,SSD不需要机械结构,完全的半导体化,不存在数据查找时间、延迟时间和磁盘寻道时间,数据存取速度快,读取数据的能力在400M/s以上,最高的目前可达500M/s以上。
第二,SSD全部采用闪存芯片,经久耐用,防震抗摔,即使发生与硬物碰撞,数据丢失的可能性也能够降到最小。
第三,得益于无机械部件及FLASH闪存芯片,SSD没有任何噪音,功耗低。
第四,质量轻,比常规1.8英寸硬盘重量轻20-30克,使得便携设备搭载多块SSD成为可能。同时因其完全半导体化,无结构限制,可根据实际情况设计成各种不同接口、形状的特殊电子硬盘。
硬盘大小不同,硬盘接口也是多种多样的,现在能见到的至少有SATA、mSATA、M.2、SATA Express (以下简称为SATA E) 、PCI-E及U.2等,而且 每个接口下面又会有很多子类型, 其实这只是一部分,没提到的还有很多,比如BGA封装的,针对外置设备的eSATA接口,企业级市场用的SAS 3.0接口。
二.参数对比与分析
我们这里将会使使用m2接口类型的两款类型的SSD硬盘来进行选型对比,只是作为进行硬盘选型的一个例子,大家可以根据自己产品的实际情况套用下面的测试路线完成硬盘的选型。
在进行选型之前,我们首先要澄清关于SSD固态硬盘技术的一个误区,技术固态硬盘的体积非常小,它内部用来存储数据的颗粒占据了整个产品生产成本的百分之80,而固态硬盘颗粒也经历了SLC,MLC,TLC和QLC几代类型,而SSD的颗粒技术的更新其实并不像其他硬件设备那样,是带来了全方面的进步,其最大的进步就是大大减少了SSD固态硬件的硬件成本,从而使得SSD以更低的价格进入到社会的方方面面。
1、单层次存储单元SLC = Single-Level Cell,即1bit/cell,速度快寿命最长,价格贵(约MLC 3倍以上的价格),约10万次擦写寿命。
2、双层存储单元MLC = Multi-Level Cell,即2bit/cell,速度一般寿命一般,价格一般,约3000-1万次擦寿命。
3、三层存储单元TLC =Trinary-Level Cell,即3bit/cell,也有Flash厂家叫8LC,速度慢寿命最短,价格便宜,约500-1千次擦写寿命。
4、QLC四比特单元(4bits/cell,即每个Cell单元储存4个数据),成本更低,容量更大,但寿命更短(理论可擦写150次),想成为接替TLC的产品还有急需解决的问题。
我们看到无论是在寿命上,速度上都是SLC>MLC>TLC>QLC。
为了让存储颗粒可以存储更多的数据,大多数厂商会采用两种解决方案,首先是在一个存储颗粒中采用平面增加数据模式,大致的发展历程就是以下五个阶段SLC、MLC、TLC)、QLC)以及最新的PLC,但到了PLC阶段的时候厂商发现这种平面增加的方式总有个尽头,数据量的提升已经很低了。于是乎,就采取了另一种方案—3D NAND,多层次的堆叠方式,也就是不断的往上堆叠。如今的闪存堆叠层数已经达到了64层、128层。凭借这两种方案固态硬盘的价格确实有一些下降,但总得来说降低幅度不大。
长江存储算是在成熟的技术路线上弯道超车了,直接就带来了实惠好用的存储颗粒。长江存储的3D NAND方案,可以达到200+以上的层数(全球第一的水准)。
SLC是企业级服务器用的,MLC已经逐渐退出市场,目前TLC是普通用户主流颗粒。
随着TLC技术的成熟与发展,单纯从擦写寿命来看,3D-TLC已经能够与MLC相当,不少企业级固态硬盘也已经开始使用3D-TLC。
下面进入主题,我们这里拿三款M2类型的SSD硬盘分别为佰维256G,佰维512G的SSD硬盘和256G金士顿元存SSD硬盘的选型测试。
从上表中可以看到三款SSD硬盘的技术对比
对于ssd固态硬盘在读写速度,寿命方面我们关心的首先是SSD佰维512G的SSD硬盘和256G金士顿元存SSD硬盘硬件和技术方面的差异,固态硬盘的高速来源于其结构的优越性,即主控+闪存颗粒+缓存
SSD | 佰维 BS323 CNF80Y28300-512 | 金士顿元存M600TM256 |
主控 | 联芸MAS0901 | SMI2246XT |
缓存 | DRAM 兆易创新512MB | 无 |
颗粒 | 长江存储 TAS | micron MLC |
PCIe | 无 | 无 |
一些主控需要外置DRAM缓存芯片,也就是独立缓存,才能正常工作。日常数据写入会先DRAM,再写入闪存颗粒。当DRAM缓存被写满的时候,才会直接写入颗粒。所以有DRAM缓存下,写入速度也是会下降的。相对无DRAM缓存的SSD,有DRAM缓存的读写性能会比较一致,不会因为剩余可写空间产生较大的速度差异。
一些主控则不需要DRAM缓存芯片也能正常工作,这种主控一般会根据颗粒剩余可写空间,动态调整SLC模式的范围来提高读写性能(SLC模式范围有最小值)。剩余可写空间越多,SLC模式的范围越多。当SLC模式的区域被写满的时候,才会直接写入TLC或QLC模式的区域。
具体测速的时候,也是持续写入一定数据后,性能会下降。不过无DRAM缓存的固态硬盘,写入速度会有线性变化。相对有DRAM缓存的SSD,无DRAM缓存的集成度更高,功耗和稳定性更佳,意外断电时不易丢失数据。
而在颗粒方面,3DTLC 颗粒的固态硬盘相比 MLC 颗粒固态硬盘寿命相当,但是价格更低,而SSD佰维512G增加了外置独立缓存功能,缓存在固态硬盘读写数据时可用作数据临时储存缓冲作用,以加快硬盘的数据读写速度。带有独立缓存的 SSD 能更快的查找更新映射表,性能发挥更加稳定,大缓存也让SSD 长时间持续读写性能得到了保障,而没有配备独立缓存的 SSD,基本都是使用 SLC 模拟缓存来提升连续读写速度的。SLC 模拟缓存(主要分固定容量和全盘模拟两种),是指通过固件算法模拟出超高速度,如果单次传输文件过大,超出了模拟的 SLC 缓存空间,或者全盘模拟机制压力较大,此时 SSD 的传输速度就会大幅下降,呈现的速度也就是所谓的“缓外速度”,同时采用 SLC 模拟缓存也会消耗硬盘本身颗粒的寿命,因此采用独立缓存也能有效的提升了硬盘的耐用性,SSD佰维512G硬盘外置 512M DDR4 颗粒的缓存,相比传统的 DDR3L 缓存速度也更快,512M 的容量也可以提供更大的缓内速度容量,更好的提升硬盘的耐用性。
增加了外置钽电容,支持掉电保护功能固态硬盘在非法断电的情况下,缓存数据会因为来不及存入 SSD 而丢失甚至损坏,影响设备数据的完整性,甚至造成重大故障。而配备钽电容的硬盘正常工作时会给电容充电,在紧急断电的情况下,当电压下降到规定值时,钽电容会向硬盘电路释放反方向的电流,将缓存上的数据完整地写入 NAND,从而保证数据的完整性,避免机器设备出现问题。
所以从技术原理上来看,佰维512G硬盘,以同等的价钱,相较于金士顿元存的256G硬盘,获得了更大的存储容量,3D TLC在使用寿命方面已经基本上可以和MLC相当,而其使用缓存技术,读写速度也应该是超越MLC,且不会呈现出随着线性速度下降的问题,并且对于缓存技术带来的意外掉电的数据丢失和磁盘损坏问题,增加了外置外置钽电容,应该说是会大大减少这类问题,所以佰维512G硬盘无论是在读写速度,寿命还是可靠性方面,都已经持平,或者超越了金士顿元存的MLC
如果您的设备放置在需要在相对恶劣的环境中运行,那么我们还要考虑工作温度的影响,在上表中我们可以看到佰维的工作为-20到70度,而金士顿元存的工作温度为-20到75度,金士顿元存的温度区间略大于佰维,而针对我们的机器人上位机工作的环境恶劣,温度较高,首先要考虑的更高的工作温度上限是否可有效防止温度过高带来的上位机硬盘不工作或者损坏,另外还有一点要考虑的就是随着温度的升高两块硬盘读写速度的下降曲线。
体积方面则是金士顿元存占优,从理论上来看,金士顿元存256G采用的技术是要过时的技术,而佰维可以说是主流技术,但是我们要确定的是佰维在集成了更多的技术和更多的颗粒之后,其整体性能的稳定性。因此,我们希望通过下面的测试来进行验证。
三.测试
1.读写速度测试
读写速度是SSD的重要性能指标之一,它直接影响到系统的响应速度和数据传输速率,为了测试m2接口的ssd硬盘的读写速度,选择CrystalDiskMark作为测试工具,测试时需要注意选择合适的测试模式和测试文件的大小,保证测试结果的准确性
CrystalDiskMark2008年首次出现在Windows平台存储基准测试软件,它可以判断硬盘在设定的测试条件下的速度,在运行测试之前,需要设置工作文件大小。这是CrystalDiskMark创建的用于执行读写测试的文件大小,范围从16MB到64GB。其默认值为1GB,对于可能在硬盘上访问的大量数据来说,这是一个常用的大小。
CrystalDiskMark带有四个预设基准测试,但通过查看高级设置,则可以自定义基准测试的内容并获得不同的结果。CDM基准测试归结为四个重要的测试参数:顺序与随机、块大小、队列深度和线程。
MB/s是一个吞吐量单位,代表一个硬盘内每秒传输的数据量。如果要衡量一个硬盘的连续读写速度,使用大文件进行测试并以MB/s为单位计算出其吞吐量便能很好地展现出其在连续读写上的能力。
但是在日常使用中大文件读写的机会有,但是更多是随机读取情况,比如系统调用。于是在这个时候,运用吞吐量来衡量一个硬盘随机读取的性能便显得有说欠缺,因为一般来说这些数据区块在体积上都比较小,因此我们要考虑的便不是这个硬盘能够在一秒内搬多少东西,而是在一秒内可以搬多少次。所以,这就是IOPS诞生的原因。
IOPS全称为Input/Output Operations Per Second,大意是硬盘每秒的读写次数。一个硬盘的随机读取IOPS主要由其主控和接口决定。在测试硬盘随机读取性能上,大部分软件会使用4KB大小的数据区块作为测试基准。
(1)顺序与随机
CrystalDiskMark使用的两种基本测试类型是顺序和随机,分别用SEQ和RND表示。这两种工作负载之间的主要区别在于数据的组织方式。在顺序工作负载中,SSD正在访问的数据在物理上是连续的,可以按顺序一个接一个地访问(因此是顺序的)。随机工作负载涉及不连续或连续的数据,并且可能分布在整个驱动器中。根据其他因素,顺序和随机之间的性能差异可以从很小到非常大。
一般来说,SSD非常擅长处理随机工作负载,而HDD则难以处理它们,这就是为什么可能会看到HDD在CrystalDiskMark的随机测试中速度低于10MB/s,但在顺序测试中超过100MB/s。这是因为HDD必须机械地移动从物理磁盘读取和写入的组件,并且从一个地方跳到另一个地方需要相当多的时间。尽管SSD不是机械的,但由于外部原因,它们处理随机工作负载的速度仍然比顺序工作负载慢。
(2)块大小
文件由块组成,是在一次输入/输出(或 I/O)操作中移动的最大数据块。在CrystalDiskMark提供的默认测试中,将看到一些使用1MiB块大小,一些使用4Kib块大小,一些使用128KiB块大小(大约128KB)。
这似乎违反直觉,但块大小越大,传输速度越快,就像是一次移动一张纸和将整个文件夹移动到文件柜中的区别。顺序文件传输通常涉及大块,而随机工作负载往往使用较小的块。尽管CDM在顺序测试中使用大块大小,在随机测试中使用小块大小,但块大小并不一定表示顺序性或随机性。
(3)队列深度
队列深度是指在任何给定时间处理 I/O 请求的队列数量,打开以传输数据的队列越多,传输速度就越大。默认情况下,CrystalDiskMark在队列深度1、8和32进行测试,但可以手动增加队列深度并根据需要进行测试。也可以把队列想象成一个单独的工人归档文件,显然,更多的工人意味着更快的归档。
无论块大小或线程数如何,较高的队列深度通常都会导致更高的传输速度,但较高的队列深度会对随机工作负载产生特别大的差异。再用文件柜来打个比方,两个人一个接一个地提交文件,会比一个人自己做要快得多。从队列深度1到32可能会导致传输速度提高10倍,这是巨大的。
(4)线程
线程与块大小和队列深度不同,因为它们位于CPU而不是存储中。每个CPU都有一定数量的内核,每个内核通常有一个或两个线程,它们基本上是队列的CPU版本。线程越多,一次处理多个事情就越容易。线程在CDM中并不重要,因为八个默认测试中有七个只使用一个线程计数,只有一个测试使用16线程计数。
但是,使用16线程计数的测试清楚地表明,拥有大量CPU线程会有所帮助。在随机工作负载中从一个线程增加到16个线程可将性能提高约8倍。这是因为CPU还参与在非常重要的级别上促进数据传输。但是线程数取决于CPU,并不是每个处理器都有16个线程,这也许就是为什么CrystalDiskMark在其大多数默认测试中将线程数保持在1个的原因。
因此建议测试过程中,针对两款SSD,通过上面这四个选项的组
1.测试组合
(1)顺序与随机
( 2)块大小选择4K,128K,1M
(3)队列深度1、8和32进行测试
(4)线程选择单线程,和CPU核数一样的线程数
(5)在第二项1GIB选项可以选择64MB,512MB,1GIB三种文件大小作为测试
同时针对上面的组合,最终的数据体现为MB/s吞吐量单位和IOPS单位两种,以及在磁盘空间逐渐占用尽的情况下传输速度的下降曲线。
2.容量测试
可以使用CrystalDiskMark对于空硬盘,硬盘占用过50%,硬盘占用过80%,硬盘占用过90%四种情况进行测试
3.温度测试
温度是影响SSD寿命和稳定性的重要因素之一,过高的温度会导致SSD性能下降,寿命缩短甚至损坏,因此,需要对SSD进行温度测试,以保证其在正常工作温度范围内,测试时可以使用温度计或者红外测温仪等工具,将SSD放置在不同的环境中进行测试,记录温度的变化情况
这个可以借助于1.速度测试的测试用例,在不同的温度下记录其对应的结果,同时借助于5.耐久性测试,记录温度对于硬盘的寿命的影响
4.抗震测试
抗震测试是测试SSD机械强度和稳定性的重要手段,它可以检测SSD在受外力冲击时的反应和损坏情况,测试时可以将SSD放置在震动台上进行振动测试,记录SSD在不同频率和振幅下的反应情况
这个同样可以借助于1.速度测试的测试用例,在不同的温度下记录其对应的结果,同时借助于5.耐久性测试,记录温度对于硬盘的寿命的影响
5.耐久性测试
耐久性测试时测试SSD寿命和稳定性的重要手段,它可以模拟SSD在长时间使用过程中的磨损和老化情况,测试时可以使用CrystalDiskInfo,记录SSD的使用时间,读写次数,坏道数量等指标,以评估SSD的耐久性和寿命
固态硬盘的TBW是指其可承受的总写入数据量,单位为“TBW”(Terabytes Written),通常以TB为单位表示。这个参数是用来衡量固态硬盘的耐久性和寿命的重要指标。
在文章前面的列表中看到佰维512G的总的写入数据量是750TB,为了能够更加直观的可以看到硬盘坏道情况,我们可以分别在两块硬盘进行擦写500次,1000次,2000次,看其坏道情况,软件可以采用DiskGenius,很直观
同时我们也可以使用CrystalDiskInfo,记录SSD的使用时间,读写次数,坏道数量等指标,以评估SSD的耐久性和寿命,但是使用CrystalDiskInfo中有一些数据是产商自定义的数据,这些数据需要通产商处获取,例如
元存256G对应的CrypstalDiskInfo的界面
我们重点需要关注两项
A7擦写次数
A9硬盘剩余寿命
下面是佰维512G
BS323主要关注0XE7,代表的是SSD Life Left/ SSD剩余寿命,是基于P/E周期与可用的备用块作出的预测,D3可以看盘的擦写次数,默认是16进制显示的,换算一下即可
6.意外掉电测试
因为使用缓存会带来意外掉电产生的硬盘数据的损坏,而佰维采用了外置钽电容,主要是测试外置钽电容对于异常掉电硬盘数据的保护效果