Flash存储技术在当前企业环境中的运用_第1页
Flash存储技术在当前企业环境中的运用_第2页
Flash存储技术在当前企业环境中的运用_第3页
Flash存储技术在当前企业环境中的运用_第4页
Flash存储技术在当前企业环境中的运用_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Flash存储技术在当前企业环境中的运用尽管目前在企业IT系统以及企业的数据中心里,基于HDD的磁盘存储还占据着绝对的容量份额,但大部分客户都意识到Flash技术给企业应用带来的巨大潜力,而基于Flash的新型存储架构势必给现有架构带来巨大的革命Flash闪存技术作为存储介质的革命性优势主要体现在两个方面:1. 性能,相对于传统磁盘每次只能进行一次IO操作,Flash在理论上每个4KB sector都可以互不干扰地进行读写操作,从而具备巨大的并发IO处理能力,同时由于不受限任何机械设备的性能,Flash存储在IO的时延上也具备巨大的优势2. 存储密度,相对于传统磁盘,构成Flash容量的基础是

2、NAND芯片,而芯片技术是遵循摩尔定律的,在过去5年,NAND单芯片的容量从32MB已经增长到3TB,而且技术上也远没有到达极限,这意味着将来很容易出现几十甚至上百TB的单盘或单卡容量结合Flash这两方面的优势,以前传统磁盘需要一个或几个机架才能搭建的存储系统,可以很轻松地用一个或几个巴掌大的Flash设备完成但是,同样使用NAND芯片,不同厂商的不同Flash存储产品在接口形式、IO转换方式、转换技术和使用架构上千差万别,导致最终的性能和可靠性也相差很大。在目前技术环境下,很难通过一些简单的判断得出那种Flash存储产品更好的结论,企业出于不同的使用目的,在运用Flash存储产品时,需要在

3、性能、功能、可靠性、扩展性和成本之间做出平衡,从而设计出符合业务需要的解决方案。从Flash存储设备访问方式看,站在Flash存储的位置角度,可以分为两种A. In Server,即Flash存储设备以SSD盘或Flash卡的形式,通过主机PCI-e插槽或SASSATA接口直接连接主机系统,这种方式具备相对更高的性能,但是Flash存储自身的实现功能较为简单,除了IO访问,几乎没有什么存储管理功能,企业应用如果采用这种方式,需要在OS层面部署针对Flash优化的存储管理软件,在In Server模式下,站在IO访问路径角度,又可以细分为两种模式:1. Block Device/Logical

4、Device,在IO访问的技术特征上,Flash存储更像内存(平面寻址)而不像传统磁盘设备(顺序寻址),从而并不需要通过复杂的队列和SCSI控制去访问,因此为了追求最大性能,很多设备厂商放弃对传统磁盘接口的兼容,转而通过PCIe这种高速总线去连接Flash存储,这种访问方式映射到OS就是一个虚拟化的逻辑设备或块设备(类似传统的”卷”设备);但这种方式由于直接和应用对接,因此要么应用层能完成对存储的管理功能,要么设备驱动自身就必须具备比较完善的存储管理功能,所有的PCIe Flash卡的厂商几乎都采用这种模式,由于这种模式的性能最好,价格相对也并不是最贵,因此首先被广泛应用在互联网企业,但由于P

5、CIe Flash卡的厂商通常缺乏存储背景,因此在存储管理的功能上并没有太多的解决方案,而是依赖应用或OS层面实现存储管理功能,除了一些新型分布式应用(自身带存储管理功能或对存储管理没有什么要求),该模式在传统企业市场还并没有得到大规模使用。2. Disk Device,鉴于企业现有架构中,磁盘存储还是占据统治性的地位,出于兼容性的考虑,有很多厂商在性能上进行一些妥协,通过Flash控制芯片,模拟类似磁盘的接口特性,这样在使用上就变得相对简单,不用对原有架构做比较大的改动变化。所有SSD盘的厂商几乎都采用这种模式,其特点是产品价格在所有方案中是最便宜的,但是性能受到两点限制:首先受限磁盘物理尺

