今天跟學弟一同研究 UPS 設定,讓伺服器主機可以在 UPS 電源耗盡時
可以主動關機保護系統異常斷掉造成的各種損害,短短的幾分鐘關機換來大大的保障

規格

品牌: CyberPower 型號: CP1000AVRLCD

安裝 UPS

可以透過 CyberPower UPS 附帶的 USB 連接至伺服器上,又或者可以透過 RS232 進行訊號傳輸

便可以透過 USB 與 UPS 進行之後的設定和訊號接收

安裝官方軟體

到官方網站下載居家辦公的 POWERPANEL® LINUX 專用

選擇符合自己系統的管理工具,CyberPower 提供各個平台的工具 Windiws/Linux/Mac 都支援

所以不用擔心有任何問題系統不支援的問題,我這裡選擇 deb 檔,因為要安裝在 Ubuntu 系統上

Ubuntu

透過以下指令進行安裝,沒有系統或版本上的問題,應該是不會安裝失敗

1
dpkg -i PPL_Linux 64bit (deb)_v1.3.3.deb

設定 UPS

檢查 UPS 狀態

如果沒有異常,則可以接收到 UPS 資訊

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
pwrstat -status

The UPS information shows as following:

        Properties:
                Model Name................... CP1000AVRLCDa
                Firmware Number.............. CXVJX2000468
                Rating Voltage............... 120 V
                Rating Power................. 600 Watt(1000 VA)

        Current UPS status:
                State........................ Normal
                Power Supply by.............. Utility Power
                Utility Voltage.............. 112 V
                Output Voltage............... 112 V
                Battery Capacity............. 100 %
                Remaining Runtime............ 105 min.
                Load......................... 36 Watt(6 %)
                Line Interaction............. None
                Test Result.................. Passed at 2020/04/25 11:00:56
                Last Power Event............. Blackout at 2020/04/25 13:42:01

設定檔

UPS 的相關設定,這邊設定 40 秒進行關機、並測試好腳本的執行時間

至於腳本的運行時間可以透過 time 進行時間的計算,可以參考這篇簡單的介紹 Time Command

如果你在斷電後不短的時間內復電,必需注意 shutdown-sustain 不要太急著啟動連接的系統

否則時間內會進行 UPS 關閉,但是由於市電已經恢復,所以變成 UPS 重啟的狀態

並不會因為市電回復就不關閉 UPS 系統

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
vim /etc/pwrstatd.conf

# 斷電時是否運行腳本
powerfail-active = yes

# 運行腳本位置
powerfail-cmd-path = /etc/pwrstatd-powerfail.sh

# 斷電時多久時間關機,以秒為單位
# 與腳本同時進行,所以要估算好腳本執行時間
powerfail-duration = 40

# 斷電時是否關機
powerfail-shutdown = yes

...

# 斷電後多久時間關閉 UPS,是 UPS 不是連接的系統,以秒為單位
shutdown-sustain = 120

# 經過系統關閉事件後,是否關閉 UPS 系統
turn-ups-off = yes

重啟

設定好關機時間和腳本資訊之後,要讓設定生效,必須透過重啟指令生效

1
/etc/init.d/pwrstatd restart

測試結論

接下來便透過拔除市電來確認是否會在設定好的時間內執行關機,並且會執行腳本

這邊因為有在 BIOS 設定 Restore AC Power Loss 為開機,所以當系統收到 UPS 關機訊號後

系統正常關機之後,將市電回復,由於 UPS 進行過關閉系統的事件,並因為有設定 turn-ups-off

所以 UPS 還是會進行關閉,關閉後因為市電已經是回復狀態,所以變成馬上就又啟動 UPS

然而系統 BIOS 因為設定過斷電後又恢復電源連接,達成UPS還具有系統自動重啟,所以剛好完成自動關閉和自動重啟的功能

如果沒問題之後,就完成 UPS 對系統關機的保護順便意外地完成自動重起,畢盡花點小錢可以省去大大的蠻煩,其實就是買個保險的概念

注意

還需要測試關閉完系統之後,直掉 UPS 耗電完畢,再進行市電回復

才能真正確定是否會UPS 耗電完畢再回復市電,是否能啟動 UPS

否則不能保證系統能自動重啟

Ref

  1. CyberPower Software
  2. Time Command