各厂商主要缓存技术特点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

HDS IBM EMC NetApp存储缓存技术探秘

By 黄光亮

前言:

当今主流的存储厂商中越来越多的使用Flash,或者说SSD。但各家用法都相近,要么作为独立的存储层,用来实际存放热点数据,要么作为缓存的扩展。这篇文档挑选具有代表性的缓存技术加以总结概括,以期能触类旁通。

1 HDS缓存分区技术

缓存分区(cache partition)是HDS存储独有的缓存技术,且在HDS高端和中端存储上都有应用,缓存分区包括两个含义:

1)将cache分区,通过cache分区和存储分区,将磁盘阵列分成多个逻辑存储,每个业务互相不影响,这个功能在HDS的高端USP/NSC系列,以及模块化AMS/WMS系列都存在,而其他高端阵列不具备这个功能(IBM DS系列中只有DS9B2才能做到2个分区而已,而普通的8100、8300都不可以)

2)在实现了cache分区以后,每个分区的cache block size都可以调整,这样每个分区可以根据应用的特点来调整block size对应相对分区应用程序的block size,比如数据库block size为8K,可以将阵列的block size调整为8或者16k,流媒体应用将block size调整为256k,512k或更大。

HDS AMS系列产品与USP V系列产品都是遵循HDS先进的SOSS战略设计的,都具备能够保证应用系统QoS的缓存分区功能。

Cache Partition Manager——高速缓存分区功能

Cache Partition Manager(高速缓存分区功能)是AMS和WMS存储系统产品线的一个关键改变,可确保应用的服务质量。其它任何模块化产品都没有能力在这一级别管理高速缓存。

Cache Partition Manager通过以下机制发挥作用:

分区技术的使用

●将Cache分为最多32个分区。每个分区的资源访问独立进行,不会互相串

扰。

●根据应用的I/O特性不同,可以用多种不同的方法优化每个分区的分段大小。

分段尺寸可设置为4kB,8KB,16KB,64KB,256KB,512KB等等。可调的分段尺寸将大大提高缓存访问的命中率。

对于4KB的I/O数据, 8KB的分

区将比16KB的分区大大提高访问命中

●根据应用的可靠性要求不同,对Cache的使用率要求不同,对可将每个分区

的缓存设为镜像模式、无镜像模式

●每个分区对应的磁盘LU可选择不同的条带大小,尺寸可由16KB,64KB,64KB

一直增长到128KB,最终实现分区缓存数据写入磁盘的优化操作

可调磁盘条带大小——Striping Size

综上所述,分区技术为模块化存储设备提供存储虚拟化的高级能力,最终为应用系统提供全方位的存储服务质量支持。

2 IBM XIV的缓存技术

IBM XIV扩展缓存采用的是SSD磁盘的形式,这与XIV 大容量SATA+SSD的设计理念是分不开的,因为XIV倡导的就是使用低成本大容量的磁盘来获取高的性能,并实现横向扩展。

SSD在XIV中并不是作为一个独立的存储层,用来存放阵列中的热点数据,而是作为缓存来提升热点数据的访问速度。因为XIV的设计人员认为如果数据不能被快速定位,那么分层存储的效率是不高的。这一点与NetApp非常相像。

在XIV中使用SSD cache,不需要手工重新分布数据,因为SSD只作为阵列缓存的一个扩展。SSD在XIV中仅仅作为读缓存,当数据逐渐变冷时,将会被丢弃,取而代之的是更多的热点数据。下图是XIV SATA盘和SSD之间的关系示意。

XIV阵列的构成如下,需要强调的是,SSD只是作为控制器内存的一个扩展,用来作读缓存,而不是传统意义上的分层存储将SSD作为独立的一层来真正存储数据。

3 EMC VNX 缓存真相

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为例,如果启用了Data Service和Fast Cache,则每个控制器可用的读写缓存总和从原来的18GB降为5280MB,减去读cache 1024MB,则写cache为4256MB,镜像后写cache为每控制器2128M。

由此可粗略估算,在不开启Date Service和Fast Cache的情况下,每控制器的实际读写cache为:

R/O cache = SP chche size per SP * 2 - (SP chche size per SP –recommended initial read cache) / 2

所以可以大概估算出EMC VNX系列存储的有效Cache容量:

●VNX5100(双控8GB Cache): 801×2-(801-100)/2=1251.5MB≈1.25GB ●VNX5300(双控16GB Cache):3997×2-(3997-400)/2=6195.5MB≈6.2GB ●VNX5500(双控24GB Cache):6988×2-(6988-700)/2=10832M≈11GB

●VNX5700(双控36GB Cache):10906×2-(10906-1024)/2=16871MB≈17GB ●VNX7500(双控48GB Cache):14205×(2-14205-1024)/2=21819.5MB≈22GB

由此看来,VNX的内存表面上看比较大,但实际可用的读写cache在启用了各种功能后会大大缩水,下表是镜像后各产品每SP的写cache大

相关文档
最新文档