返回列表 发布新帖

[玩法/技巧] 用树莓派做不间断电源服务器(UPS Server)

12178 16
发表于 2016-8-4 19:54:38 | 查看全部 阅读模式

来吧兄弟,一起玩一起讨论!

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 netfun2000 于 2016-8-5 13:38 编辑

夏天到了,最近老停电,为了保险起见搞了一台APC Back-UPS 650。
据称支持上百家几千种UPS,只有一台,其他没做测试。
环境:
1、一台UPS
2、白裙、黑群各一台
3、Gen8一台运行ESXI 5.5
4、光猫、路由器、交换机
5、树莓派2B一台

怎么解决DSM自动关机?DSM只进安全模式,不自动关机。

ups.png
黑群连接到树莓派UPS Server.


评论16

winman 发表于 2016-8-4 21:09:36 | 查看全部
DSM是支持UPS通知DSM关机的,建议你看看群晖的UPS兼容性列表。
回复 点赞

使用道具 举报

netfun2000楼主 发表于 2016-8-5 09:43:24 | 查看全部
winman 发表于 2016-8-4 21:09
DSM是支持UPS通知DSM关机的,建议你看看群晖的UPS兼容性列表。

兼容650的,但测试没有自动关机,只进安全模式了。
回复 点赞

使用道具 举报

underwood 发表于 2016-8-9 13:40:59 | 查看全部
群晖设置硬盘休眠,为什么必须要同时设置不间断电源才能保存呢?
回复 点赞

使用道具 举报

drice 发表于 2016-8-9 17:15:40 | 查看全部
我也是650,带一台Gen8 win2012,一台白裙。交换机不接UPS,白裙直接数据线接UPS,GEN8 检测网卡,一旦断开网卡,则2分钟后关机。
回复 点赞

使用道具 举报

netfun2000楼主 发表于 2016-8-13 19:10:26 | 查看全部
drice 发表于 2016-8-9 17:15
我也是650,带一台Gen8 win2012,一台白裙。交换机不接UPS,白裙直接数据线接UPS,GEN8 检测网卡,一旦断开 ...

我是用树莓派做的UPS服务器,Esxi(Gen8)、白裙、黑群通过网络与UPS服务器(树莓派)通信,UPS连接到树莓派上。接到UPS供电的设备不都同时开机,所以不必担心超载问题。

UPS日常给:光猫、路由器、树莓派、交换机供电。
路由器挂一电子相框(AX206)改显示器,显示路由器和UPS电池状态。
回复 点赞

使用道具 举报

netfun2000楼主 发表于 2016-8-13 20:12:04 | 查看全部
AX206.jpg

AX206做的显示监控。


回复 点赞

使用道具 举报

darkoriginLv.10互助团队 发表于 2016-8-18 01:05:29 | 查看全部
楼主你这是标题党啊。还以为你用树莓派自己组了UPS呢。。。。。
回复 点赞

使用道具 举报

netfun2000楼主 发表于 2016-8-19 10:29:00 | 查看全部
darkorigin 发表于 2016-8-18 01:05
楼主你这是标题党啊。还以为你用树莓派自己组了UPS呢。。。。。

想改来着,可是不让编辑了。
回复 点赞

使用道具 举报

sodeepLv.5 发表于 2016-8-19 11:43:45 | 查看全部
这是个好东西,谢谢
回复 点赞

使用道具 举报

