Getting older, not necessarily wiser!
Today I will talk about software choices, since my hardware choices are still somewhat uncertain (last post). Since my initial work will be virtualized, I can test my software choices before locking down the hardware.
The first and most important software choice for this project is the Operating System (OS). To a large extent, this will determine the trajectory of the entire project. Both future software and hardware choices. So it is an important consideration.
We need to take a look at what is available, and compare it against our needs. There are also several considerations outside of our needs that also play into this choice.
When it comes down to the big picture, there are not a lot of OS choices to look at. We have ruled out NAS appliances, and any NAS specific OS. So that leaves only a few choices. And a lot of these we can eliminate right off the bat.
IOS: This OS runs on phones and tablets manufactured by Apple. Because of the limited hardware choices, and the lack of easy to use appropriate applications, it is not even a contender. To be fair IOS was not designed for this purpose. And in the interest of full disclosure, when I was still working, I hated my work Iphone because of its locked down nature. So my views here may be somewhat tainted.
Android: There are suits of application out there to turn your android phone or tablet into a server. So this is a possibility. And while Android is written for phones and tablets, there are unofficial versions that can be run on standard computer hardware.
So while possible, the target hardware is generally under-powered for a full time server. And the PC version is not officially supported.
MAC: There are a lot of built in features and third party products that could turn an old MAC into a server. The problem is that it is an old MAC. You do not have much of a choice in hardware. And MAC OS generally only comes on MAC computers.
Plus MAC OS suffers from some of the same problems as IOS, in that it is locked down. And MAC Computers are ridiculously expensive for what you actually get. Also in the interest of full disclosure, I never liked using a MAC when I had to do it for work, and most of my latter experiences come from fixing Macs for other people who were talked into buying one, and found the OS was not that easy or it was just not what they thought it would be. So for me no MAC.
Windows: While Windows has server versions that are ridiculously expensive (Microsoft licensing schemes and costs are a joke), your standard Windows Desktop can be turned into a server. I have done this with good success on more than one occasion. So with a couple of caveats, this is a viable option.
Specific Windows Desktop versions will only be supported for so long. And the upgrade path can tend to be far from a clean user friendly experience.
Windows likes to phone home. Any modern version of Windows will send telemetry back to Microsoft. Just try doing an install without creating/using an MS account (it can be done but feels like a hack). This “Feature” matters more to some people than to others. If you are one of those who does not care, then this will not be an issue for you. However if you are concerned about the privacy of your server, then this might be a deal breaker.
Windows updates always have the possibility of bringing your server to its knees for some random period of time. This is not a remote possibility either, most windows users have experienced going to their Windows computer and meeting the dreaded update screen. Plus I can think of several occasions when a windows update has flat out broken my computer, requiring manual intervention to correct.
Windows OS can make your hardware obsolete and unusable without some hacking. Does everyone remember the brouhaha over Windows 11 not supporting hardware that was only a few years old?
Some might ask, does not windows require a keyboard and mouse? The answer to this is no. In many cases you can do a remote desktop on another computer. If you are reading this, I assume you are technically inclined, and can figure out remote desktops on Windows. However, unless you are using fairly high end hardware, this has always seems to be a bit clunky and slow to me.
And least we forget most malware, virus, worms, and ransomware are written for Windows, a sit is the most used in desktops and hackers get the most bang for their efforts.
Because of the above caveats, I will not be using Windows for my server. For others this might be a reasonable choice. So do not count it out if that is your preference.
Linux/Unix: This choice will tend to require a bit more in the way of technical knowledge. If you look at any NAS OS out there, you will likelty find it built on top of either Linux or Unix. For example FreeNAS is built on top of BSD (a version of Unix) and Open Media Vault is built on top of Debian (a version of Linux).
While many like to claim that Unix/Linux will run on old hardware, I have had the chance to prove it will not run smoothly on very very old hardware. So there is a limit to running on really old hardware without doing a lot of OS hacking. However if your hardware is less than ten years old, it will probably run Unix/Linux without any problems.
There is a reverse problem also. Since Windows is dominant in the Desktop market, and that is what manufactures work towards (to their detriment and loss which they never seem pot understand). Some really new hardware may not have driver support in Unix/Linux yet. It can take up to a year for driver support to materialize sometimes. And in the case of rare items with small distribution, it might never happen.
Some distributions make it somewhat difficult to install proprietary firmware, which some hardware needs. This has to do with the Open Source Philosophy. You may or may not care about this. But lots of distribution maintainers do.
Another Linux/Unix issue, since we are talking servers here, is the learning curve. Most servers are not big on the Graphical User Interface (GUI). At some point you will need to dig in and learn the command line if you are going to build your own server from scratch. This is a positive or a negative depending on who you talk to and who you are. While a GUI is generally easier to use, the command line tends to be a lot more powerful.
For this series, I am selecting Debian 12 (Bookworm). At the time of this writing, release is still a couple of months away and Debian 11 (Bullseye) is the current stable version. But by the time I get to the actual hardware part, Bookworm should be the stable release. So I might as well start working with it.
Some might question the use of Debian. But for a server build I am looking for rock hard stability more than bleeding edge software. And this is the area where Debian excels. Plus I would estimate more than 50% of popular Linux Distributions in use today are based on Debian.
One may ask why not Arch Linux. I use Arch for my desktop, but have noted some updates can cause system issues. It is the nature of the rolling release. And I do not need that instability in a server.
Some may also ask why not Fedora Linux. The main reason is that I have had many issues with installing and configuring Fedora in the past. I know some people love it, but I am not a fan.
Some other popular distributions may be more up to date, but they have pedigrees, and I prefer to go to the source. Manjoro is an Arch based Distribution. Ubuntu and its clones are Debian based Distributions.
We have looked at a variety of alternatives for this projects OS. I have settled on Debian Linux for my build. Some of my reasoning is based on past experience, and some of it based on functionality. You will need to conduct your own review and decide what OS you want to use.
In the next post I will walk through setting up Debian 12 on a Virtual Machine (VM) in VirtualBox. This will be pretty straight forward, with the only unusual item being the creation of multiple virtual storage drives for the VM.
Hodgepodge 3xNAS Part 2 Operating System