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

el/2024/5/23 1:03:43


闪存最明显特点就是稳定/低时延,高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”“扫一扫”下面二维码关注公众号,获取更多精彩内容。


http://www.ngui.cc/el/4994577.html

相关文章

闪存浪潮下不得不知的知识(4)-接口篇

作为本系列最后一篇文章,今天和大家谈谈闪存的接口技术和发展趋势。我们知道闪存磁盘是在HDD以后出现的,由于SSD优异的随机性能、越来越大的容量和越来越低的成本等优势,使得闪存热度上升、乃至大有替换HDD的趋势。由于历史继承性等原因&…

Splunk虽无Hadoop撑腰但却分析和运维兼备

 说起大数据分析平台,我们每个人基本上都会想起Hadoop,因为Hadoop在结构和非结构大数据分析领域确实无可替代。它提供了HDFS和MapReduce两个基本功能实现分布式存储和大数据索引和分析,最关键的是Hadoop建立起了自己…

大数据时代下数据重删的考虑

 大家周末愉快,今天我也是首次推送有偿阅读文章,虽然平时工作忙,但在下班后尽可能挤时间总结一些平时工作中遇到的技术来和大家分享,但是每次看到文章的阅读量,发现关注我的粉丝人数和阅读量相…

先谈云计算再谈云大会

 针对第八届中国云计算大会前几天我写过一个介绍文章,今天我想在介绍该盛会之前,给大家首先分享下云计算在目前落地的情况和主要的云玩家、以及目前这些厂家的基本战略,这样大家可以在享受周末愉快时光、了解大会的同…

解析Ceph和9000分布式存储

 Ceph是呼声很高的开源分布式的SDS产品存储系统。同时提供对象存储、块存储和文件系统存储三种功能,满足不同应用需求。Ceph使用C++语言开发,遵循LGPL协议开源。Sage Weil(Ceph论文发表者)于2011年创立了以Inktank公司主导Ceph的开发和社区维护。2014年Redhat收购 …

浅析端到端方案兼容性

今天想跟大家讨论下数据中心解决方案和设备兼容性话题,随着信息技术的发展和新旧设备的更替,不同设备间的兼容性问题是客户和厂商必须面对的现实问题,一方面产品不断推出新功能满足不断攀升的客户需求,另一方面客户的计划性、周期…

X86架构小机以何应对核心业务

 随着近期华为发布基于X86架构的小型机Kunlun,X86小型机在业内引发很多不同声音。我最近刚好参加了一次Kunlun发布会并看了Kunlun在金融等行业方案简单介绍,今天也正好利用周末时间,谈谈我个人对开放架构小机的看法和理解。 话题还得从小型机发展开始说起,…

雨水泛洪和网络泛洪那个更可怕

 每逢烈日当头都酷暑难耐,每逢想起“哪儿凉快哪儿待着去”这句话,都让人倍感关怀之至。近日雨水充沛、风清气爽,但全国上下顿时滔滔,山坡流石、泥水缭绕,欲与房屋试比高。 雨水泛洪非常可怕,此图让人一斑见全貌。让我们为那些深受洪水侵袭的人们祈福,早日度过…

OpenStack云数据的护花使者Smaug

 ICT架构师技术交流(微信号ICT_Architect) 分析和交流ICT行业最前沿技术,分享云计算、存储、服务器、数据中心、网络、软件定义和虚拟化等相关知识,旨在知识交流、开放共享和共同进步。 Smaug是一个OpenStack中提供应用数据保…

【Ceph专题】 Ceph架构详细分析

 Ceph专题一 Ceph架构详细分析 支持原创,支持ICT架构师技术交流(微信号ICT_Architect) 分析和交流ICT行业最前沿技术,分享云计算、存储、服务器、数据中心、网络、软件定义和虚拟化等相关知识,旨在知识交流、开放共享和共同进步。 Ceph是呼声很高的开源分布式的SDS产品…