每月400的电费伤不起,利用IPMI给NAS自动开关机

2025-02-13 22:40:33 26点赞 108收藏 70评论

自从上了NAS这条贼船,家里的各种开销就增加了。以前使用Rock 5b开发板+USB硬盘盒的组合还好,因为ARM架构的功耗非常低;但是自从几个月前自己基于超微X11SSH-F服务器主板DIY了一套NAS系统,加上散热风扇、HBA卡、SAS硬盘的用电开销,每月电费就直线上升,去年年底付了四百多了电费。当然这也不能完全归咎于存储系统,毕竟因为个人爱好的缘故,家里的各式电子设备比较多,而且目前国家采用的阶梯型计费系统,12月份往往是一年中电费最高的月份。

我自己分析了一下,家中NAS的主要用途是自动下载高清电影,但是实际上存储中的电影太多没有时间及时观看,所以NAS保持24小时开机不间断下载完全没必要,其实只要保证在家中的时间段可以媒体播放娱乐即可。

自动开关机有很多种实现办法,我最早hack的Pogoplug是通过定时插座实现自动开关机的,优点是方法简单,但是关机是强制关机,对于硬盘健康不利。

不少电脑支持Wake On Lan技术,直接在BIOS里开启这一功能即可。

这项技术的特点如下:

依赖网卡(NIC) 接收特定的 Magic Packet 进行远程唤醒。

需要主板和网卡支持 WoL,并在 BIOS 和操作系统中启用相关设置。

主要用于消费级 PC 和服务器,无法监控系统健康状态,仅用于远程开机。

一般只能在 同一局域网(LAN) 发送魔术包,远程使用需要端口转发或 VPN。

而我最近折腾的服务器主板拥有IPMI接口,可以利用超微的IPMI Tool实现定时开关机。

机制和WoL也是不一样的:

独立于操作系统,通常由服务器上的 BMC(Baseboard Management Controller) 处理。

提供 远程电源控制(开机、关机、重启)功能,类似物理电源按钮的作用。

支持硬件级监控(如 CPU 温度、电源状态、风扇速度等)。

通过 IP 地址 访问,不受局域网限制,可以通过外网远程管理。

常用于企业级服务器,如 Dell iDRAC、HPE iLO、Supermicro IPMI 等。

具体操作方法如下:

首先到超微的官网中下载名为SMCIPMITool的软件包,支持Windows和Linux系统。

因为需要网络中的另一台设备向NAS系统发送指令开关机,所以这台设备需要保持长期在线。

在我家的环境中,有一个Rock5b的开发板作为软路由保持24小时开机,我准备让其承担这一角色。因此我下载了Linux版本。

每月400的电费伤不起,利用IPMI给NAS自动开关机

将软件包通过Putty或者WinSCP等软件拷贝到开发板上。

每月400的电费伤不起,利用IPMI给NAS自动开关机

解压缩,我们要用到的就是SMCIPMITool。注意需要预先安装JAVA环境。

每月400的电费伤不起,利用IPMI给NAS自动开关机

命令格式如下:

ipmitool -I lanplus -H -U <用户名> -P <密码> power on

其中指的是NAS的IPMI地址,相应的用户名和密码也就是登录IPMI的账号信息。

比如我这里的命令是这样的:

每月400的电费伤不起,利用IPMI给NAS自动开关机

将命令放到sh文件中执行,却收到了Unable to establish IPMI v2 / RMCP+ session的报错。

每月400的电费伤不起,利用IPMI给NAS自动开关机

网上搜了下对应错误的解决方案,试了却没有起作用。

绝望之际,偶然发现短时间内再次运行脚本就成功了,我猜想可能是因为网络延迟造成无法响应的缘故。

于是将脚本更新一下,增加了一个循环,直至执行成功。

开机脚本 power_on.sh

#!/bin/bash

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

# 最大尝试次数

MAX_RETRIES=5

COUNT=0

while [ $COUNT -lt $MAX_RETRIES ]; do

OUTPUT=$($IPMI_CMD 2>&1)

echo "$OUTPUT"

# 如果执行成功,退出循环

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

exit 0

fi

# 增加计数器

COUNT=$((COUNT + 1))

# 等待1秒后重试

sleep 2

done

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

exit 1

关机脚本 power_off.sh,注意这里要使用power soft软关机,让系统执行标准的关闭流程,就像执行 shutdown -h now 命令一样。

#!/bin/bash

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

# 最大尝试次数

MAX_RETRIES=5

COUNT=0

while [ $COUNT -lt $MAX_RETRIES ]; do

OUTPUT=$($IPMI_CMD 2>&1)

echo "$OUTPUT"

# 如果执行成功,退出循环

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

exit 0

fi

# 增加计数器

COUNT=$((COUNT + 1))

# 等待1秒后重试

sleep 2

done

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

exit 1

可以手工执行一下两个sh文件,确认脚本可以成功运行。

crontab -e

编辑crontab定时任务:

每月400的电费伤不起,利用IPMI给NAS自动开关机

保证在主机开机之后,对应的CT,Docker也能自动启动,运行以下命令:

pct set -onboot 1

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

