The Top Seven Mistakes When Building a Home Server
I’ve tried building a home server many times in the past few years. Here are my top seven mistakes for you to learn from:
Building a Home Server
No 1: Fans
Fans are just a no-go in your home. You want the server connected to your router with a LAN cable, not via WiFi. That means the server will be located in a place that’s part of your living area. You don’t want fans there. Fans are noisy, and they move dust around that settles in your server. What I’ve learned: Even large, well-known companies market their products as “fanless” while in reality they’re not. The fans just start their work when there is a certain level of load.
No 2: Storage on just a single disk
The data that you store on a home server is important data. It might be your own personal data that you’re backing up on a server. It might be data that your users have created, e.g. comments to your blog posts. Either way, the last thing you want to risk is losing that data. So, please use mirrored disks when building a home server! Yes, it will cost twice as much for the SSDs or HDDs, but that money is well invested. Use RAID for mirroring, or, better yet use ZFS with RAID-Z.
No 3: Too many vent holes, too much dust
Dust is a serious problem in computers in general, especially if moved around by fans. I prefer cases that are completely closed so no dust can come in. Otherwise, I have to clean the computer every few years. I’m using a vacuum cleaners for that (what else?), but some suppliers have rejected warranty because I used a vacuum cleaner, claiming it can lead to static electricity. So best thing: No holes, no dust.
No 4: Regular RAM
Servers are designed to run for a long time. Bit errors in RAM do occur, and given the long periods of time servers are running continuously, it is just a question of time before that happens. That bit error then gets written to disk, and you will have an inconsistent state on your disk. Depending on your operating system and file system, this can even lead to a corrupted file system and you might lose a lot of data, even though the culprit was just a single bit. There’s an easy way to avoid all that: Use ECC RAM. ECC stands for error-correcting code and will automatically correct bit errors. You’ll need a motherboard that supports ECC.
No 5: Inconsistent virtualization
The “usual” way to approach virtualization is using a type 2 hypervisor. It’s “common” because we’re all familiar with these hosted hypervisors (like e.g. VMware Fusion) from our desktop OS’s. With that approach, you’ll never have a professional server in your home. You’ll run some stuff in the host operating system, and some stuff in the guest OS’s. Probably even some stuff in (docker) containers in the host OS, some stuff in containers in one or more of the guest OS’s. As you create more services and applications over time, and delete others, one thing is sure: You’ll lose your overview real fast. The professional solution is: Use a native hypervisor, a.k.a. bare-metal hypervisor, or type 1 hypervisor. An example of a brilliant type 1 hypervisor is SmartOS or its derivative antsleOS.
No 6: Wrong type of file system
Give ZFS a try. It’s simply the best file system around, especially for building a home server. Lots has been written about it.
No 7: Looks
You don’t want your significant other to oppose your new server! Make sure it looks beautiful, so it can be placed anywhere, including prominently visible spots in your home.
“By seeking and blundering we learn.”
— Johann Wolfgang von Goethe