6、寸,在内部能铺放的NAND和控制芯片数量有限,其次IO要经过OS内部比较冗长复杂的标准磁盘接口,NAND性能无法得到充分利用,但是即使这样,SSD性能依然能满足大部分应用需求,因此使用范围最为广泛,覆盖了消费市场、中小企业、大型企业、互联网企业等各种环境无论采用什么方式,企业在运用In Server模式共同的挑战在于以下几点:· 可靠性和可用性挑战:即跨主机的数据可靠性和共享能力,因为一旦主机宕机,要想数据能够继续访问,就必需要在主机之间实现跨节点的数据同步,目前Flash存储设备厂商在这方面还没有太好的技术手段。· 大规模部署的挑战:即对海量分散在各个主机中的Flash存

7、储设备的管理能力和存储资源整合能力,和消费市场不同,企业数据中心的服务器数量众多,数据量巨大,涉及到的Flash存储设备数以千计,如果无法进行资源的统一管理和分配,企业是无法在数据中心进行大规模部署的。· 业务连续性挑战:即数据容灾保障能力,比如在线的数据复制,数据快照、数据迁移这些保障性功能,对于企业数据中心而言都是标准配置要求,而目前Flash存储设备厂商还缺乏对应的解决方案在没有解决上述几个关键技术挑战前,企业只能将Flash技术作为一些特殊应用场景下的点状解决方案来使用,无法在整个数据中心全面部署,好在随着软件定义存储(SDS)技术的兴起和逐渐成熟,上述的技术挑战都可以通过部

8、署在主机上的SDS存储管理层来得到解决。B. Out of Server,即Flash存储设备先通过自身的总线挂接SSD盘或Flash卡,然后通过控制器(Controller)上的FC、iSCSI或IB网络接口,接入到主机系统上,由于网络时延和网络协议开销,加上控制器自身的存储处理开销,这种方式在同等条件下,性能远不如In Server的方式,但由于厂商可以在控制器里实现比较多的存储管理功能,因此对于企业而言,部署起来相对简单,这种模式根据技术实现细节,可以分为以下几种类型1. 设备内部使用SSD磁盘,与主机通过FC接口,以传统阵列LUN的方式提供存储资源,这种模式完全利用了阵列的现有架构,实

9、现起来最简单,但是同等条件下,性能是各种实现方式中最差的(几乎在各个环节都使用了性能最差的技术实现手段),这种使用方式仅仅作为Flash刚出现时的一种过渡性技术实现方式,存在了几年时间,未来应该不会有太大的技术发展前景,但是,如果企业考虑利用现有阵列设备,通过替换HDD实现简单的性能升级,在成本合适的情况下,还是可以考虑,新系统采购则不建议考虑这种部署形式2. 设备内部通过总线直接插接使用Flash闪存芯片阵列,与主机通过FC或IB接口,以传统阵列LUN的方式提供存储资源,这种模式在阵列内部进行了重新设计,针对Flash进行了性能优化,目前市场上绝大多数的纯闪存阵列都基本采用了这种模式,不同厂

10、商设备之间比拼的是控制器软件的功能和性能优化,还是存在一定的差异性,这种模式的性能一般都能达到一个不错的水平,而且具备比较好的通用性,但是成本几乎是所有Flash部署形式里最高的,受限于成本因素,目前在企业里只能做一些有限的使用,难以大规模部署3. 设备内部通过总线直接插接使用Flash闪存芯片阵列,与主机通过IB接口基于RDMA协议(如SRB协议、iDB协议)进行存储资源访问,目前市场上大部分一体机(典型的以Oracle Exdata为代表)都是使用这种技术实现方式,这种模式的性能直追性能最好的PCIe直连模式,又能够解决主机内部插卡的技术不足,但成本同样非常高,和纯闪存阵列差不多,而且相对

11、纯闪存阵列,由于只针对具体某应用,其设备通用性比较差,而且存储管理能力也比较欠缺,这也是其在企业中部署不多的原因综合而言,Out of Server替企业用户解决了In Server存储管理性不足的麻烦,但企业需要为此付出更多的设备采购成本,从成本看,其性价比值得客户在某些特定系统上投资Flash存储,但不值得用户在数据中心大规模部署,从技术看,虽然Out of Server解决了客户的部分存储管理需求,但企业客户为此需要付出架构控制性的代价,即只能够按照设备设计的方式和指标来搭建其系统基础架构,而这种技术代价和目前数据中心软件定义化的大趋势和潮流是背道而驰的。总结运用Flash存储的各种模式