开关机脚本已经在我的环境中正常运行几周了,现在每周通电时间只有四十几小时,大大节省了用电开销,同样可以满足我平日的NAS需求;模拟软关机的方式也不会强制断电,损害硬盘健康。

如果大家的NAS系统支持IPMI,也可以采用此种方式节省每月电费。

展开 收起
70评论

  • 精彩
  • 最新
  • 不懂就问,硬盘频繁开关机(如一天一开关)与365天不关机比,是不是更容易坏啊?

    校验提示文案

    提交
    我的理解正常开关机应该没问题吧,硬盘寿命可以通过设计通电时间和最大数据吞吐量来衡量,那么减少使用时间和不必要的读写应该可以延长寿命,硬盘的健康还会受到环境温度和震动的影响

    校验提示文案

    提交
    个人感觉不怕费电的话一直开着就行了

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 可以多nas啊,高频的比如媒体下载,播放,这些肯定是低功耗nas的,然后传一个算力的nas,用的时候开机就行了

    校验提示文案

    提交
    确实,不同人的需求不一样

    校验提示文案

    提交
    我就是,威联通+pve 各种虚拟机路由整个飞牛各种折腾顺便在做个备份

    校验提示文案

    提交
    收起所有回复
  • 所以,成品Nas是有存在的道理。我自己以前组黑群,4盘位工作100w+,但换极空间后,工作才40+,而且还自动待机。但我只是普通的存储和看电影。

    校验提示文案

    提交
  • 一般 BIOS advanced 里有 Power-on选项里面可以选择每天开机时间,关机就用crontab脚本,参考的是自己用的HP机子的BIOS设置。

    校验提示文案

    提交
  • 哇,省电小妙招,而且不用手动啊

    校验提示文案

    提交
  • 服务器主板好像断电情况下硬盘也在转动,其次服务器主板bmc类似单片机也有几十瓦功耗,2U服务器关机功耗就有50瓦,是不是可以接一个远程控制的电源插排机器关机后关闭指定通道电源,主板设置上电自启动就行了

    校验提示文案

    提交
    我有同主板,实测bmc功耗6w

    校验提示文案

    提交
    这么省电的吗,我看上代的EGS主板,BMC待机有20多w。

    校验提示文案

    提交
    收起所有回复
  • 大小nas配备才是王道,大nas不用不开,小nas用玩客云刷个机,24小时挂着下载省的很。

    校验提示文案

    提交
    24小时下载,都下载啥呀?

    校验提示文案

    提交
    收起所有回复
  • 为啥你电费这么高?我就没有电费呢?因为我把它放在单位啊 [棒棒哒]

    校验提示文案

    提交
    我下次放在电信机房!

    校验提示文案

    提交
    我弄了一套太阳能系统,随便造

    校验提示文案

    提交
    收起所有回复
  • 不明觉厉,这都是编程语言吗?

    校验提示文案

    提交
    也算是吧,linux命令

    校验提示文案

    提交
    收起所有回复
  • 虽然支持ipmi/bmc类似技术的nas在运行的时候功耗肯定不会低到哪里去就对了 [喜极而泣]

    校验提示文案

    提交
    可以考虑加上智能插座,在需要开电脑的时候才给插座通电

    校验提示文案

    提交
    我用了小米的

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 最终的归宿就是群晖

    校验提示文案

    提交
    各有优点吧,自己diy自由度高一点,还能学学linux知识

    校验提示文案

    提交
    主要是年纪大了就懒得折腾,怕麻烦了。以前也是当爱好,组好了刷,刷完拆。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 才400电费 [皱眉] 日常800电费的根本不不屑于这点折腾

    校验提示文案

    提交
    大款啊😆

    校验提示文案

    提交
    收起所有回复
  • 我的nas,4块HC550,每天就1度电,有时候还不到,24小时开机。

    校验提示文案

    提交
    arm还是x86架构?

    校验提示文案

    提交
    绿联的

    校验提示文案

    提交
    收起所有回复
  • 频繁开关机伤硬盘,企业级硬盘不怕7*24,就怕经常启停冲击

    校验提示文案

    提交
    正常关机没影响

    校验提示文案

    提交
    收起所有回复
  • 大傻瓜,有条件的放单位,放公司。我们单位上下行对称,IP直联就是,到我退休那天我都不会出一分钱电费的。

    校验提示文案

    提交
    高手

    校验提示文案

    提交
    不拍被抓到吗

    校验提示文案

    提交
    还有5条回复
    收起所有回复
  • 远程开机用完就关机

    校验提示文案

    提交
    就是启动等一分钟有点烦

    校验提示文案

    提交
    反正我用完了就关了,一直开着也没啥用,我就是存片儿 [邪恶]

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • Nas可能还没ups耗电多

    校验提示文案

    提交
  • 你功耗怎么这么高,我也是x11ssh-f主板,cpu是e3 1260Lv5。3机械2固态,待机功耗40W左右

    校验提示文案

    提交
  • 曾经也折腾过D400,搞过黑裙,最后还是回归白裙了

    校验提示文案

    提交
  • 肯定不是nas的锅 [傻笑] 我三台nas一直7x24

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
108
扫一下,分享更方便,购买更轻松