NAS to NAS sync using a virtual machine

Discuss new features and functions
Posts: 21
Joined: 25 Dec 2017

David Morrow

This certainly won't apply to everyone that owns a NAS but I found that it really worked well for me.

The really short version of a somewhat longer story :

I have two Network Attached Storage (NAS) devices on my home network. A Synology and a QNAP. I would have thought that copying, moving, syncing files between the two would be simple. After all, they both have some great built in backup and sync apps. I never did find a way to sync the two with anywhere close to the flexibility that I was used to having with FFS. I ended up syncing the two by running FFS on my desktop and scheduling a nightly and a weekly sync using Windows Task Scheduler. It worked fine for several years but I thought that running all that traffic through my desktop was a bad idea and completely necessary.

I have recently been messing about with virtual machines. Both Synology and QNAP make it very easy to host a VM. In a nutshell, there are two ways that I know of getting a VM; by creating the ISO file from an existing licenced PC that you own, or by downloading it from Microsoft and paying the licence fee. I chose to create my own from my Windows 11 laptop using a free VMware program called vCenter Converter.

Once I had installed the Windows 11 virtual machine on my QNAP and gave it login rights to both NAS, I installed FFS and created a task in Task Scheduler on the VM. Because the NAS's are both running 24/7/365 there is no need to turn on my desktop to sync / backup one NAS to the other.

It was a bit of work up front and a great learning experience, but it's been a bulletproof solution right from the beginning.

LeoW

Great info!

Another option for direct cloud to cloud sync is a utility called Rclone. You can run it on your NAS, and won't need a VM. No Windows task scheduler though. Your solution takes some work, and for others perhaps a Windows license. You would need to use cron.

You can use cron to schedule rclone sync at a certain time. You can create a bash script that contains the commands and then schedule it using cron.

0 2 * * * /path/to/rclone.scr

This command will run the script every day at 2 am. You can replace /path/to/rclone.scr with the actual path to your script.