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]*"



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章