闪存技术最全面解析.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
? ? ? ? ? ? ? ? 闪存技术最全面解析 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????? 大家好,今天为大家准备了闪存技术大餐,内容涉及闪存架构、关键技术、颗粒、接口和可靠性等方方面面。部分内容之前在本号上发布过,但内容不系统、技术不全面,今天我专门花时间进行梳理和总结。内容丰富且基本全是原创,请耐心往下看,希望对大家理解闪存有所帮助。 ????? 闪存最明显特点就是稳定性能,低时延和高随机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-Block位置的Map形式,卷的数据LBA映射到块ID,而不是磁盘上的物理Block地址;数据变化后只需改变对应块ID映射关系,块ID就可以映射到新的物理空间,这样相比单层方式就简化重删压缩实现和效率。 ????? SolidFire采用两层元数据管理架构实现元数管理,元数据管理采用Key-Value方式;元数据映射基于LBA-块ID-位置的Map形式,卷的数据LBA对应块ID,而不是磁盘上的物理地址;所以数据变化后计算指纹只需改变对应块ID映射关系,天然就支持重删。在垃圾回收时,是采用块标记法实现对未使用块的清除。 GFTL功能 ????? GFTL称作Global FTL,闪存阵列可以配合SSD控制器(需要SSD开放内部接口给阵列),通过阵列完成一些如ROW写满条带下盘,全局负载均衡,整块对齐擦除、垃圾回收等高级优化功能。另外,GFLT也可记录重删压缩数据库,指纹元数据管理,实现RAID功能,进行IO聚合,通过元数据记录实现RAID满条带下盘,从而规避读、修改、写放大操作,解决Write-Hole问题等。 ????? SSD自身的FTL只能完成数据LAB/重删后数据块、到真实颗粒块(block)的影射,只能实现简单的垃圾回收和ROW数据写,内部把不同Block组织在一起组成RAID。很多外购SSD磁盘的闪存厂商都还不支持GFTL技术,但是该技术是提高闪存效率和竞争力的有力武器。 重删特性 ????? 重删是闪存最基本特性之一,分为Inline和Postline,但对闪存Inline才能体现真正价值。重删一般分为HASH指纹算法(以SHA-1为例说明,存在碰撞问题)和按字节对比法两种,逐字节对比可靠性高,但会严重影响闪存性能,所以很少使用,只在数据一致性要求非常严格的场景下使用。 ????? SHA-1算法会有Hash冲突的概率,Hash输出长度一般为160字节的数字,对不同数据块(大小可设置)其输出是随机的,在0-2^(160-1)间分布,不同数据产生相同Hash值的概率2^(-160),只有数据量(固定数据块大小)超过这些数字能表示的值时,才会发生Hash冲突,但到目前位置,所有产生的数据量总和都不至于产生Hash冲突。 ????? 所以Hash方式在产品中最为常见。场见的强Hash算法有SHA-1, SHA-256等;常见的弱Hash算法有Murmur3, CRC, MD5等;强Hash发生冲突的概率低。 ????? 但是在某些场景,如在8K业务数据块大小的数据库场景下

文档评论(0)

智慧IT + 关注
实名认证
内容提供者

微软售前技术专家持证人

生命在于奋斗,技术在于分享!

领域认证该用户于2023年09月10日上传了微软售前技术专家

1亿VIP精品文档

相关文档