Backup to Synology NAS using rsync or NFS and hardlinks

backupnasnfsrsync

I want to backup data from a Windows (Vista) computer to a Synology NAS (210j). The NAS supports FTP, SMB, NFS and also allows a rsync daemon to be set up.

I want to backup different folders to the NAS, but I'd prefer to use the hardlink method to save diskspace (like this script does). With this method, a new folder is created for every backup, but if the file already exists on the target, only a hardlink is created.

The filesystem on the Synology device is ext3, so I probably can't use rsyncbackup, as it is made for NTFS. Is there another way to do this backup with hardlink support?

Best Answer

If the filesystem on the Synology device is ext3, it does support (in principle) hardlinks. This is the first requirement.

If you backup from a Windows computer however, hardlink creation must also be exposed (via SMB extensions) in such a way, that hardlinks can be created via the Windows API. This is the second requirement. Note that you cannot use Windows' mklink to test that, since mklink will check wether the drive is a local one and fail, even if hardlinks can actually be created via CreateHardLinkA.

Basically it depends, wether the SAMBA configuration on Linux has Unix-Extensions enabled. If this is the case, it should work. From my experience: Most typical NAS solutions like those from Synology and QNAP actually do support this, and work out of the box.

Since you want to copy from the Windows computers to the NAS, you also don't have to set up an rsync daemon on the NAS. Backups are started and run from the clients with the scripts you mentioned.

Shameless self plug: Instead of using the ancient scripts from German c't magazine (the links you provided), you could also use YAHB - Yet Another Hardlink-based Backup Tool instead.

DISCLAIMER: I'm the author. YAHB does not rely on rsync via cygwin and is thus usually faster when copying files. It also supports copying files currently in use using Windows Volume Shadow Service.

Related Question