I currently have a 10-year old off-the-shelf NAS (Synology) that needs replacing soon. I haven’t done much with it other than the simple things I mention later, so I still consider myself a novice when it comes to NAS, servers, and networking in general, but I’ve been reading a bit lately (which lead my to this sub). For a replacement I’m wondering whether to get another Synology, use an open source NAS/server OS, or just use a Windows PC. Windows is by far the OS I’m most comfortable with so I’m drawn to the final option. However, I regularly see articles and forum posts which frown upon the use Windows for NAS/server purposes even for simple home-use needs, although I can’t remember reading a good explanation of why. I’d be grateful for some explanations as to why Windows (desktop version) is a poor choice as an OS for a simple home NAS/server.
Some observations from me (please critique if any issues in my thinking):
- I initially assumed it was because Windows likely causes a high idle power consumption as its a large OS. But I recently measured the idle power consumption of a celeron-based mini PC running Windows and found it to be only 5W, which is lower than my Synology NAS when idle. It seems to me that any further power consumption savings that might be achieved by a smaller OS, or a more modern Synology, would be pretty negligible in terms of running costs.
- I can see a significant downside of Windows for DIY builds is the cost of Windows license. I wonder is this accounts for most of the critique of Windows? If I went the Windows route I wouldn’t do a DIY build. I would start with a PC which had a Windows OEM licence.
- My needs are very simple (although I think probably represent a majority of home user needs). I need device which is accessible 24/7 on my home network and 1) can provide SMB files shares, 2) act as a target for backing up other devices on home network, 3) run cloud backup software (to back itself up to an off-site backup location) and, 4) run a media server (such as Plex), 5) provide 1-drive redundancy via RAID or a RAID-like solution (such as Windows Storage Spaces). It seems to me Windows is fine for this and people who frown upon Windows for NAS/server usage probably have more advanced needs.
For me, #1 is license costs. I’ve taken home some servers which would require me to buy 4+ windows server licenses because 16 physical cores is a number for entry-level servers at this point. For the cost of those licenses, I could almost buy a new server with a similar amount of cores every single year.
Second, the brand new filesystem, ReFS, (which needs licenses), has just about caught up to what ZFS had in 2005. The biggest omission is that 2005 ZFS could be your root filesystem. This is less important on *nix systems where your root can be tiny, but windows insists on storing tons of stuff on C, which still needs to be NTFS. ZFS also has 22 years of production testing and still has lots of development.
Third, I want to use containers, and windows uses a Linux VM to do that, so why not skip the middle man?
Never been a better time to try Linux. Ubuntu is pretty easy to get started with (download and setup a bootable USB, stick it and go) and ChatGPT is extremely good about walking you through any questions. You don’t even need to ask highly technical questions, just tell it your goal and your system.
“I just installed Ubuntu 22.04 on my computer and want to SSH into it from a Windows computer on my network, how do I do that?”
“I want to download a file from my Ubuntu command line, how do I do that?”
“I want to setup a share that both Windows and Linux computers can access over my network, how do I do that?”
“I have a github action runner provided by github that includes a run.sh file that needs to run constantly. I want to setup as a background service on my Ubuntu Linux computer so it will always be running as long as the computer is on, how can I do that?”
It will spit out every command line you need in what order, contents of a .service file, tell you how to monitor it, and so on. You can ask it what each line does, what the parameters mean, etc. It’s like having a mid-level sys admin at your fingertips. It will interpret any errors you get, and tell you how to fix them.
Perfect? Maybe not, but its close for a remarkable variety of tasks. It may be, and I’m not joking, 20 times more productive and time efficient than Google searches, reading stackoverflow posts, reading documentations/man pages and trying to decipher what you really need out of any of those sources.
I’m sure some are too paranoid to ask ChatGPT certain things for privacy reasons, and I would anonymize anything you paste in, probably just be a bit mindful of anything involving permissions (you can also ask what security risks exist doing something). Just normal ChatGP3.5 (free) is extremely knowledgeable about Linux CLI and administration along with common packages and apps you’d want to use.
For server:
docker is linux in a jailed namespace (network, filesystem, process tree, etc jail)
Docker hosted on linux is efficient.
Docket hosted on anything else less so.You could run desktop Windows but if you get the Pro version then you can RDP into from your desktop/laptop. It makes administering it very easy, like working on it locally. .
Personally, I run Ubuntu Server (took a little learning) which I choose to run on Proxmox. You can just run on bare metal. I then just install the media-related packages I use : plex, Sonarr, radarr, SAbnzbd etc
Unless you feel comfortable to set everything up via GUI, Linux can be configured using just the CLI. It’s a major game changer when it comes to OS administration.
For me windows constantly has inexplicable bugs and randomly corrupts itself wheras *nix and *BSD distros ‘just work’. Plus no zfs on windows last time I checked
If you can get away with running hyper-v for your other needs/oses why not?
Do you mean windows server or windows 11 acting as a server.
If you already paid for it sure. But if you’re thinking of getting windows server standard then that’ll cost you vs a free nix based OS.
I always recommend windows to people who want a home server that’s easy to maintain. Homelabbing is more about learning and trying new things out.
A nuc with a nice size external can do a lot and they come with windows not to mention it can run fine free. A lot of the services people run are all using mono to run the windows app. Anyone who has used Windows can install an exe but not anyone is willing to use command line in Linux.
Home server and self hosted are more focused on what you’re looking for.
tldr: the OS is shit, it’s super expensive, keeping it actually secure is hell, it’s nowhere near as good as ZFS-based solutions
The biggest limitation is connection limits. While 2-3 users won’t matter, once you get past 10 connections you will start to get into issues.
Because there is a limit to the max number of client connections a desktop/client version can have. To few this isn’t an issue but when it comes to serving up files or working as a nas this can cause issues.
It’s not so much the Windows is a bad OS for running a NAS but more there are other purposely made OSes for NAS use that have better support for functions that a NAS is expected to runn.
Personally, unless I need Active Directory, I actively avoid MS Server. One of the biggest issues for me, is the lack of Docker support. If I have to run WSL or a VM for Docker support, then I’d rather just run Linux and cut the middleman.
This has been a great discussion here… let me add a few things from my perspective of 30-odd years in the IT space;
- I like to use stuff that’s fit for purpose. Windows 10, Windows 11 and such are desktop operating systems that are fit for their purpose and are very good at it. But they’re less optimal for server-type workloads. Microsoft themselves provide a different operating system for that purpose but it has a different cost model that is a lot higher.
- Access to the GUI is necessary to run Windows. NAS devices and such have the ability to run “headless”; that is no keyboard, monitor or mouse. NAS devices also have a “network first” mentality where everything must be accessible on the network even in the event of a system failure. Recovery cannot require a monitor if you can’t plug one in! Windows (even server) requires physical access.
- Server-focused platforms like NAS provide a lot of capabilities that Windows does not because of the nature of their platforms. For example Synology allows growing your storage easily while Windows requires a lot more technical knowledge to accomplish that.
- Going back to fit-for-purpose; NAS devices provide security that isn’t necessarily there with Windows. Windows has a lot of “moving parts”… in addition to the operating system there are a bunch of ancillary libraries, tools and software that may or may not be used when using Windows as a server. All of these additional tools and libraries provide another potential vector for security breaches especially if not individually maintained thus increasing the maintenance requirements of the system. NAS devices give you the basics of what they need to operate and no more… well that’s until you start adding service packages to a Synology. But even then they will all be managed through the stock package manager and thus updated and maintained, and will still only be as much as you need to get the job done.
As far as my most recent experience with desktop Windows that I find irritating, there are a couple of reasons I still wouldn’t use it as a server platform ;
- Microsoft has a tendency to randomly update your settings, overriding your own settings with what they think are better. A good example that hit me recently is that some recent update overrode my power management settings on a PC I have set up as a headless desktop I then connect to using NX. I had it set to never sleep… suddenly it started sleeping. I had to reset it in order to get back to where I wanted it. This is not the first time this has happened, and I’ve had other issues along these lines. 24x7 isn’t possible when your PC goes to sleep…
- Windows lacks a really solid local filesystem. NTFS is OK and is pretty performant but it lacks a lot of the more advanced features of filesystems from NAS vendors or *NIX systems; ZFS and others have checksumming and scrubbing, most NAS vendors allow scheduled data integrity checks and the like… things like that.
- Software RAID in Windows is acceptable, but is not great. It’s hard to understand when things aren’t working properly and thus plan to replace failed hardware.
Hope that helps :)
You could use windows fine I am sure. It is just the majority of us have other things we like to run and there all developed for Linux or Docker. The other reason people go away from Windows is it uses more RAM and CPU, you are doing so little that it isn’t really that big of an issue for you. If you decide to add anything else or run docker, you will probably see why the majority go with Linux, because you will run into issues.