Was unsure if this should go here, in cooling, or in cases, but assume this is the best fit. I tried posting this on reddit earlier, but didn’t get any further with their help and hope for better luck with you people (ref: https://www.reddit.com/r/DataHoarder/comments/pbgeiw/trouble_adjusting_fan_speed_in_jbod_enclosure/)
I have a supermicro SC847E16-RJBOD connected via SFF-8088 (one to the front and one to the rear backplanes) that has some fans I thought I could just find the right fans for and all would be good, but over time that has become more of an issue since I really prefer not to have permanent tornado noises in my apartment, but too slow fans means some disks already reach 55C which makes me very uncomfortable.
After a bit of poking around I did find what I thought would be the solution, but when I try it the fan just gets a status of disconnected for a few seconds before showing back up in the same state as before I tried to change the speed, so if anyone has some experience with this type of issue I would love to hear what you did.
Be aware that the backplane fan connectors is the only connectors in this bad boy, so if it is possible to keep from adding more controllers/cables that would be great, but all ideas are most welcome as I am stumped on what to try next.
Below is a tiny script and its output to illustrate the issue by attempting to change the speed on 1 fan.
Script (the loops are just there since it takes some time before the information changes) :
#!/bin/bash
set -x
DEVICE="/dev/sg7"
sg_ses $DEVICE --index=coo,0
sg_ses $DEVICE --index=coo,0 --set=speed_code=7
date -Iseconds
set +x
until sg_ses $DEVICE --index=coo,0 | grep "speed=0 rpm" >/dev/null; do sleep 1; done
set -x
sg_ses $DEVICE --index=coo,0
set +x
while sg_ses $DEVICE --index=coo,0 | grep "speed=0 rpm" >/dev/null; do sleep 1; done
set -x
date -Iseconds
sg_ses $DEVICE --index=coo,0
Output:
# ./test.sh
+ DEVICE=/dev/sg7
+ sg_ses /dev/sg7 --index=coo,0
LSI CORP SAS2X36 0717
Enclosure Status diagnostic page:
INVOP=0, INFO=0, NON-CRIT=0, CRIT=0, UNRECOV=0
generation code: 0x0
status descriptor list
Element 0 descriptor:
Predicted failure=0, Disabled=0, Swap=0, status: OK
Ident=0, Do not remove=0, Hot swap=0, Fail=0, Requested on=0
Off=0, Actual speed=1860 rpm, Fan at lowest speed
+ sg_ses /dev/sg7 --index=coo,0 --set=speed_code=7
+ date -Iseconds
2021-08-25T19:46:18+02:00
+ set +x
+ sg_ses /dev/sg7 --index=coo,0
LSI CORP SAS2X36 0717
Enclosure Status diagnostic page:
INVOP=0, INFO=0, NON-CRIT=0, CRIT=0, UNRECOV=0
generation code: 0x0
status descriptor list
Element 0 descriptor:
Predicted failure=0, Disabled=0, Swap=0, status: Not installed
Ident=0, Do not remove=0, Hot swap=0, Fail=1, Requested on=0
Off=1, Actual speed=0 rpm, Fan stopped
+ set +x
+ date -Iseconds
2021-08-25T19:47:32+02:00
+ sg_ses /dev/sg7 --index=coo,0
LSI CORP SAS2X36 0717
Enclosure Status diagnostic page:
INVOP=0, INFO=0, NON-CRIT=0, CRIT=0, UNRECOV=0
generation code: 0x0
status descriptor list
Element 0 descriptor:
Predicted failure=0, Disabled=0, Swap=0, status: OK
Ident=0, Do not remove=0, Hot swap=0, Fail=0, Requested on=0
Off=0, Actual speed=1860 rpm, Fan at lowest speed