看过我们前面系列文章的读者都对SSD的构成单元NAND闪存有了基本的了解:
老狼:杂谈闪存三:FTLzhuanlan.zhihu.com
简单来说闪存最小单元是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空间就是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%。最常见的