技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> Oracle --> oracle asm lib中使用multipath的陷井

oracle asm lib中使用multipath的陷井

浏览:1934次  出处信息

    今天,查看一个数据库时,发现这个数据库没有使用到powerpath提供的多路径盘上。

    这个数据库使用EMC的存储,操作系统是Linux,使用了asm lib包。

    查看/dev/oracleasm/disks下的盘时:

    #cd /dev/oracleasm/disks

    #ls -l

    admin@dbrac1:/dev/oracleasm/disks>ls -l

    total 0

    brw-rw―- 1 oracle dba 65,  17 Jun 18 16:44 ASM_VOL1

    brw-rw―- 1 oracle dba 65,   1 Jun 18 16:44 ASM_VOL10

    brw-rw―- 1 oracle dba 65,  33 Jun 18 16:44 ASM_VOL11

    brw-rw―- 1 oracle dba  8, 113 Jun 18 16:44 ASM_VOL12

    brw-rw―- 1 oracle dba  8, 225 Jun 18 16:44 ASM_VOL13

    brw-rw―- 1 oracle dba  8, 129 Jun 18 16:44 ASM_VOL14

    brw-rw―- 1 oracle dba  8,  81 Jun 18 16:44 ASM_VOL15

    #cd /dev

    #ls -l |grep “65, ”

    admin@dbrac1:/dev>ls -l |grep “65, ”

    brw-r―-  1 root   disk  65,    0 Jun 19 00:42 sdq

    brw-r―-  1 root   disk  65,    1 Jun 18 16:44 sdq1

    brw-r―-  1 root   disk  65,   16 Jun 19 00:42 sdr

    brw-r―-  1 root   disk  65,   17 Jun 18 16:43 sdr1

    发现/dev/oracleasm/disks下面的盘居然不是对应到/dev/emcpowerXX盘,

    由此基本确定了asm lib没有使用多路径的盘,原先创建asm disk明明是使用

    /dev/emcpower盘建立的:

    /usr/sbin/asmtool -C -l /dev/oracleasm -n  ASM_VOL1 -s /dev/emcpowera1

    现在为何不是了?

    通过分析asm lib的原理,基本清楚原因是这样的:

    asm lib包只是对盘起一个名字,如“ASM_VOL1″,然后把这个名字存入磁盘的内容的头部。

    下次机器自动启动时,会自动运行/etc/rc.d/init.d/oracleasm start,这时会自动扫描硬盘,

    扫描过程中,是会读前面我们写入名称,由于使用了多路径,那么在/dev/下会有几个设备名对

    应着同一个硬盘,其中/dev/sdXX的是各个路径盘,/dev/emcpowerXX是把这些路径合并了一个

    盘,正常情况下我们都会要求asmlib使用/dev/emcpowerXX盘,但asm lib的扫描规则是使用最先扫描到的盘,

    后面再扫描到的设备,只要上面的名称与前面相同,就使用前面的设备名,不管再次扫描到的了。

    而一般情况下,asm lib都会先扫描到/dev/sdXX盘,而不是/dev/emcpowerXX的盘,由此导致了

    此问题的发生。

    其实oracle的官方网站也说了此问题:

    http://www.oracle.com/technology/tech/linux/asmlib/multipath.html

    解决方法就是修改配置文件中asm lib的扫描顺序,在/etc/sysconfig/oracleasm中配置如下内容:

    ORACLEASM_SCANORDER=”emc sd”

    这样扫描时会先扫描/dev/下emc开头的文件,然后才会是/dev下sd开头的文件。

    这个问题很隐蔽,在安装asm lib时,没有任何地方提示需要配置这个扫描顺序,

    当用/usr/sbin/asmtool -C -l /dev/oracleasm -n  ASM_VOL1 -s /dev/emcpowera1建asm lib盘时,

    也会正确建立在多路径盘上,但当机器重新启动后,asm lib重新扫描磁盘时,就会扫到错误的盘上。

QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1