AIX 系統因 UPS 故障導致資料庫小型機與存儲陣列同時斷電,重啟後 HACMP 叢集服務無法啟動。核心原因在於存儲多路徑軟體未安裝,導致斷電後磁碟裝置路徑識別錯亂(hdisk 編號漂移)、PVID 遺失、VG 匯入失敗。本文記錄完整排查過程、關鍵指令與根本解決方案。
hdisk0-hdisk11,重啟後變 hdisk2-hdisk9 消失,後續出現 hdisk12+。importvg 報錯:0516-082 lqueryvg: Unable to access a special device file、0516-1140 importvg: Unable to read the volume group descriptor area。chdev -l hdiskX -a pv=yes 失敗。datavg 的磁碟在節點 1/2 對應不同 hdisk)。# 移除所有錯誤的 hdisk
for i in 2 3 4 5 6 7 8 9 10 11 12 ...; do
rmdev -Rdl hdisk$i
done
# 移除 FC 介面卡定義(強制重新掃描拓撲)
for i in 0 1 2 3; do
rmdev -Rdl fcs$i
done
# 重新配置裝置
cfgmgr -v
執行後所有磁碟重新出現 PVID,但兩節點 hdisk 編號仍不一致(存儲多路徑缺失導致路徑枚舉順序非確定性)。
節點 2 正常,以節點 2 為基準:
# 節點 2
varyonvg datavg
lspv -p datavg # 記錄正確 hdisk 清單與順序
# 節點 1:將多餘/錯位磁碟從 VG 移除
# 先遷移資料避免遺失
migratepv -l hdisk9 hdisk2 # 將 hdisk9 資料遷移至 hdisk2
reducevg datavg hdisk9 # 移除 hdisk9
# 確認兩節點 datavg 組成一致
lsvg -p datavg
# 節點 1
importvg -y datavg hdisk2 # 以正確磁碟匯入
# 設定裸裝置權限給 Oracle
chown oracle:dba /dev/rdatavg/*
chmod 660 /dev/rdatavg/*
# 節點 1
smitty hacmp
# 選擇 Start Cluster Services
# datavg 應可正常並發啟動
# 節點 2 若仍異常,重複清除裝置→cfgmgr 流程
| 現象 | 根本原因 |
|---|---|
| hdisk 編號漂移 | 無多路徑軟體,單一 LUN 透過多條 FC 路徑呈現為多個 hdisk,掃描順序決定編號 |
| PVID 遺失 | 裝置定義遺失,重新掃描未正確識別現有 PVID |
| 兩節點磁碟順序不一致 | 無多路徑協調,各節點獨立枚舉路徑順序不同 |
| VG 匯入失敗 | VGDA(卷組描述區)分散於多個路徑,單一路徑無法讀取完整 VGDA |
安裝多路徑後:
hdiskpower / hdisk 裝置。lspath、mpio_get_config 確認所有路徑 Active/Optimized。vg_varyon 事件正確配置。AIX 斷電後 HACMP 啟動失敗,表象為磁碟識別錯亂,本質為缺少存儲多路徑軟體。透過 rmdev/cfgmgr 重建裝置、migratepv/reducevg 統一 VG 組成可暫時恢復,但唯有安裝並正確配置多路徑軟體,才能從根本消除路徑枚舉非確定性,保障叢集高可用性。
Gentoo 升級後 libpng 1.5 導致編譯失敗:gda、opencv、wxPython 修復實戰
CentOS 5.10 安裝配置 MariaDB 5.5 完整教學
Linux 系統備份神器 backup-manager 部署與配置實戰
Ubuntu 修改 sudo 密碼快取逾時時間:延長或永久記住密碼設定教學
Ubuntu 合上筆電蓋幕仍啟用遠端重啟:修改 systemd logind 設定
Linux 安裝 APC PowerChute Network Shutdown (PCNS) 完整部署指南