Quills
2023-12-31T05:38:47+00:00
这台NAS的前情提要:[url=https://bbs.nga.cn/read.php?tid=37354699][作业贴] 自组5盘位all in boom NAS[/url]
前言
经历了室温23-24℃下5盘的首次连续20小时的阵列校验,硬盘最高温度42℃,可以说基本上上已经达成了我希望的夏天最高工况下能压制在45℃的目标(夏天室温大概27-28℃),算是基本满足了对温度比较娇贵的企业盘的较好工作条件:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-jyinK20T3cS253-dy.jpg[/img]
此时作为硬盘仓排气扇的P12 MAX转速在1600-1700左右,噪音比较无感,听感上基本都是炒豆子声音和HC550的啸叫。
乔思伯N2的一些硬盘仓散热问题的物理解决方案
1. 乔思伯N2的硬盘仓自带了一把12015的风扇,很孱弱,大部分评价都是如果你要上企业盘需要把这个12015风扇换掉,然后硬盘背板的SATA线和大4D供电线都需要换成直角插头才能有空间把12015风扇换成12025风扇,这个算是用这个机箱带企业盘的基本操作。
2. 乔思伯N2的硬盘仓,5块盘塞满后其实没多少缝隙(除了最左边一块盘和机箱之间还有一定的空隙):
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-38n7K26T3cSsg-lc.jpg.medium.jpg[/img]
而且因为防尘网在前面,所以风扇的风向是在背后向外抽风,让风从前面通过防尘网进来,如果风扇从背后往内吹风的话,因为没有防尘网可能灰尘会很大,这个风扇方向是不能调整的。而因为硬盘仓这边因为硬盘间比较紧密,进气阻抗可能会较大,机箱排气扇向的角度来挑选风扇可能不一定适用。
我原本2-3块盘的时候用风尊T30表现尚可,但是加到5块盘的时候已经表现得有点力不从心了(当然也可能和下面第3点提到的防护网的形状有关),决定换手头有的风压更好的P12 MAX。
3. 乔思伯N2原配的防护网是网眼MESH:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-72jgZlT3cSsg-lc.jpeg.medium.jpg[/img]
这个网眼MESH带来2个大问题,一个是留空比较小,风量被很明显的降下来了,二是进气面的几乎贴着风扇的MESH网孔大多都会增大了风扇的噪音,无论是风尊T30和P12 MAX都如此,非严谨的体感感受就是,贴着网眼的1400转的风尊T30比空转的1600转还吵,贴着网眼的1600转的P12 MAX比空转的2000转还吵,你说P12 MAX的3300转?对不起,装了这个网眼MESH后那可是全屋都能听到重型直升机。于是当时咨询了一下泥潭的建议,换了个防护网:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-enpgZiT3cSsg-lc.jpeg.medium.jpg[/img]
噪音瞬间下去了,风量也上来了,双赢!
当然因为只买了1个,就装了进风面,出风面就空着了:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-fm0eXkZ5lT3cS340-2c0.jpg.medium.jpg[/img]
硬件部分的调整改造就到这里。
Unraid下的风扇策略调整
基本没有任何BIOS的内置风扇调控策略支持根据硬盘温度调速,所以调速不能依靠BIOS只能通过软件进行,Unraid的根据硬盘温度调节某个风扇转速的插件叫Dynamix Auto Fan Control,提供了一个自动根据多个硬盘的最高温度来线性调整风扇的PWM值的功能,不过这个插件有几个需要注意的地方:
1. PWM的取值在Linux下,以及部分使用公版BIOS的主板里(比如铭瑄、精粤、尔英的一些板子)里的取值范围是0~255,需要对这个取值除以255才是我们平时讨论的PWM百分比。所以我们需要将我们通常理解的0-100%的PWM和0~255的范围进行换算。
2. 这个插件提供2个温度点TEMP_HIGH和TEMP_LOW和1个风扇控制速度点PWM_LOW来描述这个线性关系,在TEMP_LOW这个温度下风扇转速PWM值是PWM_LOW,在TEMP_HIGH的时候则是满速的PWM 255:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-kx28K2rT3cS1nb-kw.png.medium.jpg[/img]
3. 这个插件还有两个隐藏数值,是写死在脚本里的,PWM_ON_OFFSET和PWM_OFF_OFFSET。PWM_OFF_OFFSET是描述全硬盘休眠下,风扇维持的转速的偏移值,也就是PWM_LOW-PWM_OFF_OFFSET的PWM值是全硬盘休眠下的转速;PWM_ON_OFFSET是从全硬盘休眠状态下有至少一个硬盘唤醒的时候,一个额外的启动PWM增量,会加到根据线性公式计算下的PWM值中。在默认时,这两个都是45。
考虑到P12 MAX的PWM曲线特性,满PWM的3300转不是我需要的,因此在设定TEMP_HIGH、TEMP_LOW和PWM_LOW的时候需要对这个做考量,首先先确定了我希望的一个实际温度上限下的PWM值,Arctic很值得称道的一点是官网上的文档给了完整的PWM和转速曲线,我们可以直接参考而不需要拿到一台机器上自己测:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-l25bZfT3cSw6-jg.png[/img]
(说个题外话,5V下的P12 MAX的PWM曲线其实更适合作为一个静音向的不需要自己拉温度/PWM曲线的用法)
接下来是确定温度/PWM直线的2个点:我能接受噪音条件下的P12 MAX的转速上限是2000转,并且能接受的短时间硬盘温度上限是50℃,通过查这个图在44%附近,44%转换后是255*0.44≈112;然后低温区的话30℃下相对随意地选了个低转速PWM 30(约12%,约700-800转)。于是这个一次函数就定下来了。由于插件用Bash写,每℃变化的PWM变化值是个整数,那么(112-30)/(50-30)≈4,也就是实际上我们希望这条曲线是每1℃变化PWM为4,那么可以推算出这条曲线下,50℃的PWM是110,和112差别不大;45℃下的PWM是30+4*15=90(35%),大概在1700转附近,还算比较安静的范围。PWM到255的温度是,(255-30)/4+30=86.25,也就是TEMP_HIGH需要填86(由于每℃变化的PWM变化值在计算中下取整,其实这里填76-86之间的任意整数都一样,我实际上填了80),然后TEMP_LOW是30,PWM_LOW是30:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-6m1jZbT3cS1la-mq.png.medium.jpg[/img]
然后还有最后一个问题,因为P12 MAX在低于5%的PWM下(换算后是低于15)会停转,但是我们上不希望风扇彻底停转,但是默认的45的PWM_OFF_OFFSET会使得全硬盘休眠下PWM转速会切到30-45=-15,实际上为0,停转。所以我们还要修改一下插件的PWM_OFF_OFFSET使得风扇在全硬盘休眠下维持最低转速提供最低限度的散热。那么考虑到最低能保持转的PWM是15,那么PWM_OFF_OFFSET改成15既可,而起转时+45的PWM其实有点过于暴力,PWM_ON_OFFSET也顺便改成了15。由于直接改插件的解压后的脚本会在系统重启后时效,去改压缩包里的脚本又可能会在插件更新后失效,所以使用一个user script脚本在阵列挂载的时候来进行一次替换并重启这个插件的服务:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-aa8cZkT3cS1qg-pu.png[/img]
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-ecz5K1fT3cS15f-9k.png[/img]
改造完工!
前言
经历了室温23-24℃下5盘的首次连续20小时的阵列校验,硬盘最高温度42℃,可以说基本上上已经达成了我希望的夏天最高工况下能压制在45℃的目标(夏天室温大概27-28℃),算是基本满足了对温度比较娇贵的企业盘的较好工作条件:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-jyinK20T3cS253-dy.jpg[/img]
此时作为硬盘仓排气扇的P12 MAX转速在1600-1700左右,噪音比较无感,听感上基本都是炒豆子声音和HC550的啸叫。
乔思伯N2的一些硬盘仓散热问题的物理解决方案
1. 乔思伯N2的硬盘仓自带了一把12015的风扇,很孱弱,大部分评价都是如果你要上企业盘需要把这个12015风扇换掉,然后硬盘背板的SATA线和大4D供电线都需要换成直角插头才能有空间把12015风扇换成12025风扇,这个算是用这个机箱带企业盘的基本操作。
2. 乔思伯N2的硬盘仓,5块盘塞满后其实没多少缝隙(除了最左边一块盘和机箱之间还有一定的空隙):
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-38n7K26T3cSsg-lc.jpg.medium.jpg[/img]
而且因为防尘网在前面,所以风扇的风向是在背后向外抽风,让风从前面通过防尘网进来,如果风扇从背后往内吹风的话,因为没有防尘网可能灰尘会很大,这个风扇方向是不能调整的。而因为硬盘仓这边因为硬盘间比较紧密,进气阻抗可能会较大,机箱排气扇向的角度来挑选风扇可能不一定适用。
我原本2-3块盘的时候用风尊T30表现尚可,但是加到5块盘的时候已经表现得有点力不从心了(当然也可能和下面第3点提到的防护网的形状有关),决定换手头有的风压更好的P12 MAX。
3. 乔思伯N2原配的防护网是网眼MESH:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-72jgZlT3cSsg-lc.jpeg.medium.jpg[/img]
这个网眼MESH带来2个大问题,一个是留空比较小,风量被很明显的降下来了,二是进气面的几乎贴着风扇的MESH网孔大多都会增大了风扇的噪音,无论是风尊T30和P12 MAX都如此,非严谨的体感感受就是,贴着网眼的1400转的风尊T30比空转的1600转还吵,贴着网眼的1600转的P12 MAX比空转的2000转还吵,你说P12 MAX的3300转?对不起,装了这个网眼MESH后那可是全屋都能听到重型直升机。于是当时咨询了一下泥潭的建议,换了个防护网:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-enpgZiT3cSsg-lc.jpeg.medium.jpg[/img]
噪音瞬间下去了,风量也上来了,双赢!
当然因为只买了1个,就装了进风面,出风面就空着了:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-fm0eXkZ5lT3cS340-2c0.jpg.medium.jpg[/img]
硬件部分的调整改造就到这里。
Unraid下的风扇策略调整
基本没有任何BIOS的内置风扇调控策略支持根据硬盘温度调速,所以调速不能依靠BIOS只能通过软件进行,Unraid的根据硬盘温度调节某个风扇转速的插件叫Dynamix Auto Fan Control,提供了一个自动根据多个硬盘的最高温度来线性调整风扇的PWM值的功能,不过这个插件有几个需要注意的地方:
1. PWM的取值在Linux下,以及部分使用公版BIOS的主板里(比如铭瑄、精粤、尔英的一些板子)里的取值范围是0~255,需要对这个取值除以255才是我们平时讨论的PWM百分比。所以我们需要将我们通常理解的0-100%的PWM和0~255的范围进行换算。
2. 这个插件提供2个温度点TEMP_HIGH和TEMP_LOW和1个风扇控制速度点PWM_LOW来描述这个线性关系,在TEMP_LOW这个温度下风扇转速PWM值是PWM_LOW,在TEMP_HIGH的时候则是满速的PWM 255:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-kx28K2rT3cS1nb-kw.png.medium.jpg[/img]
3. 这个插件还有两个隐藏数值,是写死在脚本里的,PWM_ON_OFFSET和PWM_OFF_OFFSET。PWM_OFF_OFFSET是描述全硬盘休眠下,风扇维持的转速的偏移值,也就是PWM_LOW-PWM_OFF_OFFSET的PWM值是全硬盘休眠下的转速;PWM_ON_OFFSET是从全硬盘休眠状态下有至少一个硬盘唤醒的时候,一个额外的启动PWM增量,会加到根据线性公式计算下的PWM值中。在默认时,这两个都是45。
考虑到P12 MAX的PWM曲线特性,满PWM的3300转不是我需要的,因此在设定TEMP_HIGH、TEMP_LOW和PWM_LOW的时候需要对这个做考量,首先先确定了我希望的一个实际温度上限下的PWM值,Arctic很值得称道的一点是官网上的文档给了完整的PWM和转速曲线,我们可以直接参考而不需要拿到一台机器上自己测:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-l25bZfT3cSw6-jg.png[/img]
(说个题外话,5V下的P12 MAX的PWM曲线其实更适合作为一个静音向的不需要自己拉温度/PWM曲线的用法)
接下来是确定温度/PWM直线的2个点:我能接受噪音条件下的P12 MAX的转速上限是2000转,并且能接受的短时间硬盘温度上限是50℃,通过查这个图在44%附近,44%转换后是255*0.44≈112;然后低温区的话30℃下相对随意地选了个低转速PWM 30(约12%,约700-800转)。于是这个一次函数就定下来了。由于插件用Bash写,每℃变化的PWM变化值是个整数,那么(112-30)/(50-30)≈4,也就是实际上我们希望这条曲线是每1℃变化PWM为4,那么可以推算出这条曲线下,50℃的PWM是110,和112差别不大;45℃下的PWM是30+4*15=90(35%),大概在1700转附近,还算比较安静的范围。PWM到255的温度是,(255-30)/4+30=86.25,也就是TEMP_HIGH需要填86(由于每℃变化的PWM变化值在计算中下取整,其实这里填76-86之间的任意整数都一样,我实际上填了80),然后TEMP_LOW是30,PWM_LOW是30:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-6m1jZbT3cS1la-mq.png.medium.jpg[/img]
然后还有最后一个问题,因为P12 MAX在低于5%的PWM下(换算后是低于15)会停转,但是我们上不希望风扇彻底停转,但是默认的45的PWM_OFF_OFFSET会使得全硬盘休眠下PWM转速会切到30-45=-15,实际上为0,停转。所以我们还要修改一下插件的PWM_OFF_OFFSET使得风扇在全硬盘休眠下维持最低转速提供最低限度的散热。那么考虑到最低能保持转的PWM是15,那么PWM_OFF_OFFSET改成15既可,而起转时+45的PWM其实有点过于暴力,PWM_ON_OFFSET也顺便改成了15。由于直接改插件的解压后的脚本会在系统重启后时效,去改压缩包里的脚本又可能会在插件更新后失效,所以使用一个user script脚本在阵列挂载的时候来进行一次替换并重启这个插件的服务:
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-aa8cZkT3cS1qg-pu.png[/img]
[img]https://img.nga.178.com/attachments/mon_202401/07/9aQ195-ecz5K1fT3cS15f-9k.png[/img]
改造完工!