400-920-0692
技术资源

1.症状

最近在两台RedHat Linux6.5的系统上安装11.2.0.4的RAC,grid顺利安装完成。在使用asmca创建磁盘组的时候,遇到类似以下报错:

123.png

这里很明显是磁盘发现路径的调整导致的报错。

2.问题分析

我们目前的asm磁盘时通过udev设置的,设备名规划是ocr和vote对应的磁盘组叫CRS,设备为/dev/ocrvote。用于存放数据文件的磁盘组计划叫DATA,设备为/dev/asmdata01到/dev/asmdata06.之前安装grid的时候,为了方便选择磁盘,发现路径写的是/dev/ocr*,新创建DATA磁盘组的时候,就会出现发现不了磁盘,因此需要修改发现路径,我们设置为/dev/asm*,这个时候就会出现以上报错。

遇到这种情况,很自然的会想到采用/dev/*即可以发现/dev/ocrvote和/dev/asmdata0n了,也确实如此,asmca界面列出了相应的磁盘。由于这套系统采用了多路径,与此同时udev绑定设备底层的sdx也出现在列表中。当我们选择/dev/asmdata0n的时候,创建磁盘出现

报错,大致的意思时说sdx已被占用,很自然,我们使用grid用户对asmdata0n进行了盘头清理,命令大致如下:

dd if=/dev/zeroof=/dev/asmdata01 bs=8192 count=10000

操作都能正常完成,说明磁盘权限都正常。再次创建DATA磁盘组,发现路径仍然使用/dev/*,这次报错还是说磁盘已占用,但是sdx比如之前时报/dev/sde被占用,现在报/dev/sdf被占用。尝试了对所有/dev/asmdata0n进行了清理,问题依然存在。据此可知,采用多路径的环境下,/dev/*作为asm_diskstring还是存在问题。

3.问题解决

既然不能使用/dev/*来设置asm_diskstring,那么只能设置多个值,命令如下:

alter system setasm_diskstring='/dev/ocr*','/dev/asmdata*' sid='*' scope=both;

然后再创建DATA磁盘组,一切正常。

4.总结及建议

这个问题,以前在虚拟机环境或没有采用多路径软件的物理环境下,直接采用/dev/*,并没有遇到问题。所以,这次的问题怀疑和多路径有关。我们的建议是,在设置udev规则的时候,尽量所有的设备别名采用统一的前缀,比如:asmvote01、asmdata01,这样在设置发现路径时,就可以统一设置为/dev/asm*,避免出现以上问题