128g固态硬盘该放什么意思(128G固态硬盘什么意思)

朋友们在某东上购买SSD(固态硬盘),可能会很疑惑,为什么各个ssd硬盘容量标识千奇百怪:

有的写128G,有的120G,还有的写120-128G,甚至还有100G的,价格还挺贵:

128G>120G>100G,不是应该越来越便宜吗?为什么120G有的比128G还贵呢?类似256G的硬盘会有标识240G的和200G的;512G的也有这种情况。

究其原因,有和机械硬盘类似的地方,也有固态硬盘特有属性的原因,我们下面一一道来。

进制转换

我们机械硬盘和SSD标称的xxxGB,这里的GB并不是程序员意义上的2的多少次幂,而是10的幂,即一个是二进制,一个是十进制。业界这样做并不是混淆视听,而是由工业标准JEDEC明确定义的。10进制的1GB是gigabyte,大小是1,000,000,000 bytes;二进制的1GB是gibibyte, 大小是2^30 = 1,073,741,824 bytes,比十进制的大了7.37%。此GB非彼GB,为了区分起见,十进制的叫做GB,二进制的叫做GiB。

硬盘界的这个规矩比较让人费解,尤其是当和memory一起来讨论的时候,因为内存的GB真的是二进制的GB也就是这里的GiB。

看到这里你也许会有更多疑问,而不是豁然开朗。看过我们前面系列文章的读者都对SSD的构成单元NAND闪存有了基本的了解.

简单来说闪存最小单元是page:

每个page是4KB/8KB/16KB,闪存颗粒Die和由Die组成的SSD硬盘理论上来说都是4KB的整数倍,必定是2的整数幂。

128GiB是2的整数幂,那么市面上为什么不是128GiB * (1+ 0.0737)= 137GB的硬盘在到处卖,而是128GB、120GB、100GB(其实还有110GB的SSD)这些奇怪的数字呢?

OP (Over Provisioning)空间

我们前文介绍过OP空间, 这里简单回顾一下。OP空间就是SSD主控保留的自有空间,用来负责负载均衡和防止写放大。一个形象的例子就像我们玩数字华容道:

我们要把方块1挪到右下角,一定好充分利用唯一的空格位置,将它移来移去,十分的困难。我们想象一下,如果在最下面忽然多出一整排空闲位置,这样相信就是小学生也可以轻松完成这个简单版华容道,而不需要很多步骤。我们的OP就是这个空闲块,多了后就会显著减少挪动的步数,而步数就可以看作写放大,对SSD寿命和速度有显著影响。

因为这个原因,所以SSD厂商必定会空出部分空间来给OP,而GiB到GB的多余部分7.37%恰恰可以完成这个任务。所以这部分OP空间叫做Inherent OP,也就是说就算SSD全满了,至少还有7.37%被预留出来做OP。

看过上面那篇文章(杂说闪存番外:手机为什么越用越卡和闪存写放大)都会有印象,SSD的性能在存储超过50%后会明显降低,除非增大OP的空间。所以很多厂家会在Inherent OP的基础上增加额外的空间,来提高性能,这个空间叫做Factory-set OP。

这个例子就是100GB SSD的空间构成图。128GiB的空间7.37做inherent OP变成128GB,28%做Factory-set OP变成了100GB。综合下来,整体空间里面有37%的空间被用来做OP!

当然有很多同学并不同意高价买来的SSD竟然有37%都不能用,这也只是服务器市场才有这种极端的情况。SSD厂家针对不同的市场会有不同的OP预留,常见的标称容量和OP的关系如下表:

我们常见的128GB的硬盘是第二列,只预留了7.37%。最常见的是第三列,即120G/240G/480G的系列,OP共有15%左右,平衡了实用性和性能。第四列并不多见,而第五列通常只有服务器等对性能要求很高的机器上才能用到,而价格很贵。

OP空间不是固定不变的,有些厂商有工具可以调整OP空间:

OP空间大小对性能影响很大。下面是希捷公司的测试数据:

后记

有些同学看了文章会问我是不是买120G/240G/480G就好了。这也不尽然,有些厂商因为选取了质量比较低的颗粒,初始坏块比较多,而不得不将容量标的较低,不代表其就是用来做OP了。要具体情况具体分析。