Climate change is real folks. You can’t deny it. 2020 was unequivocally Colorado’s worst season ever for wildfires. A major contributor to climate change is emissions from power plants. We should all do what we can to reduce how much fossil fuels our power providers have to burn for our hobbies.
Add to that, Denver’s power provider, Xcel Energy, keeps getting approval to raise our rates.
The Shoup household doesn’t have solar panels or our own wind turbines. We rely on what Xcel can burn, wether it’s oil, natural gas, or coal, to produce power.
You know what we need?
More Less Power!
A brief overview of my home “lab” before I started this project. My “lab” consisted mainly of the following. I measured all the power output using a Kill-a-Watt for about 6 hours to get a good understanding of how much power they use.
- An HP Z620 Workstation w/ a single Intel E5-2630L, 32GB DDR3 ECC Memory, a couple SSDs and a 1.2TB Fusion ioDrive 2 PCIe card. Consumption: 140W
- A custom box running an AMD A8-7600U, 16GB DDR3 Memory and 2x 7200RPM 2TB disks. This I called my NAS. Consumption: 41W
- Another custom box running an Intel i5-9400, 32GB DDR4 Memory, 1TB WD NVME, and my second 1.2TB Fusion ioDrive 2 PCIe card. Consumption: 42W
All told, the setup averaged about 220W sitting mostly idle. Here in the Denver metro area, we pay roughly $0.11/kWh. Let’s math that out:
$0.11/kWh * 0.22 kW * 730 hours = $17.666
So roughly $18 USD a month to run the home lab. That’s really not too bad actually. So, how much CO2 is that? We can use this 2016 document from Xcel to estimate how much carbon we output:
1320 lbs/MWh / 1000 * 0.22 kW * 730 hours = 211.992 lbs
So, roughly 212 pounds of CO2 are generated a month just for my home lab. That’s 2.5 tons of CO2 per year. That really isn’t too much, considering the per-capita CO2 emissions rate for the US in 2018 was 16.1 tons. But I think I can do better than that.
In addition to reducing power consumption, all of the above runs XCP-ng. While I really enjoyed playing with XCP-ng, I’m far more at home with and prefer managing KVM. Another goal of this project is to get rid of XCP-ng from my virtualization, and switch back to using KVM on CentOS 8.
I think I can get the home lab down from 230W to 100W. What do I run in my home lab that I need all that power for? Honestly not much. Here’s the applications that get used on a regular basis:
- Unifi controller
- Unifi NVR
- Home Assistant
Some other things I have running:
- Prometheus & Grafana for pretty visualizations
- A proxy server (running haproxy)
- A NAS with suitable storage for backing up Nextcloud (right now ~200GB of data).
Let’s tackle each of the above items one at a time, and see if we can’t come up with a solution to reduce power.
The Plex Server
My Plex library is small. It’s only about 750GB. It consists mainly of DVDs and Blu-Ray rips from movies and TV shows that my wife and I have purchased. I also have my CD collection on it. It’s usage is relatively low. We rarely have more than one stream at a time. Because we only occasionally need to transcode a stream, it’s nice to have some decent CPU power behind it, but I don’t need hardware transcoding. This is perfect use for a VM. I’ll keep the ioDrive in the box with my i5-9400, create a VM under KVM on that box, and run my entire Plex library off of that.
The Nextcloud Server
This server is hugely important. It contains years of pictures, documents, beer recipes and other things that I don’t want to lose. Also, it contains all of my wife’s master’s and PhD research. We can’t lose this. When it’s not running, it’s mildly painful, but more importantly, it’s nice to be performant. We have roughly 200GB of data on that and a realtively slow growht rate.
During this quest for low power, I became intrigued by some really low power mini PCs. I decided I wanted to play with one. I settled on this Zotac CI329 nano to run my Nextcloud server off of. I’ll slap a cheap 480GB SSD in it, and install CentOS 8 on it. I’ll run Nextcloud off of that box.
Unifi & Unifi NVR
I should have just gone with one of the Cloud Keys with built-in storage for this. Instead, this will run as a VM on the box with the AMD A8-7600U on it. I’ll run it on a VM and run it off of my other 1.2TB ioDrive.
I have a bunch of Raspberry Pi 3s floating around. Why not just run Home Assistant on one of these?
Previously, my NAS ran off of the AMD box and was running FreeNAS in baremetal. FreeNAS was overkill for what I used it for. I really just need to mirror my two 2TB drives and serve that as an NFS export so I can run regular backup jobs of Nextcloud against it. I’ll make this a VM on my AMD box and run openmediavault. openmediavault makes it easy to provision disks and share them out using NFS or SMB or whatever. It also runs great as a VM.
Last but not least, I have my monitoring stack which consists of Prometheus, Grafana, and other exporters. I plan to run these as Docker containers. I’ll put them on the i5 box and run them off of the NVME drive I have installed in it.
I ended up getting rid of my Z620. That thing was power hungy, even after trying to use a low power Xeon E5 first gen CPU. Originally it came with 2x E5-2670 v1 instead of the 2630L I installed. I never measured its power consumption before, but I imagine it was significantly more than the 120W I measured earlier!
I ended up with the following boxes:
- nc01 - Zotac CI329 w/ 8GB Memory, 480GB SATA SSD. Measured 3.5W power consumption. I freaking love this thing!
- hv01 - This is that Intel i5-9400 box w/ 32GB DDR4 memory, a 1TB NVME, and a 1.2TB Fusion ioDrive drive. Measured 25W power consumption.
- hv02 - This is my AMD A8-7600U box w/ 32GB DDR3 memory (I threw in a couple 8GB sticks I had laying around). It ended up with two 480GB SSDs, a 1.2TB Fusion ioDrive card, and 2x 2TB 7200RPM disks. Measured 65W power consumption.
- hass - A raspberry pi 3 running Home Assistant. Measured 1.5W on that thing.
Total: ~95W of power.
Let’s see what the money savings are:
$0.11/kWh * (0.22 - 0.095) kW * 730 hours = $10.0375
Saving ~$10 per month. That’s not bad! It’ll take a while to save enough money to pay off the cost of that Zotac box, but it was worth it in my opinion.
What about CO2 emission?
1320 lbs/MWh / 1000 * (0.22 - 0.095) kW * 730 hours = 120.45 lbs
So ~ 120 lbs of CO2 per month, or 1.44 tons of CO2 per year. Not too shabby.
I saved $10/mo and 120lbs of CO2/mo. I did this by getting rid of a power hungry workstation that ran a Sandy Bridge based Xeon processor. I rearranged some drives in my other two boxes, and bought a fun little tiny box (Zotac CI329) to play with. Oh yeah, threw in a random Raspberry Pi 3.
I’m very happy with the result,.