Homemade Acoustic Server Rack - Silent, Pretty & Cheap


Published on

Explains how to build DIY a computer rack/cabinet suitable for the living room on a low budget

  • http://www.netrackindia.com
    Are you sure you want to  Yes  No
    Your message goes here
  • Update: The slides say "two computers". Maybe it's important that it's two _slim_ computers. You also need to make sure that the air inflow is in the front and not at one of the sides.
    Are you sure you want to  Yes  No
    Your message goes here
  • Update about a year later: The instant glue on both doors has broken. The solution is to use sand paper to roughen both the acrylic glass doors, as well as the hinges. Or you might actually use screws...
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Homemade Acoustic Server Rack - Silent, Pretty & Cheap

  1. 1. DIY Acoustic Server Rack Silent, Pretty & Cheap Author: Frank Bergmann (fraber@fraber.de)
  2. 2. Summary • Rack for 2 computers plus network devices • Silent (~10dB reduction) • Pretty (relatively…) • Cheap (< 100€/$) • Easy to build (4-16 hours) • Suitable for the living room Author: Frank Bergmann (fraber@fraber.de)
  3. 3. Where’s the Problem? • Silent – Server fans tend to be too noisy for either living room or home office. – Noise reduction isn’t as easy as it seems. Sealing off noise means also sealing off air flow. Cooling may in turn add additional noise. • Pretty – Racks need to be mounted in “representative” areas of the SoHo. – Varying concepts of prettiness/ugliness by different family members • Cheap – Budget and time are limited, particularly if family members would prefer to kill the project. Author: Frank Bergmann (fraber@fraber.de)
  4. 4. The Solution • Use an off-shelf drawer unit as a base for the server rack + + + – Cheap (<100€/$) Relatively pretty Saves time building a case Wood can burn, metal has bad acoustic properties • Add acrylic glass doors to the drawer + Noise reduction + Pretty design – May get scratches with time • Ventilation – Passive + Cheap & fast • Noisy – you need big holes that lets noise pass as well – Active • More complex and expensive Author: Frank Bergmann (fraber@fraber.de)
  5. 5. Variants Here are a few ideas for variants: • Use a bigger drawer unit for 19” bars: – Use 19” bars and a bigger drawer unit as a base if you want to house 19” servers – Make sure you use rubber grommets to fix the 19” bars to the drawer unit. Otherwise your box acts as an acoustic amplifier for your server vibrations… – 19” servers are lame anyway – just use ESXi and a desktop with 16GB RAM to consolidate 4-8 servers (for SoHo purposes…). • Use an old fridge: – – – – Contains already active cooling Just use a circular saw and cut the sides if you need different measures. The thermal isolation material inside also reduces noise. Used to vibrate anyway… Author: Frank Bergmann (fraber@fraber.de)
  6. 6. Budget, Parts & Tools Tools required for basic rack • Screwdrivers, file • Drilling machine with various drills • Superglue Tools required for fan controller • Soldering iron, soldering wire • VOM/Multimeter • Resistors and cables “from the box” • Tweezers, small pliers, other electronics tools Author: Frank Bergmann (fraber@fraber.de)
  7. 7. The Basic Rack Author: Frank Bergmann (fraber@fraber.de)
  8. 8. Drawer Base Unit • I’ve started off with a “Micke” Ikea drawer unit for ~45€: – Width: 35 cm – Height: 75 cm (desk height) – Depth: 50 cm • The drawer units is made from thick, lightweight chipboard which reasonably absorbs noise. • It’s easy to mount the rails at a different position if you want to customize the drawers. Author: Frank Bergmann (fraber@fraber.de)
  9. 9. Acrylic Glass Doors • I bought two pieces of acrylic glass: – Height: 100 cm – Width: 50 cm – Thickness: 5 mm (5 mm is OK, but try to get 10 mm if you can) • The guys from Bauhaus cut the glass into the right size for free: – Height: 69 cm – Size: 34,5 cm • For each door (2x, front and back) I added a handle, a magnetic catch and two hinges. Author: Frank Bergmann (fraber@fraber.de)
  10. 10. Mounting the Hinges and the Catch • I just used superglue for the hinges and the magnetic catch because it’s fast and transparent. • I’ve mounted the hinges so that the doors can swing open all the way. Check that your hinges can open at least 270°, otherwise your doors won’t close. • Hints: – Roughen the surface of the acrylic glass with sandpaper in order to improve gluing strength. – Don’t use too much glue, or it will get squeezed out and look ugly (see above). View from the top Author: Frank Bergmann (fraber@fraber.de)
  11. 11. Noise Reduction Results • You should hear an audio recording when reading this text. The audio was recorded ~30cm in front of the rack: Door open Door closed – 5 seconds with front door open, – closing the door and – 5 seconds with front door closed. • The spectrum at the right has been calculated using Audacity: – Most frequencies are reduced by about 14db (see noise reduction). – There seems to be some resonance at about 130Hz, even though I can’t hear it. Author: Frank Bergmann (fraber@fraber.de) Click here to hear before vs. after door closed
  12. 12. Active Cooling Author: Frank Bergmann (fraber@fraber.de)
  13. 13. Active Cooling • I don’t think that it’s possible to house a server or two without a fan. Servers just produce too much heat (200W – 500W each). • You will need temperature regulation for the fan speed for a really silent rack. Author: Frank Bergmann (fraber@fraber.de)
  14. 14. The Fan • Look for an exceptionally lownoise fan (14dB/A or less). • I used a 120 mm fan with a 4-pin connector. • Make sure you also get rubber grommets for low-vibration mounting. Author: Frank Bergmann (fraber@fraber.de)
  15. 15. Mounting the Fan • I use rubber grommets for low-vibration mounting. • You need to drill many small holes or a few large holes in the door area covered by the fan. Author: Frank Bergmann (fraber@fraber.de)
  16. 16. Connecting the Fan to a Computer • The easiest option is to plug your fan into a fan connector at the motherboard of one of the computers in the rack. • In this case you only need to create a 1m extension cable. • There are software packages availables for Linux (lm-sensors and fancontrol) and Windows (SpeedFan) • Pros: – You just need to solder one cable • Cons: – Your computer needs to provide an extra fan connector – Your fan will only work if that computer is powered on. Author: Frank Bergmann (fraber@fraber.de)
  17. 17. Raspberry Pi Fan Controller Author: Frank Bergmann (fraber@fraber.de)
  18. 18. Raspberry Pi Fan Controller • I actually use a Raspberry Pi computer for fan control, because my computer doesn’t have a free fan slot. • I also use the Raspberry Pi for UPS monitoring and other security functions. • Hints: – The Sub-D connect fits better at the end of the RasPi enclosure than on top of it. – The Sub-D connector did not provide enough space for the fan cable, so I would choose a different solution next time Author: Frank Bergmann (fraber@fraber.de) Limited space for cables Bad place for Sub-D Fan cable
  19. 19. Raspberry Pi Fan Controller – Wiring Diagram To Fan 4-pin male connector 2 GND +12V 1 Dallas 18B20 Temp Sensor 4,7k Ohm 3 4 5 Micro-USB Power for Raspberry Pi Tach PW M GND DQ +3.3V C B 1k Ohm Computer Molex Power Fuse 1A E BC 238 Fuse 1A 1 Female 9-pin Sub-D Power • +3.3V • +5V • +12V • GND Sensor • DS18B20 temp signal • PWM signal for fan 2 6 3 7 4 8 5 9 1 2 6 3 7 4 8 5 9 Male 9-pin Sub-D Source: ELinux Circuit Overview • I use a Sub-D connector (male + female) to connect the RasPi to the rack • RasPi gets power from a computer via a Molex (hard disk) power connector and fuses. Watch out for short-circuits! A short-circuit can destroy your computer, particularly if you connect +5V to +12V. • The RasPi Micro-USB power connector is fed from the Sub-D connector. • A digital 18B20 temperature sensor sends temperature digitally encoded to RasPi GPIO 4. • The fan connector didn’t fit into the Sub-D anymore, so I had to connect it separately. I would change that the next time. The “PWM” pin of the fan connector is controlled by GPIO 18 via a transistor Author: Frank Bergmann (fraber@fraber.de)
  20. 20. Raspberry Pi Fan Controller – Dallas 18B20 Temperature Sensor Dallas 18B20 4,7k Ohm GND DQ +3.3V • For an introduction please see http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/tempera • The 18B20 already contains an A/D converter and send the temperature values as serial data. Source: ELinux Author: Frank Bergmann (fraber@fraber.de)
  21. 21. Raspberry Pi Fan Controller – Fan PWM Speed Control • • A computer fans are controlled by 3-pin or 4-pin connectors. This section is only about 4-pin fans. Pins: – – – – • • • • • • 1 - GND 2 - +12V 3 - Tach 4 - PWM 1k Ohm C B The fan will run with maximum speed if you only connect pins 1 (GND) and 2 (+12V). E BC Pin 4 controls the fan speed: 0V stops the fan while the fan 238 runs at maximum speed at +12V. The fan itself “pulls up” Pin 4 (PWM) to +12V using a resistor, so by default the fan will run at maximum speed. You can connect pin 4 to GND – the fan will slow down. Now comes the trick: We use GPIO 18 to control a transistor. If GPIO 18 is “on=1” (+3.3V), the transistor will become active and “pull down” pin 4 to GND, slowing down the fan. PWM “Duty Cycle: This value tells the RasPi GPIO PWM module This is a value between 0 and 1023 (10 bits). – – – • 1 – GND (black): Just connect to GND 2 – +12V (yellow): Just connect to +12V 3 – Sense (green): Ignored here. 4 – PWM (blue): This is the most interesting pin: To Fan 4-pin male connector 0 means the pin is 100% of the time at 0V 1023 means the pin is 100% of the time at +3.3V Values between 0 and 1024 will be in between. Now, whenever GPIO 18 is on, the transistor will “pull down” the fan pin 4, so a “0” will keep the fan running fastest, while 1023 will stop the fan. 1: 1000: Author: Frank Bergmann (fraber@fraber.de) Source: ELinux
  22. 22. Raspberry Pi Fan Controller - Software The controller consists of a Perl script that is executed every minute by the Raspbian Linux “Cron” daemon: # Root’s Crontab # Set the fan speed depending on the temperature * * * * * /usr/bin/perl /root/fancontrol.perl >> /var/log/fancontrol.log 2>&1 #!/usr/bin/perl # ************************************************** # Fancontrol, Author: fraber@fraber.de # Copyright 2013, licenses under GPL V2 or higher # This script is called every minute or so using cron # ************************************************** my my my my $debug = 1; $temp_max = 45; $temp_device_id = "10-00080277513c"; $email = "fraber@fraber.de"; # # # # 0=off, 1=on, 2=verbose When to send out warning mail? DS 18B20 device ID, see DS doc Where to send warning my $modprobe = "/sbin/modprobe"; # Binary for loading modules my $mail = "/usr/bin/mail"; # Binary for sending out mail (Exim4) my $echo = "/bin/echo"; # Binary to echo characters my $gpio = "/usr/local/bin/gpio"; # See wiringpi.com/the-gpio-utility my $date = `/bin/date +%Y-%m-%d.%H:%M:%S`; # Timestamp chomp($date); # ************************************************** # Read the temperature: For documentation please seee: # www.cl.cam.ac.uk/projects/raspberrypi/tutorials/temperature/ # system("$modprobe w1-gpio") == 0 # Load interface module or die "fancontrol: Error with system($modprobe w1-gpio'): $?"; system("$modprobe w1-therm") == 0 # Load DS18B20 driver or die "fancontrol: Error with system($modprobe w1-therm'): $?"; my $temp_line = `cat /sys/bus/w1/devices/$temp_device_id/w1_slave | grep 't='`; chomp($temp_line); print "fancontrol: Line=$temp_linen" if ($debug > 1); my $temp_digits = "0"; if ($temp_line =~ /t=([0-9]+)/) { $temp_digits = $1; print "fancontrol: Digits=$temp_digitsn" if ($debug > 1); } else { die "fancontrol: Found invalid temperature line: '$temp_line'"; } my $temp_degrees = int($temp_digits * 0.001); The script performs the following actions: 1. Loads the temperature driver 2. Measures the temperature 3. Determines the desired fan speed 4. Sends out an alert email if the temperature >50° 5. Set the fan speed # ************************************************** # Mapping from temperature to RPMs duty cycles. # - 1023 is the lowest speed # 1 is the highest speed @pwms = ( 1000, 800, 700, 600, 500, 400, 300, 250, 220, 200, 180, 160, 140, 120, 100, 80, 60, 40, 30, 20 ); my $pwm = 10; # Pretty fast fan as default if ($temp_degrees < 30) { $pwm = 1023; # Slowest fan } if ($temp_degrees >= 30 && $temp_degrees < 50) { $pwm = $pwms[$temp_degrees - 30]; } print "fancontrol: Date=$date: Temp=$temp_degrees -> Pwm=$pwmn" if ($debug); # ************************************************** # Send out an alert email if necessary if ($temp_degrees > $temp_max) { system("$echo '' | $mail -s 'RasPi Rack: Temp=$temp_degrees' $email") == 0 or die "fancontrol: Sending out email: $?"; } # ************************************************** # Set the fan speed system("$gpio mode 1 pwm") == 0 or die "fancontrol: system(gpio mode 1 pwm) failed: $?"; system("$gpio pwm 1 $pwm") == 0 or die "fancontrol: system(gpio pwm 1 $pwm) failed: $?"; exit 0; Author: Frank Bergmann (fraber@fraber.de) # 30 - 39 # 40 - 49
  23. 23. Learned Lessons • Rack: – Don’t use too much superglue. – Use sandpaper to increase the surface of the acrylic glass before gluing the hinges or the catch. – Make sure the hinges open >270°. Mine only open 265°, meaning that I had to tweak the hinge screws. – Maybe use some pyramid foam in order to deal with the 130Hz resonance. • RasPi Fan Controller: – Power source: The current solution (power from a server) is convenient, but very, very dangerous. So the next time I would use a separate +5V/+12V power source. – No space on Sub-D connector: I would use a different connector next time that allows for more cables. Author: Frank Bergmann (fraber@fraber.de)
  24. 24. Overheating • Overheating of the rack may damage your servers and cause a fire. Fires in server rooms are a reality: – Please estimate the cost of an overheating/fire. – Please estimate the probability that your active cooling will fail at some moment in the next 10 years. – Please multiply these two figures to get the total risk of overheating. • => Please purchase a fire alarm device and mount it in the upper part of the rack. Author: Frank Bergmann (fraber@fraber.de) Fire detector for about 11€ Source: Wikimedia Commons
  25. 25. About the Author Frank Bergmann is founder of ]project-open[, an open-source enterprise project management system. Born in Germany, he is working in other countries for more than 14 years. He has received a Dipl.-Ing. master in computer engineering and an MBA degree. Frank’s specialty is “brutally simplifying” complex software/ people issues, until they can be solved at a fraction of their original budget. • • • • • • http://www.project-open.com http://www.project-open.org http://www.twitter.com/projop http://www.facebook.com/projectopen.org http://www.linkedin.com/in/fraber http://www.xing.com/profile/Frank_Bergmann23 Author: Frank Bergmann (fraber@fraber.de)
  26. 26. Legal Note • The contents on these slides are provided “as is” without warranty of any kind. The author further disclaims all warranties, express and implied, including without limitation, any implied warranties of merchantability, fitness for a particular purpose or noninfringement. • In no event shall the author be liable for any indirect, incidental, special, punitive or consequential damages, or damages for loss of profits, revenues, data or data use, incurred by you or any third party, whether in an action in contract or tort, even if we have been advised of the possibility of such damages. Author: Frank Bergmann (fraber@fraber.de)