DM-multipath 与 RDAC多路径软件冲突解决办法

  一套典型RAC硬件环境(双主机,单个盘柜,通过光纤跳线分接2个博科SAN交换机,rhel6.4的linux操作系统)

故障现象:

1、创建ASM磁盘时提示资源繁忙

orcleasm createdisk VOL1 /dev/sdb1

问题排查过程:

一、rdac多路径软件安装配置不正确

查看RDAC是否安装正确命令:

fdisk -l  (看是否生效最直接的方式,如果存储是8个卷,服务器就应该只能识别到8个设备,如果数量远大于就说明多路径并没有生效)

lsmod |grep mpp  (主要是看模块是否正常加载)

mppUtil -V  (查看版本)

mppUtil -a (查看阵列信息)

/opt/mpp/lsvdev  (查看卷信息)

ls -lR /proc/mpp  (查看阵列控制器和卷信息)

结查发现都是正常的。在执行fdisk -l命令时同时发现很多/dev/mapper/mpathxx的设备,猜测服务器中应该还有另一个多路径设备在起作用。

二、定位DM-multipath是否生效

service multipathd status   (查看dm-multipath服务状态)

lsmod |grep dm_multipath  (检查模块是否正常加载)

multipath -ll   (查看虚拟出的卷信息)

multipath -v2    (查看虚拟出的卷信息)

通过以上配置可清楚发现dm-multipath是生效的,因此猜测是dm-mutipath与rdac产生了资源争用的冲突才异致故障。

解决故障过程:

一、第一种方法是禁用dm-multipath这个红帽自带的多路径软件

方法:servcice multipathd stop

   checkconfig multipathd off

经过测试,这个方法依旧没有用,禁用后重启操作系统仍然可以看到/dev/mapper/mpathxx,创建asm磁盘不成功。后来找到了原因,需要将接在服务器上的光纤拔掉后重启操作系统才有效。

二、第二种方法是卸载dm-multipath多路径软件

方法:采用安装源的方式卸载 yum remove device-mapper*

这种方式虽然可以成功卸载dm-multipath多路径软件,但也带来了一些其它的问题,device-mapper的依赖包太多了,将图形桌面的一些包都一起卸载掉了,启图形桌面会有问题。

三、第三种方法重新安装系统时不选择与存储相关的安装选项

虽然这种方法很笨,但我们还是采用了这种方法,因为前面的方法都没有生效,重装操作系统后,安装并配置好rdac后再也看不到该死的/dev/mapper/mpathxx了。创建asm磁盘总算没问题了。

关于DM-multipath与RDAC

DM-multipath是redhat开发的多路径软件,支持大多数的存储设备,通常无需做任何配置即可使用。

RDAC通常是各存储厂商针对自己的存储设备开发的多路径软件,经过简单的配置即可使用。

时间: 2024-10-10 08:24:36

DM-multipath 与 RDAC多路径软件冲突解决办法的相关文章

ecshop transport.js 和 jquery 冲突解决办法

您提供一个简单的解决transport.js 和 jquery 方法: 在 page_header.lbi 库文件中加入如下代码,注意操作顺序: 1.先导入transport.js  文件 {insert_scripts files='transport.js,utils.js'} 2.然后导入您网站使用的jquery文件 <script language="javascript" src="您的jquery存放路径"></script> 3

openSUSE13.1无法打开Yast的安装/移除软件管理软件的解决办法&#183;(未解决,临时方法)

没有发现解决方案: 可用 sudo /sbin/yast2 用命令行的GUI替代...虽然差不多 决定一会update一下试试 openSUSE13.1无法打开Yast的安装/移除软件管理软件的解决办法·(未解决,临时方法),布布扣,bubuko.com

Android中View类OnClickListener和DialogInterface类OnClickListener冲突解决办法

如下面所示,同时导入这两个,会提示其中一个与另一个产生冲突. 1 import android.view.View.OnClickListener; 2 import android.content.DialogInterface.OnClickListener; 其实,当我们用某个Listener时,不一定就要import它,直接用全名去定义就不需要import了,例如 1 mButton1.setOnClickListener(new OnClickListener() 2 { 3 4 @O

std::min和自定义宏冲突解决办法

#include<algorithm> #include<iostream> #define min(a,b)!(b<a)?a:b int main(){ int a=1,b=2; std::cout<<(std::min)(a,b); return 0; } 加入一个括号,std::min就不会被宏替代了. std::min和自定义宏冲突解决办法

git 冲突解决办法

在项目中使用git管理,冲突是在所难免的,如果没办法解决冲突,可以试试这个办法! 第一步.对工程进行备份,最好是拷贝到其他文件夹中 第二步.在cmd命令栏上,进入到工程目录下,这里的工程只你正在开发的工程 第三步.输入命令 git stash git stash clear git reset --hard  id 注:id指你上传文件的id,在eclipse中右键工程->team->show in history 就可以看到上传的id git pull 第四步.刷新工程 第五步.将备份好的工

iOS进行MD5加密libary冲突解决办法

进行md5加密的时候加入liblibcommonCrypto.dylib遇到libary冲突 报library not found for -lcommonCrypto和libcommonCrypto.dylib.Link against the umbrella framework 'System.framework'错误 解决办法 删除liblibcommonCrypto.dylib 倒入 JavaScriptCore.framework #import <CommonCrypto/Comm

Maven jar包冲突解决办法

下面两个配置有简洁的包依赖冲突: <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId

PATH全局路径重复的解决办法

[[email protected] keepalived]# echo $PATH /application/mysql/bin:/application/mysql/bin:/application/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 如上,路径重复,只需输入下面脚本即可 export PATH=$(echo $PATH | tr : "\n"| sort 

Git代码冲突解决办法

命令行git pull产生冲突后,手工编辑冲突文件并保存,之后再执行git add -u命令添加变化的文件,再commit并push即可.具体参考如下文章 http://stackoverflow.com/questions/12192649/git-help-userinterfacestate-xcuserstate-warning-merge-conflict-file-still-mar When there is a merge conflict, you MUST resolve i