PVE的优化与温度监控(二)—无法识别移动硬盘S.M.A.R.T信息的思考并解决

前情提要:空闲2.5英寸机械硬盘,直接放到PVE上测试NAS 使用,通过SATA线的方式让小主机不太美观,并且失去了前期调试的安全性。购入移动硬盘盒,缺点,USB 连接,会失去一些特性。比如本文中遇到的问题。

全过程分析,一文通关解决。

问题:

USB硬盘盒连接的机械硬盘不能直接显示smart 信息,解决让其显示smart状态。

通过脚本和调整,已经成功将cpu温度,风扇转速,主板温度,NVMe信息,统一展示在PVE 概要中。详细优化更加美观简洁的途径:
PVE的优化与温度监控(三)—数据界面精简美化-优快云博客文章浏览阅读49次,点赞2次,收藏2次。首先阅读源码,恩山大佬的方式是全部展示,但是有很多数据是我们在快速管理页面根本不需要注意的数据,但是恩山大佬的显示方式不够DIY 并不能够自己任意选择需要监控的数据,就想某种monitor软件一样,可以在电脑的副屏展示很多参数。如果通过这篇文章来操作优化:PVE的优化与温度监控(一)-优快云博客文章浏览阅读143次。【代码】G37-14 软路由小主机中PVE8.x 的优化与温度监控。那么你应该看到的状态是这样的:对个人来说过于冗余,不够直观迅速需求:确定需要的参数并单独归类,按需打开显示。https://blog.youkuaiyun.com/KeyBordkiller/article/details/143951145?spm=1001.2014.3001.5501

1.调整smartctl 命令获取硬盘的smart全部信息。

smartctl --all /dev/sda

 由于usb桥无法直接判断,那么我们给他加个条件

smartctl -d sat /dev/sda -a -H -j 

成功显示硬盘盒smart 信息的命令,接下来就可以操作pve的web 后端代码来调取smart信息。

2.由于pve 管理页面不显示smart 信息,是由于usbbridge 导致的问题,那么直接进入pve 源码,针对特殊情况进行调试。

pve 后端使用的perl 直接进入perl 文件夹。

之前对pve 进行温度与硬件信息的显示优化。通过相应文件 在js文件中确认,

 在文件目录中索引DISK 关键字可以得到相应文件,最终定位,Diskmanage.pm 

通过对文件的分析,DISK.pm中的组件与Diskmanage.pm 中存在关联。

操作文件请先备份

cp /usr/share/perl5/PVE/API2/Diskmanage.pm /usr/share/perl5/PVE/API2/Diskmanage.pm.bak

文件目录通过mobaxterm下载 

/usr/share/perl5/PVE/API2/Diskmanage.pm

修改内容为$cmd 的数据


my $cmd;
    if ($disk =~ m{^/dev/sd[a-z]$}) {
    $cmd = [$SMARTCTL, '-d', 'sat', '-H']; # avoid Unknown USB bridge 
	} else {
    $cmd = [$SMARTCTL, '-H']; # normal
	}

3.重启pvedaemen服务

通过对pve 项目文件目录分析(有时间再写一篇),我们知道pve运行 Perl 的主脚本和管理逻辑主要通过 pvedaemon 以及其他核心服务来实现。

systemctl restart pvedaemon.service

成功看到通过硬盘盒usb bridge的sata 2.5英寸硬盘可以显示smart 信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值