Friday, October 23, 2020

Running Openshift at Home - Part 2/4 DIY IKEA Server Cabinet

Part 2/4 - Building a Silent Server Cabinet (IKEA hack)

Part 1/4 - Homelab Hardware
Part 3/4 - Installing a Two-Node Proxmox VE Cluster 
Part 4/4 - Deploying Openshift 4 on Proxmox VE

After sourcing the hardware for my homelab, it's time to deal with the shelving and the noise problem. I also needed a place to put all these servers in a way that the wife does not complain about the the looks. It has to also blend with the color theme of the house which is while, black and gray. In other words, I need to build a server cabinet with high WAF (Wife Approval Factor).

Et voila! I did it!

Bill of Materials

The prices are in Singapore dollars.

IKEA Parts

 Non-IKEA Parts

Tools Required 

Joining the Frames 

The very first thing i did was to assemble the Besta frames and join the 2 frames together with flat metal brackets and drilling the ventilation holes using a hole saw. The original plan was to put vents at the bottom only so it that it's not visible. But this has changed later on and you will see why. After drilling those ventilation holes, i also learned that these materials are actually hollow. It's made of two 5mm MDF boards with paper filling. Basically the insides are made of 90% air and 10% paper. That's how IKEA made this things cheap.

Attaching the Doors

There are two doors, one in front which is made of glass and aluminum and another one in the back which is made of wood. In the original design of this frame, there is supposed to be a thin MDF board that goes in the back. This board helps the frame stay square and not skew. But because I did not put it, i have the skewing problem especially after the doors are attached which is quite heavy. They are also quite flimsy without the backing board and will definitely not hold 80Kgs of servers. So my solution was to use angle brackets.

The two holes in front is the air intake while the two holes at the back are the exhaust where the exhaust fans will be attached. You will also notice that in the bottom shelf there is a cardboard in the middle separating the front part and the back part of the cabinet. This is so that the air does not just flow directly from intake to exhaust. The cool air will be forced up to the server front panels.

The bottom panels of the BESTA frames has 4 M8 threaded holes where you can simply screw down any M8 caster wheels.

Noise Test

Before finalizing the ventilation part, i decided to test the noise how much noise will it block when the doors are closed. One good thing about the material being almost hollow and filled with paper is that it makes it a good acoustic insulator. Here's a short video of the initial noise test I did. The noise-damping quality is pretty effective.

Cable Management

I drilled a 60mm hole in one corner of the back door for the cables that will come out of the cabinet. I tried not to drill holes in the main frame anymore after learning about what it is made of, to keep the structural integrity. I used trunking cable duct to organize the network cables.


Rack Rails or IKEA Shelves?

Before I decided to use IKEA shelves, I have been thinking of using rack rails because they look cool and you can screw the server's front panel to it. But after a mechanical thought experiment, i realized it wont work. If the servers are attached to rack rails, the total weight of the servers will be concentrated to the rack rail which will then put too much pressure on the cabinet floor, unless the rack rails will be screwed down to the walls which will require extra work of putting a 2x2 padding stick. This may create dents or probably a hole considering that this material is hollow. So I decided to go for the standard IKEA shelves. 1U servers fit perfectly in these selves. 2U servers are little shy but still workable. I could have punched a new hole though instead of following IKEA's standard shelving holes. But it's not a big deal so I just followed the pre-made holes for the shelves.

According to IKEA's specification, each of these shelves can hold up to 20Kg of weight. Oh yeah? But these server weigh almost 30Kg! Relax, I got 2 of those shelves holding the server. One in front and one in the back side. So each shelve is only holding less than 15Kg of weight.

Thermal Experiments

I snicked a digital thermometer inside the cabinet without the exhaust fans and observe the thermal behavior for a few days. Here are my findings.

  1. When the room air conditioning is not turned on and both cabinet doors are closed. It only takes three minutes before the server fans becomes wildly loud and six minutes before the servers starts complaining with thermal warnings.
  2. When the room air conditioning is ON while the cabinet doors are closed, it does not make a lot of difference. This is because the hot air inside the cabinet has no way of getting out. Although there are exhaust holes at the bottom, hot air goes up and they build up at the ceiling of the cabinet.
  3. When both the cabinet doors are fully opened, there are no thermal issue at all, except they are too loud.
  4. When only the back door is closed while the front door is open, the thermals are not too bad.
  5. What was surprising was when the back door is open and the front door is closed the temperature goes up rapidly. I assumed it would be better because the hot air comes out at the back of the server, so opening the back door should be good. But it did not behave as I expected. It's worse than scenario 4. It took me a few days to understand why. Later on, i figured it was because the hot air from the back of the server is getting sucked back into the server chassis when the front door is closed. The gigabit switch which is positioned near the front door also contributed to the hot air build up near the front door. This also tells me that the front intake holes are not big enough.
  6. Putting exhaust fan at the bottom exhaust holes did help a little. But still not enough to close both front doors permanently. I decided to put a triple cooling fan and place it directly behind the back of the servers through the back door as an afterthought.


Table Top

While the thermal experiments goes on, the family had a trip to IKEA and this is when I found the LINMON table tops and decided to get one. The table top helps hide the slit/joints between the two frames and also set the height of the cabinet into a standard desk table height. The table top also makes a very good place to work on the server hardware. It also hides the messy cabling around the back door and the future exhaust fan that I was planning place on the back door.


After learning things from the thermal experiments, and after receiving the new cooling fans I ordered online. It's time to fix the ventilation. I made a rectangular hole in the back door using a drill and coping saw that could fit 3x 120mm fans. These fans has variable speed control which is very helpful when fine tuning the balance between noise and thermals. I have also covered/patched the original exhaust holes at the bottom because this is causing the hot air to be sucked backed in the intake hole. I have added more intake holes in front after finding out in the experiments that it was not enough. And finally put a proper temperature sensor that will set off an alarm when the cabinet temperature goes above the set limit. The current set limit is at 40 degrees celsius and it has never triggered the buzzer even when room air conditioning is turned off. The temperature controller is also very helpful to fine tune the right exhaust fan speed that makes the cabinet not too hot but also not too noisy.

This was the final part of the build.

Next Up

I went beyond the original budget of the project but, but that's OK. As long as the wife approves the build, all good. So now that I have the hardware and the cabinet setup, it's time to dig on the software side. The next part of the series is about installing a hypervisor and then Openshift.

Part 1/4 - Homelab Hardware
Part 3/4 - Installing a Two-Node Proxmox VE Cluster 
Part 4/4 - Deploying Openshift 4 on Proxmox VE

No comments:

Post a Comment