6. DISK
使用ASM的第一个步骤当然是准备磁盘了,这个步骤可能需要与SA和存储管理员配合完成。磁盘可以是存储划分的LUN分区、裸设备、块设备,可以被使用的磁盘必须有大小的限制:最大2^32MB即4096T,最小4MB,不管磁盘使用什么方式提供、有多大,需要记住的是必须能够让Oracle用户访问,需要配置正确的访问权限,扫描可以使用哪些磁盘有2种方式:shallow and deep,前者只是简单的检查是否有使用权限,后者将实际的打开文件操作进行检查。在RAC环境中,并不要求同一个disk在所有节点都具有一致的名称,因为ASM使用的是磁盘名称,只要能够被实例发现并扫描即可。
ASM DISKHeader会有如下状态:
Former-从磁盘组移除的磁盘
Candidate-表示磁盘可以被添加到磁盘组
Member-作为磁盘组的一部分存在
Provisioned-和Candidate类似同样作为候选磁盘可以被添加到磁盘组,一般是使用ASMLIB创建的
关于磁盘设备的配置还需要注意的一个是多路径的问题,在Linux下有内置的驱动软件,Device Mapper-设备映射,ASM本身并不支持多路径,只是调用DM返回的成功代码并使用,使用 DM 多路径功能的优点包括:
Ø 检测路径故障并将 I/O 重新路由至其他可用路径
Ø 在路径恢复后重新验证有故障的路径,根据路径状态和错误条件重新配置路径使用
Ø 利用多个可用路径使性能最大化
Ø 将多个设备节点统一为单个逻辑多路径设备节点
Ø 识别新的多路径 LU 并自动配置新的多路径节点
Ø 在 /dev/mapper/ 下为 DM 设备提供永久的设备名称
7. DISKGROUP
磁盘组-DISKGROUP是ASM最总要的组件部分,也是ASM最高级别的组件结构了,类似于LVM或者其他的存储管理组,不同的是ASM磁盘组是无法被用户直接访问的,必须通过ASM实例和相关工具来管理访问,在文件级别实现条带化和镜像,通过extents map来映射文件块,并在所有磁盘上均匀分布以分散I/O压力。
要被磁盘组使用的磁盘必须满足一下条件:不能是其他磁盘组的成员、不能含有残留的ASM File header信息、不能含有残留的Oracle File header信息,虽然可以使用force选项强制添加到磁盘组,但是不建议使用。
建议在同一个时间内配置上有的磁盘组,这样将会减少重复扫描配置工作,成功创建磁盘组之后,相关的创建日期、磁盘组名称、冗余类型等信息将被存储到SGA当中,同时也写入到磁盘组内的每个磁盘的disk header,通过视图V$ASM_DISK也可以查询相关信息,此后每次挂载磁盘组的时候会重新读取和验证disk header内的信息。
磁盘组在成功mount之后,磁盘组名称、实例名称和ORACLE_HOME等