Comments (6)
Hi @alexhelms, any feedback on this?
from smfc.
Hi Peter, I also have an X10DRU-i+ in a SYS-6028U-TR4T+ - it has 4 internal chassis fans. When enabling SMFC in it's default state, the fans respond in one half of the server but not the other it would seem:
FAN1 | 4800.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000
FAN2 | 4600.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000
FAN3 | na | | na | na | na | na | na | na | na
FAN4 | na | | na | na | na | na | na | na | na
FAN5 | na | | na | na | na | na | na | na | na
FAN6 | na | | na | na | na | na | na | na | na
FAN7 | 9300.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000
FAN8 | 9300.000 | RPM | ok | 300.000 | 500.000 | 700.000 | 25300.000 | 25400.000 | 25500.000
I'm not all that familiar with ipmitool
, but entering your suggested command of ipmitool raw 0x30 0x70 0x66 0x01 zone 50
showed zones 0
controlling FAN1
and FAN2
, and 1
controlling FAN7
and FAN8
.
It seems that SMFC is only controlling zone 0 currently - setting both zones to 75% with ipmitool raw 0x30 0x70 0x66 0x01 zone 75
, then enabling SMFC via systemctl start smfc.service
only sees FAN1
and FAN2
drop in speed.
Config, for good measure:
# smfc.conf
# smfc service configuration parameters
#
[Ipmi]
# Path for ipmitool (str, default=/usr/bin/ipmitool)
command=/usr/bin/ipmitool
# Delay time after changing IPMI fan mode (int, seconds, default=10)
fan_mode_delay=10
# Delay time after changing IPMI fan level (int, seconds, default=2)
fan_level_delay=2
# CPU and HD zones are swapped (bool, default=0).
swapped_zones=0
[CPU zone]
# Fan controller enabled (bool, default=0)
enabled=1
# Number of CPUs (int, default=1)
count=1
# Calculation method for CPU temperatures (int, [0-minimum, 1-average, 2-maximum], default=1)
temp_calc=1
# Discrete steps in mapping of temperatures to fan level (int, default=6)
steps=6
# Threshold in temperature change before the fan controller reacts (float, C, default=3.0)
sensitivity=3.0
# Polling time interval for reading temperature (int, sec, default=2)
polling=2
# Minimum CPU temperature (float, C, default=30.0)
min_temp=30.0
# Maximum CPU temperature (float, C, default=60.0)
max_temp=60.0
# Minimum CPU fan level (int, %, default=35)
min_level=35
# Maximum CPU fan level (int, %, default=100)
max_level=100
# Optional parameter, it will be generated automatically for Intel CPUs and must be specified manually for AMD CPUs.
# Path for CPU sys/hwmon file(s) (str multi-line list, default=/sys/devices/platform/coretemp.0/hwmon/hwmon*/temp1_input)
# hwmon_path=/sys/devices/platform/coretemp.0/hwmon/hwmon*/temp1_input
# /sys/devices/platform/coretemp.1/hwmon/hwmon*/temp1_input
# or
# hwmon_path=/sys/bus/pci/drivers/k10temp/0000*/hwmon/hwmon*/temp1_input
[HD zone]
# Fan controller enabled (bool, default=0)
enabled=0
# Number of HDs (int, default=1)
count=1
# Calculation of HD temperatures (int, [0-minimum, 1-average, 2-maximum], default=1)
temp_calc=1
# Discrete steps in mapping of temperatures to fan level (int, default=4)
steps=4
# Threshold in temperature change before the fan controller reacts (float, C, default=2.0)
sensitivity=2.0
# Polling interval for reading temperature (int, sec, default=10)
polling=10
# Minimum HD temperature (float, C, default=32.0)
min_temp=32.0
# Maximum HD temperature (float, C, default=46.0)
max_temp=46.0
# Minimum HD fan level (int, %, default=35)
min_level=35
# Maximum HD fan level (int, %, default=100)
max_level=100
# Names of the HDs (str multi-line list, default=)
# These names MUST BE specified in '/dev/disk/by-id/...' form!
hd_names=
# Optional parameter, it will be generated automatically based on the disk names.
# List of files in /sys/hwmon file system or 'hddtemp' (str multi-line list, default=)
# hwmon_path=/sys/class/scsi_disk/0:0:0:0/device/hwmon/hwmon*/temp1_input
# /sys/class/scsi_disk/1:0:0:0/device/hwmon/hwmon*/temp1_input
# hddtemp
# Standby guard feature for RAID arrays (bool, default=0)
standby_guard_enabled=0
# Number of HDs already in STANDBY state before the full RAID array will be forced to it (int, default=1)
standby_hd_limit=1
# Path for 'smartctl' command (str, default=/usr/sbin/smartctl).
# Required for 'standby guard' feature only
smartctl_path=/usr/sbin/smartctl
# Path for 'hddtemp' command (str, default=/usr/sbin/hddtemp).
# Required for reading of the temperature of SAS/SCSI disks.
hddtemp_path=/usr/sbin/hddtemp```
from smfc.
Hi @MrMeeb, I'm happy to investigate more on this. My assumption was that this motherboard has multiple CPU zones defined in IPMI. Some further questions:
- How many CPUs are installed on this board?
- How many fans are installed on this board?
- I assume you intentionally disabled HD zone in your configuration file, right?
Based on your report my assumption is that the CPU zone will be FAN1 and FAN2 and the HD zone will be FAN7 and FAN8.
What if you run ipmitool
with higher zone values like 2, 3, 4?
from smfc.
Hi Peter,
2 CPUs installed - it's a dual socket system. There are 4 fans installed in the 2U chassis, attached to (based on the output of impitool sensor
fan headers 1, 2, 7 and 8.
Running ipmitool
on higher zones has no audible effect. Of course if it's affecting fans that aren't connected I have no way of telling, but the fact that zone 1 affects fans 7 and 8 suggests it split in half as you said.
I disabled HD zone, yeah. Sorry I forgot to mention that. I was having trouble with it not detecting drives, even SATA ones, via drivetemp
. I know others in #21 said that that SATA drives on a SAS backplane seemed to work with drivetemp
but that doesn't seem to be the case for me. I wanted to just test SMFC quickly, so didn't troubleshoot it. I have now resolved the issue by switching all drives to use hddtemp
, even the SATA ones.
Having done that and now enabled HD zone, I can see that you're right - zone 0 for CPU and zone 1 for drives. However in a rack server I'm not sure if this makes total sense - all 4 fans are responsible for cooling all HDDs and both CPUs. I think having all fans react off CPU temp, unless HDD temp passes a certain threshold, could make sense, but even then, in a mixed load of SSDs and HDDs, what's considered a safe operating temperature varies greatly.
As a side note, is it necessary to set hddtemp
for every drive added to the list, or is it possible to tell SMFC to use hddtemp
for everything? If the numbers in hd_names
and hwmon_path
don't match, an error is thrown. You mentioned temp_source
in #21 but it doesn't seem to work - I guess you chose to not implement that option?
[HD zone]
# Fan controller enabled (bool, default=0)
enabled=1
# Number of HDs (int, default=1)
count=6
# Calculation of HD temperatures (int, [0-minimum, 1-average, 2-maximum], default=1)
temp_calc=1
# Discrete steps in mapping of temperatures to fan level (int, default=4)
steps=4
# Threshold in temperature change before the fan controller reacts (float, C, default=2.0)
sensitivity=2.0
# Polling interval for reading temperature (int, sec, default=10)
polling=10
# Minimum HD temperature (float, C, default=32.0)
min_temp=32.0
# Maximum HD temperature (float, C, default=46.0)
max_temp=46.0
# Minimum HD fan level (int, %, default=35)
min_level=35
# Maximum HD fan level (int, %, default=100)
max_level=100
# Names of the HDs (str multi-line list, default=)
# These names MUST BE specified in '/dev/disk/by-id/...' form!
hd_names=/dev/disk/by-id/ata-Samsung_SSD_860_EVO_500GB_S3Z2NB0K998710F
/dev/disk/by-id/ata-Samsung_SSD_860_EVO_500GB_S3Z2NB0NA07832R
/dev/disk/by-id/scsi-35000cca03e42178c
/dev/disk/by-id/scsi-35000cca03e4efc48
/dev/disk/by-id/scsi-35000cca03e50c834
/dev/disk/by-id/scsi-35000cca04608e71c
# Optional parameter, it will be generated automatically based on the disk names.
# List of files in /sys/hwmon file system or 'hddtemp' (str multi-line list, default=)
hwmon_path=hddtemp
hddtemp
hddtemp
hddtemp
hddtemp
hddtemp
# /sys/class/scsi_disk/1:0:0:0/device/hwmon/hwmon*/temp1_input
# hddtemp
# Standby guard feature for RAID arrays (bool, default=0)
standby_guard_enabled=0
# Number of HDs already in STANDBY state before the full RAID array will be forced to it (int, default=1)
standby_hd_limit=1
# Path for 'smartctl' command (str, default=/usr/sbin/smartctl).
# Required for 'standby guard' feature only
smartctl_path=/usr/sbin/smartctl
# Path for 'hddtemp' command (str, default=/usr/sbin/hddtemp).
# Required for reading of the temperature of SAS/SCSI disks.
hddtemp_path=/usr/sbin/hddtemp
from smfc.
Hi Charlie,
I'm thinking on how I could support this scenario and I've got two ideas in my mind:
- You may try to put the four fans into a common zone. For example you may try to put fan7 and fan8 to other connector and in this case all four fans will be working in the same zone.
- I'm thinking on the implementation of a new feature where
smfc
could support PC/Server cases with one cooling chamber where the fans are common but there multiple heat sources (HDs, CPUs). I need more time to figure it out the best way.
BTW, would be interesting to discover the other fan connectors on the motherboard. Would be interesting to understand the mapping between FANS and zones.
from smfc.
Hi Peter,
The length of the fan cables internally mean I can connect all fans to zone 1 in headers 5-8. Good idea. I've done that and swapped the zones so CPU is using zone 1, and the server is currently just not reacting to storage temperature at all. I'd say that being able to have multiple heat sources in a common fan zone would be useful in the long run, but this is definitely workable. Also, every other server I've had/built doesn't account for storage temps anyway. It get's a bit complicated with the different operating temperatures of different storage techs, unless you can specify acceptable temp ranges per drive.
I have tested the other fan headers. Fans 1-4 belong to zone 0 and 5-8 belong to zone 1. I also realised I missed FAN9
. I believe this is on one of the rear risers in the server, to then be plumbed to an external connector on the rear of the chassis. I don't currently have a fan hanging around to test that one unfortunately, and not looking to cut up cable-ties on chassis fans to see if a cable can reach.
from smfc.
Related Issues (20)
- Error starting daemon HOT 12
- Supermicro boards incompatible with ULNA HOT 2
- Feature Request: GPU temperature/activity bias HOT 4
- Version 2.4.0 breaks HD zone loading? HOT 5
- SMFC hardware compatibility HOT 28
- Cannot read hwmon*/temp1_input file HOT 27
- [Feature request] Add support to Supermicro M12SWA-TF HOT 8
- Number of HDDs parameter HOT 1
- AMD CPU support HOT 3
- X12 Support? HOT 3
- Request support for remote IPMI HOT 8
- Add note for higher RPM variance tolerance for redux line fans HOT 1
- Feature Request: dracut integration HOT 1
- Feature Request: autoconfiguration of IPMI fan upper and lower bounds HOT 1
- X10DRG HOT 6
- Set all fans to maximum speed on exception HOT 6
- X13SAE-F compatibility HOT 12
- Distro packaging for SMFC HOT 16
- H11SSL-i fan problem on proxmox HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from smfc.