本文主要是介绍SSD和FTL概述:SSD主控维护FTL,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Table of Contents
SSD概述
SSD市场增长
SSD芯片结构
MLC与eMLC与SLC
SSD接口
FTL概述
FTL-Flash翻译层
FTL-混合级别的映射
FTL-混合级映射1
FTL-混合级别的映射2
FTL-混合级别的映射3
FTL-混合级别的映射4
FTL-混合级别的映射5
FTL-混合级别的映射6
绕过FTL-开放通道SSD
设计转变
设计转变-Seastar
设计变更-DSSD
设计转移-基于内容的寻址
设计转移-LSM树写放大
设计变更-RocksDB
设计变更-Ceph BlueStore
新生代
SSD概述
SSD与机械硬盘最大的不同是存储介质,即nand flash。
FTL就是负责管理nand flash的软件模块,是主控上运行的"操作系统"(firmware) 中最核心的部分。
SSD主控本质是一颗处理器,主要基于ARM架构,这和手机处理器有相似的一面。也有部分SSD厂家采用RISC架构,使其具备CPU级别的运算能力。
不同架构、核心/晶体管数量的多少、频率的高低关乎主控的性能。可以说,一款主控芯片的好坏直接决定了固态硬盘的实际体验和使用寿命。
目前,主流市场主控品牌有:三星,慧荣,群联 和Marvell。
简短的书来预定我收集的SSD和FTL知识。
SSD市场增长
几乎100%的增长速度是每个人都在看SSD的原因。
资料来源:TMR分析(2015年8月)
资料来源:TrendFocus(2016)
SSD芯片结构
闪存芯片
- 1个芯片/设备->多个DIE
- 1个DIE->多个平面
- 1个平面->数千个方块:平面可以并行访问
- 1块->数百页:块是擦除的单位
- 1页->通常为4或8 KB +一百字节的隐藏空间:页面(page)是读写的单位
- 单元:SLC,MLC,TLC:基本位存储单元:最大P / E周期:MLC从1500到10,000;SLC高达100,000
参考文献
- 阿兰乌(Alanwu)的博客:[1668609] [1544227]
- 储存架构
MLC与eMLC与SLC
作为SSD主要元件的NAND闪存,我们经常见到的有SLC和MLC两种,甚至还细分出eSLC和eMLC等等,现在我们谈一下他们之间的区别。
SLC全称single-level cell,即单阶存储单元;MLC全称Multi-level cell,即多阶存储单元。因NAND闪存是一种电压元件,因此它以不同的电压范围来代表不同的数据
单元比较
- SLC-昂贵。快速,可靠,高市盈率
- MLC-消费者等级。成本比SLC低2至4倍,P / E比SLC低10倍,写入速度较低,可靠性较低
- eMLC-企业(等级)MLC。更好的控制器来管理损耗和纠错。
- TLC-三星拥护
生产中的Flash可靠性:预期和意外(Google) [2016,14引用]
- “我们没有证据表明高端SLC驱动器在典型的驱动器使用寿命内比MLC驱动器更可靠”(不是电池)
参考文献
- MLC与eMLC与SLC与TLC
延迟编号
每个程序员都应该知道的延迟数
- 快取存取:〜1ns
- 内存访问:〜100ns
- SSD存取:〜10μs
- 磁盘访问时间:〜10ms
- 数据中心净RTT:〜500μs
SSD接口
SSD接口(不包括NVRAM)
- SATA / SAS:传统的HDD接口,现在已映射到SSD
- PCIe:SSD太快了,SATA / SAS总线速度还不够。将SSD直接连接到PCI总线。快多了。
- NVMe:从PCIe改进。Flash媒体的本机接口。
参考文献
- SATA,PCIe和NVMe有什么区别
- 术语说明:SSD与M.2,PCIe与NVMe
FTL概述
FTL-Flash翻译层
FTL功能
- 接口适配器:将闪存接口映射到SCSI / SATA / PCIe / NVMe接口
- 坏块管理:SSD在首次运行时记录其坏块
- 逻辑块映射:用物理地址映射逻辑地址
- 磨损均衡:保存P / E周期
- 垃圾收集:由于NAND P / E逻辑,管理垃圾收集
- 写放大:避免写入比用户输入更多的实际数据
参考文献
- 了解FTL
- 阿兰吾的网志:[1427101]
FTL-混合级别的映射
FTL-混合级映射1
逻辑到物理地址的映射
- 块级映射:太粗糙
- 页面级映射:过多的matadata
- 混合级映射:今天使用的
用于紧凑型闪存系统的节省空间的闪存翻译层[ 2002,988参考]
- 混合级映射FTL的初始论文
- 关键思想是在闪存中保留少量日志块,以用作覆盖操作的写缓冲区
参考文献
- 阿兰吾的网志:[1427101]
FTL-混合级别的映射2
一种可重新配置的FTL(闪存转换层)架构,用于基于NAND闪存的应用[2008,232参考]
介绍Flash结构和详细概念的好论文
- “作为一种在页面映射和块映射之间折衷的方法,……一种混合映射方案……由Kim等首先提出。[2002]。关键思想...
- 为了解决日志块方案的这个问题,已经提出了全关联扇区转换(FAST)方案[Lee et al。2006]…
- Chang和Kuo [2004]提出了一种针对大型闪存存储系统的灵活管理方案……
- Kang等。[2006]提出了一种称为“ N到N + M映射”的超级块映射方案。……在这种方案中,超级块由……组成”
FTL-混合级别的映射3
基于日志缓冲区的Flash转换层,使用完全关联的扇区转换[2007,778参考]
- 通常称为FAST。从“用于紧凑型闪存系统的节省空间的闪存翻译层”改进
- 关键思想:在FAST中,所有数据块都可以共享一个日志块。
- 关键思想:FAST还维护单个日志块,称为顺序日志块,以操纵顺序写入
FTL-混合级别的映射4
用于NAND闪存的基于超级块的闪存转换层[2006,368参考]
闪存分为多个超级块,每个超级块由N个数据块+ M个日志块组成
- 这样,集关联就可以完全配置,就像FAST讨论的那样
- 垃圾收集开销减少多达40%
- 通过将对同一逻辑页面的写入吸收到日志块中来利用“块级时间局部性”
- 利用“块级空间局部性”来提高存储利用率,因为几个相邻的逻辑块共享一个U块
FTL-混合级别的映射5
上一篇:基于NAND闪存的存储系统的位置感知领域转换[2008,298参考]
- 从“使用完全关联的扇区转换的基于日志缓冲区的闪存转换层”和“用于NAND闪存的基于超级块的闪存转换层”进行了改进
- 关键思想:LAST将日志缓冲区分为两部分:顺序日志缓冲区和随机日志缓冲区
- 关键思想:顺序日志缓冲区由几个顺序日志块组成,并且一个顺序日志块仅与一个数据块相关联
- 关键思想:随机日志缓冲区分为热分区和冷分区。通过将具有高时间局部性的数据聚类到热分区中,我们可以得出完全合并的合并成本
FTL-混合级别的映射6
含义:尽管FTL确实可以重新映射,但是顺序写入仍然可以使SSD受益,因为它可以缓解GC(更多的开关合并)
图片来自:FTL LAST
绕过FTL-开放通道SSD
难道这是传说中的FTL bypass????
虽然FTL是强大的,dominatedly采纳,有些人谁试图摆脱它
- FTL的后台任务不会导致不确定的增长
- 减少FTL引入的延迟
- 针对闪光操作的应用定制优化
开路固态硬盘
- SSD硬件直接将其内部通道公开给应用程序。FTL没有重新映射
- 基于LSM树的键值存储在开放通道SSD上的高效设计和实现(百度)[2014,25 refs]
- 在开放通道SSD上优化基于LSM树的KV存储(基于LevelDB)。吞吐量提高2倍以上。
- SDF:用于Web级Internet存储系统的软件定义的闪存(百度)[2014,67引用]
- SSD(带有FTL)带宽为原始NAND带宽的73%至81%(读取)和41%至51%(写入)
- 针对开放通道SSD优化RocksDB
- 控制放置,利用并行性,调度GC并最大程度地减少超额配置,控制IO调度
- Linux内核集成
- LightNVM
应用程序管理的Flash [2016,6个参考]
- 向应用程序公开块IO接口和覆盖前擦除
设计转变
设计转变-Seastar
ScyllaDB Seastar
- 最初旨在构建ScyllaDB,Cassandra的速度提高了10倍。现在开源
- FCP异步编程:未来,承诺,完成。分片应用程序设计。
- 用户空间TCP / IP堆栈,绕过内核。由Intel DPDK
- 用户空间存储堆栈,绕过内核。通过Intel SPDK(WIP)
背后的理由
- SSD是如此之快,以至于需要改进存储软件堆栈:更好的异步编程。FCP。无锁 CPU利用率。
- SSD太快了,以至于Linux内核太慢了。
- NVM也借鉴了相同的想法
图片:传统NoSQL与ScyllaDB架构
提高性能的关键是“无共享设计”,它可以利用当今的多核处理器。该项目现场指出:“由于跨内核共享信息需要昂贵的锁定,因此Seastar使用无共享模型将所有请求分片到单个内核。” “ Seastar每个内核运行一个应用程序线程,并且依赖于显式的消息传递,而不是线程之间的共享内存。这种设计避免了缓慢的,不可扩展的锁原语和缓存反弹。”
https://adtmag.com/articles/2015/09/23/scylladb-cassandra.aspx
该网站称,对高性能网络堆栈的选择以及对C ++未来和承诺的利用,也有助于Seastar提供的“令人振奋的”性能提升,“并发应用程序的高级新模型可为C ++程序员提供高性能和创建可理解,可测试的高质量代码的能力。”
新技术方法相结合,使ScyllaDB被称为Cassandra的“即插即用替代产品”,每台服务器每秒可以完成100万笔事务。该网站声称,这可以帮助应用程序赢得竞标站点,帮助电子商务网站处理假期销售高峰,并促进基于Apache Hadoop和Apache Spark等技术的大数据应用程序中的批量上传和下载。 。
参考文献
- Seastar / ScyllaDB,或者我们如何实现比Cassandra快10倍的实现
- Linux内核IO堆栈:https://www.thomas-krenn.com/en/wiki/Linux_Storage_Stack_Diagram
- The Linux Storage Stack Diagram
- SPDK:存储性能开发套件(Storage Performance Development Kit)介绍
设计变更-DSSD
DSSD-EMC机架式闪存设备
- 内核旁路,直接连接到DSSD设备
- 与Seastar类似的想法
参考文献
- DSSD D5数据访问方法
- EMC DSSD D5的软件方面
- DSSD通过NVMe架构闪存魔术弥补了访问延迟差距
设计转移-基于内容的寻址
基于内容的寻址
- 数据放置由数据内容而不是地址确定。
- 利用SSD的随机写入功能。对dedup的自然支持。
- 在EMC XtremIO和SolidFire中采用
图片:SolidFire的SSD存储阵列权衡
参考文献
- XtremIO体系结构(辩论很有名)
- 比较现代的全闪存架构-Dave Wright,SolidFire
- 变得清晰起来:闪存存储公司与NetApp / SolidFire的Dave Wright的谎言
设计转移-LSM树写放大
WiscKey:在SSD意识型存储中将密钥与值分离[ 2016,7参考]
- 在LSM树中,由于压缩过程的缘故,同一数据在其整个生命周期中都会被读取和写入多次。
- 写放大可以超过50倍。读放大可以超过300倍。
- 许多SSD优化的键值存储都基于LSM树
- WiscKey的改进
- 将键与值分开以最小化I / O放大。只有密钥在LSM树中。
- 当值大小达到1 KB时,WiscKey写放大迅速减小到接近1。在所有六个YCSB中,WiscKey比LevelDB和RocksDB都快。
设计变更-RocksDB
众所周知RocksDB是经过SSD优化的KV存储
- 它基于Facebook开源的LevelDB开发。在许多方面针对SSD进行了优化。
- RocksDB:针对基于闪存的SSD优化的键值存储
- 为什么对Flash友好?
- 空间,读取和写入放大的权衡。优化压实过程。
- 低空间放大
- 高读取QPS:减少互斥锁
- 高写入吞吐量:并行压缩;并发存储器
- 为什么对Flash友好?
- 通用压缩:“它使写放大器更好,同时增加了读放大器和空间放大器”
- 这是RocksDB的著名功能
设计变更-Ceph BlueStore
Ceph BlueStore
- 开发单一用途的文件系统BlueFS,以直接在原始块设备上管理数据
- 使用RocksDB存储对象元数据和WAL。更好地管理SSD。
- 更快的软件层可利用SSD的高性能。Seastar的类似想法
参考文献
- Ceph存储引擎bluestore解析
- Ceph珠宝预览
- “系统说明”博客
- BlueStore幻灯片共享
设计变更-RAID 2.0,FlashRAID
许多设计要点适合SSD
- 故障模型,写放大,随机写,RISL(随机输入流布局),零填充,修整,部分条带写...
参考文献
- Alanwu的博客:[1876942] [1859361] [1722581] [1683079] [1682091] [1430288]
- SSD故障模型
图片来自:SSD故障模型
新生代
英特尔3D XPoint
- 于2015年中宣布,与闪存相比,延迟减少了十倍
- 参考文献
NVMe over Fabrics
- 有点像SAN上的SCSI闪存版本
- DSSD的总线就像是NVMe over Fabrics的定制版本
- 参考文献
NVDIMM
- 将闪存连接到内存总线。甚至更快。
- 参考文献
- Wiki NVDIMM
- NOVA纸
纸和材料摘要
参考文献
- 阅读Fast16论文
- FAST峰会:FAST16
- 闪存峰会
- 存储技术现场日
- 阿兰吾的网志
- MSST-海量存储系统和技术
- OSDI-Google喜欢在这里发布新系统:OSDI16
阅读论文的提示
在每个会议上查看“最佳论文奖”
- 在顶级会议上,他们是最好的
搜索参考计数很高的论文
- 例如,行业改革者1800+,突破性技术900+,大型改进技术200+。
- 第一年有10个以上的裁判代表非常好的论文
搜索行业领导者支持的论文
- 例如,由Google,Microsoft等与他人合着
一些论文有广泛的背景介绍
- 对于了解新技术非常有用
您甚至可以搜寻大学课程。他们有助于增进扎实的了解。
- 例如,Ceph的作者从哪里毕业
这篇关于SSD和FTL概述:SSD主控维护FTL的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!