:::

修復Proxmox VE:連續要求登入 / Fix Proxmox VE: Endless Login

8月 09, 2014 , 2 Comments Edit Post

2014-08-08_024021

本篇是修復Proxmox VE的集叢(Cluster)中遇到不斷跳出「Proxmox VE Login」登入視窗的錯誤。這個錯誤是因為節點的時間不一致,使用ntpdate網路校時之後可以解決。以下說明造成錯誤的原因以及解決方法。

This article describes the problem of Proxmox VE Cluster: when you do anything on other nodes, Proxmox VE Login form prompted again and again. A proposed solution to the problem is correcting the time of every node by using ntpdate. Following are the problem description and solutions.


問題狀況 / Problem Description

2014-08-06_112517

有時候在進行Proxmox VE集叢中任何操作時,明明之前已經登入過了,但是現在卻又跳出了「Proxmox VE Login」登入表單。即使你再一次登入,這個登入表單依然會跳出來。就算網頁重新整理,這個它依然會跳出這個表單。

2014-08-08_024021

如果用Google Chrome來檢查錯誤主控臺,你會發現大量的「401 (No ticket)」,例如:

Failed to load resource: the server responded with a status of 401 (No  ticket)

這大概是Proxmox VE使用者遇到最頭痛的問題了,一堆人都在網路上拼命地找尋這個問題的解決方法。但是這個問題本身不在於Proxmox VE集叢本身,而是在於伺服器上。

問題原因 / Causes of Problem

2014-08-09_005256

造成這個問題的原因是因為節點伺服器自己的時間不一致

以下幾種情況可能會造成伺服器時間錯亂:

  • 伺服器本身因為停電、長時間未通電使用等各種情況,導致伺服器本身記錄時間的電池沒電,時間被重置。
  • 使用虛擬機器建置Proxmox VE節點,但是因為使用快照(Snapshot)與還原(restore),讓機器本身的時間與現實時間不一致。
  • 因為任何原因設定了Linux系統的時間,例如用date工具

你可以執行date指令來查詢伺服器現在的時間:

root@proxmox-02:~# date

Thu Aug  7 20:47:01 CST 2014

如果這個時間附和現實時間,那沒有問題。但通常有問題的節點的時間都會與現實時間不同。

當兩個節點的時間不一致時,維持正確時間的節點去查看延遲錯誤時間的節點時,大概兩者只要相差5分鐘,就會導致這個錯誤發生。

手動解決方案 / Manual Solution

要解決伺服器時間錯誤,最簡單的方法是使用網路校時ntpdate。Proxmox VE預設沒有安裝ntpdate,我們要先更新apt-get,然後再用apt-get安裝。接著就能夠跟NTP伺服器pool.ntp.org進行網路校時。

安裝ntpdate的做法如下:

apt-get update

apt-get install -y ntpdate

進行網路校時的指令如下:

ntpdate -u pool.ntp.org

自動解決方案 / Automatic Solution

image

要自動解決這個問題的方法是固定每天都進行網路校時,確保伺服器的時間一直保持正確。

我將以上指令寫成了腳本pve-ntpdate.sh,請下載到/root/dlll-cias/pve/scripts/pve-ntpdate.sh:

wget http://goo.gl/vKyjnQ  -o /root/dlll-cias/pve/scripts/pve-ntpdate.sh

加入執行權限:

chmod +x /root/dlll-cias/pve/scripts/pve-ntpdate.sh

然後在crontab加入以下設定:

echo “0 2 * * * root /root/dlll-cias/pve/scripts/pve-ntpdate.sh”

這樣每天清晨2點的時候,伺服器會自動進行網路校時,以確保時間的正確性。

總共2 則留言, (我要發問)

  1. 因為我常常使用這個指令,為了方便起見,我把它整理成以下一行:

    apt-get update; apt-get install -y ntpdate; ntpdate -u pool.ntp.org

    回覆刪除
  2. 今天重灌Proxmox又遇到這個問題,這篇真是實用(自吹自擂?

    回覆刪除

留言工具: