各厂商主要缓存技术特点.docx
- 文档编号:6698989
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:9
- 大小:892.54KB
各厂商主要缓存技术特点.docx
《各厂商主要缓存技术特点.docx》由会员分享,可在线阅读,更多相关《各厂商主要缓存技术特点.docx(9页珍藏版)》请在冰豆网上搜索。
各厂商主要缓存技术特点
HDSIBMEMCNetApp存储缓存技术探秘
By黄光亮
前言:
当今主流的存储厂商中越来越多的使用Flash,或者说SSD。
但各家用法都相近,要么作为独立的存储层,用来实际存放热点数据,要么作为缓存的扩展。
这篇文档挑选具有代表性的缓存技术加以总结概括,以期能触类旁通。
1HDS缓存分区技术
缓存分区(cachepartition)是HDS存储独有的缓存技术,且在HDS高端和中端存储上都有应用,缓存分区包括两个含义:
1)将cache分区,通过cache分区和存储分区,将磁盘阵列分成多个逻辑存储,每个业务互相不影响,这个功能在HDS的高端USP/NSC系列,以及模块化AMS/WMS系列都存在,而其他高端阵列不具备这个功能(IBMDS系列中只有DS9B2才能做到2个分区而已,而普通的8100、8300都不可以)
2)在实现了cache分区以后,每个分区的cacheblocksize都可以调整,这样每个分区可以根据应用的特点来调整blocksize对应相对分区应用程序的blocksize,比如数据库blocksize为8K,可以将阵列的blocksize调整为8或者16k,流媒体应用将blocksize调整为256k,512k或更大。
HDSAMS系列产品与USPV系列产品都是遵循HDS先进的SOSS战略设计的,都具备能够保证应用系统QoS的缓存分区功能。
CachePartitionManager——高速缓存分区功能
CachePartitionManager(高速缓存分区功能)是AMS和WMS存储系统产品线的一个关键改变,可确保应用的服务质量。
其它任何模块化产品都没有能力在这一级别管理高速缓存。
CachePartitionManager通过以下机制发挥作用:
分区技术的使用
●将Cache分为最多32个分区。
每个分区的资源访问独立进行,不会互相串扰。
●根据应用的I/O特性不同,可以用多种不同的方法优化每个分区的分段大小。
分段尺寸可设置为4kB,8KB,16KB,64KB,256KB,512KB等等。
可调的分段尺寸将大大提高缓存访问的命中率。
对于4KB的I/O数据,8KB的分区将比16KB的分区大大提高访问命中率
●根据应用的可靠性要求不同,对Cache的使用率要求不同,对可将每个分区的缓存设为镜像模式、无镜像模式
●每个分区对应的磁盘LU可选择不同的条带大小,尺寸可由16KB,64KB,64KB一直增长到128KB,最终实现分区缓存数据写入磁盘的优化操作
可调磁盘条带大小——StripingSize
综上所述,分区技术为模块化存储设备提供存储虚拟化的高级能力,最终为应用系统提供全方位的存储服务质量支持。
2IBMXIV的缓存技术
IBMXIV扩展缓存采用的是SSD磁盘的形式,这与XIV大容量SATA+SSD的设计理念是分不开的,因为XIV倡导的就是使用低成本大容量的磁盘来获取高的性能,并实现横向扩展。
SSD在XIV中并不是作为一个独立的存储层,用来存放阵列中的热点数据,而是作为缓存来提升热点数据的访问速度。
因为XIV的设计人员认为如果数据不能被快速定位,那么分层存储的效率是不高的。
这一点与NetApp非常相像。
在XIV中使用SSDcache,不需要手工重新分布数据,因为SSD只作为阵列缓存的一个扩展。
SSD在XIV中仅仅作为读缓存,当数据逐渐变冷时,将会被丢弃,取而代之的是更多的热点数据。
下图是XIVSATA盘和SSD之间的关系示意。
XIV阵列的构成如下,需要强调的是,SSD只是作为控制器内存的一个扩展,用来作读缓存,而不是传统意义上的分层存储将SSD作为独立的一层来真正存储数据。
3EMCVNX缓存真相
EMC高端存储中前端卡与后端卡连接CACHE的方式与HDS有很大差别,HDS是通过内部交换方式连接,而EMC是直接连接,每个卡与每个CACHE板之间都有数据通道,所以,EMC的连接方式又叫直连矩阵。
EMC高端存储中,如vmax,缓存采用了与EMC中端vnx不一样的镜像技术,成为读写全局cache全镜像。
“全局读写CACHE全镜相”与“读写CACHE分离,写CACHE镜相技术”的差别:
1)全局CACHE中,读写是混在一起的,类似oracle的buffer,读可以直接在一个CACHE中命中。
2)读写分离中,如果一个要读的数据在写CACHE中存在,需要先从写CACHE拷贝到读CACHE,可能存在多份。
3)读CACHE一般远远大于写CACHE。
下面我们来看看VNX的缓存
从EMC官网下的文档h8268_VNX_Block_best_practices.pdf可以看到VNX各产品的技术规格中,内存值为:
从文档的描述中可以知道:
VNX的读写Cache=内存-操作系统开销-功能开销-安装的应用程序开销
除去这些开销外,各产品能用于数据读写的缓存如下表。
读cache的建议初始值为:
但是不是这些缓存都用于处理读写请求了呢,其实不然,还会存在性能开销。
从下表中可以看出,以VNX5700为例,如果启用了DataService和FastCache,则每个控制器可用的读写缓存总和从原来的18GB降为5280MB,减去读cache1024MB,则写cache为4256MB,镜像后写cache为每控制器2128M。
由此可粗略估算,在不开启DateService和FastCache的情况下,每控制器的实际读写cache为:
R/Ocache=SPchchesizeperSP*2-(SPchchesizeperSP–recommendedinitialreadcache)/2
所以可以大概估算出EMCVNX系列存储的有效Cache容量:
●VNX5100(双控8GBCache):
801×2-(801-100)/2=1251.5MB≈1.25GB
●VNX5300(双控16GBCache):
3997×2-(3997-400)/2=6195.5MB≈6.2GB
●VNX5500(双控24GBCache):
6988×2-(6988-700)/2=10832M≈11GB
●VNX5700(双控36GBCache):
10906×2-(10906-1024)/2=16871MB≈17GB
●VNX7500(双控48GBCache):
14205×(2-14205-1024)/2=21819.5MB≈22GB
由此看来,VNX的内存表面上看比较大,但实际可用的读写cache在启用了各种功能后会大大缩水,下表是镜像后各产品每SP的写cache大
4NetApp的缓存技术
Netapp的Flash技术已覆盖服务器、存储控制器和磁盘框三个层面,其中使用在服务器上的Flashaccel,可扩大服务器的缓存,能够优化服务器闪存的使用、提高应用程序响应能力和大大提高系统总吞吐量。
使用在存储控制器中的闪存介质包括VNRAM和FlashCache,其中NVRAM优化写性能,将写请求集中起来等到consistpoint后再写入到磁盘中;FlashCache优化读性能,自动将热点数据缓存到FlashCache上,提高数据读取速度。
有SSD盘组成的FlashPool可以作为独立的Aggregate放在磁盘框中,同时对随机小块的读写性能进行优化,特别是随机重写操作,有非常大的性能改善。
下面将主要介绍FlashPool闪存池的技术原理。
4.1AST&VST简介
所谓自动存储分层会尝试识别热数据并将其存储在性能较高的存储介质上,同时将冷数据存储在速度较慢、成本较低的介质上,而不是将整个数据集永久地放置在昂贵的介质上。
自动存储分层(AST)技术主要用来帮助数据中心在最大程度地降低成本和复杂性的同时,从基于闪存的介质性能改善中受益。
基于闪存的设备(如基于固态硬盘[SSD]控制器的闪存)每秒可完成的随机读取操作数比最快的硬盘驱动器(HDD)多25到100倍,但是要达到这样的性能,每GB成本也要高出15到20倍。
HDD的容量在不断地提高,但在每美元IOPS方面,HDD却没有多少改进。
闪存所提供的每美元IOPS则要多得多,而且延迟时间更短。
NetApp®虚拟存储层(VST)是存储基础架构中的一个自我管理型的数据驱动式服务层。
它可提供对基于工作负载的优先级的实时评估,还可针对成本和性能优化I/O数据请求,而不必进行复杂的数据分类。
NetApp使用闪存来在阵列内提供FlashPool(闪存池)卷层次高速缓存,在控制器内提供FlashCache(闪存高速缓存),数据默认存储在成本最低的可用物理存储设备上(通常为大容量SATA),因为VST会将智能缓存用在I/O和CPU开销极少的闪存上。
根据实际使用模式按需进行数据提升,从而确保即时响应不断变化的工作负载需求。
技术原理
基于迁移的AST可自动化数据迁移的流程。
当一个数据块被确定为“热”数据时,会将该数据块移至速度较快的介质,当该数据块变“冷”时,会将其移回速度较慢的介质。
移入和移出闪存都需要访问HDD。
基于缓存的AST使用广为人知的缓存方式将热数据“提升”到高性能的介质中。
由于HDD上仍保留有数据的副本,因此当数据变“冷”时,只需将其从缓存中释放即可,而不需要额外的HDDI/O。
4.2NetAppFlashPool
FlashPool读缓存
•读请求发起时,首先检查数据是否在内存缓冲区中;如果在,则直接返回给主机;
•若不在内存中,则检查是否在FlashPool中;若在,则将数据读入内存中,并返回给主机;
•若数据不在内存中,也不在FlashPool中,则直接从HDD读取,并将数据放入内存缓冲区中,并在FlashPool作一个insert操作;(数据插入FlashPool时,它的温度是中性的(neutral),即既不是冷数据也不是热数据)
•数据在内存中的动向
----数据到内存被读到内存时,它将会被分类:
如果是随机读数据,将会被放到一个分开的buffer里;如果是系统数据或连续读数据,则又会被放到另外的buffer里。
----数据被从内存逐出(eviction)时,如果是随机数据,则会被移到CP(consistancypoint)中,在下一个CP到来时,作为CP的一部分insert到FlashPool中。
FlashPool读缓存机制
•数据插入FlashPool时,它的温度是中性的(neutral),即既不是冷数据也不是热数据;
•FlashPool的管理机制中,有一个evictionscanner的角色,会定时去扫FlashPool中的数据;如果在扫描之前被访问过,则其温度增加,从中性变为warm,否则变为cold;再继续扫描,被访问过温度就升一级,未被访问则降一级。
当到达evict时,则将冷数据清除,为其他数据提供空间;
FlashPool写缓存
•Wirtecashing设计用来承接针对HDD的overwrite,所以FlashPool在写缓存上专门的目的就是减轻对硬盘随机重写的压力。
•FlashPool并不会试图截获顺序写操作,因为硬盘也可以有效的处理顺序大数据写操作;
•FlashPool不能取代NVRAM作为第一写优化的地位,它只提供承接随机重写的空间;
•FlashPool的writecaching功能在如下场景发挥作用:
---来自主机的写操作,写的位置是随机的;
---前一次的随机写操作也是写到相同的块;
FlashPool写缓存机制
•数据写入到FlashPool时,温度是中性的;
•当evictscanner扫盲数据时,该数据块有重写,则该数据温度不变,仍为neutral;若没有重写,则变为Cold;
•当Cold的数据在下一次扫描仍没有被重写时,则被驱逐出FlashPool,而读入到主内存中,在下一个CP到来时写到硬盘中。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 各厂 主要 缓存 技术 特点