ASMLib/oracleasm 只能在 Linux 操作系统上实现。
使用多路径时,我们希望强制 oracleasm 首先扫描多路径设备。
这减少了扫描时间,因为默认情况下 oracleasm 会尝试扫描每个设备,包括到它的多个路径。
在所有节点上:
- 关闭所有(DB和ASM):
你应该在重启 ASMLib 之前停止所有(例如:DB、ASM 和 HAS(如果你在 11.2 crsctl stop has)(crsctl stop crs for RAC):
如果磁盘组已挂载,它将失败并显示以下错误:
/etc/init.d/oracleasm restart Unmounting ASMlib driver filesystem: umount: /dev/oracleasm: device is busy umount: /dev/oracleasm: device is busy Unable to unmount ASMlib driver filesystem [FAILED]
ASMLib 不允许这样做。
然后,在每个节点上,一次一个,根据多路径软件的类型执行以下步骤:
- 对于备份,复制我们当前的 /etc/sysconfig/oracleasm 和 /etc/sysconfig/oracleasm-_dev_oracleasm 文件。
a) 如果使用 DM-Multipathing 或者 Linux OS Native Multipathing:
然后,我们要更改 /etc/sysconfig/oracleasm-_dev_oracleasm 文件中的以下参数,/etc/sysconfig/oracleasm 文件真正链接到该文件:
例如:
lrwxrwxrwx 1 root root 24 Jun 13 09:58 /etc/sysconfig/oracleasm -> oracleasm-_dev_oracleasm
# ORACLEASM_SCANORDER: Matching patterns to order disk scanning ORACLEASM_SCANORDER="mpath dm" (OR ORACLEASM_SCANORDER="dm") # ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan ORACLEASM_SCANEXCLUDE="sd"
如果使用 EMC PowerPath Multipathing,那么我们希望更改 /etc/sysconfig/oracleasm-_dev_oracleasm 文件中的以下参数,/etc/sysconfig/oracleasm 文件实际链接到该文件:
例如:
lrwxrwxrwx 1 root root 24 Jun 13 09:58 /etc/sysconfig/oracleasm -> oracleasm-_dev_oracleasm
# ORACLEASM_SCANORDER: Matching patterns to order disk scanning ORACLEASM_SCANORDER="emcpower" # ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan ORACLEASM_SCANEXCLUDE="sd"
如果使用 Hitachi Dynamic Link Manager,那么我们需要更改 /etc/sysconfig/oracleasm-_dev_oracleasm 文件中的以下参数,/etc/sysconfig/oracleasm 文件真正链接到该文件:
例如:
lrwxrwxrwx 1 root root 24 Jun 13 09:58 /etc/sysconfig/oracleasm -> oracleasm-_dev_oracleasm
# ORACLEASM_SCANORDER: Matching patterns to order disk scanning ORACLEASM_SCANORDER="sddlm" # ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan ORACLEASM_SCANEXCLUDE=""
以 root 用户身份保存文件 (oracleasm-_dev_oracleasm)。
重启 oracleasm(以 root 身份):
# service oracleasm restart
或者
# /etc/init.d/oracleasm restart
- 检查/dev/oracleasm/disks/*:
$ ls -ltr /dev/oracleasm/disks/*
5-1 如果使用 DM-Multipathing 或者 Linux OS Native Multipathing,则所有主编号应等于 253 或者 252 或者 249 。
例如:
# ls -l /dev/oracleasm/disks brw-rw---- 1 grid asmadmin 253, 9 Jun 4 10:35 ASM01 brw-rw---- 1 grid asmadmin 253, 4 Jun 4 10:35 ASM02 brw-rw---- 1 grid asmadmin 253, 7 Jun 4 10:35 ASM03 brw-rw---- 1 grid asmadmin 253, 11 Jun 4 10:35 ASM04 brw-rw---- 1 grid asmadmin 253, 20 Jun 4 10:35 ASM05
或者
# ls -l /dev/oracleasm/disks brw-rw---- 1 grid asmadmin 252, 9 Jun 4 10:35 ASM01 brw-rw---- 1 grid asmadmin 252, 4 Jun 4 10:35 ASM02 brw-rw---- 1 grid asmadmin 252, 7 Jun 4 10:35 ASM03 brw-rw---- 1 grid asmadmin 252, 11 Jun 4 10:35 ASM04 brw-rw---- 1 grid asmadmin 252, 20 Jun 4 10:35 ASM05
上述主要编号应与文件 /proc/partitions 中的多路径设备 (dm*) 匹配。
例如:
# cat /proc/partitions major minor #blocks name ... 253 8 524281275 dm-8 253 9 524281220 dm-9 253 3 524281275 dm-3 253 4 524281220 dm-4 253 6 524281275 dm-6 253 7 524281220 dm-7 253 10 524281275 dm-10 253 11 524281220 dm-11 253 19 524281275 dm-19 253 20 524281220 dm-20 ...
5-2 如果使用 EMC PowerPath Multipathing,则所有主要编号应等于 120。
例如:
# ls -l /dev/oracleasm/disks brw-rw---- 1 grid asmadmin 120, 11 Jun 4 10:35 ASM01 brw-rw---- 1 grid asmadmin 120, 5 Jun 4 10:35 ASM02 brw-rw---- 1 grid asmadmin 120, 3 Jun 4 10:35 ASM03 brw-rw---- 1 grid asmadmin 120, 7 Jun 4 10:35 ASM04 brw-rw---- 1 grid asmadmin 120, 9 Jun 4 10:35 ASM05
- 上述主要编号应与文件/proc/partitions 中的多路径设备(emcpower*) 匹配。
# cat /proc/partitions major minor #blocks name ... 120 2 524281275 emcpowerb 120 3 524281220 emcpowerb1 120 4 524281275 emcpowerc 120 5 524281220 emcpowerc1 120 6 524281275 emcpowerd 120 7 524281220 emcpowerd1 120 8 524281275 emcpowere 120 9 524281220 emcpowere1 120 10 524281275 emcpowerf 120 11 524281220 emcpowerf1 ...
5-3 如果使用 Hitachi Dynamic Link Manager,例如:
# ls -l /dev/oracleasm/disks brw-rw---- 1 grid asmadmin 252, 224 Jun 4 10:35 ASM01 brw-rw---- 1 grid asmadmin 252, 240 Jun 4 10:35 ASM02 brw-rw---- 1 grid asmadmin 251, 0 Jun 4 10:35 ASM03 brw-rw---- 1 grid asmadmin 251, 16 Jun 4 10:35 ASM04 brw-rw---- 1 grid asmadmin 251, 32 Jun 4 10:35 ASM05
- 以上应该与文件/proc/partitions 中的多路径设备(sddlm*) 匹配。
注意:对于 Hitachi Dynamic Link Manager,主编号可以不同,但必须与 sddlm* 设备匹配。
当 /proc/partitions 文件列出了 sddlm* 设备时,这通常表明正在使用 Hitachi Dynamic Link Manager。
# cat /proc/partitions major minor #blocks name ... 252 224 204802560 sddlmao 252 240 204802560 sddlmap 251 0 204802560 sddlmba 251 16 204802560 sddlmbb 251 32 215040000 sddlmbc ...
5-4 如果使用 AIX(请注意 ASMLib/oracleasm 只能在 Linux OS 上实现。
):
请注意,AIX 可以将 Linux 操作系统与不同类型的多路径软件一起使用,但多路径设置/扫描取决于存储供应商。
但是,大多数 AIX 客户都使用 mknod 设置多路径,并且 AIX 7.0 中有一个内置的 MPIO(MultiPath I/O)软件。
如果客户使用 HDS 或者 EMC 存储,则驱动程序来自供应商。
# lsdev -Cc disk hdisk38 Available 06-09-02 MPIO IBM 2107 FC Disk hdisk39 Available 06-09-02 MPIO IBM 2107 FC Disk hdisk40 Available 06-09-02 MPIO IBM 2107 FC Disk hdisk41 Available 06-09-02 MPIO IBM 2107 FC Disk hdisk42 Available 06-09-02 MPIO IBM 2107 FC Disk hdisk43 Available 06-09-02 MPIO IBM 2107 FC Disk hdisk44 Available 06-09-02 MPIO IBM 2107 FC Disk
从 AIX 5.2 开始,多路径 I/O 功能使用唯一的设备标识符 (UDID) 来标识每个支持 MPIO 的设备,而不管它是在哪个路径上被发现的。
UDID 保存在设备配置数据库中。
当发现设备时,将检查数据库中的 UDID 以确定该设备是否是新设备,或者该发现是否是到现有设备的另一条路径。
当检测到一个设备的多个路径时,设备驱动程序或者路径控制管理器内核扩展将决定为特定请求使用哪个路径。