收起左侧

飞牛Fnos系统下查询LSI系列阵列卡以及硬盘温度的方法

2
回复
72
查看
[ 复制链接 ]

2

主题

1

回帖

0

牛值

江湖小虾

部分内容参考借鉴天帝的文章:使用storcli64工具查看lsi阵列卡卡温度
https://club.fnnas.com/forum.php?mod=viewthread&tid=13354
有兴趣的可以去看看

以下是我的ALL in one主机配置:

主板:微星 MPG Z490M GAMING EDGE WIFI

CPU:QTB0(很稳定,功耗低,已经稳定运行2年半左右)

内存:金百达银爵32G*2

M2硬盘:东芝512G(系统盘)+西数2T(直通飞牛)

固态硬盘:2*480g(直通群晖)

机械硬盘:4*东芝mg08 16T

阵列卡:Dell H740P(直通飞牛)

电源:TT sfx750W白金版

机箱:在一块五花肉定制的8盘位NAS机箱

5月份定制的机箱终于在7月初收到了,于是立即着手将原机箱(**超人k88)中的配件拆除,并组装到新机箱中,经过2-3个小时的时间终于组装完毕,之后又将系统重新安装了一遍,先是安装PVE作为底层系统,在PVE中安装2个LXC容器,分别跑Lucky和docker,之后安装了群晖和飞牛以及一台Win10,目前运行一切正常。

虽然机箱有风道设计,家用环境中静音为主,风速没调太大,导致阵列卡温度过高,为了防止阵列卡烧毁,于是在阵列卡上用扎带绑了一个4cm小风扇对着吹。虽然有风扇了,但是不知道阵列卡的具体温度是多少,心里还是不太放心,就想着如果能看到阵列卡的温度信息就好了,可是飞牛系统中虽然可以识别到阵列卡,但是无法读取到阵列卡的温度信息。于是就把目光转到博通的阵列卡管理软件(Storcli64)上,经过上网查询摸索,成功实现在飞牛系统下读取阵列卡温度信息以及硬盘温度。

展示下效果:

下面说一下具体实现方式

1、获取Storcli64软件

进入博通官网下载,打开链接:https://www.broadcom.com/site-search?page=1&per_page=100&q=storcli,找到最新版本的Storcli,新版的对阵列卡识别范围应该更广些,可以识别并管理Dell的H740P、LSI的阵列卡,理论上使用相同芯片设计的都支持。

打开网站后滚动页面到最底下,将每页显示个数从10调整到100

然后向下找到MR 7.33版本,此版本发布于2025年5月19日,截止到发稿前是最新的版本

下载完成后解压压缩包,得到Unified_storcli_all_os.zip文件

然后再次解压,得到以下文件

2、安装到飞牛中

打开终端软件,这里演示的是XTerminal软件,其他的如finalShell、SecureCRT、MobaXterm都是可以的

首先在飞牛中开启SSH功能

其次到XTerminal软件中点击+服务器按钮,添加一台SSH服务器

完成后点击创建,并连接到飞牛系统中,进系统后输入sudo -i命令回车,再输入飞牛用户的密码,切换到root用户

之后将步骤1中的Ubuntu文件下的3个文件上传到飞牛的tmp目录中,全选这三个文件,并拖动到左侧tmp文件夹上

点击确定

上传完毕之后,在命令窗口中输入

dpkg -i /tmp/storcli_007.3306.0000.0000_all.deb

后回车安装Storcli64软件,之后再做一个软连接方便以后运行storcli64

输入

ln -s /opt/MegaRAID/storcli/storcli64 /usr/bin/storcli64

后回车

3、查询阵列卡温度

输入

storcli64 /c0 show temperature | grep ROC | awk '{print $4}'

输出的55即是阵列卡温度

4、查询硬盘温度

首先确定阵列卡组建的逻辑磁盘在系统中的名称,在命令窗口中输入

lsblk

查看编号名称,我这里是sdb

之后查询物理硬盘在阵列卡中对应的编号,在命令窗口中输入

storcli64 /c0 show

c0代表的是第一个阵列卡,如果有第二个阵列卡,查询第二个阵列卡上的物理硬盘编号,这里使用c1代替,以此类推;

在输出的结果中找到类似如下信息,其中的DID值就是物理硬盘在阵列卡上的编号,我这里是将硬盘间隔放的,所以是0、2、4、6,如果你的硬盘是按照顺序接的这里的编号应该是连续的0、1、2、3. . .

之后输入以下命令查询编号0硬盘smart信息中的温度信息

smartctl -a -d megaraid,0 /dev/sdb | grep Temperature_Celsius

其中megaraid,0代表的是编号0硬盘,如果是查询编号2硬盘就改为megaraid,2

这里输出的40就是阵列卡中编号0硬盘的温度

5、批量输出结果,结果可视化优化

每次通过命令查询温度还是比较繁琐的,于是想到将命令合并成一个可执行脚本,会方便很多,于是有了以下的脚本内容,首先创建一个文件,文件名取为temp.sh

nano temp.sh

然后将以下内容填入temp.sh文件中

temps=()
for i in 0 2 4 6; do
    temp=$(smartctl -a -d megaraid,$i /dev/sdb | grep Temperature_Celsius | awk '{print $10}')
    temps+=("硬盘$i: $temp度")
done
roc=$(storcli64 /c0 show temperature | grep ROC | awk '{print $4}')
# 统一输出
printf "%s\n" "阵列卡:${roc[@]}度"
printf "%s\n" "${temps[@]}"

保存并退出按ctrl+o、回车保存,ctrl+x退出

然后给temp.sh可执行权限

chmod +x temp.sh

之后再想查看阵列卡温度和机械硬盘温度,可以输入以下命令查看

./temp.sh

输出内容如下:

至此可以方便的查看阵列卡以及机械硬盘的温度了,全文结束。

收藏
送赞
分享

0

主题

9

回帖

0

牛值

江湖小虾

从我的知识点看,楼主是IT技术人员或IT爱好者,对linux系统很熟悉。羡慕和点赞!!

0

主题

9

回帖

0

牛值

江湖小虾

不知楼主能否提供一块五花肉定制机箱的联系方式或链接

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则