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

embedded/2024/11/23 9:43:50/

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

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

问题:

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

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


http://www.ppmy.cn/embedded/139822.html

相关文章

华为OD机试真题---最短木板长度

华为OD机试中的“最短木板长度”问题是一个典型的算法问题,其问题描述及解法如下: 一、问题描述 小明有n块木板,每块木板的长度不同。现在小明买了一块长度为m的木料,这块木料可以切割成任意块,然后拼接到已有的木板…

汽车软件开发中的ASPICE合规挑战与Jama Connect解决方案

过去二十五年间,汽车行业发生了翻天覆地的变化。倒车影像摄像头、蓝牙集成、自动驾驶系统等创新技术已经融入到汽车的每一个部分。 二十年前,乘用车的车载代码仅有100万。如今,仅导航系统就需要2000万行代码,而未来全自动驾驶电动…

MySQL 三大日志详解

在 MySQL 数据库中,binlog(二进制日志)、redo log(重做日志)和 undo log(回滚日志)起着至关重要的作用。它们共同保障了数据库的高可用性、数据一致性和事务的可靠性。下面将对这三大日志进行详…

[CISCN 2019初赛]Love Math 详细题解

知识点: 数学函数转换字符串 GET传参外部赋值 eval()函数解析执行命令 PHP动态调用函数名 源码: <?php error_reporting(0); //听说你很喜欢数学,不知道你是否爱它胜过爱flag if(!isset($_GET[c])){show_source(__FILE__); }else{//例子 c20-1$content $_GET[c];if (…

第十章Javascript的应用

10.1 JavaScript概述 10.1.1 JavaScript简介 JavaScript是一种基于对象(0bject)和事件驱动(Event Driven)并具有安全性能的脚本语言&#xff0c;能够与HTML(超文本标记语言)、Java语言一起在Web页面中与Web客户交互它无须经过先将数据传给服务器端(Server)、再传回来的过程&…

使用TensorFlow实现简化版 GoogLeNet 模型进行 MNIST 图像分类

在本文中&#xff0c;我们将使用 TensorFlow 和 Keras 实现一个简化版的 GoogLeNet 模型来进行 MNIST 数据集的手写数字分类任务。GoogLeNet 采用了 Inception 模块&#xff0c;这使得它在处理图像数据时能更高效地提取特征。本教程将详细介绍如何在 MNIST 数据集上训练和测试这…

redis工程实战介绍(含面试题)

文章目录 redis单线程VS多线程面试题**redis是多线程还是单线程,为什么是单线程****聊聊redis的多线程特性和IO多路复用****io多路复用模型****redis如此快的原因** BigKey大批量插入数据测试数据key面试题海量数据里查询某一固定前缀的key如果生产上限值keys * &#xff0c;fl…

egrep grep 区别

‌egrep 和 grep 的主要区别在于对正则表达式的支持。 -rwxr-xr-x 1 root root 28 Jan 29 2020 /bin/egrep -rwxr-xr-x 1 root root 199136 Jan 29 2020 /bin/grep 1e6ebb9dd094f774478f72727bdba0f5 /bin/grep ef55d1537377114cc24cdc398fbdd930 /bin/egrep 区别 gre…