前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软硬件融合技术内幕 终极篇 (12) —— 数据持久化的秘密 (下)

软硬件融合技术内幕 终极篇 (12) —— 数据持久化的秘密 (下)

作者头像
用户8289326
发布2023-02-25 14:14:12
5891
发布2023-02-25 14:14:12
举报
文章被收录于专栏:帅云霓的技术小屋

在上期,我们提到,SSD盘的标称容量实际上是小于出厂容量的。这一部分相差的空间被称为OP空间。OP空间的一个用途是,当SSD存储芯片中一部分单元在多次写入后,出现磨损的现象,也就是SSD芯片中的浮栅场效应管失效,则使用OP空间的页代替故障存储单元所在的页。较新的SSD控制器甚至会监控每个页的写入次数,避免一个页故障导致整个Block失效的现象发生。

一般地,SSD盘的出场容量(以GB计),是2的整数次方,如1024GB,2048GB,4096GB...

而对计算机硬件熟悉的读者会发现,市场上常见企业级SSD盘的规格有两个系列:

一个系列为960GB,1920GB,3840GB... 特点是容量数值为2的整数次方减少6.25%;

另一个系列为800GB,1600GB,3200GB... 特点是容量数值为2的整数次方减少21%;

而这两种规格的DWPD(衡量写寿命的参数)一种为1,另一种为3。实际上,后者和前者是同样的硬件物料,只是调整了出场时的OP值。它们的对应关系如下表:

初始容量(GB)

DWPD = 1

OP空间(GB)

DWPD = 3

OP空间(GB)

256

240

16

200

56

512

480

32

400

112

1024

960

64

800

224

2048

1920

128

1600

448

4096

3840

256

3200

896

8192

7680

512

6400

1792

16384

15360

1024

12800

3584

可见,当OP空间增加的时候,SSD的寿命也出现了显著的提升。

OP空间的另一个用途是提升随机写入的性能。在上期中,我们阐明了,SSD存在所谓的“写放大”现象,也就是说,在整盘找不到完全空闲的block的情况下,任意的写入操作,都会造成将一个page的写入量放大至一个block。

在这种时候,OP空间就派上用场了。由于OP空间是SSD控制器内部保留,对外不可见的空间,在这个时候,就可以提供完全空闲的block。对于随机的写请求,SSD控制器会将写请求重定向到OP空间中空闲的block,如下图所示:

图中,黑色色块代表随机写的目标page。由于这些page所在的block被占用了,整盘中也没有其他可用的空闲block,SSD控制器为避免写放大的发生,会将对这些page的写入重定向到OP空间中,同时在FTL(Flash Translation Layer,逻辑page地址和物理page地址的对应表)中修改之。

与此同时,SSD控制器会对这些被OP空间替换掉的page进行GC(垃圾收集,Garbage Collection),将其他block的数据拆散,填充到这些page中,从而腾出空闲的block并归还回OP空间。

我们可以用类似“华容道”游戏来类比这一过程:

(DOS版本的Visual Foxpro 2.6中有这个游戏,玩过的都暴露年龄了)

如图,4*4的框架中,有15个方块(类比为用户可见的空间)和一个空位(类比为OP空间),玩家可以利用这个空位进行辗转腾挪来调整各个方块的位置。显然,由于只有一个空位,这个游戏的难度是很高的。

那么,如果抠掉一些方块,如下图:

图中有了4个空格,显然,想利用空格调整其他方块的位置变得容易了很多。这就是增加OP空间提升SSD写性能的基本原理。

实际上,在SSD出厂以后,依然可以重新调整OP空间。让我们举一个实际的例子:分布式存储使用SSD作为机械盘的缓存实现性能的提升。由于几乎所有的数据写入的时候都先会被写到SSD,因此,一般要求SSD的DWPD = 3。但由于应用场景和需求的原因,实际上,市场上DWPD = 1的SSD供应情况更佳。那么,如果由于供应情况的原因,在构建分布式存储集群的时候,购买了DWPD = 1的NVMe SSD,如3.84TB,7.68TB等规格,我们就可以在SSD出场后,使用Crucial Storage Executive一类的工具重新设定OP,如将可用容量改为3.2TB,6.4TB等规格,就可以使得SSD符合分布式存储缓存的DWPD标准了。

但是,即使可以使用OP空间避免写放大,提升SSD随机写性能,QLC/TLC的写入性能依然低于SLC。

我们反复多次提到过一种存储子系统设计的思想:使用少量成本高,性能高的存储器,作为大量成本/性能低的存储器的缓存。同样地,我们也可以使用SLC作为QLC/TLC的缓存。

一方面,SLC的寿命较长,擦写次数可达10万次,不容易由于反复擦写而失效,另一方面,SLC的写入性能又显著高于QLC和TLC。因此,目前市面上主流的SSD中,会利用SLC作为缓存层,QLC/TLC作为容量存储,以取得成本和性能的平衡。

在下期,我们还会为大家带来更有趣的计算机硬件知识。大家不要错过呀!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帅云霓的技术小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档