Christmas 2022, I had a perfect plan for a trip with my girlfriend to enjoy our first-ever white Christmas in the busy downtown of Chicago. However, it was way too white… a white-out and frozen roads with a historical blizzard stopped us from that so-called perfect Christmas. To turn over the disappointment, I planned and built a server.
Logically, I cannot call this upcoming masterpiece is my first ever server because I used XAMPP for some of my school projects.
XAMPP is a free and open-source cross-platform web server solution stack package developed by Apache Friends, consisting mainly of the Apache HTTP Server, MariaDB database, and interpreters for scripts written in the PHP and Perl programming languages.
XAMPP basically turned my personal computer into any server of my choice. However, I had never had a standalone server before, so I did a ton of research and built one during the winter break of 2022. This server will be a budget build and will run a hypervisor on the bare-metal.
A hypervisor is a type of computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine.
With that said, I could create a whole home-lab as type 1 virtual machines and containers on just one server. Moreover, this machine allows me to create and try out many different operating systems as I wish.
For RAM and Storages, because I was planning on having a NAS (Network Attached Storage) as a virtual machine, I specifically picked the RAM sticks that have ECC feature and NAS specialized HDDs..
Error correction code (ECC) memory is a type of RAM memory found in workstations and servers. It’s valued by professionals and businesses with critical data for its ability to automatically detect and correct memory errors,tom’s HARDWARE
I planned to build a server with dual sockets so I could get a high core count. The Xeon family has the feature called Hyper-threading, which allows two CPUs to communicate and work with each other. With that said, I got two of the Intel Xeon E5 2640v4, which have 10 cores each, and my set-up would have 20 cores, which is more than perfect for virtualization. About the motherboard, I got an unnamed savage motherboard from China, but it supports dual LGA 2011-v3 sockets. This motherboard turned me down later on when I finished building everything and after two days of troubleshooting. I found the problem was one of the DIMM would not register no matter how I tried it. So I came up with plan B.
I replaced the motherboard with a MACHINIST X99, which has much better build quality but only a single socket. I ended up using only one of the CPUs. However, 10 cores are enough for me right now, and will allow me to upgrade the system later on.
This is the specs of the final server:
- CPU: Intel Xeon E5 2640v4 2.40 GHz with 10 cores 20 threads
- Motherboard: MACHINIST X99 LGA 2011-V3 ATX
- RAM: 4x Samsung 16Gb DDR4-2133P ECC Registered Memory
- PSU: ARESGAME 550W
- GPU: Gigavino GT730
- Micron 256GB M.2
- 2x Western Digital 4TB WD Red NAS HDD
- Sandisk 1TB SSD
- CASE: ZEUS GAMDIAS – a cool compact ATX one
- COOLING: ID-COOLING SE-214-XT
Everything works flawlessly with these specifications. I chose Proxmox as the operating system for this machine. After completing a number of configuration steps, I now own a hypervisor machine. This will serve as the foundation for my upcoming home-lab.
Some challenges I encountered during this project were the large number of CPU options but a lack of comparison between them, as well as the difficulty in finding a good motherboard. Most of the compatible and affordable motherboards I found rarely had any documentation for them. Picking parts that were compatible with each other, assembling them together, and getting the server to start running saved my Christmas.
TODO: pictures and update