利用脚本给NAS加上硬盘休眠监测功能,实现可视化

2024-03-16 20:28:11 21点赞 206收藏 12评论

前言:

玩nas也很久了,自己目前用的威联通453bmini,此文章可以实现,硬盘活动与休眠状态检测,因使用定时脚本,理论上底层是linux的nas均可以使用此文章的说明,实现硬盘休眠/运行状态检测。

此前捣鼓了硬盘休眠,一直使用还算完美。关于硬盘休眠处理,这里不多说,需要的小伙伴参考其他人写的,硬盘休眠方案,大概就是把系统关键分区的镜像raid1,设置脚本,使系统盘和存储盘定时分离raid1和合并raid1;然后将swap缓存设置到主硬盘(系统盘,最好是固态),关闭机械盘的swap;有兴趣去搜索别人的设置方案不多讲(有需要,点赞多了,再搞一篇设置休眠的文章;涉及,raid1分离和重建,swap的配置,开机脚本的配置;及配置后,系统升级注意事项,)

正文(本次的硬盘休眠监控方案):

先上实现的结果图,有兴趣的可以阅读(有些细节可能说的不到位,默认大家稍微还是有点略懂的,不明之处谅解,我也是小白,喜欢研究捣鼓的小白):

我的系统4块硬盘,系统识别分别为:sda、sdb、sdc、sdd

我采取的为每10分钟检测一次硬盘休眠状态并记录日志文件,随后调取分析。一天24小时,每小时60分,24*60/10=144次(每天检测144次并记录),然后查看其中那些时段是活动/休眠状态。(我的系统内配置的15钟不活动即硬盘休眠)

sdc为系统盘(装的固态),开了各种服务,已经注定无法休眠,且固态功耗低,这块盘已知长期活动状态。主要检测的就是:sda、sdb、sdd 状态。上图:

监测图1:监测图1:监测图2:监测图2:

实现逻辑:

原理:

1.硬盘检测脚本,设置定时运行,每10分钟运行一次,输出日志文件。

2.日志文件转移脚本,每15天运行一次,转移日志。(防止单个日志文件过大)

硬盘监控脚本:

(这个发文编辑器,不好用,编辑起来好累,我只能上图片了,脚本放评论了;考虑后续放到其他地方在发一篇文章):

我是在/Container/admin下面建立的脚本文件disk_monitor.sh,内容如下,注意下面硬盘sda、sdb、sdc、sdd写法,我是4个盘,所以写4个。大家要用,请查好自己是那个几个盘(注意替换),查询方法这里不废话了。

脚本内同,注意改成适合自己的脚本内同,注意改成适合自己的

日志的输出路径我配置的是:/share/Container/log/Disklog/disk_monitor.log;大家可自定义路径。

运行的结果就是,在对应目录会生成日志文件:disk_monitor.log;

本质是调用系统自带硬盘检测工具命令:hdparm -C (hdparm命令用法可以百度);

打开日志文件记录内容如下图,然后在利用linux计划任务:crontab 配置每10分钟运行一次(具体多久运行一次,大家也可自定义,5分钟还是20分钟一次都行,最好能与自己系统配置的硬盘多久后自动休眠有契合关系)

对应目录生成日志文件对应目录生成日志文件

standby :休眠状态 active/idle:活动状态;前面记录了时间戳和盘符。

日志文件如上,注意不要乱改不懂的命令,这里面的空格很重要,有用。日志文件如上,注意不要乱改不懂的命令,这里面的空格很重要,有用。

日志处理说明:这样的格式记录的好处,下载log日志文件,复制到excel,使用分列,用空格做分隔符,得到如下图。然后做excel折线图,是不是很爽。

复制到excel表,分裂列,空格分隔符复制到excel表,分裂列,空格分隔符

如果excel不会用,我无话可说了,哈哈,还是别搞了。最后if函数映射0或1,不会就筛选填充。

反正对应关系:standby :0 active/idle:1;

自己加上表头,映射下状态,对应0/1自己加上表头,映射下状态,对应0/1

下载日志,贴excel,分列,然后把状态列处理好0和1;然后时间列,改成文本格式(不能直接改,改了会变数值就乱了),要使用使用函数如图,新插一列:=TEXT(B2,"h:mm:ss");时间改文本格式。【如果处理多日,需要把日也类似时间处理,要用另外的函数,百度下】

利用脚本给NAS加上硬盘休眠监测功能,实现可视化

然后就可以透视了,分析当日只用三列数:设备/时间/状态,

透视表也很清晰,条件格式处理:标记不同值,直接看也很清晰,0和1颜色不同。

然后复制透视表为普通格式,就可以配置折线图了。其实都不用折线,哈哈。我喜欢折线直观些。弄好表格式存起来,以后直接贴入日志分列,然后另一边excel表直接出折线图。

透视表+折线图透视表+折线图

