填写你的问题并留下联系方式将得到专业人士的相关答复

通过何种方式与您联系:

1.SSD 存储结构原理

SSD用Nand Flash 来存储数据。Nand Flash 在物理结构上是由一个一个的Block 组成。每个Block 都有一定的擦除寿命(PE Cycle),当擦除寿命达到时,该Block 即损坏。根据Nand Flash 的类型不同,Block 的PE Cycle 也不相同,一般来说Nand Flash 分为SLC,MLC,TLC 三种类型。三种类型的Nand Flash 的Block 的PE Cycle 分别为SLC 100000 次,MLC 3000 次,TLC 500次。

</p>

下图是一片由2 块Nand Flash 组成的SSD,可以理解为该SSD 是由2N 个Block 组成。通常会有一个疑问:比如MLC 的Nand Flash,由于每个Block 只有3000 次的PE Cycle,如果用户不断反复写0 地址,那是否写3000 次后,SSD 是否就坏掉了?答案当然是不会。SSD 的Nand Flash 管理算法会使用“地址映射”和“均衡磨损”的算法,将用户数据写到不同的Block,以使得Nand Flash 的损耗降到最低。

举个简单的例子来说明,假设一块MLC 的SSD 一共有4 个Block,每个Block 的大小为1M Byte。一个用户不断的往LBA 0 写入1M Byte 数据。经过“地址映射”与“均衡磨损”后,写入的过程实际上如下图所示:

</p>

</p>

2. SSD使用寿命的计算方法

下面我们通过上图,来具体说明如何计算SSD 的寿命:

从上图可以知道,这个SSD 的大小为4M Byte,当用户一共写入4M Byte 时,所有的Block都被写入了一次,而不是在Block 0 写入4 次。所以在第5 次写入时,所有Block 被先擦除了1 次。这样可以理解为:当写入SSD 总容量大小的数据时,SSD 的所有Block 的擦除次数加1。那么这块4M Byte 大小的SSD,按照每个Block 3000 次的PE Cycle,一共可以写入3000x4=12000M Byte 的数据。这就是这块SSD 一共可以写入的数据总量。总结起来:SSD 的可写入数据总量= SSD总容量xBlock的PE Cycle至于SSD的寿命,需要估算SSD每天平均写入多少数据,然后用下面公式算得:

SSD的使用寿命 = SSD的可写入数据总量/SSD平均每天写入数据量

下面我们通过计算一片128GB的MLC的SSD,来直观的了解SSD的使用寿命。

从磁盘管理器,可以看到该片SSD的实际容量为118GB:

</p>

SSD可写入数据总量= 118GBx3000= 354000GB,如果平均每天写入的数据总量为118GB,即每天写满全盘。则该SSD的使用寿命为354000GB/118GB = 3000 天,约8.2 年。

3.SSD剩余寿命的计算方法

在实际的应用中,用户常常还需要了解SSD 的剩余寿命如何,这就需要知道SSD已经写入的数据总量是多少,计算剩余寿命的公式如下:

SSD剩余寿命= (SSD可写入数据总量-SSD已写入数据总量)/SSD 平均每天写入数据量其中,SSD的已写入数据总量可以从SSD的SMART信息的F1项获得。

查看SMART信息的工具在windows下可以使用HD Tune,CrystalDiskInfo等,在Linux下可以使用smartmontools。

以windows下的HDTune为例,打开HDTune,选择需要查看的SSD,单击健康状态一栏,查看F1的值,如下图:

</p>

从上图可以知道该SSD的写入总量为7528,但是这个数值的单位什么呢?不同型号的 SSD F1使用的单位都不一样。比如:SMI方案的SSD,F1的单位为32MB,而DM方案的SSD,F1的单位为1GB。

网友回复

我来回复