Eggs And Baskets

A little bit ago I kinda went off on a tangent with my home networking.  I have a server tower in my studio, which is noisy and now it’s just more than I need.  Meanwhile, in my laundry room, I have a rack shelf screwed to the wall with my router, raspberry pi and network switch all on it.  I thought I should just downsize the server, upsize the network rack and get it all together.

So I did.  I bought a larger 6U wall mount rack cage, a couple of shelves, and a new tiny PC for my new web and mail server.  The rack stuff came and I installed it with a lot of sweating and swearing.  The tiny PC arriver this weekend, and while there wasn’t sweating and swearing, it was still a bunch of bullshit.  Setting up the web and mail stuff wasn’t so bad.  I only had one configuration option in the mail server that gave me some headache.  But then I had asperations.

Since I was already downsizing my server, could I go a little further and eliminate the raspberry pi device by running it on my new server?  Apparently that’s an option, but in the end, it turned out to be so much not worth it and highlighted the pitfalls of all your eggs in one basket.  There’s something very valuable in having discrete devices, and until you experience the problems all-in-one packages come with, the lure of all-in-one is very strong.

So, it’s probably not a big deal to run a pi hole on a server with everything else, but ugh.  Pi-hole runs on Linux, whereas I am a Windows tech.  So I can run a virtual machine with Linux, right?  Why not?  I actually have my TFS server in a virtual machine on my development desktop.  I’ve used VirtualBox plenty in the past for various things.  I’m not completely ignorant of virtualization.  But, I am leery of it in production environments.  I honestly hate having one massive server broken up into lots of little virtual servers.  And that’s kind of what I was hypocritically working towards.

The ideal way to do it would be to install hyper-V on the server and run the Linux VM in there.  But damn, do I HATE the way Hyper-V approaches networking.  It abstracts everything and you have no idea what is what when looking at your network settings.  If something went awry, I don’t want to have to fight with that.  So then came option 2 – VirtualBox.  I got all the way to the end with this one, but it was a lot of stumbling around.  The last thing I was testing was how the pi-hole would behave if the host server lost power or needed rebooting.  It wasn’t ideal.

VirtualBox isn’t a VM server like Hyper-V is.  If VirtualBox isn’t running, your VMs aren’t running.  So for any outage or reboots or anything else, you’d have to make sure you were logged back in, VirtualBox was running again, and the VM was started.  Compare that to the Raspberry pi, where any power outage don’t faze it at all.  It just reboots and comes back online.  I’ve never had to think about it.

And while I was doing the reboot, I did another check for updates.  Of course, I had installed a .NET update and there was another update following it, so I got that as well.  After the reboot, the pi-hole in the VM didn’t work at all.  Nothing could see it and it couldn’t see anything.  And this was after I had already changed DHCP settings, so now my desktop can’t do anything on the internet either.  This is what things would look like in downtime, and I didn’t like it at all.

As it turns out, the Windows update just did whatever the fuck it wanted with my network drivers and disabled the thing that makes VirtualBox work.  It could happen at any time and apparently it’s a well-known problem.  So that was the end of my experiment with running pi-hole on a server in a VM.  A dedicated web and mail server and a dedicated pi-hole is definitely more desirable since either could be down without bringing everything to a standstill.

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>