初识ASM
概念
- asm在所有的磁盘之间条带化所有文件,并选择性地镜像文件。
- asm最重要的功能就是与rac一起工作,为其提供存储管理服务。它极大地简化了集群中的存储管理,绝大部分客户在部署rac时使用asm。
- asm在每一个故障组中各方了一份表决文件。故障组就是磁盘组成的一个集合,asm使用故障组来实现文件的镜像存储,从而避免数据丢失。
- 条带化(striping),就是将数据分布到不同的物理磁盘上的方法。一般使用RAID 0或者RAID 5,数据是根据stripe size分布到不同的物理磁盘上。百度百科的解释:当多个进程同时访问一个磁盘时,可能会出现磁盘冲突。
- 每个ASM磁盘由多个AU(allocation units)组成,AU时磁盘组的基本分配单元。
- ASM实例的架构与数据库实例的类似,也由SGA和一些后台进程组成。asm实例只需要挂载磁盘组,来保证groups上保存的asm files对数据库实例可用,asm所需的SGA很小。
查看asm磁盘信息的方式
方式一:asmcmd
su - oracle
输入asmcmd进行oracle rac磁盘管理界面
ASMCMD>lsdg
就能查询到磁盘组的信息
方式二:crsctl
#查询表决磁盘
./crsctl query css votedisk
方式三:select查询
SQL> select group_number,name,total_mb,free_mb from v$asm_diskgroup;
表决文件数与冗余级别的关系
asm磁盘组中的表决文件数目取决于其所在磁盘组的冗余级别设置:
external冗余:只能存储一份表决文件;
normal冗余:最多3份表决文件;
high冗余:最多5份表决文件。
ASM优势
镜像冗余
ASM的镜像算法只镜像盘区,不镜像磁盘。asm将文件的主盘区分配给磁盘组中的一个磁盘时,它会将该盘区的镜像副本分配给磁盘组中的另一个磁盘。给定磁盘上的主盘区将在磁盘组中的某个伙伴磁盘上具有各自的镜像盘区,asm确保朱攀去和其他镜像副本不会驻留在同一个故障组里。
磁盘组一旦创建,就不可以改变它的冗余级别,为了改变磁盘组的冗余级别,必须创建具有适当冗余的另一个磁盘组,然后必须使用RMAN还原或DBMS_FILE_TRANSFER将数据文件移动到这个新创建的磁盘组。
三种不同的冗余方式如下:
1、 外部冗余(external redundancy):表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术;有效磁盘空间是所有磁盘设备空间的大小之和。
2、 默认冗余(normal redundancy):表示Oracle提供2份镜像来保护数据,有效磁盘空间是所有磁盘设备大小之和的1/2 (使用最多)
3、 高度冗余(high redundancy):表示Oracle提供3份镜像来保护数据,以提高性能和数据的安全,最少需要三块磁盘(三个failure group);有效磁盘空间是所有磁盘设备大小之和的1/3,虽然冗余级别高了,但是硬件的代价也最高。
REBALANCE
ASM 会把文件均衡的存放在所有的disk group中的disk上。 这种分配模式维护每个disk 使用相同的空间,同时也确保disk group中的每个disk 具有相同的I/O 负载。
OMF
ASM 使用了Oracle Managed Files (OMF)的特性来简化数据文件的管理。OMF 可以自动的在指定的目录创建文件。
条带化
粗粒度的条带化提供负载均衡功能(load balance),而细粒度的条带化能降低IO 延时。为了条带化,ASM 把文件分离成strip,然后将strip data存放在disk group的所有disk上。
在任何配置下,细粒度的条带化的stripe size 总是等于128KB, 这样能降低在小IO 操作时的IO等待。
粗粒度的strip size 总是等于AU SIZE 大小,注意这里是AU SIZE 而不是extent size。
stripe size必须是OS block size和oracle block size的整数倍,当数据库的一个block size超过了stripe size,这样会带来不必要的附加的IO,导致慢的
性能。
举例:一个8K的block size的文件系统存放Oracle的数据文件,那么stripe size必须是8k或者8k的整数倍。
ASMCMD常用命令集合
1、显示指定的ASM目录下ASM文件占用的所有磁盘空间
ASMCMD>du
2、列出ASM目录下的内容及其属性
ASMCMD>ls -ls
3、查看当前路径
ASMCMD>pwd
4、打开目录
ASMCMD>cd …/DATA
5、列出当前ASM客户端的信息
ASMCMD>lsct
6、列出所有磁盘组及其属性
ASMCMD>lsdg
7、列出数据文件信息
ASMCMD>lsof
8、列出盘的信息
ASMCMD>lsdsk