任何记录大小大于64KB和随机访问的RDBMS的目录空间(个人的二元内容的纪录,例如照片)
? RDBMS的日志行为 ? 消息应用 ? 图像/流媒体
?
什么时候使用RAID1/0
在使用非常小的,随机的,和write-intensive 的I/O(其中30%的负载都是用来执行写操作)时,RAID 1/0在负载方面会比RAID 5更具有优势。一些随机的,小I/O的工作负载的例子:
繁忙的事务性的OLTP ? 大的消息的安装
? 实时的数据/业务记录
? 包含了经常更新的小的记录的RDBMS数据目
录(账目平衡)
?
对一些特定的降级模式—--也就是,当写缓存被关闭或者在RAID组里面一个磁盘出现问题的时候,RAID 1/0也会有更好的表现。 什么时候使用RAID3
新的RAID 5的设计使每八个stripe后写入校验的磁盘,这样使RAID5也能像RAID3那样在顺序的工作负载中得到好处。RAID 5实质上可以达到RAID 3一样的带宽。
对于顺序写的工作负载,当以下三个要求达到的时候,RAID 3在配置里可以实现更高的读带宽:
1)磁盘个数决定了带宽(后段磁盘loop只有很少个数的磁盘) 2)文件很大(大于2MB) 3)文件没有打碎。
必须了解的是:对于许多的顺序的应用,从阵列得到的带宽,通常是取决于component的容量,而不是取决于像ATA的盘柜的BBC卡和/或后段loop的硬盘个数。在这些情形下(在任何有随机的工作负载的情形),最好还是使用RAID5来取代RAID3,因为RAID 3固定的校验盘会变成非顺序的工作负载中的component的瓶颈。 什么时候使用RAID 1
在R16里介绍了1+1 RAID 1/0的好处,我们没有任何好的理由来使用RAID 1。RAID 1/0 1+1模式是可以扩展的,而RAID 1模式则无法做到这一点。
26
[编辑]
8.RAID引擎的缓存
这个章节讨论了使用合适的缓存页面,如何使用预读取缓存的大小,在哪里设置警戒线,和其他的一些如SP的负载均衡等方面的技巧。 [编辑]
A. 缓存的大小和速度
在EMC CLARiiON Fibre Channel Storage Fundamentals 白皮书里面,对于cache大小对性能的影响,我们有全面的信息。
对于那些有1GB或者更少的可用cache 内存的存储器,使用其中的20%作为读缓存,把其余作为写缓存。对于其他所有的系统,使用最多的可允许的数值作为写缓存,而其他的作为读缓存。 Cache设置的脚本
在很多环境里,产品的工作负载对于一天的不同时间来说,变化是非常多的。例如,从8:00am到5:00pm工作负载可能会是OLTP居多;而从5 :00PM到8:00PM,工作负载可能变成作为报告的多线程的顺序访问DSS;而从8:00PM之后,备份系统工作开始。如果需要为不同类型的工作负载调优,可用Navisphere CLI的脚本来调整cache的参数。一些参数,例如SP的读缓存的开启/关闭,SP的读缓存的大小,LUN的读和写的缓存的开启/关闭,LUN预读取设置,和警戒线的设置,都可以被不间断存储器工作的情况下被改变。另外,如SP的写缓存的大小和页面大小的调整,会要求SP写缓存被关闭,这个时间段会严重影响写操作的响应时间,因而操作要尽快完成。 [编辑] B. 缓存的设定
在CLARiiON存储系统里面,以下列出的缓存参数,都有适用于大部分用户的默认的设置。 缓存的开启/关闭
大部分工作负载都会从读缓存和写缓存里面得到好处;两者默认的设置是开启。 用来节省一个非常短的服务时间(当读操作到来时,检查缓存有无命中的毫秒级别),关闭LUN上的读的缓存并不会使系统性能受益。例如,有非常多随机读操作的环境(没有顺序访问)的LUN,并不会从读缓存里受益。同样的,有很多同时的顺序访问的数据流(通常是DSS)的LUN,可以从关闭读缓存(或者关闭预
27
读取)来避免数据传输的“颠簸”。当同步的clone进行时,一些用户会关闭缓存来得到一个“中间”的带宽, 即在尽快的模式和最小的SP利用率之间取得平衡。当准备为备份设置时,使用Navisphere CLI脚本来开启LUN的读缓存。写缓存是很有效的,除了最极端的写环境里面。写缓存的钝化最好是使用每一个LUN的write-aside的设置。(可参考“write-aside的大小”)。 页面大小
在I/O的大小是非常稳定的情形下,你可以通过设置cache的页面大小跟存储系统所见的要求的大小(文件系统的block的小,或者在使用裸分区使用时的应用的block大小)一致,来获得性能。在有大量I/O大小的环境,8KB的页面大小是最佳的。
大量使用SnapView,MirrorView/A,或者增量SAN copy的系统,会从16KB的缓存页面大小设置中得益,因为内部的页面调度是使用64KB大小的block。如果应用的工作负载是由小block所支配的,警戒线应该设置到60/40。 当使用2KB的缓存页面大小设置的时候,要注意。使用多于5个的硬盘的,到校验RAID组的顺序写操作,可能会受到影响。“CLARiiON RAID 5 strip optimizations”里有更多的相关信息。 HA vault的选项和写缓存的行为
我们可以在存储系统的属性对话框里的Cache标号上找到HA Cache Vault选项,上面默认的设置是开启的。在EMC CLARiiON Fibre Channel Storage Fundamentals 白皮书上有关于这个默认设置方面的描述。
几种故障(在那个白皮书里有说明)会导致写缓存的关闭和把缓存上的内容导到系统硬盘里面(vault)。其中一种故障是系统硬盘里的一个磁盘。如果用户清除了HA Cache Vault选项,那么一个系统磁硬盘的故障就不会导致写缓存的关闭。因为关闭写缓存会显而易见地影响主机的I/O,所以要尽可能的让写缓存保持在开启的状态。因而,用户可以自己选择。
为什么这作为一个选择呢?清除这个选项,会导致顾客有可能遭遇到数据丢失的三种情形:假如一个系统硬盘坏掉了,那么数据将不会倒入。假如另一个系统硬盘在第一个坏的硬盘被更换之前坏掉,和系统遭遇了一个电力系统的故障,缓存里面的内容就会丢失。相类似的是,如果在初始化的系统硬盘坏掉了之后,又遭遇电力的中断,然后第二个硬盘在数据倒入期间或者在随后出现故障,数据也会丢失。
用户需要在性能的提升和风险之间作一个决定。 预读取的设定
28
预读取(变量,segment和倍数都设置为4)的默认设置对大部分工作负载来说,都能有效地利用缓存。改变倍数会导致无法预计的结果;当顺序性能需要调优的时候,最好和CLARiiON SPEED专家一起使用。 高和低的水位线和flushing
CLARiiON的设计有两种称之为水位线(watermark)全局的设置—--高和低----用来管理flushing。细节方面的内容,在storage fundamentals白皮书有叙述。对于大部分的工作负载来说,默认的设置(80%作为高水位线,60%作为低水位线)可以提供最好的性能。
如果写操作的爆发导致了足够多的flush,影响了主机的写的工作负载,那么需要降低水位线。降低水位线会导致更加剧烈的flush,这会让更多的空闲的缓存页面来存放爆发的数据,这样的代价是从写缓存里读命中会更加的少。对于小一些的CX系统,降低水位线到60/40可以帮助降低flush的条件。 当改变的时候,高和低的水位线一般来说增加或减少同样的数量。 Write-aside的大小
write-aside的大小跟每一个LUN的设置有关。这个设置会指定会被载入缓存的最大的写请求。谢操作大于这个大小的,会不经过写缓存。
Write-aside使大的I/O不会占用了写缓存镜像的带宽,也让系统有可能得到超越了写缓存镜像的最大带宽。这个代价就是被旁路的那些I/O会比载入缓存的I/O有更长的主机相应时间。
要像得到超越写缓存最大带宽,则必须要有足够多的磁盘来承担这些负载。更进一步说,如果使用了带校验的RAID(RAID5或者RAID3),必须保证以下条件:
I/O跟LUN的stipe大小一致或者是倍数 ? 主机能生成足够的并发,来保证LUN保持在
繁忙中
? I/O对起stripe
? 达到Full Stripe Writes的要求(请参看
“CLARiiON RAID5 stipe optimizations”)
?
这些条件对于带校验的RAID来说,是至关紧要的,而且是不能被轻易改变的。
使I/O对齐来实现有效的write-aside并不容易。如果有疑问,还是使用写缓存。 使用write-aside的折衷如下:
?
数据像这样的写入,在缓存里为一个并发的
读来说,并不是可用的。
29
?
这样的写操作的响应时间比用缓存的写操作的响应时间要长。
必须要注意的是完全的SAN Copy是使用512KB的传输大小。默认的write-aside的值是2048 block或者1MB。因而,完全SAN Copy的写默认来说都是有缓存的。多个完全SAN Copy的操作可能会加重目标阵列的写缓存;在这个情况下,write-aside的值可以固定在1023block(511.5KB)或者关闭目标LUN的写缓存。注意,只有2+1,4+1,和8+1 RAID 5或者4+1和8+1 RAID 3的拓扑能在这种情况下得到完全stripe写的好处,提供没有LUN绑定的位移。
Navishpere CLI getlun 命令可以显示一个LUN的write-aside的大小。要改变write-aside的大小,使用Navisphere CLI chglun command。 在两个SP(存储控制器之间)取得负载平衡
我们把LUN分布在两个SP上,以便让两个SP上的工作能取得负载均衡;这避免以下这一情景的出现:当一个SP有很多的空余的能力的时候,而另外一个SP却成为瓶颈。Navisphere Analyzer可以用来监测负载的不均衡。 [编辑]
9.后端设备(磁盘的子系统)
[编辑] B. LUN的分布
使用LUN的分布的主要目的在于:
后端总线涉及到一对所有CLARiiON存储系统都用来访问硬盘的冗余的光纤loop(一个对应一个SP)。(一些CLARiiON存储系统有一对后端总线----总共4条光纤的loop,有些有4条后端的总线)
? 一个RAID组会分成多个LUN,或者说,一个
来自于这样的一个RAID组的LUN,会被分别称之为分了区的RAID组或者分了区的LUN。 ? 一个只有一个LUN的RAID组被称之为专有
RAID组或者专有LUN。
?
如果要更有效的把I/O分布在光纤硬盘上,把LUN分布在多个RAID组上面。当作LUN的分布的计划的时候,把LUN的容量列个账目。计算经常要访问的存储的容量,并把容量适当的分布在RAID组里。
30