SlideShare une entreprise Scribd logo
1  sur  26
DIY Acoustic
Server Rack
Silent, Pretty & Cheap

Author: Frank Bergmann (fraber@fraber.de)
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)
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)
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)
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)
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)
The Basic
Rack

Author: Frank Bergmann (fraber@fraber.de)
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)
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)
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)
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
Active
Cooling

Author: Frank Bergmann (fraber@fraber.de)
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)
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)
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)
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)
Raspberry Pi
Fan Controller

Author: Frank Bergmann (fraber@fraber.de)
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
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)
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)
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
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
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)
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
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)
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)

Contenu connexe

Similaire à Homemade Acoustic Server Rack - Silent, Pretty & Cheap

Simple Wireless Radio Data Link
Simple Wireless Radio Data LinkSimple Wireless Radio Data Link
Simple Wireless Radio Data Link
guesta0b04c
 
การสอนคอมพิวเตอร์
การสอนคอมพิวเตอร์การสอนคอมพิวเตอร์
การสอนคอมพิวเตอร์
perachaue
 
การสอนคอมพิวเตอร์
การสอนคอมพิวเตอร์การสอนคอมพิวเตอร์
การสอนคอมพิวเตอร์
perachaue
 
Analog Mixed-Signal Design in FinFET Processes
Analog Mixed-Signal Design in FinFET Processes Analog Mixed-Signal Design in FinFET Processes
Analog Mixed-Signal Design in FinFET Processes
Design World
 

Similaire à Homemade Acoustic Server Rack - Silent, Pretty & Cheap (20)

Presentazione
PresentazionePresentazione
Presentazione
 
Musiconlinux
MusiconlinuxMusiconlinux
Musiconlinux
 
Simple Wireless Radio Data Link
Simple Wireless Radio Data LinkSimple Wireless Radio Data Link
Simple Wireless Radio Data Link
 
Building the Minima - Pacificon 2014
Building the Minima - Pacificon 2014Building the Minima - Pacificon 2014
Building the Minima - Pacificon 2014
 
Intoduction to physical computing using Raspberry Pi, 18-02-2016
Intoduction to physical computing using Raspberry Pi, 18-02-2016Intoduction to physical computing using Raspberry Pi, 18-02-2016
Intoduction to physical computing using Raspberry Pi, 18-02-2016
 
Vitorsworkshop
VitorsworkshopVitorsworkshop
Vitorsworkshop
 
Unit 3 - Computer Components (P1)
Unit 3 - Computer Components (P1)Unit 3 - Computer Components (P1)
Unit 3 - Computer Components (P1)
 
Z170A XPOWER GAMING TE Ln2 OC Guide
Z170A XPOWER GAMING TE Ln2 OC GuideZ170A XPOWER GAMING TE Ln2 OC Guide
Z170A XPOWER GAMING TE Ln2 OC Guide
 
การสอนคอมพิวเตอร์
การสอนคอมพิวเตอร์การสอนคอมพิวเตอร์
การสอนคอมพิวเตอร์
 
computer
computercomputer
computer
 
การสอนคอมพิวเตอร์
การสอนคอมพิวเตอร์การสอนคอมพิวเตอร์
การสอนคอมพิวเตอร์
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Analog Mixed-Signal Design in FinFET Processes
Analog Mixed-Signal Design in FinFET Processes Analog Mixed-Signal Design in FinFET Processes
Analog Mixed-Signal Design in FinFET Processes
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Temperature sensor with raspberry pi
Temperature sensor with raspberry piTemperature sensor with raspberry pi
Temperature sensor with raspberry pi
 
Got Python I/O: IoT Develoment in Python via GPIO
Got Python I/O: IoT Develoment in Python via GPIOGot Python I/O: IoT Develoment in Python via GPIO
Got Python I/O: IoT Develoment in Python via GPIO
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
COMPUTER SYSTEMS
COMPUTER SYSTEMSCOMPUTER SYSTEMS
COMPUTER SYSTEMS
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 

Dernier

call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Morcall Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
vikas rana
 

Dernier (15)

(Aarini) Russian Call Girls Surat Call Now 8250077686 Surat Escorts 24x7
(Aarini) Russian Call Girls Surat Call Now 8250077686 Surat Escorts 24x7(Aarini) Russian Call Girls Surat Call Now 8250077686 Surat Escorts 24x7
(Aarini) Russian Call Girls Surat Call Now 8250077686 Surat Escorts 24x7
 
$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...
$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...
$ Love Spells^ 💎 (310) 882-6330 in West Virginia, WV | Psychic Reading Best B...
 
WOMEN EMPOWERMENT women empowerment.pptx
WOMEN EMPOWERMENT women empowerment.pptxWOMEN EMPOWERMENT women empowerment.pptx
WOMEN EMPOWERMENT women empowerment.pptx
 
call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Morcall Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
call Now 9811711561 Cash Payment乂 Call Girls in Dwarka Mor
 
The Selfspace Journal Preview by Mindbrush
The Selfspace Journal Preview by MindbrushThe Selfspace Journal Preview by Mindbrush
The Selfspace Journal Preview by Mindbrush
 
8377087607 Full Enjoy @24/7-CLEAN-Call Girls In Chhatarpur,
8377087607 Full Enjoy @24/7-CLEAN-Call Girls In Chhatarpur,8377087607 Full Enjoy @24/7-CLEAN-Call Girls In Chhatarpur,
8377087607 Full Enjoy @24/7-CLEAN-Call Girls In Chhatarpur,
 
2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Jasola (Delhi)
 
2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Dashrath Puri (Delhi)
 
Pokemon Go... Unraveling the Conspiracy Theory
Pokemon Go... Unraveling the Conspiracy TheoryPokemon Go... Unraveling the Conspiracy Theory
Pokemon Go... Unraveling the Conspiracy Theory
 
2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Mukherjee Nagar (Delhi)
 
2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)
2k Shots ≽ 9205541914 ≼ Call Girls In Palam (Delhi)
 
(Anamika) VIP Call Girls Navi Mumbai Call Now 8250077686 Navi Mumbai Escorts ...
(Anamika) VIP Call Girls Navi Mumbai Call Now 8250077686 Navi Mumbai Escorts ...(Anamika) VIP Call Girls Navi Mumbai Call Now 8250077686 Navi Mumbai Escorts ...
(Anamika) VIP Call Girls Navi Mumbai Call Now 8250077686 Navi Mumbai Escorts ...
 
Top Rated Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Tingre Nagar ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
9892124323, Call Girls in mumbai, Vashi Call Girls , Kurla Call girls
9892124323, Call Girls in mumbai, Vashi Call Girls , Kurla Call girls9892124323, Call Girls in mumbai, Vashi Call Girls , Kurla Call girls
9892124323, Call Girls in mumbai, Vashi Call Girls , Kurla Call girls
 
LC_YouSaidYes_NewBelieverBookletDone.pdf
LC_YouSaidYes_NewBelieverBookletDone.pdfLC_YouSaidYes_NewBelieverBookletDone.pdf
LC_YouSaidYes_NewBelieverBookletDone.pdf
 

Homemade Acoustic Server Rack - Silent, Pretty & Cheap

  • 1. DIY Acoustic Server Rack Silent, Pretty & Cheap Author: Frank Bergmann (fraber@fraber.de)
  • 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. 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. 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. 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. 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. The Basic Rack Author: Frank Bergmann (fraber@fraber.de)
  • 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. 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. 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. 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
  • 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. 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. 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. 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. Raspberry Pi Fan Controller Author: Frank Bergmann (fraber@fraber.de)
  • 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. 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. 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. 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. 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. 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. 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. 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. 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)