Oracle ASM 要求磁碟裝置路徑固定。RHEL 6 透過 udev 規則將多路徑裝置 emcpower* 映射為持久名稱 /dev/asmdisks/asm*,並設定擁有者/權限,確保重開機或存儲重掃後路徑不變。
asm_diskstring 指向新路徑:
alter system set asm_diskstring='/dev/asmdisks/asm*' scope=spfile sid='*';編輯 /etc/udev/rules.d/99-oracle-asm.rules(或現有規則檔),每顆磁碟一行,格式如下:
KERNEL=="emcpower*1", SUBSYSTEM=="block", \
PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", \
RESULT=="360000970000295900314533030344131", \
NAME+="asmdisks/asmarch0000", ACTION=="add|change", \
OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="emcpower*1", SUBSYSTEM=="block", \
PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", \
RESULT=="360000970000295900314533030344130", \
NAME+="asmdisks/asmarch0001", ACTION=="add|change", \
OWNER="grid", GROUP="asmadmin", MODE="0660"
# ... 依此類推
RESULT 為 scsi_id 輸出的唯一 WWID。NAME 為欲建立的持久裝置節點(相對於 /dev/)。OWNER/GROUP/MODE 符合 Oracle Grid Infrastructure 需求。start_udev
ls -l /dev/asmdisks/

重啟 ASM 與資料庫實例,確認 asm_diskstring 新路徑正常掛載磁碟群組。
udev 規則基於 WWID 綁定,不受多路徑裝置掃描順序影響,完美解決 ASM 磁碟名稱漂移問題。