netfun2000楼主 发表于 2016-8-19 21:29:13 | 查看全部
转一篇教程:Raspberry Pi 的應用 - 網管人神器,隨時監控電力狀況的 UPS Server
By  Heracles Jam 6/01/2015   [url=http://line.naver.jp/R/msg/text/?Raspberry%20Pi%20%E7%9A%84%E6%87%89%E7%94%A8%20-%20%E7%B6%B2%E7%AE%A1%E4%BA%BA%E7%A5%9E%E5%99%A8%EF%BC%8C%E9%9A%A8%E6%99%82%E7%9B%A3%E6%8E%A7%E9%9B%BB%E5%8A%9B%E7%8B%80%E6%B3%81%E7%9A%84%20UPS%20Server%0D%0Ahttp://blog.itist.tw/2015/06/bui ... h-raspberry-pi.html]

                               
登录/注册后可看大图
[/url]



為什麼要用 UPS

這邊順便要釐清一個錯誤的觀念:
「讓我們在斷電時還能繼續工作,那是備用發電機組該負責的,絕對不是 UPS 的任務。」


UPS 的目的只是讓我們在斷電的時候,能依正常程序結束工作並關閉系統,不會因突然停電造成系統、資料的毀損,或是設備的故障。

而 UPS 主要分為三種運作型態:
  • 離線式 (Off-Line) - 平時為待機狀態,斷電的瞬間才供電。
  • 在線互動式 (Line Interactive) - 平時為待機狀態,但是隨時在穩壓,在斷電的瞬間才供電。
  • 在線式 (On-Line) - 全時進行穩壓再供電。
在選購時,比較重要的關鍵有:
  • 容量大小,決定供電的時間長短。
  • 運作模式,決定供電品質的好壞。
  • 監控介面,決定如何監控供電狀況。

容量跟運作模式就沒什麼好說的,容量越大越好,在線式才是王道,一切提「錢」來見。


監控介面不外乎下面幾種:
  • Serial Port,也就是RS-232 接頭,現在比較少見了。
  • USB,目前的主流介面。
  • RJ-45,高階的 UPS 才會有。
UPS 可不是裝上去就好了,斷電的時候,我們可是要趕快去把設備關機,以測安全。

問題是,我怎麼知道停電了呢?

透過內建的網路介面加上專用軟體來監控 UPS 的供電狀況,當然是輕鬆又方便,可是只有 Serial Port 或是 USB 的話,難道就不能透過網路來管理嗎?

放心!!!
當然有辦法,Network UPS Tools 就是你的救星。


它支援了上百家個品牌的 UPS,並且支援 Windows、Mac、Linux 及 BSD 等平台,不管是 Serial Port、USB、RJ-45 也統統可以使用。


事前準備
  • Raspberry Pi Model B / B+ / 2B,Model A / A+ 須加上 USB 有線 / 無線網路卡。
  • Raspbian 作業系統。
  • UPS,監控介面最好是 USB 或 RJ-45,這次是用 APC Back-UPS ES 500VA
    如果是 Serial Port 也不是不可以,只要利用支援 Linux 的 USB to RS-232 轉接線 即可。

Server 端安裝與設定
安裝 Network UPS Tools 套件。
sudo apt-get -y install nut


先從官網的 硬體支援清單,查詢該型號使用的驅動程式及連接埠,這邊有幾個欄位可以過濾:
  • Support Level - 支援程度,一顆星到五顆星,越高越好。
  • Device Type - 設備類型,PDU (電源分配器)、SCD (太陽能控制設備)、UPS (不斷電系統)。
  • Manufacturer - 廠牌。
  • Model -型號。
  • Connection - 連線方式,Serial、USB、Network。


找到對應的 UPS 型號,右側會顯示適用的驅動程式類型,點選這個連結。


在「IMPLEMENTATION」的段落,就會有驅動程式的設定值。


編輯 UPS 設定檔。
sudo vi /etc/nut/ups.conf


將剛剛查詢到的驅動程式設定值,寫入設定檔裡,中括弧「[apc]」是自訂的 UPS 名稱,接下來的步驟會用到,desc="xxx" 只是註解可省略。
[apc]
    driver = usbhid-ups
    port = auto


啟動 UPS 設備。
sudo upsdrvctl start


編輯運作模式設定檔。
sudo vi /etc/nut/nut.conf


將「MODE=none」改成「MODE=netserver


確認本機所有的 IP 位址,這裡只加入 IPv4 的位址。
ifconfig | grep inet[^6]


編輯 UPS Daemon 設定檔。
sudo vi /etc/nut/upsd.conf


找到「# LISTEN <address> [<port>]」,在下一行加入所有 IP 位址,連接埠 3493 不用改。
LISTEN 127.0.0.1 3493
LISTEN 10.1.1.22 3493
LISTEN 172.17.42.1 3493


編輯 UPS Daemon 使用者設定檔。
sudo vi /etc/nut/upsd.users


新增一個管理者帳號,「[admin]」是自訂的帳號名稱,「password=」是自訂密碼。
[admin]
  password = admin-pw
  actions = SET
  instcmds = ALL

再新增一個 UPS 主控端,「password=」是自訂密碼。
[upsmon]
  password = upsmon-pw
  upsmon master


編輯 UPS 監控程式設定檔。
sudo vi /etc/nut/upsmon.conf


加入下列設定值,「apc」是 ups.conf 的 UPS 名稱,「localhost」是本機的 IP 位址,「upsmon」是 upsd.users 的主控端名稱,「upsmon-pw」是主控端的密碼,「master」代表這台是主控端。
MONITOR apc@localhost 1 upsmon upsmon-pw master


啟動 NUT 的 Server 端服務。
sudo service nut-server start


啟動 NUT 的 Client 端服務。
sudo service nut-client start


確認服務均已正確啟動。
ps -ef | grep ups


我們還可以用指令來確認這顆 UPS 可執行的管理命令。
upscmd -l apc


或是取得 UPS 目前的系統狀態。
upsc apc




斷電實測
我們試著將 UPS 的市電插頭拔掉,這時候在 Shell 就會跳出「UPS on battery」的訊息。


接著再把市電插頭接回去之後,就會出現「UPS on line power」的訊息。


如果我們拔掉 USB 連接線,則是出現「UPS is unavailable」的訊息。


這些服務在運作過程中的錯誤訊息,可以在 /var/log/syslog 裡面找到。
cat /var/log/syslog | grep ups | less



Windows Client 端
在 Windows 上,常見的是兩套程式:WinNUTWindows NUT Client

WinNUT這根本就是把 NUT 原封不動的轉到 Windows 平台上,目前支援到 Windows 7。


最後的版本是在 2011/2/24 發佈的 2.0.0.4a。


安裝過程是標準的無腦安裝法,一直按「Enter」鈕就行了。


安裝完畢之後,會在程式集裡新增捷徑:
  • Start WinNUT Ups Monitor - 啟動 WinNUT
  • Stop WinNUT Ups Monitor - 停止 WinNUT
  • WinNUT Configuration Tool - 設定 WinNUT


先執行「WinNUT Configuration Tool」,點選「Configuration File Path」右側的「Edit」。


看到了吧!!! 真的就是 Linux 上面的設定檔格式。

我們一樣要加入 UPS 的 IP 位址,千萬別照抄,要改成 Server 的 IP ,而角色也不是「master」,是「slave」。
MONITOR apc@10.1.1.22 1 upsmon upsmon-pw slave


如果我們需要同時管理多台 UPS的話,在這邊加入多個 IP 位址的設定值即可。

如果我們用的是 x64 的版本,NOTIFYCMD 的路徑也要改,把「Program Files」改成「Program Files (x86)」。
NOTIFYCMD "C:\\Program Files (x86)\\WinNUT\\alertPopup.exe"


儲存設定值之後,點選「Apply and Start WinNUT」,Status 就會變成「Running as Application」。


這邊還有一些選項可以調整:
  • Event Log - 設定 Log 檔記錄的錯誤訊息等級。
  • Install As Service - 把 WinNUT 轉成背景服務的運作模式,自動執行。
  • Upsd Port - Server 端的監聽通訊埠。
  • Use Timed Shutdown - 斷電後自動關機,設定斷電幾秒之後關機,以及關機的模式。

我們一樣把市電的插頭拔掉,就會跳出一個對話框,顯示「UPS on battery」。


再把插頭接上,對話框就會顯示「UPS on line power」了。


Windows NUT Client這一套的畫面比較漂亮,但是設定值相對少很多,安裝也沒什麼好說的,同樣是無腦 Enter 安裝法。


進到主畫面之後,先點選「Settings」。


在「Connection」頁籤,設定好 Server 端的 IP、通訊埠、名稱,「Re-establish connection」打勾。




回复 点赞

使用道具 举报

liruishengLv.4 发表于 2016-8-19 23:11:23 | 查看全部
正想找个相关教程啊...感谢啊
回复 点赞

使用道具 举报

darkoriginLv.10互助团队 发表于 2016-8-20 00:56:37 | 查看全部
netfun2000 发表于 2016-8-13 19:10
我是用树莓派做的UPS服务器,Esxi(Gen8)、白裙、黑群通过网络与UPS服务器(树莓派)通信,UPS连接到树莓 ...

感觉你这个搞法,成本很高
首富家有卖拆机的外置UPS监控卡。100多貌似就搞定了。可以给内网的所有机器群发断电的消息。
回复 点赞

使用道具 举报

oldthree6289Lv.10 发表于 2016-8-20 15:09:32 | 查看全部
树莓派 是什么
回复 点赞

使用道具 举报

a201314 发表于 2016-9-6 16:18:01 | 查看全部
厉害,mark一下。
回复 点赞

使用道具 举报

loonydLv.10 发表于 2016-10-26 09:59:11 | 查看全部
netfun2000 发表于 2016-8-13 20:12
AX206做的显示监控。

这个监控比较吊。
回复 点赞

使用道具 举报

loonydLv.10 发表于 2016-11-3 15:35:03 | 查看全部
这样还要个树莓派才可以,有没有更好的方案呢?
回复 点赞

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

淘宝小店

邀请码

VIP会员

微信客服

公众号

微信群

投诉/建议联系

support@gebi1.cn

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2024 隔壁网 版权所有 All Rights Reserved. 粤ICP备14056481号-1
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表