12、,对于企业而言,其实无外乎三种选择:1. SDS+In Server Flash模式,在这种模式下,企业比较容易获得非常好的性能和较低的采购成本,对架构的控制力比较强,但需要进行的技术工作也相对多一些。按目前Flash存储市场的价格水平,这种模式是唯一适合企业大规模进行通用性部署的方案2. 直接采购Flash Array的Out of Server模式,在这种模式下,企业能够以比较简单的方式获得比较好的存储性能,但架构控制里比较弱,由于成本原因,只能针对某些特定系统进行投资,按目前价格水平,如果大规模部署,谈不上性价比3. 直接采购使用Flash Appliance产品,在这种模式下,企业能够

13、以比较简单的方式直接获取比较高的业务应用性能,但在架构和成本上则完全失去控制力,因此同样只是真的特定系统进行投资,从技术和价格两方面因素都还无法支持大规模部署从技术发展趋势角度,SDSIn Server模式无疑是最具前景的Flash应用模式,但SDS技术自身还在不断发展中,并不是所有SDS解决方案都对Flash进行优化,由于Flash自身的技术特点,要获得比较好的性能和可靠性,需要用户在架构和系统设计时,能够对Flash的IO读写过程有比较深入的了解。在后面的文章中,我们会详细介绍为什么Flash存储需要特别的优化技术,以及如何在SDS方案中对Flash做针对性优化目前能提供SDS功能,利用软

14、件将主机内置存储整合成统一的对外服务资源的商用和开源解决方案很多,从技术特点和实现机制的角度上,主要分为以下两种:1. 基于分布式存储技术,技术特点在于将存储的控制面和数据面整合在一起,形成统一的访问路径,其优点是能够比较容易地整合海量的分散主机,主要缺点是性能,特别是在IO访问时延上,还无法媲美传统的磁盘阵列系统,因此难以发挥Flash的性能优势,目前基于分布式存储技术的SDS解决方案主要还是应用在一些对IO时延性能要求不高,对成本相对敏感的3级或4级系统上2. 基于传统存储虚拟化技术,技术特点在于将存储的控制面和数据面分离,上层应用可以直接对数据面进行访问,控制面动态地调整数据和设备之间的

15、映射,其优点是具备了比较丰富的存储管理功能,性能通常没有明显的瓶颈,主要缺点是横向扩展能力通常有一定限制(控制面需要实时控制,很难做到分布式异步处理),目前基于存储虚拟化的SDS解决方案主要应用在一些对性能和可靠性要求较高的1级或2级系统上对于Flash存储而言,上述两种流派都存在一定的可取之处,也都存在一定的技术缺陷,一方面Flash存储介质的最佳运用方式应该是基于主机内部的In Server模式的整合,因此分布式存储在整合分散主机方面具备很强的优势,另一方面,Flash存储介质需要SDS方案具备很高的性能和可靠性,因此基于传统存储虚拟化的技术在性能和服务可靠性上都具备很强的优势。由于Fla

16、sh技术尚未在企业应用环境中大规模使用,目前业界还缺乏成型的专门针对Flash存储形态的SDS解决方案。本专利针对Flash存储的技术特点,提出一种全新的SDS架构,并针对其中的若干关键性技术环节,进行了创新性设计,本专利包括以下三个部分:1. 针对部署在服务器内部的Flash存储设备,提出一种新的SDS软件设计架构,能够解决跨节点的存储资源共享问题,同时解决分布式存储性能不足的问题2. 上述SDS软件设计架构中的核心部件存储访问层功能设计3. 上述SDS软件设计架构中的核心部件计算节点间通讯模块功能设计SDS系统整体设计框架如下图所示: 该架构的创新之处在于引入了存储访问层(Storage

17、Access Layer)的概念,这个概念在现有的各种SDS架构中是缺乏定义的,存储访问层的设计目的在于提供一个基于系统核心态的存储抽象层次(目前大部分SDS提供的存储访问层次都是基于用户态的,这不光导致稳定性问题,同时也直接会极大地影响性能,而且难以与其他开源模块进行整合)存储访问层的主要技术特征包括:1. 上层内核模块对设备的数据访问不直接通过设备驱动接口,而是被导向一个跨节点的全局接口(Global Interface),这种设计思路类似UNIX平台下的VFS接口设计,在保证性能的同时,能够比较方便地对分散节点进行统一动态整合管理,同时简化了底层的高可靠设计难度2. 存储访问层位于主机内

