starcat Posted February 25, 2011 Share Posted February 25, 2011 Starting this thread because more and more people were asking about the X7SPA-HF motherboard in combination with sleep and WOL. The following combination: X7SPA-HF with 2x HYMP125S64CP8-S6 memory (from the Supermicro certified list)http://www.supermicro.com/products/motherboard/ATOM/ICH9/X7SPA.cfm?typ=H&IPMI=Y Fractal Design Array R2 Mini (*) with built-in 300W SFX PSUhttp://www.fractal-design.com/?view=product∏=42 WD20EARS disks as they return smart temp reading without spinning up first makes a killer 6x disk unRAID server build where everything is working, including: software fan speed control based on actual HDD temperature, including the ability to completely turn off fans when not required customizable auto sleep and wake up by magic packet (Intel NIC with support for ag modes) (*) The case might be important because it comes with a build-in power supply which has some impact on proper ACPI power on/off operation. The build in 140mm front case fan is to be exchanged with 2x 120mm 4-pin PWM fans - I haven't found a 140mm 4-pin PWM fan and also using two 120mm fans gives a better coverage over the 6 disks. One can use the Arctic Cooling 120mm PWM fans as they allow for easy daisy chaining to the single motherboard case fan connector. The X7SPA-HF has integrated IPMI, two Intel 1 GigE interfaces, 4GB memory max, has 6x onboard SATA connectors and an additional slot for controller card expansion (like for putting 6 more disks in a second Fractal Design Array R2 Mini case, etc). Ok, back on the scripts... The S3 script is started from /boot/config/go by executing: nohup /boot/scripts/s3.sh & #!/bin/bash # constants yes="yes" no="no" # [CONFIGURATION] # before going to sleep intrnlTimeoutTicks=10 # ticks after HDD spindown before checking for external activity extrnlTimeoutTicks=2 # ticks of no external activity before sleep; only after spindown+internal countdown # control of internal timeout checkHDDs=$yes # check if all HDDs are parked before counting down towards sleep noCountdownHours="" # only countdown towards sleep outside these hours # example: <noCountdownHours="07 08 19 20"> # always countdown: <noCountdownHours=""> # control of external timeout checkTCP=$yes # check for TCP activity pingIPs="" # do not sleep if <$pingsIPs> are pingable # example: <pingIPs="192.168.1.4 192.168.1.5"> # no ping-check: <pingIPs=""> # after waking up from sleep doDhcpRenewal=$no # <$no> for servers w/static IP address forceGb=$no # might not be needed; probably always safe # [/CONFIGURATION] # implementation stuff ticklengthSecs=60 # probe hardware + count down every minute/60secs, aka a tick noTCP='0.00' # what constitutes absence of TCP activity flash=/dev/`ls -l /dev/disk/by-label| grep UNRAID | cut -d"/" -f3 | cut -c 1-3` # automatic id of flash drive check_hour() { echo $(date +%H) } check_HDD_activity() { if [ $checkHDDs = $yes ] then # probe the flash drive at your peril HDDs=$((for d in $(ls /dev/[hs]d? | grep -v "$flash"); do hdparm -C $d | grep active ; done) | wc -l) else HDDs=0 fi echo $HDDs } check_TCP_activity() { if [ "$checkTCP" = $yes ] then TCP=$(bwm-ng -o csv -c 1 -d 0 -T avg | grep eth0 | cut -d";" -f5) else TCP="$noTCP" fi echo "$TCP" } check_IP_status() { mp_online=$no # initialize to "no" until we learn otherwise # ping each of the media servers to determine if online for i in $pingIPs do # ping the media server; if it answers, it is online out=`ping -q -c 1 $i 2>/dev/null` rec_count=`echo "$out" | grep received | cut -d " " -f4` if [ "$rec_count" -eq 1 ] then mp_online=$yes # if one is online, we do not need to ping # any others, break out of the "for" loop. break; fi done echo $mp_online } pre_sleep_activity() { echo DONE } post_sleep_activity() { # Force NIC to use gigabit networking if [ "$forceGb" = $yes ] then ethtool -s eth0 speed 1000 fi # Force a DHCP renewal (shouldn't be used for static-ip boxes) if [ "$doDhcpRenewal" = $yes ] then /sbin/dhcpcd -n fi echo DONE } # main intrnlCountdown=$intrnlTimeoutTicks extrnlCountdown=$extrnlTimeoutTicks while [ 1 ] do # do not countdown during certain hours hour=`check_hour` hourMatch=$(echo "$noCountdownHours" | grep "$hour" | wc -l) if [ $hourMatch -eq 0 ] then # count number of HDDs that are not parked HDDact=`check_HDD_activity` if [ "$HDDact" -eq 0 ] then # tick-tock for time since last spindown if [ $intrnlCountdown -gt 0 ] then intrnlCountdown=$[$intrnlCountdown-1] fi else # reset countdown, following HDD activity intrnlCountdown=$intrnlTimeoutTicks extrnlCountdown=$extrnlTimeoutTicks fi if [ $intrnlCountdown -le 0 ] then # check for persistent external activity TCPact=`check_TCP_activity` IPping=`check_IP_status` if [ "$TCPact" = $noTCP -a "$IPping" = $no ] then if [ $extrnlCountdown -le 0 ] then # Do pre-sleep activities pre_sleep_activity sleep 5 /bin/sync # Go to sleep echo 3 > /proc/acpi/sleep # Do post-sleep activities post_sleep_activity sleep 5 intrnlCountdown=$intrnlTimeoutTicks extrnlCountdown=$extrnlTimeoutTicks else # tick-tock for persistent external activity if [ $extrnlCountdown -gt 0 ] then extrnlCountdown=$[$extrnlCountdown-1] fi fi else # reset countdown, following external activity extrnlCountdown=$extrnlTimeoutTicks fi fi fi # Wait a tick sleep $ticklengthSecs done The unraid-fan-speed.sh is best inserted into crontab by executing crontab -e and then adding the following line: */2 * * * * /boot/scripts/unraid-fan-speed.sh 1>/dev/null 2>&1 This message describes the changes to /boot/config/go if you want to auto-enable each time after reboot: http://lime-technology.com/forum/index.php?topic=11310.msg108098#msg108098 #!/bin/bash # unraid-fan-speed.sh # # A simple script to check for the highest hard disk temperatures in an array # or backplane and then set the fan to an apropriate speed. Fan needs to be connected # to motherboard with pwm support, not array. # DEPENDS ON:grep,awk,smartctl,hdparm ### VARIABLES FOR USER TO SET ### # Amount of drives in the array. Make sure it matches the amount you filled out below. NUM_OF_DRIVES=5 # unRAID drives that are in the array/backplane of the fan we need to control HD[1]=/dev/sdb HD[2]=/dev/sdc HD[3]=/dev/sda HD[4]=/dev/sdd HD[5]=/dev/sde HD[6]=/dev/ # Temperatures to change fan speed at # Any temp between OFF and HIGH will cause fan to run on low speed setting FAN_OFF_TEMP=32 # Anything this number and below - fan is off FAN_HIGH_TEMP=40 # Anything this number or above - fan is high speed # Fan speed settings. Run pwmconfig (part of the lm_sensors package) to determine # what numbers you want to use for your fan pwm settings. Should not need to # change the OFF variable, only the LOW and maybe also HIGH to what you desire. # Any real number between 0 and 255. # # FAN_OFF_PWM=100 # FAN_LOW_PWM=120 # FAN_HIGH_PWM=255 FAN_OFF_PWM=10 FAN_LOW_PWM=80 FAN_HIGH_PWM=255 # Fan device. Depends on your system. pwmconfig can help with finding this out. # pwm1 is usually the cpu fan. You can "cat /sys/class/hwmon/hwmon0/device/fan1_input" # or fan2_input and so on to see the current rpm of the fan. If 0 then fan is off or # there is no fan connected or motherboard can't read rpm of fan. ARRAY_FAN=/sys/class/hwmon/hwmon4/device/pwm4 ### END USER SET VARIABLES ### # Program variables - do not modify HIGHEST_TEMP=0 CURRENT_DRIVE=1 CURRENT_TEMP=0 # while loop to get the highest temperature of active drives. # If all are spun down then high temp will be set to 0. while [ "$CURRENT_DRIVE" -le "$NUM_OF_DRIVES" ] do #SLEEPING=`hdparm -C ${HD[$CURRENT_DRIVE]} | grep -c standby` #if [ "$SLEEPING" == "0" ]; then CURRENT_TEMP=`smartctl -d ata -A ${HD[$CURRENT_DRIVE]} | grep -m 1 -i Temperature_Celsius | awk '{print $10}'` if [ "$HIGHEST_TEMP" -le "$CURRENT_TEMP" ]; then HIGHEST_TEMP=$CURRENT_TEMP fi #fi echo "Disk "${HD[$CURRENT_DRIVE]}" current temp is "$CURRENT_TEMP logger "unraid-fan-speed: Disk "${HD[$CURRENT_DRIVE]}" current temp is "$CURRENT_TEMP let "CURRENT_DRIVE+=1" done echo "Highest diskdrive temp is: "$HIGHEST_TEMP logger "unraid-fan-speed: Highest diskdrive temp is: "$HIGHEST_TEMP # Enable speed change on this fan if not already if [ "$ARRAY_FAN" != "1" ]; then echo 1 > "${ARRAY_FAN}_enable" fi # Set the fan speed based on highest temperature if [ "$HIGHEST_TEMP" -le "$FAN_OFF_TEMP" ]; then # set fan to off echo $FAN_OFF_PWM > $ARRAY_FAN echo "Setting diskdrive fan PWM to: "$FAN_OFF_PWM logger "unraid-fan-speed: Setting diskdrive fan PWM to: "$FAN_OFF_PWM elif [ "$HIGHEST_TEMP" -ge "$FAN_HIGH_TEMP" ]; then # set fan to full speed echo $FAN_HIGH_PWM > $ARRAY_FAN echo "Setting diskdrive fan PWM to: "$FAN_HIGH_PWM logger "unraid-fan-speed: Setting diskdrive fan PWM to: "$FAN_HIGH_PWM else CURRENT_SPEED=`cat $ARRAY_FAN` # set fan to full speed first to make sure it spins up then change it to low setting. if [ "$CURRENT_SPEED" -lt "$FAN_LOW_PWM" ]; then echo $FAN_HIGH_PWM > $ARRAY_FAN sleep 2 fi echo $FAN_LOW_PWM > $ARRAY_FAN echo "Setting diskdrive fan PWM to: "$FAN_LOW_PWM logger "unraid-fan-speed: Setting diskdrive fan PWM to: "$FAN_LOW_PWM fi Find latest version of unraid-fan-speed.sh here: http://lime-technology.com/forum/index.php?topic=11310.msg108144#msg108144 IPMI Firmware Revision : 02.02 Firmware Build Time : 2010-07-27 BIOS Version is 02.67, attached the ACPI settings. HDDs Don't use Samsung F3 HD203WI disks as they spin up each time their temp is checked. Similar story with almost all other HDDs. So, WD20EARS are recommended as they return smart temp reading without spinning up first. See http://lime-technology.com/forum/index.php?topic=11370.0 Quote Link to comment
aiden Posted February 25, 2011 Share Posted February 25, 2011 software fan speed control based on actual HDD temperature, including the ability to completely turn off fans when not required I will post the working scripts shortly. Very interested in the fan script, because while I have lowered the fan speeds during startup in the GO script, I haven't taken the time to write an actual real-time monitoring script. You might also want to link to the main X7SPA-HF thread, and I will add this thread to the first post. Quote Link to comment
starcat Posted February 25, 2011 Author Share Posted February 25, 2011 Tried uploading but I get the following error and can not upload the script files, they are 8-10kB each "The upload folder is full. Please try a smaller file and/or contact an administrator." Can a mod please jump in and help. Thanks! Quote Link to comment
aiden Posted February 25, 2011 Share Posted February 25, 2011 If you don't get an immediate response, you could just post them into code blocks, unless they're gigantic. When you get resolution from a mod on the upload, you could just edit the first post with the uploaded files. Quote Link to comment
aiden Posted February 25, 2011 Share Posted February 25, 2011 What fan setting do you have the BIOS set for? It defaults to Balanced, which is 50%. I changed mine to Full 100% so that I knew I had accurate speed control through code, without interference from the BIOS. Quote Link to comment
starcat Posted February 25, 2011 Author Share Posted February 25, 2011 Yeah.. sorry Thought it is best to have everything right on top. Quote Link to comment
Rajahal Posted February 25, 2011 Share Posted February 25, 2011 We mods don't have any control on the attachment limit. Try zipping up the attachment, or hosting it on pastebin or similar. This is a very nice build. Please post pictures if you have any. I also have one of these boards and I've been trying to figure out what to do with it. My original thought was to build a 20 drive ultra-low power server out of it. But your design is appealing too. By the way, have you run memtest on your board? I tried and memtest refused to run, it would just boot into an empty memtest screen. A bit disconcerting. Memtest is supposed to support the Atom CPU, so I don't know what the issue is. I'm also using RAM off of Supermicro's approved list. Quote Link to comment
aiden Posted February 26, 2011 Share Posted February 26, 2011 By the way, have you run memtest on your board? I tried and memtest refused to run, it would just boot into an empty memtest screen. A bit disconcerting. Memtest is supposed to support the Atom CPU, so I don't know what the issue is. I'm also using RAM off of Supermicro's approved list. Never had a problem with Memtest on mine. Quote Link to comment
aiden Posted February 26, 2011 Share Posted February 26, 2011 So, I hope you don't mind but I modified the script to allow for variable speed control between the FAN_LOW_PWM setting and the FAN_HIGH_PWM. It calculates whole number increment temperature values between FAN_LOW_TEMP and FAN_HIGH_TEMP, then multiplies that increment by the difference in the FAN_LOW_TEMP and the current HIGHEST_TEMP and adds it to the FAN_LOW_PWM value. This allows for variable fan speeds based on 1 degree temp changes, so you don't have to wait for FAN_HIGH_TEMP for the fan to speed up. Obviously, Starcat did all the hard work, I just did a minor tweak. Script moved here. Quote Link to comment
starcat Posted February 26, 2011 Author Share Posted February 26, 2011 So, I hope you don't mind aiden, great tweak, thanks! The original script is based up on xaminder, I customized it for the X7SPA-HF and did some minor mods. By the way, have you run memtest on your board? I tried and memtest refused to run, it would just boot into an empty memtest screen. A bit disconcerting. Memtest is supposed to support the Atom CPU, so I don't know what the issue is. I'm also using RAM off of Supermicro's approved list. Raj, was running full memory test several times without a single glitch. Used 2x 2GB Trancent DDR2 667Mhz and then later 2x 2GB Hynix DDR2 800Mhz, all without problems. Quote Link to comment
aiden Posted February 27, 2011 Share Posted February 27, 2011 Is there a way to make the crontab edit persistent after reboot? I have to add it every time right now. Quote Link to comment
Joe L. Posted February 27, 2011 Share Posted February 27, 2011 Is there a way to make the crontab edit persistent after reboot? I have to add it every time right now. no. It must be added every time. Quote Link to comment
aiden Posted February 27, 2011 Share Posted February 27, 2011 Is there a way to make the crontab edit persistent after reboot? I have to add it every time right now. no. It must be added every time. Not wanting to argue, but how does the monthly parity check script get reinserted into the crontab after reboot? Is there a modification I can do to the GO script to make the edit? Quote Link to comment
starcat Posted February 27, 2011 Author Share Posted February 27, 2011 Is there a way to make the crontab edit persistent after reboot? I have to add it every time right now. I have the following code block in my /boot/config/go script # enable fan speed control cp /boot/config/sensors3.conf /etc/ /usr/bin/sensors -s # insert into crontab chmod +x /boot/scripts/unraid-fan-speed.sh crontab -l >/tmp/crontab grep -q "unraid-fan-speed.sh" /tmp/crontab 1>/dev/null 2>&1 if [ "$?" = "1" ] then crontab -l | egrep -v "control unRAID fan speed based on temperature:|unraid-fan-speed.sh" >/tmp/crontab echo "#" >>/tmp/crontab echo "# control unRAID fan speed based on temperature" >>/tmp/crontab echo "*/2 * * * * /boot/scripts/unraid-fan-speed.sh 1>/dev/null 2>&1" >>/tmp/crontab cp /tmp/crontab /var/spool/cron/crontabs/root- crontab /tmp/crontab fi Quote Link to comment
aiden Posted February 27, 2011 Share Posted February 27, 2011 Is there a way to make the crontab edit persistent after reboot? I have to add it every time right now. I have the following code block in my /boot/config/go script # enable fan speed control cp /boot/config/sensors3.conf /etc/ /usr/bin/sensors -s # insert into crontab chmod +x /boot/scripts/unraid-fan-speed.sh crontab -l >/tmp/crontab grep -q "unraid-fan-speed.sh" /tmp/crontab 1>/dev/null 2>&1 if [ "$?" = "1" ] then crontab -l | egrep -v "control unRAID fan speed based on temperature:|unraid-fan-speed.sh" >/tmp/crontab echo "#" >>/tmp/crontab echo "# control unRAID fan speed based on temperature" >>/tmp/crontab echo "*/2 * * * * /boot/scripts/unraid-fan-speed.sh 1>/dev/null 2>&1" >>/tmp/crontab cp /tmp/crontab /var/spool/cron/crontabs/root- crontab /tmp/crontab fi Excellent. Thanks Starcat. Btw, what are the measurements of time for "Ticks"? intrnlTimeoutTicks=10 # ticks after HDD spindown before checking for external activity extrnlTimeoutTicks=2 # ticks of no external activity before sleep; only after spindown+internal countdown I'm assuming this is where I set my sleep timer, but I'm unsure about how much time it represents. Perhaps you could amend the first post with some explanation as to the mechanics of the S3 script? EDIT: Nevermind, found this lower in the code: ticklengthSecs=60 # probe hardware + count down every minute/60secs, aka a tick So a tick is 60 seconds, thus the default sleep timer is set for 10 minutes, correct? Quote Link to comment
aiden Posted February 27, 2011 Share Posted February 27, 2011 It's me again. I've modified the code more to indicate what the previous fan speed setting was, and then eliminated the repeat messages. Having a syslog full of the same alerts every 2 minutes seemed silly to me, since really all I care about are the changes made. I also cleaned up some of the redundant code (repeated statements for each if clause). In response to Starcat's warning, I have also updated the code to check for and ignore drives that are in standby (spun down/sleeping). This allows it to be used with ANY drive, not just the WD EARS. UPDATE 3.17.2011: Add rpm detection to log output. So here it is with those revisions: fan_speed.sh #!/bin/bash # A simple script to check for the highest hard disk temperatures in an array # or backplane and then set the fan to an apropriate speed. Fan needs to be connected # to motherboard with pwm support, not array. # DEPENDS ON:grep,awk,smartctl,hdparm # Variable speed control and sleep detection authored by Aiden ### VARIABLES FOR USER TO SET ### # Amount of drives in the array. Make sure it matches the amount you filled out below. NUM_OF_DRIVES=6 # unRAID drives that are in the array/backplane of the fan we need to control HD[1]=/dev/sdb HD[2]=/dev/sdd HD[3]=/dev/sdc HD[4]=/dev/sde HD[5]=/dev/sdf HD[6]=/dev/sdg # Temperatures to change fan speed at # Any temp between OFF and HIGH will cause fan to run on low speed setting FAN_OFF_TEMP=32 # Anything this number and below - fan is off FAN_HIGH_TEMP=38 # Anything this number or above - fan is high speed FAN_TEMP_INCREMENTS=$(($FAN_HIGH_TEMP-$FAN_OFF_TEMP)) # Fan temp increments between FAN_OFF_TEMP and FAN_HIGH_TEMP # Fan speed settings. Run pwmconfig (part of the lm_sensors package) to determine # what numbers you want to use for your fan pwm settings. Should not need to # change the OFF variable, only the LOW and maybe also HIGH to what you desire. # Any real number between 0 and 255. # # FAN_OFF_PWM=100 # FAN_LOW_PWM=120 # FAN_HIGH_PWM=255 FAN_OFF_PWM=10 FAN_LOW_PWM=128 FAN_HIGH_PWM=255 FAN_PWM_INCREMENTS=$(($(($FAN_HIGH_PWM-$FAN_LOW_PWM))/$FAN_TEMP_INCREMENTS)) # Fan device. Depends on your system. pwmconfig can help with finding this out. # pwm1 is usually the cpu fan. You can "cat /sys/class/hwmon/hwmon0/device/fan1_input" # or fan2_input and so on to see the current rpm of the fan. If 0 then fan is off or # there is no fan connected or motherboard can't read rpm of fan. ARRAY_FAN=/sys/class/hwmon/hwmon4/device/pwm4 ARRAY_FAN_INPUT=/sys/class/hwmon/hwmon4/device/fan4_input # Used to track actual rpm values ### END USER SET VARIABLES ### # Program variables - do not modify HIGHEST_TEMP=0 CURRENT_DRIVE=1 CURRENT_TEMP=0 CURRENT_FAN_SPEED=0 CURRENT_FAN_RPM=0 CURRENT_PERCENT_SPEED=0 CURRENT_FAN_RPM=0 DIFF_FROM_FAN_OFF_TEMP=$FAN_OFF_TEMP ADJUSTED_FAN_SPEED=FAN_HIGH_PWM ADJUSTED_FAN_RPM=0 ADJUSTED_PERCENT_SPEED=100 # while loop to get the highest temperature of active drives. # If all are spun down then high temp will be set to 0. while [ "$CURRENT_DRIVE" -le "$NUM_OF_DRIVES" ] do SLEEPING=`hdparm -C ${HD[$CURRENT_DRIVE]} | grep -c standby` if [ "$SLEEPING" -eq "0" ]; then CURRENT_TEMP=`smartctl -d ata -A ${HD[$CURRENT_DRIVE]} | grep -m 1 -i Temperature_Celsius | awk '{print $10}'` if [ "$HIGHEST_TEMP" -le "$CURRENT_TEMP" ]; then HIGHEST_TEMP=$CURRENT_TEMP fi fi #echo "Disk "${HD[$CURRENT_DRIVE]}" current temp is "$CURRENT_TEMP #logger "fan_speed: Disk "${HD[$CURRENT_DRIVE]}" current temp is "$CURRENT_TEMP let "CURRENT_DRIVE+=1" done # Enable speed change on this fan if not already if [ "$ARRAY_FAN" != "1" ]; then echo 1 > "${ARRAY_FAN}_enable" fi # Retrieve current fan speed CURRENT_FAN_SPEED=`cat $ARRAY_FAN` CURRENT_FAN_RPM=`cat $ARRAY_FAN_INPUT` CURRENT_PERCENT_SPEED=$(($(($CURRENT_FAN_SPEED*100))/$FAN_HIGH_PWM)) # Calculate new fan values based on highest drive temperature DIFF_FROM_FAN_OFF_TEMP=$(($HIGHEST_TEMP-$FAN_OFF_TEMP)) if [ "$CURRENT_FAN_SPEED" -le "$FAN_OFF_PWM" ]; then CURRENT_OUTPUT="OFF (0% @ 0 rpm)" elif [ "$CURRENT_FAN_SPEED" -ge "$FAN_HIGH_PWM" ]; then CURRENT_OUTPUT="FULL (100% @ "$CURRENT_FAN_RPM" rpm)" else CURRENT_OUTPUT=$CURRENT_FAN_SPEED" ("$CURRENT_PERCENT_SPEED"% @ "$CURRENT_FAN_RPM" rpm)" fi if [ "$HIGHEST_TEMP" -le "$FAN_OFF_TEMP" ]; then ADJUSTED_FAN_SPEED=$FAN_OFF_PWM ADJUSTED_PERCENT_SPEED=0 ADJUSTED_FAN_RPM=0 ADJUSTED_OUTPUT="OFF" elif [ "$HIGHEST_TEMP" -ge "$FAN_HIGH_TEMP" ]; then ADJUSTED_FAN_SPEED=$FAN_HIGH_PWM ADJUSTED_PERCENT_SPEED=100 ADJUSTED_OUTPUT="FULL" else ADJUSTED_FAN_SPEED=$(($(($DIFF_FROM_FAN_OFF_TEMP*$FAN_PWM_INCREMENTS))+FAN_LOW_PWM)) ADJUSTED_PERCENT_SPEED=$(($(($ADJUSTED_FAN_SPEED*100))/$FAN_HIGH_PWM)) ADJUSTED_OUTPUT=$ADJUSTED_FAN_SPEED fi # Implement changes if different than current fan speed if [ "$CURRENT_FAN_SPEED" -ne "$ADJUSTED_FAN_SPEED" ]; then # Output highest drive temp if [ "$HIGHEST_TEMP" -eq "0" ]; then # All disks are in standby echo "All disk drives are in standby (spundown)" logger "fan_speed: All disk drives are in standby (spundown)" else echo "Highest disk drive temp is: "$HIGHEST_TEMP"°C" logger "fan_speed: Highest disk drive temp is: "$HIGHEST_TEMP"°C" fi # set fan to full speed first to make sure it spins up then change it to low setting. if [ "$CURRENT_FAN_SPEED" -lt "$FAN_LOW_PWM" ]; then echo $FAN_HIGH_PWM > $ARRAY_FAN sleep 2 fi # set fan to new value echo $ADJUSTED_FAN_SPEED > $ARRAY_FAN sleep 2 # Get new rpm value ADJUSTED_FAN_RPM=`cat $ARRAY_FAN_INPUT` ADJUSTED_OUTPUT=$ADJUSTED_OUTPUT" ("$ADJUSTED_PERCENT_SPEED"% @ "$ADJUSTED_FAN_RPM" rpm)" # Output echo "Changing disk drive fan speed from: "$CURRENT_OUTPUT" to: "$ADJUSTED_OUTPUT logger "fan_speed: Changing disk drive fan speed from: "$CURRENT_OUTPUT" to: "$ADJUSTED_OUTPUT fi Quote Link to comment
starcat Posted February 27, 2011 Author Share Posted February 27, 2011 Yeap, makes perfect sense. Thanks! Quote Link to comment
Smitty2k1 Posted February 28, 2011 Share Posted February 28, 2011 Woah! Go figure I just built my first ever unRaid server with this board TODAY! I was getting ready to post a writeup on it and saw this post. Right now I'm pre-clearing 3 brand new 2TB WD WEARS hard drives. One is pre-clearing twice as fast as the other two; is this common? Once these three are ready to go, I have another 2TB and two 1TB hard drives sitting in my gaming computer ready to be copied to the array and then cleared and added into the server case. I went a slightly different route with my case selection. I bought a 4U server case that can hold 15 hard drives (this board can support 14 with an 8 port SuperMicro add in card) and I will have a backup drive ready to go in the case. Quote Link to comment
aiden Posted February 28, 2011 Share Posted February 28, 2011 Nice build! Welcome to the community! There is a detailed thread about the motherboard here, but this thread has some great scripts Starcat has put together, as well as his top notch build. Right now I'm pre-clearing 3 brand new 2TB WD WEARS hard drives. One is pre-clearing twice as fast as the other two; is this common? Well, yes and no. It's not unusual for drives that are exactly the same to have different preclear times. That being said, a two-fold difference is pretty substantial. Quote Link to comment
Smitty2k1 Posted February 28, 2011 Share Posted February 28, 2011 Nice build! Welcome to the community! There is a detailed thread about the motherboard here, but this thread has some great scripts Starcat has put together, as well as his top notch build. Right now I'm pre-clearing 3 brand new 2TB WD WEARS hard drives. One is pre-clearing twice as fast as the other two; is this common? Well, yes and no. It's not unusual for drives that are exactly the same to have different preclear times. That being said, a two-fold difference is pretty substantial. I forgot to mention I actually have the newer ATOM 525 version. Other than the difference in RAM (DDR3) and clock speed (1.8GHz) I don't think there is any difference. As for the pre-clear time, the two "slow" ones are starting to catch up and they are only about 5% behind now. Quote Link to comment
starcat Posted February 28, 2011 Author Share Posted February 28, 2011 Smitty2k1, excellent choice of components, congrats! Quote Link to comment
yelnatsch517 Posted February 28, 2011 Share Posted February 28, 2011 Where did you purchase your case and how much was it. For some reason, I can't find a single place that sells Fractal Design cases. They look like awesome cases and I'd very much like to use one for my next build, but I'd have to find a source first. :'( Quote Link to comment
starcat Posted February 28, 2011 Author Share Posted February 28, 2011 A friend of mine has taken it from Germany.. sorry, not really helpful! Quote Link to comment
starcat Posted March 1, 2011 Author Share Posted March 1, 2011 Right now I'm pre-clearing 3 brand new 2TB WD WEARS hard drives. One is pre-clearing twice as fast as the other two; is this common? Once these three are ready to go, I have another 2TB and two 1TB hard drives sitting in my gaming computer ready to be copied to the array and then cleared and added into the server case. Don't use other disks than those WD20EARS as almost all others spin up when smart reading their temp! I have updated the first post respectively. Quote Link to comment
aiden Posted March 1, 2011 Share Posted March 1, 2011 Fixed for all drives in my code here. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.