专业术语解释-OP(Over-provisioning)预留空间
预留空间一般是指用户不可操作的容量,为实际物理闪存容量减去用户可用容量。这块区域一般被用来做优化操作,包括磨损均衡,垃圾回收和坏块映射。
第一层为固定的7.37%,这个数字是如何得出的呢?我们知道机械硬盘和SSD的厂商容量是这样算的:1GB=1,000,000,000字节(10的9 次方),但是闪存的实际容量是1GB=1,073,741,824字节(2的30次方),2者相差7.37%。所以假设1块128GB的SSD,用户得到的容量是128,000,000,000字节,多出来的那7.37%就被主控固件用来作预留空间了。
第二层来自制造商的设置,通常为0%,7%和28%不等,做个比喻,对于采用128G颗粒的SandForce主控SSD,市场上会有120G和100G两种型号售卖,这个取决于厂商对固件的设置,这部分并不包括前面所说那第一层7.37%的容量。
第三层是用户在日常使用中可以分配的预留空间,像Fusion-IO公司还给用户工具让他们自己调节大小来满足不同的耐用度和性能,而用户也可以自己在分区的时候,不把所有的SSD容量都分满来达到相同目的。
预留空间虽然让SSD的可用容量变小,但会带来减少写入放大、提高耐久、提高性能的效果。
如下图:2个一样的64G SSD,左边的分区50G,右边的全部分区。格式化后容量分别为:46G和59G左右。
我们知道在操作系统下,要写入共59G的数据时,左边的盘必须删除13G的“无效”数据文件才行。右边的盘不需擦除就能写入所有59G数据,由SSD映射表的操作方式得知,删除文件后继续写入的数据在物理上会继续写入整个盘(写入预留空间1和预留空间2),在逻辑上会覆盖被删除文件的地址。也就是说,同样写入59G数据,左边的盘已经包含了13G“无效”数据了。(那些被重映射到预留空间的数据,原地址数据就是“无效”、“过期”的)。所以说左边图中的SSD里逻辑上数据“有效”的机会比右边要少,因为逻辑块容量小(分区小),所以在做垃圾回收处理时,需要复制的“有效”数据也少了,自然效率就提高了。
一般来说,建议不支持Trim的时候,或者对SSD的性能有较高要求,如数据库等类的应用时,增加一定比例的第三层预留空间容量(此空间需要先做HDD ERASE,保证没有被使用过),可以很好的起到保持速度,提高耐久度的作用。(做RAID阵列时,强烈建议留部分OP来弥补没有Trim产生的影响。)
|