18、部内核层,这样上层应用和底层驱动都只需要关注本机的接口状态,而无需进行跨节点的管理3. 存储访问层提供的是一个基于虚拟设备的访问接口,能够很方便地与其他高层次的成熟开源解决方案(如Linux LVM,Linux GFS等)进行整合和集成,借助其他模块已有的功能,完成丰富的存储管理功能(数据复制,快照,容灾等)存储访问层的功能实现包括:1. 存储访问层可以横向扩展至64128个服务器节点(scale out),形成一个可以完全实时共享Flash的存储集群,多个存储集群之间通过上层逻辑卷的数据复制功能,进行跨集群的异步数据复制和迁移,从而能够让整个存储访问层的资源管理跨越整个企业数据中心2. 存储

19、访问层在设计上,支持服务器节点内部存储的即插即用,即可以通过增加主机Flash的方式,动态在线扩展存储访问层的容量(scale up)3. 每个节点上均有服务和请求两个模块,当任意节点需要存储资源时,其他节点的服务模块会动态地通过即插即用的方式将其内部的Flash存储映射给请求节点,所有节点服务和请求关系均通过一个带外的管理端进行管理,节点之间通过自协商协议来确保映射关系的全局一致性4. 当Flash存储集群中发生节点增加或节点退出操作时,仅影响使用该节点存储的虚拟设备,其动态重配置过程也仅限于该虚拟设备,与节点无关的虚拟设备和其他节点不受任何影响(基于动态即插即用的松耦合结构)5. 存储访问

20、层提供一些关键性的存储服务,包括:在一个存储集群中的多个节点之间同步保留多份数据拷贝,以提供抵御硬件故障的高可靠设计(关键点);当节点存储访问状态发生变化时(容量的变化,服务的可用性等)在整个集群中进行元数据的广播和交互,维护存储集群的全局一致性存储访问层的功能实现设计架构如下图所示: 在上述功能设计中,各模块关键功能实现如下:1. 每个节点上都有一个配置守护进程(config daemon),该进程负责指挥虚拟IO驱动模块如何将不同节点间的设备,合成一个统一的虚拟设备给上层应用使用(类似Linux LVM的功能),不同节点之间的配置守护进程会进行自协商,从而形成一个全局统一的元数据结构。2.

21、 除了节点之间的自协商,用户可以通过UI接口,经过SDS管理接口(Mgmt.Provider)的转换,形成一系列的带外控制命令,来之间对配置守护进程进行指令操作(UtilsScripts),SDS管理接口(Mgmt.Provider)的作用在于分解UI发出的全局控制指令,识别哪些操作是需要本地完成的,哪些操作是需要其他节点完成的,对于其他节点的操作,触发配置守护进程的自协商流程,确保全局操作的一致性和唯一性3. 虚拟IO驱动模块的功能分为两个层次,对上层表现为一个逻辑的虚拟块设备(logical volume),对内分为Volume Server和Volume Client两个角色:Volum

22、e Server控制主机内部的Flash存储设备,并响应其他节点对本主机内部Flash存储设备的访问请求;Volume Client负责访问非本主机的其他节点Flash设备,即发出对其他Volume Server的访问请求。上层应用对存储的访问,会通过虚拟IO驱动模块分解成对本主机内部的访问请求和对其他主机的访问请求(具体做法是通过逻辑地址和物理地址的对应表来完成)4. OS Flash Driver负责对Flash存储设备的识别,为了解决Flash存储设备热插拔和在线替换的企业实际需求,在设计中,我们使用Flash设备序列号和其他特征值通过算法合成一个唯一标识号(UUID),并将这个标识存放

23、在Flash设备的元数据分区,以保证设备在各节点之间的全局唯一上述设计的核心优势在于:在基础架构层面比较好地解决了跨节点访问的性能和兼容性问题,由于每个节点的数据访问都是直接通过内核访问本地的虚拟块设备,因此理论上可以支持目前各种不同形态的应用,对远程节点的融合是在虚拟IO驱动层内部实现,可以很方便地设计专有的高性能网络通信模块,这种设计方式目前看还是属于首创在我们的SDS设计架构中,节点之间的通信时延是影响整体性能的决定性因素,因此在本专利中,我们同时也设计了专有的通信协议模块。对于主机之间的通信,从性能为第一要素考虑,目前最合适的模式就是采用基于RDMA模式(remote direct memory access)的通讯协议,目

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论