The articles in this series:
Before deploying home server, difference between GPU hiring and Colab or Kaggle
Selection of home server chassis and purchasing advice for server components
What Operating System should you choose for your home server and why
This issue is the third installment on setting up a home server, and likely the last. This time, we’ll discuss the differences between various server systems.
Basic Introduction
Windows Server
First up is the Windows system, but the version here—Windows Server—is quite different from the regular home and student editions we use daily. As we know, Windows is a very powerful system. The more components it has embedded, the more frequently it needs to be restarted. For a server that may not be shut down even once a year, stability is the primary concern. Microsoft is aware of this, hence they have released a version called Windows Server. Windows Server 2022 is actually based on Windows 10 but cuts down on basic animations (this is optional, and you can choose not to use a GUI at all, minimizing your installation) and includes enterprise-level management features.
Linux (Ubuntu)
Linux is the most frequently used system across all servers. There are hundreds of Linux distributions, such as Fedora, Arch Linux, CentOS, etc. Among these, I often use Ubuntu. Each Linux distribution has some slight differences, but stability is guaranteed. As is well known, Windows consumes a lot of system resources, but Linux is extremely streamlined, so even a cloud server with just 1 core and 512MB of RAM can run smoothly. Ubuntu offers two packages: Ubuntu Server and Ubuntu Desktop. You can think of them as one with a graphical interface and one without, though they have slight differences under the user root directory. My advice is that if it’s a cloud server, go straight for Ubuntu Server to save on costs. More CPU cores and memory are expensive, so it’s essential to save as much as possible for your applications. For a home server, however, I lean towards Ubuntu Desktop; even if you don’t use the graphical interface daily, you can connect to the server via SSH.
Virtualization Systems
As the name suggests, a virtualization system is one that can host other operating systems in virtual machines. Here, I’ll introduce two virtualization systems I have used: ESXI and PVE, the former being enterprise-level software, and the latter based on Debian’s KVM in Linux.
ESXI
ESXI is developed by VMware for enterprises to deploy multiple systems on a single server. This system is paid, but individuals can use it for free for a while before needing to purchase a genuine activation code.
Let’s discuss the advantages first:
- Produced by a major company, so stability is assured.
- Widely used, so any problems can easily be googled for solutions.
- Good support for manufacturer servers, with specialized firmware to support servers.
However, there are significant downsides:
- Due to close cooperation with server manufacturers, driver support is problematic.
- Poor scalability.
- High cost of genuine software.
In short, this is a highly stable system on which you can deploy most of the systems you want, but it greatly depends on whether the server’s network card and other components support passthrough use.
PVE
Since this system is based on the Linux distribution Debian, it retains almost all the advantages of Linux. If there’s an issue with hardware compatibility, don’t worry—if you love tinkering, you’ll always find a solution. However, this leads to a significant drawback: the solutions to problems are usually very complex, which is not ideal for beginners. From what I’ve seen among people I know, those using PVE tend to experience more crashes.
But it’s undeniable that this system has the highest playability and scalability.
System Selection Advice
This is very subjective and personal.
Everyone has their preferred or suitable system. Here, I’m just briefly categorizing:
For someone who wants to turn their server into a super-performing workstation, I recommend using an external monitor with the Windows Server system. Anyone familiar with Windows 10 or higher will find it very easy to adapt. Plus, you don’t even need to shut it down; you can let it run non-stop for downloads or rendering, which is more convenient than a personal computer.
If you are setting up a server for machine learning or to experiment with AI, I personally think Ubuntu Desktop is your best choice. Most machine learning models and codes are built on Ubuntu systems, and the robust community support provided by Ubuntu means you can quickly solve any issues by searching Google.
For those who love to tinker and want an “All in One” experience, virtualization systems are definitely designed for you. Sure, you might argue that earlier systems could also use virtual machines, but managing and maintaining them via Docker or VMware’s desktop products can be quite cumbersome. Importantly, you need to stay constantly connected to your monitor. However, both ESXI and PVE offer web-based management interfaces, allowing you to manage and access your virtual machines through a webpage.
Conclusion
A home server is a highly engaging project that can greatly enhance your work and personal life by deploying numerous open-source projects. Of course, for tech enthusiasts like us, the joy of troubleshooting and achieving the desired results is incomparable. The feeling of dopamine and endorphins releasing when you finally get it right is something others may not understand.
Ultimately, the choice of system depends heavily on your specific needs, your willingness to deal with potential issues, and what you ultimately want to achieve with your home server. Each system has its strengths and weaknesses, so choose the one that best aligns with your goals and comfort level with technology.