千家信息网

oracle asm仲裁盘多路径id错乱的问题

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,前段时间接到深圳同事的反应,有个oracle集群中的一台负载过高,为了排查问题,系统已经重启了,但是系统重启后,6块仲裁盘丢失了。为了查明原因,登入系统后,执行df -h,发现系统的/boot分区变成
千家信息网最后更新 2024年11月24日oracle asm仲裁盘多路径id错乱的问题

前段时间接到深圳同事的反应,有个oracle集群中的一台负载过高,为了排查问题,系统已经重启了,但是系统重启后,6块仲裁盘丢失了。

为了查明原因,登入系统后,执行df -h,发现系统的/boot分区变成了mpathap1,进入/dev/mapper目录,发现多了mpathap1-3 三个文件。初步判断是由于系统自带多路径软件导致,查看了初始的配置/etc/multipath.conf 其中并未添加屏蔽本地磁盘的设置。于是手动按文档添加后,由于改变的是系统本地分区,所以需要重启系统,发现重启后,问题依旧;继续尝试了/etc/fstab的修改,将boot直接绑定到/dev/sda,结果系统重启不正常,只能进单用户修改。尝试卸载multipath软件后重启,原以为系统会自动恢复到初始状态,结果重启后无法进入系统,需要单用户模式进入,并重新安装软件。进入/dev/下查看是否有sda1-3发现系统并没有此分区。最终确认系统重启后系统已被多路径软件将分区篡改,而且不可逆,如果解决此问题只能重新安装系统。所以配置多路径前,一定要把本地磁盘给屏蔽掉。而且此问题的发生概率很小,因为之前也重启过很多次,所以配置时千万小心。

通过执行 multipath -ll 发现两台的wwid 对应的磁盘盘符是错乱的,以后查看的时候看来确实需要仔细,这里耽误了很长时间,因为有15个盘符,一个一个对确实挺费事。为了避免盘符错乱,修改了/etc/multipath.conf ,为每个wwid对应了一个固定的盘符。

方法:

multipath {

wwid 36005076802810fb3000000000000007d

alias mpathf

}


然后执行

multipath -F 清除配置。

service multipathd restart 重启服务。

multipath -v2 重新扫描。

multipath -ll


至此磁盘对应关系解决了,剩下的工作就是DBA的事情了。





附录添加方法: 执行/lib/udev/scsi_id --page=0x83 --whitelisted --device=/dev/sda 查看对应的wwid

然后添加:

blacklist {

wwid 36234567890abcde01c6a312c0a867e33

}

这样就把本地盘给屏蔽掉了,而不是直接放开默认注释:

#blacklist {

# wwid 0x6234567890abcde01c6a312c0a867e33

# devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"

# devnode "^hd[a-z]"

#}

这个屏蔽掉光驱等外置设备,如果直接屏蔽设备也可以写成devnode "^sd[a-z]*"



0