再或者像我一样,使用bi工具直接做成可视图标,如下图(较为麻烦,不细说,直接百度搜bi数据分析工具);

再进阶,上面的日志,可以不输出到日志文件,直接输出到自己的数据库,如果自己nas搭建的有数据库的话(有对应的命令,不难,但是没必要,这个也不细说了),然后在用展时端链接数据库。实际仅靠上面日志文档放到excel文档做分析足够用。

bi工具处理后的图bi工具处理后的图

配置定时任务(刚才说数据处理篇幅长了,哈哈)

下面是图片(主要这个编辑器不好用....),我把用到命令放这里:

crontab -l 查看计划任务

vim /etc/config/crontab 编辑计划任务,注意按 i键,进入编辑状态。

*/10 * /share/Container/admin/disk_monitor.sh 计划任务命令(注意路径替换实际放脚本的地址)

crontab /etc/config/crontab && /etc/init.d/crond.sh restart 重启计划任务

配置完毕后,每10分钟(具体多久可改),就会执行一次,输出到日志文件了。

自己写的处理记录自己写的处理记录

最后,防止日志文件过大的处理方法:

若不停写日志,以后肯定log文件会很大,我的方案是再写个转移日志的脚本(也可以写定期删除日志文档的脚本)。

接下图接下图

定期转移日志的脚本内容,将脚本放到目录,我放的是:

/share/Container/admin/move_disk_log.sh 【用威联通的都知道,其实就是容器的目录,我喜欢放这里,大家可以自由放置】

接下图接下图

此步只是测试,大家有需要用,不需要可跳过。

利用脚本给NAS加上硬盘休眠监测功能,实现可视化

chmod +x /share/Container/admin/move_disk_log.sh 给脚本文件授予执行权限。

然后配置计划任务,每月15号的0点05分,自动执行,老样子:

利用脚本给NAS加上硬盘休眠监测功能,实现可视化

完毕,整个就配置好了。以上日常监测硬盘活动状态,便于分析使用。经常看到网友论战nas休不休眠的问题:

我个人见解:首先家用盘数并不多,倒不是纠结那点电费(当然能省则省);

1.硬盘要么就不设置休眠停转,跑各种高频服务,常开就行。家用没这个场景。就算有,主盘常开就行,没必要都跟着活动起来,不然总是莫名炒豆子声音,也烦。

2.休眠与活动来回切换,于硬盘寿命来讲,可能常休眠或者常开更好。反而来回切换,寿命最短,涉及到电机启动和关闭,磁头摇臂来回移动磁盘上与归位,反而更不利。

3.使用了分离raid1和重建raid1+swap转移实现休眠,目前使用无问题。基本解决休眠问题。最理想状态是win的睡眠机制或者华硕nas的休眠机制,使用时候快速唤醒,进入状态。不用时候休眠,节能减排且提升寿命(家用nas,真的是2-4天才访问一次设备的文档,没有做到天天用)。参考功率:4盘都活动功率30--45w,休眠15--20w。win系统睡眠和华硕那种休眠方案,能降到5w内。

威联通是没法做到不用关机,用的时候唤醒的(大家都知道威联通开机一次至少5-10分钟,关机一次至少又5分钟,这个也研究过快速开关机的问题,暂时无解,我受不了用的时候等待)。

关于休眠,各自有自己见解和做法,没必要引战。各取所好即可。

另外付一个功率监控图:nas接入功率监测插座+Home Assistant即可实现。

中间有些唤醒,是开了一些服务导致,比如威联通的多媒体数据库,会再凌晨时候备份数据库等,会调用媒体盘。

另:如果有好的睡眠休眠方案和建议,欢迎留言。

利用脚本给NAS加上硬盘休眠监测功能,实现可视化

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
12评论

  • 精彩
  • 最新
  • Usb挂载的硬盘可以监测不

    校验提示文案

    提交
    以我现在的了解,hdparm一般用于监控SATA和ide设备。usb设备一般不由它管理,具体我没接usb没测试过。你可以命令行测试下,如果返回usb设备状态就可以监控。

    校验提示文案

    提交
    收起所有回复
  • 可以。
    我为了pcdn分流,给京东云路由器,和斐讯路由器写限速脚本。原则上是同道中人

    校验提示文案

    提交
  • 牛逼 硬核

    校验提示文案

    提交
  • 有用

    校验提示文案

    提交
  • 需求催生各种微操

    校验提示文案

    提交
  • 有现成工具的,没必要重复造轮子 [敷面膜]

    校验提示文案

    提交
    工具是啥,说呗

    校验提示文案

    提交
    百度宝塔面板

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 啰嗦,没有重点

    校验提示文案

    提交
  • 评论里没看到大佬的脚步啊!能不能来一个,根据图片做的脚本,运行后不生成日志文件

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

h多多

Ta还没有介绍自己

关注 打赏
最新文章 热门文章
206
扫一下,分享更方便,购买更轻松