Homemade Acoustic Server Rack - Silent, Pretty & Cheap

26
Author: Frank Bergmann ([email protected]) Except where otherwise noted , content on these slides is licensed under a Creative Commons Attribution 4.0 International license . DIY Acoustic Server Rack Silent, Pretty & Cheap

description

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

Transcript of Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Page 1: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

DIY Acoustic Server Rack

Silent, Pretty & Cheap

Page 2: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

• 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

Summary

Page 3: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

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.

Page 4: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

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

Page 5: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

VariantsHere 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…

Page 6: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

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

Page 7: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

The Basic Rack

Page 8: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

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.

Page 9: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

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.

Page 10: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

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

Page 11: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

Noise Reduction Results

• You should hear an audio recording when reading this text. The audio was recorded ~30cm in front of the rack:– 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.

Door open

Door closed

Click here to hear before vs. after door closed

Page 12: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

Active Cooling

Page 13: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

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.

Page 14: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

The Fan

• Look for an exceptionally low-noise 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.

Page 15: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

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.

Page 16: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

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.

Page 17: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

Raspberry PiFan Controller

Page 18: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

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.

Fan cable

Limited spacefor cables

Bad placefor Sub-D

• 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

Page 19: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

Raspberry Pi Fan Controller – Wiring Diagram

Female 9-pin Sub-D

ComputerMolexPower

To Fan 4-pinmale connector

12

34

5

6 7 8 9

1 2 3 4 5

Male 9-pin Sub-D

1 2 3 4 5

Micro-USBPower for

Raspberry Pi

TempSensor

6 7 8 9

B

C

E

Dal

las

18B

20

GND

DQ

+3.3V

1k Ohm

4,7k

Ohm

BC238

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

Power• +3.3V• +5V• +12V• GND

Sensor• DS18B20 temp signal• PWM signal for fan

Fuse 1A

Fuse 1A

GND

PWM

+12V

Tach

Source: ELinux

Page 20: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

Raspberry Pi Fan Controller – Dallas 18B20 Temperature Sensor

• For an introduction please see http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/temperature/

• The 18B20 already contains an A/D converter and send the temperature values as serial data.

Dallas18B20

GN

D

DQ

+3.3V

4,7k

Ohm

Source: ELinux

Page 21: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

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 (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:

• The fan will run with maximum speed if you only connect pins 1 (GND) and 2 (+12V).

• Pin 4 controls the fan speed: 0V stops the fan while the fan 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).

– 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.

To Fan 4-pinmale connector

B

C

E

1k Ohm

BC238

1 - GND

4 - PWM

2 - +12V

3 - Tach

1: 1000:

Source: ELinux

Page 22: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

Raspberry Pi Fan Controller - Software

#!/usr/bin/perl# **************************************************# Fancontrol, Author: [email protected]# Copyright 2013, licenses under GPL V2 or higher# This script is called every minute or so using cron# **************************************************

my $debug = 1; # 0=off, 1=on, 2=verbosemy $temp_max = 45; # When to send out warning mail?my $temp_device_id = "10-00080277513c"; # DS 18B20 device ID, see DS docmy $email = "fraber\@fraber.de"; # Where to send warning

my $modprobe = "/sbin/modprobe"; # Binary for loading modulesmy $mail = "/usr/bin/mail"; # Binary for sending out mail (Exim4)my $echo = "/bin/echo"; # Binary to echo charactersmy $gpio = "/usr/local/bin/gpio"; # See wiringpi.com/the-gpio-utilitymy $date = `/bin/date +\%Y-\%m-\%d.\%H:\%M:\%S`; # Timestampchomp($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_line\n" if ($debug > 1);

my $temp_digits = "0";if ($temp_line =~ /t=([0-9]+)/) { $temp_digits = $1; print "fancontrol: Digits=$temp_digits\n" if ($debug > 1);} else { die "fancontrol: Found invalid temperature line: '$temp_line'";}

my $temp_degrees = int($temp_digits * 0.001);

# **************************************************# 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, # 30 - 39 180, 160, 140, 120, 100, 80, 60, 40, 30, 20 # 40 - 49);

my $pwm = 10; # Pretty fast fan as defaultif ($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=$pwm\n" if ($debug);

# **************************************************# Send out an alert email if necessaryif ($temp_degrees > $temp_max) { system("$echo '' | $mail -s 'RasPi Rack: Temp=$temp_degrees' $email") == 0 or die "fancontrol: Sending out email: $?";}

# **************************************************# Set the fan speedsystem("$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;

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

The script performs the following actions:1. Loads the temperature driver2. Measures the temperature3. Determines the desired fan speed4. Sends out an alert email if the

temperature >50°5. Set the fan speed

Page 23: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

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.

Page 24: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

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.

Fire detector for about 11€Source: Wikimedia Commons

Page 25: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

About the AuthorFrank 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

Page 26: Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Author: Frank Bergmann ([email protected])Except where otherwise noted, content on these slides is licensed under a Creative Commons Attribution 4.0 International license.

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.