自從上了nas這條賊船,家里的各種開銷就增加了。以前使用Rock 5b開發(fā)板+USB硬盤盒的組合還好,因?yàn)锳RM架構(gòu)的功耗非常低;但是自從幾個(gè)月前自己基于超微X11SSH-F服務(wù)器主板DIY了一套NAS系統(tǒng),加上散熱風(fēng)扇、HBA卡、SAS硬盤的用電開銷,每月電費(fèi)就直線上升,去年年底付了四百多了電費(fèi)。當(dāng)然這也不能完全歸咎于存儲(chǔ)系統(tǒng),畢竟因?yàn)?a href="http://www.cggb.com.cn/tag/202">個(gè)人愛(ài)好的緣故,家里的各式電子設(shè)備比較多,而且目前國(guó)家采用的階梯型計(jì)費(fèi)系統(tǒng),12月份往往是一年中電費(fèi)最高的月份。

我自己分析了一下,家中NAS的主要用途是自動(dòng)下載高清電影,但是實(shí)際上存儲(chǔ)中的電影太多沒(méi)有時(shí)間及時(shí)觀看,所以NAS保持24小時(shí)開機(jī)不間斷下載完全沒(méi)必要,其實(shí)只要保證在家中的時(shí)間段可以媒體播放娛樂(lè)即可。

自動(dòng)開關(guān)機(jī)有很多種實(shí)現(xiàn)辦法,我最早hack的Pogoplug是通過(guò)定時(shí)插座實(shí)現(xiàn)自動(dòng)開關(guān)機(jī)的,優(yōu)點(diǎn)是方法簡(jiǎn)單,但是關(guān)機(jī)是強(qiáng)制關(guān)機(jī),對(duì)于硬盤健康不利。

不少電腦支持Wake On Lan技術(shù),直接在BIOS里開啟這一功能即可。

這項(xiàng)技術(shù)的特點(diǎn)如下:

依賴網(wǎng)卡(NIC) 接收特定的 Magic Packet 進(jìn)行遠(yuǎn)程喚醒。

需要主板和網(wǎng)卡支持 WoL,并在 BIOS 和操作系統(tǒng)中啟用相關(guān)設(shè)置。

主要用于消費(fèi)級(jí) PC 和服務(wù)器,無(wú)法監(jiān)控系統(tǒng)健康狀態(tài),僅用于遠(yuǎn)程開機(jī)。

一般只能在 同一局域網(wǎng)(LAN) 發(fā)送魔術(shù)包,遠(yuǎn)程使用需要端口轉(zhuǎn)發(fā)或 VPN。

而我最近折騰的服務(wù)器主板擁有IPMI接口,可以利用超微的IPMI Tool實(shí)現(xiàn)定時(shí)開關(guān)機(jī)。

機(jī)制和WoL也是不一樣的:

獨(dú)立于操作系統(tǒng),通常由服務(wù)器上的 BMC(Baseboard Management Controller) 處理。

提供 遠(yuǎn)程電源控制(開機(jī)、關(guān)機(jī)、重啟)功能,類似物理電源按鈕的作用。

支持硬件級(jí)監(jiān)控(如 CPU 溫度、電源狀態(tài)、風(fēng)扇速度等)。

通過(guò) IP 地址 訪問(wèn),不受局域網(wǎng)限制,可以通過(guò)外網(wǎng)遠(yuǎn)程管理。

常用于企業(yè)級(jí)服務(wù)器,如 Dell iDRAC、HPE iLO、Supermicro IPMI 等。

具體操作方法如下:

首先到超微的官網(wǎng)中下載名為SMCIPMITool的軟件包,支持Windows和Linux系統(tǒng)。

因?yàn)樾枰W(wǎng)絡(luò)中的另一臺(tái)設(shè)備向NAS系統(tǒng)發(fā)送指令開關(guān)機(jī),所以這臺(tái)設(shè)備需要保持長(zhǎng)期在線。

在我家的環(huán)境中,有一個(gè)Rock5b的開發(fā)板作為軟路由保持24小時(shí)開機(jī),我準(zhǔn)備讓其承擔(dān)這一角色。因此我下載了Linux版本。

每月400的電費(fèi)傷不起,利用IPMI給NAS自動(dòng)開關(guān)機(jī)

將軟件包通過(guò)Putty或者WinSCP等軟件拷貝到開發(fā)板上。

每月400的電費(fèi)傷不起,利用IPMI給NAS自動(dòng)開關(guān)機(jī)

