容錯移轉時無法啟動 Linux 伺服器
Symptoms
執行「emcpbfs_linux config」指令檔以設定 PowerPath 從 R1 指令檔開機,並嘗試從其建立的新 grub 項目開機,並按預期正常開機。但是,在容錯移轉時,它不起作用。在網站 R2 執行時,Powerpath 未偵測到裝置,因此虛擬磁碟映像中的 LVM 篩選器(設定為僅接受 emcpower 裝置)找不到任何 PV,導致伺服器無法開機
在睡眠 20 秒的情況下執行指令檔 伺服器在故障轉移時實際上沒有問題地啟動(並且具有相同的虛擬設備名稱)
在沒有睡眠狀態的情況下運行腳本表現出相同的迴圈癥狀,嘗試查找卷組並且伺服器未啟動。
Cause
當指令檔在沒有睡眠狀態下執行時:第一次 FC 連結仍未啟動,且主機上仍未設定原生 SCSI 裝置時。
但此時已經配置了一個內部磁碟 (/dev/sda)。因此,指令檔假定原生開機裝置已設定完畢,並繼續嘗試建立 emcpower 裝置。但由於 R2 裝置仍未啟動,因此這會失敗。
基本上從指令檔來看,以下 if 條件會成功,因為即使開機裝置不存在,sdfound 仍設為 1。
如果 [ ${count1} -eq ${count2} ] && [ “${sdfound}” -eq 1 ];然後 /etc/opt/emcpower/emcpmgr map -p
<沒有睡眠>
的紀錄截圖 計數: getsddevs 傳回 1
計數 1: getsddevs 傳回 1
計數: getsddevs 傳回 1
計數 2: getsddevs 傳回 1
/dev/sda
/dev/emcpower
<snip>
<具有睡眠>
功能的紀錄片段 計數: getsddevs 傳回 25
計數 1: getsddevs 傳回 25
計數: getsddevs 傳回 25
COUNT2: getsddevs 傳回 25
/dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp /dev/sdq /dev/sdr /dev/sds /dev/sdt /dev/sdu /dev/sdv /dev/sdw /dev/sdx /dev/sdy
sdc: 未知磁碟分割表格
SDF:未知磁碟
分割表
SDG:未知磁碟分割表 SDG:未知磁碟分割表格
SDO:未知磁碟分割表格
SDQ:未知磁碟分割表格
SDR:未知磁碟分割表
EMCPOWERA:
EMCPOWERA1 EMCPOWERA2
/dev/emcpower
/dev/emcpowera
/dev/emcpowera1
/dev/emcpowera2
<snip>
Resolution
因應措施:
在開機期間從 BIOS 停用此內部磁碟,然後嘗試容錯移轉 (無睡眠)。
如此一來,開機應該會成功,不會發生任何問題,因為指令檔會進行檢查,以確保在嘗試建立 emcpower 裝置時計數大於 0。
永久修正:
沒有永久修復程式,因為不建議使用內部磁碟進行 R1/R2 啟動設置。之所以複雜,是因為指令檔將無法識別開機磁碟是否已設定。此指令檔並不專屬於 R1/R2 開機案例相同的指令檔也需要在 SAN 設定的正常開機上運作。在不需要的時候增加睡眠不是一個好主意。
工程部門會在 Powerpath 安裝和管理指南中記錄不支援此組態。