FMS2015:NVMe SSD的高可靠性及数据保护
FMS2015是一个充满技术干货的平台,各领域技术大拿在峰会上分享的技术和产品都影响甚至主导着闪存下一阶段的发展。
此次Memblaze的project师团队也是从存储系统、PCIe SSD以及闪存控制器三个层次做了技术演讲,并在现场引发了一波讨论热潮。
Memblaze解决方式project师李月宽发表了主题为《NVMeSSD data reliability and protection》的演讲,这个主题分享中他介绍了NVMe SSD的可靠性评定标准、PBlaze4中提高数据可靠性的技术等内容。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
当下用于评定SSD可靠性的国际标准非常多,李月宽主要介绍了。首先是JESD218A企业标准(包含data retention。寿命測试条件,UBER,容量的定义等信息)以及平均无故障时间(MTBF)两个比較主流的可靠性指标(如图2所看到的)。
接下来他以PBlaze4为例从元数据保护、掉电保护及高温保护三个方面阐述了提升NVMe SSD可靠性的技术。
元数据保护
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
图3:PBlaze4的元数据保护技术
如上图所看到的PBlaze元数据保护技术主要通过pSLC和多副本实现。pSLC 是MLC 的变体。是同一个NAND颗粒上划分出来的一块区域,具有SLC低错误率和高寿命的特点。并且一般pSLC 的擦写次数能够达到20000次,是MLC擦写寿命的6倍。
PBlaze4的元数据会有4个副本,并且跨LUN,跨channel进行存储。
这样的机制通过添加元数据的冗余度保障数据安全,并且元数据被分散存储在多个NAND颗粒上,所以仅仅要有一个LUN 能够工作。元数据就能被读取更新。
掉电保护技术
系统掉电之后,SSD上DRAM上的数据须要及时刷写到NAND上,具体的刷写时间长度见图5。
从上图能够看到一个结论。PBlaze4将DRAM中数据所有刷写到NAND上的极限时长为15ms,即电容至少要保证15ms的放电时间。但考虑到电量冗余,电力窗体必须保证>15ms。
而不同功率电容的放电量不同,满负载功率的电容放电更快。
经验证。在25w功率下,PBlaze4的电容能够提供25ms的电力保护时间,全然满足异常掉电时DRAM中数据裸盘的刷写时间,保证数据的完整性。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
以上介绍了掉电保护的需求并计算出了设备将DRAM上数据刷写至NAND上所须要的最长时间。
图6则从电容的角度介绍了两种添加供电时间的方法。
首先是提高电容的容量,这样的方法比較easy实现,不必添加额外的电路设计。可是这样的方案成本较高。须要使用超级电容或者多个电容实现。
另外一种方法是改变电压。这样的方法的优势是成本较低,能够使用常见的铝电解电容实现。可是其缺陷是电路设计复杂。须要升压和降压的电压转换器。
而且占用的PCB面积也较大。
对于两种效果,Memblaze通过測试做了对照。測试结果如图7:
图7
基于以上理论与測试结果,PBlaze4拥有完备的掉电保护解决方式。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
高温保护技术
从PCIe SSD的设计和使用角度来说,温度对于设备性能、稳定性及寿命都有很大的影响。PBlaze4安装了多个温度传感器用于监控设备不同部分的温度。 Memblaze为PBlaze4设计了可靠的温度保护逻辑。而这个保护逻辑算法就是高温保护技术的核心。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
图9:高温保护
在温度上升到第一警戒点(上图中T1st threshold,这一温度阈值可通过NVMe setfeature指令进行设置)时,PBlaze4会向主机端发送critical
warning的警告并自己主动减少读写性能。以防止温度进一步升高。当温度下降后,自己主动恢复满性能。须要指出的是这个过程无须用户干预。对于用户而言全然透明。
假设温度进一步升高至第二警戒点(上中T2nd threshold)时。全部读写操作会立马停止。以防止电路过热损坏NAND中的数据。此时须要技术人员又一次检測散热环境后。方可继续使用该产品。
另一个临界值的点为Trestore。当设备温度从第一警戒点降到T restore时,设备性能会逐步恢复到正常水平。最后须要指出的是,三个温度临界点均是选取核温柔板温中较高的值。
FMS2015:NVMe SSD的高可靠性及数据保护的更多相关文章
- [转帖]深度: NVMe SSD存储性能有哪些影响因素?
深度: NVMe SSD存储性能有哪些影响因素? http://www.itpub.net/2019/07/17/2434/ 之前有一个误解 不明白NVME 到底如何在队列深度大的情况下来提高性能, ...
- 存储系统设计——NVMe SSD性能影响因素一探究竟
目录1 存储介质的变革 2 NVME SSD成为主流 2.1 NAND FLASH介质发展 2.2 软件层面看SSD——多队列技术 2.3 深入理解SSD硬件 3 影响NVME SSD的性能因素 3. ...
- USB3.0及NVME SSD安装WIN7X64
USB3.0及NVME SSD安装WIN7X64https://tieba.baidu.com/p/4822034273?pn=1所有的人都是菜鸟过来的,不过有些人懂得自己动手找到答案:有些人则是懒得 ...
- NVME SSD vs SATA SSD(转)
NVMe是个啥?未来SSD主流标准早知 关注固态硬盘的朋友应该对于这个词汇并不陌生,特别是今年NVMe也频繁出现在各大媒体文章中,随着高端SSD市场逐渐从SATA专项PCI-E时,以前的AHCI标准已 ...
- vSphere 6.5支持512e,NVMe SSD呢?
原创 2017-01-12 朱朋博 金笑雨 企事录 2016年底,VMware终于宣布,从vSphere 6.5开始支持512e扇区格式了. 这当然是好事.不过,不黑不舒服斯基说:原来以前的版本连51 ...
- Ceph BlueStore与FileStore:利用Micron NVMe SSD进行性能比较
https://www.micron.com/about/blog/2018/may/ceph-bluestore-vs-filestoreblock-performance-comparison-w ...
- NVMe SSD是什么?
https://blog.51cto.com/alanwu/1766945 一直对闪存存储关注的朋友对NVMe SSD一定非常熟悉,NVMe SSD是现如今性能最好的存储盘.这种高性能盘在互联网领域已 ...
- OHSCE_V0.1.22 Beta,跨平台高可靠性通信框架
Open HI-REL Signal Communication Engine(简称OHSCE)是一款高可靠性跨平台的PHP通信框架,Windows友好且同时支持Linux和OS X.对TCP.UDP ...
- Gaea是支持跨平台具有高并发、高性能、高可靠性,并提供异步、多协议、事件驱动的中间层服务框架
Gaea是支持跨平台具有高并发.高性能.高可靠性,并提供异步.多协议.事件驱动的中间层服务框架 Gaea:58同城开源的中间层服务框架 https://github.com/58code/Gaea 中 ...
随机推荐
- crawlspider抽屉爬取实例+分布
创建项目 scrapy startproject choutiPro 创建爬虫文件 scrapy genspider -t crawl chouti www.xxx.com 进入pycharm 培训 ...
- 【TC SRM 718 DIV 2 B】Reconstruct Graph
[Link]: [Description] 给你两个括号序列; 让你把这两个括号序列合并起来 (得按顺序合并) 使得组成的新的序列为合法序列; 即每个括号都能匹配; 问有多少种合并的方法; [Solu ...
- .netcore2.1开发部署及在centos7.x下的部署
.netcore2.1的优势毋容置疑,具体的性能建议去实际test对比,相对于之前的.netfx不知道快了多少.选择C#作为后端开发语言,主要基于以下三点: 1)代码优雅 : 2)快速搭建一套小型企业 ...
- Linux 下查看某进程的线程数
1.查看文件 /proc/${pid}/status2.pstree -p ${pid}3.输入 top -bH -d 3 -p ${pid}top -H手册中说:-H : Threads toggl ...
- Java的线程机制
一.Java中实现多线程的两种方式1) 继承Thread类 Thread类包括了包括和创建线程所需的一切东西. Thread 最重要的方法是 run().编写线程程序时须要覆盖 run() 方法,ru ...
- 操作系统的 (program)loader(程序加载器)
在计算机科学中,加载器(也叫程序加载器)属于操作系统的一部分,用于加载程序(programs)和库(libraries).加载器是执行程序和代码必不可少的组件,正是它负责将程序送入内存,为程序的运行提 ...
- IIS文件上传大小修改配置说明
原因:Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(IIS 7 默认文件上传大小时30M). 解决:IIS7更改asp.net文件上传大小限制 步骤如下: 1. 修改I ...
- Looksery Cup 2015
A题水 C题 博弈论,如果不是CF有WA具体哪个点错了和数据的话,AC要难许多. 如果D的操作数大于奇数个数直接Win 偶数个数大于等于n – k 时,S直接Win 偶数个数小于n – k时,若D操作 ...
- Socket实例之客户端向服务端数据库上传文件UI版
http://blog.csdn.net/su20145104009/article/details/52843735 首先实现分析: 1用户注册 客户单选择‘用户注册’,提示要输入用户名,密码,确认 ...
- 程序中为什么会使用while(0)
https://blog.csdn.net/u012062760/article/details/46446207 关于while(0)实际上是用来宏定义的,这样的宏定义可以避免调用的时候出错. 如下 ...