解壓縮,我們要用到的就是SMCIPMITool。注意需要預(yù)先安裝JAVA環(huán)境。

每月400的電費(fèi)傷不起,利用IPMI給NAS自動(dòng)開關(guān)機(jī)

命令格式如下:

ipmitool -I lanplus -H -U <用戶名> -P <密碼> power on

其中指的是NAS的IPMI地址,相應(yīng)的用戶名和密碼也就是登錄IPMI的賬號(hào)信息。

比如我這里的命令是這樣的:

每月400的電費(fèi)傷不起,利用IPMI給NAS自動(dòng)開關(guān)機(jī)

將命令放到sh文件中執(zhí)行,卻收到了Unable to establish IPMI v2 / RMCP+ session的報(bào)錯(cuò)。

每月400的電費(fèi)傷不起,利用IPMI給NAS自動(dòng)開關(guān)機(jī)

網(wǎng)上搜了下對(duì)應(yīng)錯(cuò)誤的解決方案,試了卻沒(méi)有起作用。

絕望之際,偶然發(fā)現(xiàn)短時(shí)間內(nèi)再次運(yùn)行腳本就成功了,我猜想可能是因?yàn)榫W(wǎng)絡(luò)延遲造成無(wú)法響應(yīng)的緣故。

于是將腳本更新一下,增加了一個(gè)循環(huán),直至執(zhí)行成功。

開機(jī)腳本 power_on.sh

#!/bin/bash

IPMI_CMD="/usr/bin/ipmitool -H 192.168.1.144 -I lanplus -U 用戶名 -P 密碼 chassis power on"

# 最大嘗試次數(shù)

MAX_RETRIES=5

COUNT=0

while [ $COUNT -lt $MAX_RETRIES ]; do

OUTPUT=$($IPMI_CMD 2>&1)

echo "$OUTPUT"

# 如果執(zhí)行成功,退出循環(huán)

if echo "$OUTPUT" | grep -q "Chassis Power Control: Up/On"; then

exit 0

fi

# 增加計(jì)數(shù)器

COUNT=$((COUNT + 1))

# 等待1秒后重試

sleep 2

done

echo "Failed to power on after $MAX_RETRIES attempts."

exit 1

關(guān)機(jī)腳本 power_off.sh,注意這里要使用power soft軟關(guān)機(jī),讓系統(tǒng)執(zhí)行標(biāo)準(zhǔn)的關(guān)閉流程,就像執(zhí)行 shutdown -h now 命令一樣。

#!/bin/bash

IPMI_CMD="/usr/bin/ipmitool -H 192.168.1.144 -I lanplus -U 用戶名 -P 密碼 chassis power soft"

# 最大嘗試次數(shù)

MAX_RETRIES=5

COUNT=0

while [ $COUNT -lt $MAX_RETRIES ]; do

OUTPUT=$($IPMI_CMD 2>&1)

echo "$OUTPUT"

# 如果執(zhí)行成功,退出循環(huán)

if echo "$OUTPUT" | grep -q "Chassis Power Control: Up/On"; then

exit 0

fi

# 增加計(jì)數(shù)器

COUNT=$((COUNT + 1))

# 等待1秒后重試

sleep 2

done

echo "Failed to power off after $MAX_RETRIES attempts."

exit 1

可以手工執(zhí)行一下兩個(gè)sh文件,確認(rèn)腳本可以成功運(yùn)行。

crontab -e

編輯crontab定時(shí)任務(wù):

每月400的電費(fèi)傷不起,利用IPMI給NAS自動(dòng)開關(guān)機(jī)

保證在主機(jī)開機(jī)之后,對(duì)應(yīng)的CT,Docker也能自動(dòng)啟動(dòng),運(yùn)行以下命令:

pct set -onboot 1

docker update --restart unless-stopped 容器名稱或ID

開關(guān)機(jī)腳本已經(jīng)在我的環(huán)境中正常運(yùn)行幾周了,現(xiàn)在每周通電時(shí)間只有四十幾小時(shí),大大節(jié)省了用電開銷,同樣可以滿足我平日的NAS需求;模擬軟關(guān)機(jī)的方式也不會(huì)強(qiáng)制斷電,損害硬盤健康。

如果大家的NAS系統(tǒng)支持IPMI,也可以采用此種方式節(jié)省每月電費(fèi)。

,

聲明:本站所有文章,如無(wú)特殊說(shuō)明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個(gè)人或組織,在未征得本站同意時(shí),禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺(tái)。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。