I want to install a cheap NAS to backup and keep some files locally in my house.
What is a NAS?. NAS is a machine to serve data (videos, documents, backups) using the network but it also could work to serve other purposes, such as audio and video streaming, among other tasks.
There are several NASs devices in the market, such as Synology, Qnap, etc. However, they could be quite expensive, commonly over $500 without disks.
So, what is the alternative? This:
Buy a cheap and used computer (an i3 from 10 years ago). I purchased one for $100 but I could go as low as $50. It mustn't be a slim case or mini factor unless you want to use only one disk. It also must have a network port, 1gigabit or higher. 2.5 gigabit is ideal.
Get or reuse some hard disks, ideally if you have them in pairs. I have 2x4tb and 2x3tb. They are not SSDs but I need capability, not speed.
My computer comes with Windows 10, and while Windows 10 could do the job, I decided to try with Ubuntu Server
Ubuntu as NAS
I installed Ubuntu server and later I configured the GUI. At first, I tried slim+Gnome but I found that Gnome is horrible, it s***cks, so I decided to install KDE plasma and it is much more usable.
I don't have much trouble installing the drivers, after all, my machine is old, so the community already developed most of its drivers.
Then, I installed SMB following the official guide
Install and Configure Samba | Ubuntu
But, I found my main problem, I forgot that Linux does not work well with NTFS. Linux uses different kinds of partitions, such as EXT3, EXT4, etc. So, I should migrate all my data 2x4tb, 2x3tb (16tb) to somewhere else, format to ext4 or other kind of partition, and copy the data back?. That will take a lot of time, and space.
Also, I found that some energy-saving features of my PC are not specifically available on Linux and I want to save as much energy as possible.
So I think...
Do I really need Linux at all?
Well, not really. I only want to serve files and SMB is more than enough, and if not, NFS.
Also, Windows Server could do software raid (mirror) which is more than enough for the job.
File Sharing options
There are different ways to serve files locally and remotely
SMB (samba). It is natively compatible with Windows but it also runs in Linux and MacOS, i.e. it runs everywhere. I don't need Linux to have a SMB server.
NFS, is another way to serve files, it works in Linux, MacOS but is also available on Windows (only on Windows Server).
ftp/sftp, it is another alternative but it is slower in comparison with SMB and NFS. It could be installed on Windows but not natively.
iSCSI is another way to serve a file, it is fast but it is limited to sharing a partition and only to one customer.
In my case Windows Server is the solution, it fits all of them but generally, SMB is more than enough.
Windows Server
There are 4 alternatives to have Windows Server.
Buy a copy but it costs as much as $300, and only the basic version. Meh
"Seven Sea, Jack Sparrow" Version (wink wink)
Install the evaluation version and rearm it every 180 days. It is possible to use it for free up to 3 years.
Or buy a "cd key" for cheap, i.e. around $5-$30 bucks.
ps: If you are running a business, then your only option is to buy the expensive version.
I decided on Windows Server 2019 because it is the most up-to-date, but also it is compatible with my machine, I don't know if Windows Server 2022 will work but it looks more power-hungry and my machine is 10 years old. Windows Server 2016 would also work but as far as I can remember, Windows Server 2019 updated the SMB stack.
Why Windows Server?
Linux has some perks, such as running with low resources, but my machine even when it is old, it has 8gb of ram, and it is an i3.
Linux could run as low as 512mb of ram but generally, it runs with 1gb or more of ram.
Windows could run as low as 512mb of ram (without GUI) but the ideal is 4gb of ram. So I have 8gb, so I have plenty of ram. Even 4gb would do the job.
In Amazon terms, 8gb is around a m7g.large instance. So in terms of cloud, my machine is not small at all.
It is my machine running: (maybe I could lower the use of RAM of the GPU because I am not using it much)
Performance
To increase the performance, I disabled the next service's
antivirus: out. This machine will not run any other program. It affects the performance of the disks.
windows update: out. This machine will not be connected to the Internet. And I could do manual update once in a while, I don't need Windows constantly updating my Machine.
Several unrequited services: out.
Results
- I can copy/move files as fast as 88MBps. In theory, the gigabit LAN could 125MBps, but with the overhead and other considerations, a real maximum number is around 90-100MBps, so it is getting to the limit.
Next
The next step (in a near future, I hope) is to try a 2.5gigabit lan. Why not 10gigabit?
Price
I doubt that my hard disks could achieve that speed without RAIDing them
Also, I wish to try NFS but I doubt that it will show a big difference with SMB.