暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

#搬砖见闻# ASMLib环境下单路径到多路径的转换

子衿技术联盟 2017-02-08
1231


闫献锋长期关注信息系统基础架构、主机与数据库运维与优化,对故障分析诊断、优化调整有一定的心得。

 

1、概述

ASMLib的是Oracle数据库10g及以上版本的自动存储管理功能的支持库。 Oracle提供了该库的在Linux操作系统下的的具体实现。在默认的配置情况下ASMLib并不会去关心具体使用哪条路径,它只是提供了一个库文件,选择由操作系统所发现的设备文件,具体取决于存储驱动程序,它可能是/dev/sdb,也可能是/dev/mapper/mpathb。ASMLib程序允许两个磁盘扫描顺序的修改。首先它允许排除某些磁盘。其次也可以指定首先要扫描的磁盘,在此列表中的磁盘先被扫描,其他不在此列表中的磁盘后被扫描。

ASMLib的配置文件是/etc/sysconfig/oracleasm,是一个软连接,链接到/etc/sysconfig/oracleasm-dev_oracleasm。它包含了所有的配置选项。配置文件包含了许多的配置变量。下表是我们关心的一些配置项:


配置项

配置说明

ORACLEASM_SCANORDE

指定要扫描的磁盘的顺序

ORACLEASM_SCANEXCLUDE

变量指定的磁盘将被忽略。

通过调整ORACLEASM_SCANORDE与ORACLEASM_SCANEXCLUDE,我们可以在使用ASMLib的环境中把存储设备从单路径调整到多路径,从而保证存储方面的高可用性,消除存储方面的单点故障。

 

2、步骤


  • 停止数据库和集群

  • 配置多路

一般情况下,修改/etc/multipath.conf,参考下面的配置进行调整multipath.conf文件即可。

vi  /etc/multipath.conf

multipaths  {

  multipath {

    wwid  "360060e801667g700000167j700030053"

    alias   mpocr1

   }

重启multipathd服务:

root@test01]# service multipathd restart


通过multipath命令查看多路的配置是否合理。

root@test01  ]# multipath -l

mpocr1  (360060e801667g700000167j700030053) dm-40 HP,OPEN-V

size=50G  features='1 queue_if_no_path' hwhandler='0' wp=rw

`-+-  policy='round-robin 0' prio=0 status=active

  |- 0:0:0:38 sdam 66:96  active undef running

  `- 1:0:0:38 sdcu 70:32  active undef running


  • 根据目标环境,调整ORACLEASM_SCANORDE和ORACLEASM_SCANEXCLUDE(我们这里针对multipath环境为例做一些说明)

#编辑文件/etc/sysconfig/oracleasm

vi etc/sysconfig/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"

 

#重启oracleasm服务

/etc/init.d/oracleasm restart

 

#检查oracleasm磁盘

/etc/init.d/oracleasm  querydisk -d ocr1

  • 启动集群和数据库

检查集群和数据库是否能正常启动

 

3、常见问题


a) 单路径设备为什么能转换到多路径设备?

实际上数据是存储在磁盘上,单路径设备和多路径设备只是我们对于磁盘的描述,只要数据在,只要存储提供了相应的接口,我们就能通过调整配置项使多路设备优先生效。

b) 在使用/etc/init.d/oracleasm删除和重建磁盘之后,为什么crs无法正常启动?

asm里面有一套自己的元数据描述,重建之后这套元数据被破坏掉了。

c) 使用asm有什么额外注意的地方?

建议定期备份磁盘头部


备份命令:

kfed read /dev/dm-10 aunum=0 blknum=0  text=dm10_header.txt

恢复命令:

kfed write /dev/dm-10 aunum=0 blknum=0  text=dm10_header.txt


文章转载自子衿技术联盟,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论