Oracle ASM - 条带化

来源:互联网 发布:java 字符串查找 编辑:程序博客网 时间:2024/06/10 22:09

Oracle ASM在处理ASM File的extent与ASM DiskgroupAU的关系时,采用了条带化的技术.条带化的具体实现是通过对Diskgroup Template的定义实现的, 包含粗粒度和细粒度两种.

下面以AU=1MB和AU=64MB大小为例,分别来解释一下10g和11g的条带化实现.
1, Oracle 10g R2条带化
(1), 10g中extent的小大为1MB,AU的大小也为1MB, 这里的extent大小固定, AU的大小也是固定的.

(2), 粗粒度类型的文件:数据文件,归档文件,临时文件, 它们的extent与AU为一一对应,即一个extent就占据在一个AU中, AU的stripe chunk大小为1MB.

(3), 细粒度类型的文件:控制文件,online redo logfile,闪回日志, 它们的extent与AU默认采用的是_asm_stripwidth=8的拆分方式进行循环条带化存储.这样理解,1MB/8=128KB, 这里的stripe chunk大小为128KB, 这个里的1个extent被以128KB大小进行拆分;如果磁盘组只有有1个磁盘,那么这个128KB的stripe chunk会放在一个磁盘的一个AU中,这个AU中实际上存放了8个128KB的stripe chunk;但如果磁盘组有2个磁盘,那么stripe chunk会依次循环平均存储在2个磁盘的2个AU中,每个AU存储了4个128KB的stripe chunk;类似当磁盘组中磁盘数量增加为8时,则每个磁盘的一个AU存放1个128KB的strie chunk;但当磁盘组为10或者16时,如何处理呢?我认为磁盘的AU会多余出来,ASM会把它利用到其他extent的占用中, 使得disk group中的利用总体上均衡.

这里AU的大小是由au_size决定的,默认由_asm_zusize=1048576 bits(即1MB),是在创建diskgroup就确定的. 10g不能进行AU和extent的大小修改.
另外,粗粒度和细粒度也是由模板确定的,asmcmd不提供属性修改.

2, Oracle 11g R1/R2条带化
(1), 11g中支持extent大小的变化,AU也支持创建磁盘组时自定义.
(2), 默认AU=1MB与10g一样,但extent是随着extent数量的增加而变化.

具体见下表11gR1的AU为1MB和64MB为例

区编号         AU数量      extent大小(AU=1MB为例)
0-19999       1          1MB(1*AU)
20000-39999   8          8MB(8*AU)
>40000        64         64MB(64*AU)

区编号         AU数量      extent大小(AU=64MB为例)
0-19999       1          64MB(1*AU)
20000-39999   8          512MB(8*AU)
>40000        64         4096MB(64*AU)

(3), 以AU=1MB为例,粗粒度文件:除控制文件外,全是粗粒度,当文件的大小在20GB以内,extent的大小为1MB,当文件再增大直到160GB内,extent变为8MB,此时出现了,8个AU对应一个extent的情况,当超过180GB的空间时,extent会达到64MB的大小,同时也会出现64个AU对应一个extent;细粒度仅为控制文件,
按照_asm_stripwidth=8,出现和10g一直的情况.

(4), 以AU=64MB为例,粗粒度文件:除控制文件外,全是粗粒度,当文件大小在1280GB内,extent大小为64MB,当增加到11520GB时,extent大小变为512MB,同理,接着再增加时extent就会达到4096MB.;此时细粒度的控制文件,按照_asm_stripwidth=8,stripe chunk大小为1AU/8=64MB/8=8MB.如果磁盘组的数量为1时,1个extent拆分为8个8MB的stripe chunk完全分布在一个包含8个stripe chunk的AU中;磁盘组的磁盘数量为2时,1个extent分布在2个磁盘的2个AU中,其中每个AU含有4个stripe chunk;磁盘组增加的话,依次类推.

(5), 另外11g R2的规则变化依次为1,4,16 AU数据块.

注意以上ASM的粗细粒度文件,指的是整个ASM中占用的数据库整体所有文件容量和.


原创粉丝点击