Question:
原先運作在線上環境的 PC (Prism Central)
為「2024.3.1.7」版本,近期升級至「7.3.1.3」版本之後,卻發生在 PC 中的 Epsilon
服務顯示為 DOWN,嘗試重新啟動時會失敗無法順利啟動。
連線至 PC (Prism Central) 管理介面時,會顯示「Internal Server Error: dial tcp
<ip>:5432: connect: connection refused」,並且,連線至 PE (Prism
Element) 管理介面時,會顯示和 PC 之間的連線狀態為有問題的「Disconnected」。
Answer:
簡單來說,我踩到 PC 7.3.x 版本的 Bug 了 😓,詳細資訊請參考 Nutanix KB-20629 - /tmp Directory Inode Exhaustion Prevents App Switcher and Stops Epsilon Service 文件庫內容。
首先,請管理人員先用 SSH 登入 PCVM,執行「cluster status | grep -i down」指令,可以看到 Epsilon DOWN 的資訊,確認 Epsilon 服務目前是無法啟動的狀態。
接著,執行「allssh "df -i | grep tmp"」指令,查看 PCVM 的 /tmp 掛載點 Inode 狀態,可以看到 /tmp 使用空間還有,但是 Inode 數量卻被用完了!!
管理人員可以執行「ls -l /tmp/pc-platform-bootstrap.*」指令,可以發現在 /tmp 掛載點下,有一堆檔案名稱開頭為 pc-platform-bootstrap 的日誌檔案,就是這些日誌檔案佔滿了 /tmp 掛載點的 Inode 數量,所以才造成 Epsilon 服務顯示為 DOWN。
那麼該如何解決呢?
- 治本: 因為這是 PC 7.3.x 版本的 Bug,所以官方建議升級至 PC 7.5 或以上的版本,就會自動修復這個臭蟲了。
- 治標: 將 /tmp 掛載點下,檔案名稱開頭為 pc-platform-bootstrap 的日誌檔案刪除,然後重新啟動 PCVM 即可暫時解決。
請在 PCVM 中執行「find /tmp -maxdepth 1 -name 'pc-platform-bootstrap.*' -delete」指令,即可將檔案名稱開頭為 pc-platform-bootstrap 的日誌檔案刪除,然後執行「allssh "df -i | grep tmp"」指令,確認 /tmp 掛載點的 Inode 數量是否釋出了,然後重新啟動 PCVM,重新啟動完成後 Epsilon 服務應該會顯示 UP,正常運作。
然而,這只是先暫時解決 /tmp 掛載點的 Inode 數量被用完的情況,但是臭蟲仍然存在,可能過幾天又會發生一樣的問題,所以無法升級 PC 版本的話,必須為 PCVM 建立排程刪除作業。首先,請在 PCVM 中執行「crontab -e」指令,編輯排程工作任務內容,將「0 0 * * * find /tmp -maxdepth 1 -name 'pc-platform-bootstrap.*' -delete」內容貼在最後一行,然後存檔離開,讓系統可以「每天」自動執行一次刪除 /tmp 下檔案名稱開頭為 pc-platform-bootstrap 的日誌檔案,接著執行「crontab -l」,確認剛才編輯排程工作的內容是否套用生效。


