SSD的预留空间OP介绍

转自微信公众号:存储随笔

当你买了一块SSD,有没有发现其实你得到的容量并不是SSD标称的容量。比如你买的是128GB的SSD,你的得到的可使用容量肯定小于128GB,一般在120GB,甚至更小。
到底是谁“偷”走了本应该属于你的容量呢?

经过不懈努力,警察蜀黍已经找到“真凶”,就是OP,全称Over-Provisioning,中文名字叫做“预留空间”。

1. 预留空间OP是什么?
当一块SSD的数据写满时,需要额外的空间在启动垃圾回收之前接受新写入的数据,这块额外的空间,我们就称为预留空间。
当然,这块预留空间是对用户不可见的。

预留空间主要分为两个部分:


(1)由于标称容量与NAND闪存计算差异造成的本征预留空间OP1。

市场上SSD标称的容量是按照千进制(1000)来计算的,但是NAND闪存的容量是按照1024计算的。
我们简单列个式子计算一下:
市场SSD标称
1GB(GigaByte)= 1000MB= 1000*1000KB= 1000*1000*1000Byte= 10^9Byte  (1,000,000,000Byte).
NAND闪存 1GB(GibiByte)= 1024MB= 1024*1024KB =1024*1024*1024Byte =2^30Byte  (1,073,741,824Byte).
这两个计算方式之间正好相差7.37%。所以说SSD本征的预留空间就有7.37%。
(2)SSD由于性能要求而预留空间OP2,这部分也是标称OP。
这个部分预留空间主要用于垃圾回收GC,存储SSD主控的固件(Firmware),备用数据块(Spare Blocks)等。

标称预留空间OP=(SSD物理总容量-用户数据空间)/用户数据空间


从上面这个表格中我们看到标称预留空间(Marketed OP)为0%的时候,其实这时的内部仍然有7%的本征预留空间。


2. 预留空间OP有什么好处?
预留空间牺牲了用户数据空间,那TA要是再没有什么好处,用户就真的要崩溃咯。
其实预留空间OP的好处有很多:
(1)提高写入性能
由于有预留空间的存在,写入数据时并不需要经常做垃圾回收,加快了写入速度。
(2)降低写放大(WA, Write Amplification)写放大WA这个名词最早是Intel和SiliconSystems在2008年提出。
写放大的计算方法:WA=最终写入闪存的数据量/Host写入的数据量
举个简单的例子:当Host要写入4KB数据时,最坏的状况就是一个数据块中没有可用空间,但是呢,这个数据块中有一些无效数据内容能够被擦除,这时主控的做法就是,把这个数据块中全部的数据搬到缓存,然后擦除这个块,在缓存里update整个数据块的内容,更新完成后,把最新的数据搬回数据块,整个操作造成的写放大: Host只需写4K数据,却带来了整个数据块(假设1024KB)的写操作,写放大就等于1024/4=256倍。
(3)增加闪存使用寿命减少数据的搬迁,就是减少NAND闪存的读写次数,增加使用寿命。
(4)数据保护主要提供ECC之外的数据保护,比如R.A.I.S.E.(Redundant Array of Independent Silicon Elements),由于用的少,这里就不详细介绍了。
     
3. 数据说话
用真实的测试数据来看看预留空间对SSD性能的影响。

(1)128KB持续写与预留空间OP的关系


从图中红色线结果看出,预留空间对持续写的影响不大。

(2)4KB随机写与预留空间OP的关系


从图中红色线结果看出,预留空间对随机写的影响是线性增加的。

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值