Benchmarking Software NAS solutions (Windows Server, OMV, FreeNAS, Synology)

I have an older Synology NAS at home, and I am planning to replace it with a custom built NAS. To decide which system to put on it, I have setup 5 different NAS solution in a virtual environment and measured how fast they are. There were two prerequisites to the candidates: they should support WSD and SMB Multichannel.WSD stands for Web Service Discovery, and it is needed for Windows clients to show the NAS in File Explorer/Networks, SMB Multichannel is a technology in which files are sent over multiple ethernet links parallelly. SMB Multichannel is very useful, because just by connecting your NAS and Desktop PC with two LAN cables to the switch you can almost double the file copy speed.

Setting Up Windows Server

Setting up Windows Server was straight forward, it supports WSD and multichannel by default. I had some problems with disabling the password requirements, which one of my users is not meeting, but after some search in Google I could find, that I have to disable it in the local policy. 
Windows Server has good NAS features like DFS (to combine more NAS servers into one naming schema), Deduplication (automaticaly save the space of duplicate files), Shadow Copies (creating regularly local backups, accessible to users from file explorer) and easy access right management (again from within file explorer).
Windows is not a NAS system, but much more, and instead of a relatively simple WEB interface, it has a complete GUI. For the NAS functionality this is not an advantage, because the needed settings are spread all over the different programs, but it can be an advantage, because you have the possibility to run certain tasks centrally (e.g. mass file copy) without having to use a client computer.

Setting Up Open Media Vault (OMV)

OMV was also easy to set up, by default it had the WSD working. For multichannel, I had to add the following line to the SMB/CIFS service Extra options:

server multi channel support = yes

I have tried OMV some years ago and I remember that it had a lot of fancy plugins, but the new version did not had these extras, so I was a bit dissapointed.

Setting Up FreeNAS

FreeNAS was also not difficult to set up. To enable WSD and multichannel, I had to add the following lines to the SMB service configuration Auxiliary Parameters:

server multi channel support = yes
enable web service discovery = yes

The second is not a standard Samba parameter, it is handled specially by FreeNAS.

FreeNAS has a very professionally designed WEB interface, and the whole systems feels very professional. It has also a lot op useful plugins.

Setting Up XPEnology (Synology)

There is a possibility to install a Synology system on a standard x86 computer. For testing purposes I have installed this system also. This was the most difficult of all, because the latest version was optimized for some Intel processor and on my Ryzen processor it simply crashed. It took a while, till I realized, that I should start installation with an older version, and then I can upgrade it to the latest version.

WSD can be enabled in the Control Panel/File Services/Special/WS-Discovery checkbox. To enable multichannel, you have to log in to the box with SSH and edit the /etc/smb/smb.conf file and add the line:

server multi channel support = yes

Then restart the NAS or the smbd service.

Synology is a very user friendly and still very capable system, it has plenty of plugins, and you are even able to run virtual machines or container on it.

Test environment

The test environment is depicted on the next picture:


I had the virtualization environment, connected with 10G ethernet to a switch, where I had my desktop PC connected with 2 Gigabit ethernet cards and I had a test machine connected with 10G card again. The test machine is a very old machine, with legacy rotating HDD inside, so I do not expect it to use the full 10G of the network interface.


Tests were very easy, I copied a 1 Gigabyte file from client to the server with robocopy, then deleted it locally and copied it back. Robocopy displays the speed of the total copy, I used that as the benchmark.

After copying I checked if multichannel was used with the following command on the client machine:

Get-SmbMultichannelConnection

Test results

In the test results, the native measurement is between the virtualization host and the client, to see what is the possible maximum.



Conclusion

This was a very short and not too accurate test, I just measured the performance in copying big files.

From my earlier tests, I can see that when measuring the pure network speed of the virtual guest machines these is a significant difference by operating system, so that could also influence the results. The 1 gigabyte test file is also small, it can happen that it is kept in the cache speeding up the subsequent tests.

But in spite of these facts, from these test I see that OMV is the fastest. I expected Windows server to win, but actually it was the slowest, and FreeNAS had good performance but not as good as OMV. XPEnology was not the top performer, I believe that Synology is optimizing its SW to their HW, and it is not so efficient on a general HW.

What will I choose? 

I wanted to go for a Windows Server, because of the deduplication, and the GUI which could be used to copy files in the background, but it's performance in this environment is disappointing. FreeNAS is a very nice system comparable to a Synology NAS,  but I am afraid of the zfs file system (I use to have a lot of restructuring of disks: adding, removing reorganizing etc.) I am aftraid that at a point I get stuck, and I need to create a copy of all the data to restructure, for which I have not enough disks. I have also less experience with BSD, so for me it is more difficult to do hacking at the operating system level. The new version of OMV looks a bit unprofessional at the moment, but it is based on debian, so most probably I will go for an Ubuntu Server with Webmin, and do all the configurations manually.

(I did not mention XPEnology, but I do not believe that it should be used in a live environment.)

Comments

Popular posts from this blog

Setting ethernet interface speed in /etc/network/interfaces