闪存浪潮下不得不知的知识(3)-技术篇

2024-03-01 15:32

本文主要是介绍闪存浪潮下不得不知的知识(3)-技术篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



闪存最明显特点就是稳定/低时延,高IOPS,在评估性能时,我们也会关注90% IO落入规定的时延范围(性能是一个线性范围,而不是某一个点),性能提升、数据保护等追求所有软件特性都基于inline实现。如inline重删、压缩、thin-provisioning(尤其是重删,一方面SSD价格还是偏高,重删压缩可以节约投入成本;另一方面也减少了IO下盘次数提高SSD寿命)。但闪存除了这些特性和技术指标外,还有下面这些技术需要关注。


闪存架构:
闪存的Scale out能力 横向扩展能力是应对并发访问和提升性能容量的最基本特性,所以闪存是必须具备的功能。目前XtremIO支持16控,solidfire已经支持但100个控制器节点。


控制器对称A/A 能力 闪存的主要应用场景如OLTP等,传统的A/P、ALUA阵列在主控制器故障切换时都需要时间切换,并导致IO归零;并且在闪存阵列下,一般系统CPU是瓶颈,所以只有无归属、性能均衡的A/A对称架构才能更好应对。目前传统存储(如EMC VMAX/VNX,HP 3PAR, HDS USP/VSP)都已经支持,但是闪存阵列还没看见宣传;好多闪存产品,如 PureStorage还是 A/P模式。


元数据管理:
闪存的设计主要是考虑如何发挥出SSD的随机访问性能,不像HDD那样,需要通过预取、IO聚合技术来提高下盘的顺序性,减少对机械盘的操作来提升性能。所以闪存在设计上就要从元数据(系统元数据、重删压缩指纹、FTL映射等)管理,IO处理策略,垃圾回收和磨损均衡等出发考虑设计。
基于两层元数据管理架构是实现元数据管理的趋势,元数据映射基于LBA->块ID->位置的Map形式,卷的数据LBA映射到块ID,而不是磁盘上的物理地址;数据变化后只需改变对应块ID映射关系,块ID就可以映射到新的物理空间,这样相比单层方式就简化重删压缩实现和效率。


GFTL功能
GFTL称作全局FTL,闪存阵列可以配合SSD控制器(需要SSD开放接口给阵列)完成一些高级优化功能(如ROW写满条带下盘,全局负载均衡,垃圾回收、统一地址/数据管理和写入前整块对齐擦除实现垃圾回收等)。另外,GFLT也可记录重删压缩数据库,指纹元数据管理,实现RAID功能,进行IO聚合,通过元数据记录实现RAID满条带下盘,从而规避读-修改-写放大操作,解决Write-Hole问题等。
SSD的FTL只能完成数据LAB/重删后数据块->真实颗粒块(block/page)的影射,实现简单的垃圾回收和ROW数据写,内部把不同颗粒组织在一起组成RAID。很多外购SSD磁盘的闪存厂商都还不支持GFTL技术,但是该技术是提高闪存效率和竞争力的有力武器。


重删特性
重删是闪存最基本特性之一,分为Inline和Postline,但对闪存Inline才走真正价值。重删一般分为HASH指纹算法(以SHA-1为例说明,存在碰撞问题)和按字节对比法两种,但逐字节对比会严重影响闪存性能,所以很少使用,只在数据一致性要求非常严格的场景下使用。 SHA-1算法输出长度为160字节的数字,对不同数据块(大小可设置)其输出是随机的,在0-2^(160-1)间分布,不同数据产生相同Hash值的概率2^(-160),只有数据量(固定数据块大小)超过这些数字能表示的值时,才会发生Hash冲突,但到目前位置,所有产生的数据量总和都不至于产生Hash冲突。


场见的强Hash算法有SHA-1, SHA-256等;常见的弱Hash算法有Murmur3, CRC, MD5等;强Hash发生冲突的概率低。
但是在某些场景,如数据库场景下Key值是唯一的,在8K业务数据块大小时,如果重删粒度也是8K,可以让客户选择关闭该功能(XtremIO的Inline重删功能是无法关闭的)。


IO基本流程:
数据从主机下发到闪存阵列控制器,对于非A/A架构的闪存首先盘判断IO对应LUN的归属,如果在本地控制器就下到对应Cache,Cache到水位下盘时再切分块LBA为相应大小后,交给增值模块(如重删压缩模块)处理,计算出来的指纹后,将指纹和数据(重复数据只保留指纹)发送到归属控制器来完成下盘,相关模块下盘时分配分条,凑满条带后顺序写入磁盘,记录真实地址和指纹关系,保存指纹到指纹数据库。


Block磨损均衡:
为了让数据均匀分布在SSD的Block中,并且能达到热点均匀分布的目的,闪存必须提供磨损均衡来实现。磨损均衡分为动态磨损均衡和静态磨损均衡;动态磨损均衡是由主机更新数据触发的,并保证数据的擦写平均分布到所有的Block上;静态磨损均衡是由SSD内部机制实现,将冷Block上的数据转移(不同于垃圾回收)后,擦写冷Block上面的数据以便后续数据更新使用,使冷Block有机会成为热Block,从而使SSD中所有Block的冷热度达到平衡。


SSD掉电保护:
为了防止SSD磁盘中缓存数据由于掉电丢失,SSD还需要提供掉电保护功能。一般SSD会设计电压检测模块来实时检测电压值,当电压低于设置阈值时,SSD电压检测模块会通知SSD控制器进去掉电数据刷写流程,此时会有超级电容作为备电源供电,把磁盘缓存数据刷到Flash颗粒中,防止数据丢失。



温馨提示:

请搜索“ICT_Architect”“扫一扫”下面二维码关注公众号,获取更多精彩内容。

这篇关于闪存浪潮下不得不知的知识(3)-技术篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/762936

相关文章

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

前端技术(七)——less 教程

一、less简介 1. less是什么? less是一种动态样式语言,属于css预处理器的范畴,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS 更易维护和扩展LESS 既可以在 客户端 上运行 ,也可以借助Node.js在服务端运行。 less的中文官网:https://lesscss.cn/ 2. less编译工具 koala 官网 http://koala-app.

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介  1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 (OTA) 3在线编程(ICP把整个程序都更新掉) 1 系统的Bootloader写死了,只能用串口下载到指定的位置,启动方式也不方便需要配置BOOT引脚触发启动  4 IAP(自己写的Bootloader,实现程序升级) 1 比如蓝牙转串口,

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在