Lead Ahead

Best Practice for EMC R22 (part 13)

上一篇 / 下一篇  2006-10-05 21:21:25 / 天气: 晴朗 / 心情: 高兴 / 个人分类:IT学习日志

DOIT博客7f"r5zW)Y k:O7Tu}v

8. RAID引擎的缓存DOIT博客~7bq`)E
这个章节讨论了使用合适的缓存页面,如何使用预读取缓存的大小,在哪里设置警戒线,和其他的一些如SP的负载均衡等方面的技巧。

q2}h i*M#p#q7} [n0DOIT博客H:{3l"c6^UZ T

A.缓存的大小和速度DOIT博客8[4i7q,Mlq
EMC CLARiiON Fibre Channel Storage Fundamentals白皮书里面,对于cache大小对性能的影响,我们有全面的信息。

/Ba0X4v)i {)K*dXq0DOIT博客t H$@!l6E|8x[

对于那些有1GB或者更少的可用cache内存的存储器,使用其中的20%作为读缓存,把其余作为写缓存。对于其他所有的系统,使用最多的可允许的数值作为写缓存,而其他的作为读缓存。DOIT博客8Lnw E%_V/g@

DOIT博客0?/F8@DK9x

 

'J%U],t&GW0DOIT博客8?;Lu M+n][8S;B*Y

Cache设置的脚本DOIT博客qdD d0_/qLV_
在很多环境里,产品的工作负载对于一天的不同时间来说,变化是非常多的。例如,从800am500pm工作负载可能会是OLTP居多;而从5 :00PM800PM,工作负载可能变成作为报告的多线程的顺序访问DSS;而从800PM之后,备份系统工作开始。如果需要为不同类型的工作负载调优,可用Navisphere CLI的脚本来调整cache的参数。一些参数,例如SP的读缓存的开启/关闭,SP的读缓存的大小,LUN的读和写的缓存的开启/关闭,LUN预读取设置,和警戒线的设置,都可以被不间断存储器工作的情况下被改变。另外,如SP的写缓存的大小和页面大小的调整,会要求SP写缓存被关闭,这个时间段会严重影响写操作的响应时间,因而操作要尽快完成。DOIT博客JMFC-i-b0Do

DOIT博客2Txu,v,j \

B.缓存的设定
/d&lY%O+|.n0
CLARiiON存储系统里面,以下列出的缓存参数,都有适用于大部分用户的默认的设置。

;Ip/AO Z S*W0DOIT博客"\*?*pf}eeP

缓存的开启/关闭
g:VI![.O*S4g9C0
大部分工作负载都会从读缓存和写缓存里面得到好处;两者默认的设置是开启

-F NRr;NB0DOIT博客(O {I^Z

用来节省一个非常短的服务时间(当读操作到来时,检查缓存有无命中的毫秒级别),关闭LUN上的读的缓存并不会使系统性能受益。例如,有非常多随机读操作的环境(没有顺序访问)的LUN,并不会从读缓存里受益。同样的,有很多同时的顺序访问的数据流(通常是DSS)的LUN,可以从关闭读缓存(或者关闭预读取)来避免数据传输的“颠簸”。当同步的clone进行时,一些用户会关闭缓存来得到一个“中间”的带宽,即在尽快的模式和最小的SP利用率之间取得平衡。当准备为备份设置时,使用Navisphere CLI脚本来开启LUN的读缓存。写缓存是很有效的,除了最极端的写环境里面。写缓存的钝化最好是使用每一个LUNwrite-aside的设置。(可参考“write-aside的大小”)。DOIT博客#wH L/be9j#I m&eH(r

DOIT博客?evbq(H X8x+T

页面大小DOIT博客Rg1c$z4aoZq NF
I/O的大小是非常稳定的情形下,你可以通过设置cache的页面大小跟存储系统所见的要求的大小(文件系统的block的小,或者在使用裸分区使用时的应用的block大小)一致,来获得性能。在有大量I/O大小的环境,8KB的页面大小是最佳的。

n6_P m0]6T M0

h_/\`z%p7aY}0大量使用SnapViewMirrorView/A,或者增量SAN copy的系统,会从16KB的缓存页面大小设置中得益,因为内部的页面调度是使用64KB大小的block。如果应用的工作负载是由小block所支配的,警戒线应该设置到60/40

P~g K%b-S4sV0

GfvA:l'r4O2n0当使用2KB的缓存页面大小设置的时候,要注意。使用多于5个的硬盘的,到校验RAID组的顺序写操作,可能会受到影响。“CLARiiON RAID 5 strip optimizations”里有更多的相关信息。

3Vk1vY3~hq1B i0DOIT博客F0}-a+F yY|"w

HA vault的选项和写缓存的行为DOIT博客*^p%Q5U,f6a tM
我们可以在存储系统的属性对话框里的Cache标号上找到HA Cache Vault选项,上面默认的设置是开启的。在EMC CLARiiON Fibre Channel Storage Fundamentals白皮书上有关于这个默认设置方面的描述。

:f4w*?:{,xY0DOIT博客 C)?8M6z3S%E B{ J

几种故障(在那个白皮书里有说明)会导致写缓存的关闭和把缓存上的内容导到系统硬盘里面(vault)。其中一种故障是系统硬盘里的一个磁盘。如果用户清除了HA Cache Vault选项,那么一个系统磁硬盘的故障就不会导致写缓存的关闭。因为关闭写缓存会显而易见地影响主机的I/O,所以要尽可能的让写缓存保持在开启的状态。因而,用户可以自己选择。

3Z%Ny\It0

3M;q Rn1X0为什么这作为一个选择呢?清除这个选项,会导致顾客有可能遭遇到数据丢失的三种情形:假如一个系统硬盘坏掉了,那么数据将不会倒入。假如另一个系统硬盘在第一个坏的硬盘被更换之前坏掉,和系统遭遇了一个电力系统的故障,缓存里面的内容就会丢失。相类似的是,如果在初始化的系统硬盘坏掉了之后,又遭遇电力的中断,然后第二个硬盘在数据倒入期间或者在随后出现故障,数据也会丢失。

v:F-y\I$}sq{0DOIT博客a.hk;^b5k&F^/q

用户需要在性能的提升和风险之间作一个决定。

,Hc? fbM+{7\[0

@8i ],^&O'y8} `0预读取的设定
$C$V y3@Uju:}h+r0
预读取(变量,segment和倍数都设置为4)的默认设置对大部分工作负载来说,都能有效地利用缓存。改变倍数会导致无法预计的结果;当顺序性能需要调优的时候,最好和CLARiiON SPEED专家一起使用。DOIT博客bvC [t

DOIT博客3B_1G`2j[

高和低的水位线和flushingDOIT博客M6j5Zgs-A7R
CLARiiON
的设计有两种称之为水位线(watermark)全局的设置—--高和低----用来管理flushing。细节方面的内容,在storage fundamentals白皮书有叙述。对于大部分的工作负载来说,默认的设置(80%作为高水位线,60%作为低水位线)可以提供最好的性能。

x;c$meNveb#{7W D0

n)sH [.^5~a~{G s0如果写操作的爆发导致了足够多的flush,影响了主机的写的工作负载,那么需要降低水位线。降低水位线会导致更加剧烈的flush,这会让更多的空闲的缓存页面来存放爆发的数据,这样的代价是从写缓存里读命中会更加的少。对于小一些的CX系统,降低水位线到60/40可以帮助降低flush的条件。DOIT博客^R)r_u

DOIT博客3r2G u)u:Z

当改变的时候,高和低的水位线一般来说增加或减少同样的数量。

W+^+dXF]$R Da0

$h8lz o Z/`:p0Write-aside的大小
S&kF/T k.W M'C0write-aside
的大小跟每一个LUN的设置有关。这个设置会指定会被载入缓存的最大的写请求。谢操作大于这个大小的,会不经过写缓存。DOIT博客\:EL I^$M5C|

DOIT博客"l+uUN_ Y I{0B

Write-aside使大的I/O不会占用了写缓存镜像的带宽,也让系统有可能得到超越了写缓存镜像的最大带宽。这个代价就是被旁路的那些I/O会比载入缓存的I/O有更长的主机相应时间。

t9},U V~(HE8O9q0

.w$@E(SBi0要像得到超越写缓存最大带宽,则必须要有足够多的磁盘来承担这些负载。更进一步说,如果使用了带校验的RAIDRAID5或者RAID3),必须保证以下条件:
S-I$@ M6v&Q.a+u0. I/O
LUNstipe大小一致或者是倍数DOIT博客 xe)jE2w~3tQQL
.
主机能生成足够的并发,来保证LUN保持在繁忙中
Mq1|_ b:@5za0. I/O
对起stripeDOIT博客)[^5v6H_7}5M4h
.
达到Full Stripe Writes的要求(请参看“CLARiiON RAID5 stipe optimizations”)DOIT博客}0g&A"W-z*z X5nc
这些条件对于带校验的RAID来说,是至关紧要的,而且是不能被轻易改变的。使I/O对齐来实现有效的write-aside并不容易。如果有疑问,还是使用写缓存。DOIT博客8@%i#L*T{-^lq
使用write-aside的折衷如下:DOIT博客&W'os|H fk}
.
数据像这样的写入,在缓存里为一个并发的读来说,并不是可用的。DOIT博客qQp/w7@
.
这样的写操作的响应时间比用缓存的写操作的响应时间要长。DOIT博客i"sEz P O/R
必须要注意的是完全的SAN Copy是使用512KB的传输大小。默认的write-aside的值是2048 block或者1MB。因而,完全SAN Copy的写默认来说都是有缓存的。多个完全SAN Copy的操作可能会加重目标阵列的写缓存;在这个情况下,write-aside的值可以固定在1023block511.5KB)或者关闭目标LUN的写缓存。注意,只有2+14+1,和8+1 RAID 5或者4+18+1 RAID 3的拓扑能在这种情况下得到完全stripe写的好处,提供没有LUN绑定的位移。DOIT博客[Oaft]!h*[$s F E R

DOIT博客DL(ONJ wl

Navishpere CLIgetlun命令可以显示一个LUNwrite-aside的大小。要改变write-aside的大小,使用Navisphere CLIchgluncommandDOIT博客+gbwN8`-\H!B(BE#jF

DOIT博客o~8X)[,zP{(A

在两个SP(存储控制器之间)取得负载平衡DOIT博客]5tM+G'W8I7C
我们把LUN分布在两个SP上,以便让两个SP上的工作能取得负载均衡;这避免以下这一情景的出现:当一个SP有很多的空余的能力的时候,而另外一个SP却成为瓶颈。Navisphere Analyzer可以用来监测负载的不均衡。DOIT博客(G*[2e%mJ0nL4k9B

Mg)L9D.@dsn0 

,cT]J7s7b+`0

TAG: IT学习日志

引用 删除 smds   /   2008-06-10 23:41:04
不错啊,全文不知哪里有的下载
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar