Saturday, February 12, 2011

Comparison of Windows Backup Software

After switching back to Windows, one of my biggest concerns was how to most efficiently back up my data. In Linux, I used the utility, "rsync", which incrementally syncs the source files to the destination. There were various options for it to have a high level of control over the backup. It was also very fast.

My default method for backing up files in Windows was to continue using rsync, but now in Cygwin, a Linux-like environment for Windows. It was usable, but there were various issues with Windows permissions which would cause certain files to not be copied, and the program does not seem to be very optimized for NTFS file systems. It is pretty slow. Now, I also do a backup of my Windows files to a Linux server, and for this, rsync using Cygwin is the only way I would know to do it, but for my local NTFS to NTFS backup, this method was getting old.

My main desire for a back-up program was to do essentially a one-way sync to the destination. I want to mirror a copy of my files on my working drive to the back up. I want it to be very fast, and I want it to be able to figure out if a file is missing on the backup drive and copy it back. I do not care about staged backups because I really just want to protect myself from drive failure. Things that I want to remember changes for will be staged using things like Git or other version control software. I do not really need version control for my filesystem overall. It turns out there are some pretty nice, free, backup tools for Windows. The four I used were Comodo Backup, Cobian Backup, GFI Backup, and EZBack-it-up.

Note: The "source" drive here refers to the working directory containing the files you want to backup. The "destination" or "backup" drive refers to the one that you want to backup to.

Comodo Backup - 1/5
I found this program to be way too big and complicated. It has a much more lengthy install than the others and has a ton of so-called features which I was not interested in. It was not immediately obvious to me how to set up a backup like I wanted so I quickly dropped it to look at other programs.

Cobian Backup - 2/5
I really like the interface of this one. It was very simple and intuitive to use. You could either do a full backup which would recopy all of the files or an incremental backup which would only copy over changed files. Clearly, incremental backup is the way to go. However, this program had a fatal flaw. It could only track changes on the source drive. That means, if for some reason, you manually deleted a file on the backup drive, but it was still on your source, the incremental backup would not recopy the file. Chances are, you won't be directly manipulating files on the backup drive, but this to me left too many chances open for incomplete backups. Also, doing a full copy of dozens of GB of data simply would not be an option and would take way too long.

GFI Backup - 4/5
This program was pretty good. It has a backup mode and a sync mode. However, the sync is two-way so that means if the backup drive is changed, it will update those changes to your source drive. Again, in principle, you shouldn't be manipulating files on your backup drive, but if you did, you could find yourself losing files on your source drive. It basically just synced them together with the most recent changes to either one. There was no option to make this just a one-way sync. Fail.

The backup option did exactly what I want. It would directly sync all of the files of the source drive to the destination, with the option to mirror them by deleting extra files on the destination or adding files that were manually deleted to the destination. However, it was slow. It took about 25 minutes for it compare all the files on both drives and sync them up. This was about 100 GB of data. This was a usable solution and probably similarly slow to the Cygwin rsync option, but I felt there had to be a better option. It turns out there is.

EZBack-it-up - 5/5
This is a program which was written a while ago and has not been updated since 2004, but it does EXACTLY what I wanted it to do and does it blazingly fast. It will quickly find any changes between the drive and do a one-way sync of the source to the destination. When I say it is fast, I mean FAST. For 100 GB, it will check the two drives against each other within about 10 seconds. If one letter is changed in a text file deep in your file system, it will update it on the destination. I was absolutely amazed with this program.

It basically seems to barely read the drives, and I am assuming it is somehow directly accessing the journal associated with NTFS file systems and compares them and updates the destination. All of the other programs seemed to read every single file on both drives to compare them. This backup program almost seems too good to be true, but so far, it seems to really work perfectly. I will probably check it over then next few months to make sure it is capturing every change, but I feel like I can probably use it with confidence.

It is very easy to set up the backup, and while it does have some more "advanced" features like setting up a backup schedule, it is a very simple and lightweight program. The only problem with it is that its log files don't work. This is due to permission on the places where it stores the log files. The program just doesn't have permissions to write them there. I tried changing the permissions but could not get the program to write log files unless I ran the program as an administrator. I do not want to this however, because then the ownership of the files is messed up. If anyone knows a fix for this, please let me know!

In conclusion, I had simple and specific needs for backup software, and I found a clear winner. EZBack-it-up really impressed me and is totally free. The developer has plans to update it at some point, but other than the logging issue, the program is pretty much perfect for my needs.