14 Apr 2021 - Conan Mercer
If I did not have the benefit of having access to these old parts to reuse, I would have bought an old system on ebay for cheap. Something like an old but reasonably powerful Dell OptiPlex. In short there are many old systems on ebay that can be bought on the cheap that can be repurposed into a basic server.
The parts used in my server build are as follows:
|CPU Cooler||Cooler Master Seidon 120v||n/a|
|Memory||16gb DDR3 1600MHz||n/a|
|Power||Corsair CX500 V3 80+ Bronze||n/a|
|Ethernet||D-Link DGE-528T (Wake on Lan supported)||11.98|
|Storage||Seagate Barracuda Green 1 TB||n/a|
|Storage||Western Digital Blue WD10EZEX - 1TB||n/a|
|Storage||Western Digital Blue 500GB SATA||n/a|
|Boot Drive||Intel 530 Series 180GB||n/a|
|Backup Boot Drive||Intel 530 Series 120GB||n/a|
|Video Card||NVIDIA GeForce 210||11.90|
|Case||RAIJINTEK Arcadia Midi-Tower||n/a|
I purchased a WoL capable ethernet card from ebay (discussed later), and a cheap GPU so that the output resolution is greater than what the motherboard can produce (discussed later). I also bought a wooden box used as a case.
The powerlines used here are rated for 600Mbps, but that is theoretical and not what is observed in practice. Using the powerlines the server gets about 28Mbps up and 40 down. This is not even close to the speed of my fiber internet connection, so the powerline is a huge speed bottleneck, but it should be enough for streaming purposes.
For this build I wanted stealth, but before the cool stuff comes, a good spring cleaning was in order. This process consisted of vacuuming any large pieces of dust out, and once that was done, I used Isopropyl alcohol with a tissue paper to clean off all the remaining pieces of dust and dirt. You can buy Isopropyl alcohol very cheap in most supermarkets or hardware shops.
Besides a clean, I smartened up the cable management somewhat, mainly to allow for better airflow, not aesthetics as the inside of the case will not be visible to the outside world.
Most of the components are displayed in the Front Side photograph below. The hard drives are all located on the bottom right of the server (3 HDDs, 2 SSDs), the WoL ethernet card is positioned in a PCI slot just above the power supply on the bottom left, and above that is the GPU in another PCI slot.I wanted the construction of the server to be well camouflaged. In truth, I wanted anyone who walked past it to not notice that is actually a server. With the theme of keeping expenses low, I found a wooden fruit box in my local hardware shop. I measured it up and found that it was slightly too small. No problem. I cut out a section of the bottom of the box so that it would slide over the top of the server. I used some of the off cuts as separators to make a small gap between the top of the server (where some fans are located) and the wooden box. I put a nice plant on the top to add to the disguise.
For the remote desktop connection to work efficiently, I purchased a very cheap GPU from ebay. Without this GPU, the output resolution of the motherboard was ridiculously low (640x480).
The answer to this problem is Wake-on-LAN (WoL) which allows a computer to be turned on or awakened by a network message.
First and foremost, WoL requires an ethernet card that supports this standard. The motherboard in this server is a MSI 970A-G43, which has an integrated ethernet controller, a Realtek PCI-E GbLAN controller 8111E.
This controller does not support WoL, so I needed to buy a PCI Gigabit Ethernet card that does support WoL. A quick scout on Amazon and I found the D-Link DGE-528T for 12€. I installed this into the server.
The server now goes to sleep after 5 mins of inactivity. It boots back up automatically when the Plex client on my TV is turned on, and also anytime I connect to it via Windows Remote Desktop Connection.
Reducing the power consumption was a concern during the design of this server build. Mainly because the CPU used is quite power hungry by todays standards. To test for this, I used the TECKIN Smart Plug to measure power consumption of the server in various states.
The server idles at an average of 120 watts, which is not a huge power consumption, but compared to my new computer build, blog post here, that idles at an average of 60 watts, there is a significant 66% increase in power. This is not surprising as the server hardware is much older and less power efficient.
The server sleeps at about 5 watts, which compared to its idle state is a difference of 184%. This is a wonderful result, the benefit of WoL and its contribution to power saving is clearly evident here.
In Raspberry Pi 4 B idles at about 2.7 watts, and under load at about 6.4 watts (specs taken from here). This does not include any drives or other equipment necessary to connect with the Raspberry Pi in order for it to function as a media server. The server in sleep mode, and the Raspberry Pi in an idle state consume almost the same amount of power as each other. This is a valid comparison as the server will be in sleep mode most of the time, only awakening to stream films or tv shows for a few hours a day at most.
To test the server under load I used Userbenchmark, and using this test the server averages at around 151 watts. It is important to note that this load test is probably consuming more power than when the server is just streaming films or tv shows with Plex, but this is the result we have. Here there is a significant difference in power consumption between the Raspberry Pi and the server, this is a trade off between power and energy efficiency. This server is more powerful and offers much more capability and expansion than the Raspberry Pi, so for now, this tradeoff seems worth it.
|Hours per Day||€ / year|
The media server works and is consuming as little power as possible for its hardware architecture. Per year, by putting the server to sleep when not in use, saves me 188€. The server is built at a very low cost, reusing old hardware where possible.
In the future I will add more storage space, and better 'nas' rated drives. I will also look into alternative operating systems, in particular one that supports WoL and efficient cross platform file sharing.
I may also look at undervolting or underclocking the current CPU, in an effort to bring down the power consumption. If that does not reduce the power significantly, I will also look into buying a cheap CPU that is less power hungry. It may be possible to remove the GPU to save power, as going forward it should be less necessary to connect to the server often.