首页 > Oracle > Oracle ASM 概述篇!
2013
11-30

Oracle ASM 概述篇!

ASM在oracle 11g中比较重用的一个功能,oracle推荐使用ASM来管理存储,11G中ASM已经非常存储了,而且管理起来也非常方便,下面我简单总结了一下ASM的概念和基本组成,这里占不涉及ASM的管理。

ASM是为了存放oracle数据文件而设计的一个volume manager和文件系统管理的技术,同时支持单实例和RAC。在ASM中,使用disk group来存储数据文件,一个ASM disk group是其disk的一个集合,ASM的管理单元就是disk group。

oracle之所以推荐使用ASM,因为在disk group中的数据是均衡分布在磁盘上的,这样避免了热块,充分利用了磁盘组的磁盘,这种方式就和裸设备的性能相当,但管理起来非常方便。我们在对disk group添加或删除disk的时候,ASM会自动的重新分布disk上的内容,这个过程ASM自动完成,也不需要重启数据库。

在ASM中,最小的分配单元是AU,相当于文件系统中的block,每个ASM disk被划分成多个AU(allocation units),一个文件extent由一个或多个AU单元组成,一个ASM file由多个文件extent组成,当我们创建一个disk group的时候,可以指定参数设置ASM AU的大小,设置其AU_SIZE属性,取值有:1,2,4,8,16,32和64MB。默认是1MB。

为了使用越来越大的文件,ASM中使用了可变大小的extents,通过可变大小的extents size,使用ASM 能存放更大的数据文件,减少存放大数据时对SGA内存消耗,提高创建文件和打开时的性能,初始化的extents size 就等于AU的大小,之后会根据规则,进行4或者16倍增加。extents size扩展规则如下:

(1) 当extents sets(数量) 在20000 以内时(0 – 19999),Extent size 总是等于disk group 的AU SIZE 大小。
(2) 在extents sets 在下一个20000以内时(20000 – 39999),Extent size 等于 4*AU size 。
(3) 当extents sets 超过40000+时,Extent size 等于 16*AU size 。

ASM可以设置镜像保护备份,ASM的数据镜像保护是通过将数据copy到多个磁盘来实现的,当我们创建一个disk group的时候,我们需要执行ASM disk group的保护类型,有如下3中冗余策略:

(1) Normal: 2-way mirroring
(2) High: 3-way mirroring
(3) External:这种方式不使用ASM 的保护,而是靠外部存储设备的机制来提供数据保护,比如RAID等。

当oracle为镜像文件分配extent时,ASM就会分配一个primary copy和mirror copy。

这些镜像copy存储在Failure group中,因此每个copy都存在不同的Failure group上,当一个Failure group出现故障时,也不会造成数据丢失。当我们创建ASM disk group时,就可以对该disk group指定对应的Failure group,当disk group创建后,就不能更改disk group的冗余级别了。

Normal redundancy 的disk groups 至少需要2组failure groups。
High redundancy disk group 至少需要3组failure groups。
如果是externalredundancy 就不需要使用failuregroups。

如果在创建的是没有指定Failure group,那oracle也会自动创建,此时每个disk都属于一个Failure group,名称就是disk的名称,可以理解为在创建磁盘组的时候,如果没有指定Failure group,那么每个disk会作为自身的Failure disk。

oracle ASM的条带化功能:主要功能有2个,第一是平衡disk group内所有磁盘的负载,第二是降低IO延迟。

oracle提供2种方式的条带化,粗粒度的条带化提供负载均衡功能,细粒度的条带化提供降低IO延迟,为了条带化,ASM把文件分离成strip,然后将strip data存放在disk group的所有disk上。

在任何配置下,细粒度的条带化的strip size总是为128KB,这样就可以降低小IO操作的IO等待,粗粒度的strip size总是等于au size的大小,注意不是extent size。

ASM实例和数据库实例类似,也是由SGA加一些后台进程组成。但ASM实例只需要挂载disk groups,保证groups上保存的ASM file对数据库实例可用,所以ASM的实例需要的SGA很小,对服务器的性能也很小。

最后编辑:
作者:Jerry
一个积极向上的小青年,热衷于分享--Focus on DB,BI,ETL