模块–4智能存储系统模块4:智能存储系统1学完本模块后,您将能够:•介绍智能存储系统的关键组件•介绍缓存管理和保护技术•介绍两个存储资源调配方法•介绍两种类型的智能存储系统2模块4:智能存储系统模块4:智能存储系统本课程将讲述下列主题:•智能存储系统概述•智能存储系统的关键组件•缓存管理第1课:智能存储系统的关键组件3概述•关键性的业务应用对性能、可用性、安全性以及可扩展性都有很高的要求。•硬盘是存储的核心组成部分,决定了存储系统的性能。•RAID技术的出现很大程度提升了存储系统的性能和可靠性。然而,单靠硬盘仍然无法满足应用需求。•智能存储系统是一种功能丰富的RAID阵列,提供了高度优化的I/O处理能力。什么是智能存储系统(ISS)?•提供可增强性能的大量缓存和多条I/O路径•具有提供以下功能的操作环境智能缓存管理阵列资源管理到异构主机的连接•支持闪存驱动器、虚拟资源调配和自动存储分层5它是功能丰富的RAID阵列,提供高度优化的I/O处理功能。智能存储系统4.1智能存储系统的组成部分•一个智能存储系统由四部分组成:•前端•缓存•后端•物理磁盘•一个来自主机的I/O请求首先达到前端端口,然后经过缓存和后端的处理,最终在物理磁盘上存储或获取数据.•如果被请求的数据已经保存在缓存中,那么读请求可以直接在缓存中完成.•最新的智能系统中,前端,缓存,后端一般是集成在一块板上的,称作存储处理器或存储控制器。ISS的关键组件7主机连接前端后端缓存智能存储系统物理磁盘存储网络图4-1智能存储系统的组成部分4.1.1前端•前端提供了存储系统与主机之间的接口,它由两部分组成:前端端口和前端控制器。•每个控制器拥有多个端口,能够将大量主机连接到智能存储系统。•每一个前端端口都有相应的传输协议的处理逻辑,这些传输协议包括光纤通道,ISCSI,FICON,FCoE等。•前端控制器通过内部数据总线把数据传入缓存或从缓存传出数据。•当缓存收到写入的数据后,控制器向主机发出一个应答消息。•控制器用命令队列算法来优化I/O处理。ISS的关键组件:前端9智能存储系统端口控制器主机存储网络缓存物理磁盘后端前端前端命令队列•前端命令队列在前端控制器上实现•控制器对收到的命令的执行顺序进行决策,以减少不必要的驱动器磁头移动,改善磁盘性能。•有了命令队列,就可以根据数据在磁盘上的组织方式并发的执行命令,而不是按照这些命令的达到顺序执行。命令队列算法•先进先出算法(FirstInFirstOut,FIFO)从性能角度看它是最差的•寻道时间优化算法•访问时间优化算法ISS的关键组件:缓存12智能存储系统主机存储网络缓存前端后端物理磁盘4.1.2高速缓存•缓存是半导体存储器,为了减少完成主机I/O请求所需的时间,数据被暂存在缓存中。•物理磁盘时智能存储系统中最慢的组件,缓存可以将主机与磁盘的机械延迟隔离开,以此来提升系统的性能。•因为寻道时间与旋转延迟,从物理磁盘中访问数据通常需要几毫秒。而从缓存访问数据只需要不到1ms。•在智能阵列中,写入的数据先被存入缓存随后才被写入到磁盘中。高速缓存•缓存是智能存储系统用来提高I/O性能的重要环节•缓存是半导体存储器•为了减少完成主机I/O请求所需的时间,数据被暂存在缓存中•物理磁盘是智能存储系统中最慢的组件,缓存可以将主机与磁盘的机械延迟隔离开,从而提升系统的性能使用缓存进行的读取操作15在缓存中找到数据1.读取请求未在缓存中找到数据在缓存中找到数据=读取命中未在缓存中找到数据=读取未命中1.读取请求2.将数据发送到主机4.将数据发送到主机2.读取请求3.将数据拷贝到缓存带有缓存的读操作•每当主机发出一个读请求,前端控制器会通过查询请求的数据是否保存在缓存中。如果在缓存中找到请求的数据,则发生一次读缓存命中,数据被直接送到主机,无需任何磁盘操作。如果没有在缓存中找到请求数据,称为发生了一次缓存未命中,数据必须从硬盘读取。带有缓存的读操作•后端控制器负责访问相应的磁盘并读取请求的数据。随后,数据被保存到缓存中并最终通过前端控制器送到主机。•缓存未命中增加了I/O响应时间。Pre-read•如果读请求是顺序的,可以采用预取或者称为预读的算法。•这一过程显著的减少了主机的响应时间读命中率的提高带来性能上的提升使用缓存进行的写入操作19直写缓存回写缓存缓存缓存1.数据写入4.确认2.数据写入3.确认3.数据写入4.确认1.数据写入2.确认带有缓存的写操作•带有缓存的写操作提供了比直接写磁盘更好的性能。•一个I/O被写入缓存并得到响应比直接写入磁盘所用的时间要少得多。•多个小的顺序写操作可以被合并成大的写操作,在有缓存的情况下使得我们有机会对顺序写操作做优化。带有缓存的写操作的实现•回写缓存数据被存入缓存,主机立即得到响应。一段时间后多个写操作的数据被一起提交到磁盘。如果遇到故障,未被提交的数据有丢失的风险•直接写缓存数据被存入缓存并立即写到磁盘中因为需要磁盘操作,写响应时间比较长跳过缓存写的情况•在特定的情况下缓存可以被跳过比如要写入极大量的数据时。这时,如果一个I/O请求的大小超过了预先定义的值(称为写旁入大小),写入操作被直接发送到磁盘以防这些写入占用大量的缓存区域。•有限的缓存要用在小的、随机的I/O访问中,这样才更有效。好钢用在刀刃上缓存实现•缓存实现分为专用缓存和全局缓存专用缓存:读操作和写操作分别使用单独的内存全局缓存:读写操作都可以使用任意空闲的内存•全局缓存的管理更有效率,因为只需管理一组全局的地址缓存管理•缓存是昂贵、有限的资源,需要合适的管理•缓存管理算法最近最少访问算法(LeastRecentlyUsed,LRU)假设:如果一个页面刚刚被访问过了,它就不太可能再被访问最近最多访问算法(MostRecentlyUsed,MRU)假设:如果一个页面刚刚被访问过了,它还可能被经常访问缓存管理:算法•最近最少使用(LRU)删除很长时间未访问的数据•最近最常使用(MRU)删除最近最常访问的数据26新数据LRU/MRU数据缓存缓存管理:水位线•通过刷新过程管理突发I/O刷新是将缓存中的数据提交到磁盘的过程•管理缓存利用率的三个刷新模式是:空闲刷新高水位线刷新强制刷新27空闲刷新高水位线刷新强制刷新100%HWMLWM缓存数据保护•防止缓存中的数据受到电源或缓存故障的影响:缓存镜像提供防止数据受到缓存故障的影响的保护每次写入到缓存中的数据都保存在两个独立内存卡中的两个不同内存位置缓存保险存储提供防止数据受到电源故障的影响的保护在出现电源故障时,会将未提交的数据转储到称作“保险存储驱动器”的一组专用驱动器中28•使用主机上的智能缓存软件和PCIe闪存卡•显著提高应用程序性能为读取密集型工作负载提供性能加速避免与对存储阵列的I/O访问关联的网络延迟•通过将数据放在服务器上的PCIe闪存中,以智能方式确定将受益的数据•使用最少的CPU和内存资源闪存管理减负到PCIe卡上服务器闪存缓存技术29PCIe闪存卡HBA应用程序智能缓存软件主机存储网络存储阵列ISS的关键组件:后端30智能存储系统控制器主机存储网络缓存物理磁盘后端端口前端后端•后端提供了缓存和物理磁盘之间的接口两部分组成:后端端口和后端控制器后端控制器在做读写操作时与磁盘进行交流,同时也提供有限的、临时的数据存储。•磁盘端口冗余可以进一步增强可靠性情况罕见ISS的关键组件:物理磁盘32前端智能存储系统主机存储网络后端缓存物理磁盘物理磁盘•SCSI•FC•IDE/ATA•SAS•SATA固态驱动器•固态硬盘的存储介质分为两种一种是采用闪存(FLASH芯片)作为存储介质另外一种是采用DRAM作为存储介质(需要独立电源来保护数据安全)•没有机械运动部件•带来了更短的响应时间和更低的电量消耗在阵列中,闪存存储器存储1TB的数据消耗的能量比传统磁盘驱动器少38%30个15K转速的FC盘才能达到一个闪存驱动器的性能在性能相同的情况下,闪存驱动器能节能98%SSD•固态硬盘的优点1.启动快2.不用磁头,快速随机读取,读延迟极小3.相对固定的读取时间4.基于DRAM的固态硬盘写入速度极快5.无噪音6.能耗和发热量较低7.内部不存在任何机械活动部件,不会发生机械故障,也不怕碰撞、冲击、振动8.工作温度范围更大9.体积小、重量轻•固态硬盘的缺点1.成本高。每单位容量价格是传统硬盘的5~10倍(基于闪存),甚至200~300倍(基于DRAM)。2.容量低3.易受到某些外界因素的不良影响。如断电(基于DRAM的固态硬盘尤甚)、磁场干扰、静电等。4.写入寿命有限(基于闪存)5.数据损坏后难以恢复6.基于DRAM的固态硬盘在任何时候的能耗都高于传统硬盘模块4:智能存储系统本课程将讲述下列主题:•传统存储资源调配•虚拟存储资源调配•ISS实施第2课:存储资源调配和ISS实施36向主机分配存储•可以两种方式执行:传统存储资源调配虚拟存储资源调配37它是根据主机上运行的应用程序的容量、可用性和性能要求向主机分配存储资源的过程。存储资源调配传统存储资源调配38主机1主机2前端后端缓存智能存储系统物理磁盘(RAID集)LUN0LUN1LUN0LUN1存储网络LUN逻辑单元编号•逻辑单元编号:LogicalUnitNumber,LUN•物理驱动器或一组RAID保护的驱动器可以被分为若干个逻辑卷,这些逻辑卷用LUN统一寻址。•一个逻辑设备实际上是RAID组中的一个分区,但却被主机看作是一个物理磁盘。•在RAID情况下,这些逻辑设备是RAID组的一部分,分布在所有属于该RAID组的磁盘上。•LUN的使用提高了磁盘的利用率。LUN屏蔽•LUN屏蔽是一种数据访问控制,它决定主机可以访问哪些LUN。•LUN屏蔽功能一般在前端控制器上实现。•LUN屏蔽保证了服务器的卷访问得到适当的控制,防止在分布式环境中的未授权访问和意外访问。基本LUN组件LUN合并MetaLUNLUN扩展•通过组合两个或更多个LUN来创建•MetaLUN可以是合并的,也可以是分条的•合并metaLUN仅提供附加容量,而不提供性能扩展很快,因为未重新条带化数据•分条metaLUN提供容量和性能扩展很慢,因为会重新条带化数据42它是扩展需要附加容量或性能的LUN的方法。MetaLUN基本LUN组件LUN分条MetaLUN++虚拟存储资源调配43主机1主机2前端后端缓存智能存储系统主机报告的容量10TB已分配3TB精简LUN0已分配4TB10TB主机报告的容量精简LUN1物理磁盘(共享池)精简LUN0精简LUN1存储网络传统资源调配与虚拟资源调配44传统资源调配400GB已分配但未使用的容量100GB数据500GB已分配但未使用的容量50GB数据200GB数据600GB已分配但未使用的容量LUN1LUN2LUN3存储系统2TB虚拟资源调配100GB已分配50GB已分配200GB已分配精简LUN1精简LUN2精简LUN3500GB550GB800GB存储系统2TB500GB550GB800GB1500GB或1.5TB已分配但未使用的容量350GB实际数据150GB可用容量350GB实际数据1650GB或1.65TB可用容量LUN掩蔽•在存储阵列上实施•防止在共享环境中未授权或意外使用LUN46它是通过定义主机可以访问哪些LUN来进行数据访问控制的过程。LUN掩蔽4.3智能存储系统的类型•智能存储阵列可分为两种类型:•高端存储阵列采用活动-活动式阵列实现•中档存储阵列采用活动-被动式阵列实现•这些阵列提供以下功能:高存储容量和大型缓存容错体系结构到大型机和开放系统的连接多个前端端口和接口协议能够处理大量并发I/O支持本地和远程数据复制4.3.1ISS的类型:高端存储系统48•称为主动-主动阵列,通常面向大型企业应用程序通过所有可用路径执行对LUN的I/O主机存储阵列活动活动“主动-主动”配置端口控制器A端口控制器BLUN•这些阵列通常具有两个控制器