The backup tool for Windows 8 has changed. If you want to backup just your user files, you want to use File History, which will automatically synchronize your Libraries and backup to an external location. However, File History cannot backup your whole system, including applications. File History is suitable for making backups automatically in the background, even while you are using your computer.
To backup your whole system, you want to create a restore point. This will make a copy of your entire hard drive, including system and application files. This is not automatic. If you need something better, you will need to look for a 3rd party application.
I would not recommend storage spaces, because some issues in it means that it does not appear to provide some of the benefits we would like. Windows storage spaces is not a backup solution. It is a way to store files on multiple hard drives, as if it was a single storage space. It allows you to combine multiple drives (of different sizes) into a single storage space, as well as to resiliently store files (in case one of the hard drives fails). However, if you only have 1 hard drive added to the storage space, the read/write speed change.
This is because RAID increases the speed of read/write by doing these in parallel over multiple hard drives.
If you used multiple external hard drives (at least 2), then the read/write speed may change. However, Windows 8 Storage Spaces does not allow you to control exactly how the data is distributed, and therefore how read/write speed changes directly. You can only control how many drives are available, and the resiliency type (for the same hard drives, a lower resiliency will have higher read/write speeds). To be sure about read/write speed, you would need a formal RAID configuration - however that requires hard drives of equal sizes. In addition, it appears that Storage Spaces is actually slower for most configurations, than a bare hard drive. Obviously, writing is going to slow down. However there appears to be no improvement in read speed (where we would expect an improvement).
For more information on Storage Spaces, check this article.
File History and Storage Spaces can be used together to backup data resiliently.
Maybe using Btrfs send / receive could be made to work, but it is not so simple, because to send a filesystem, a read only snapshot must first be made, and then the name of this snapshot is used on the external disk. I don't think there is a way to receive the root filesystem, at /
This is the best solution. I use snapshots to make fast incremental backups of my servers. You can back up the root subvolume just like any other, but I don't think you can receive at the root. More to the point, you shouldn't do so, because that prevents you from enjoying one of the benefits of snapshotting: incremental backups. Done properly, it will only send the data that has changed and consume only the disk space for the changed data.
This script runs as a cron job and takes a daily snapshot of my root partition, then uses btrfs send
to send an incremental copy to my backup partition. The script as written uses pv
, but if for some reason you don't want to install it, you can simply remove pv
from the middle of the pipes.
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
date=$(date +%Y-%m-%d)
# the path to the partition mount point that we are backing up
source_partition=/
# where backup snapshots will be stored on the local partition
# this is needed for incremental backups
source_snapshot_dir=/snapshots
# where backups will be stored on the backup drive
target_snapshot_dir=/mnt/media/backups/root
if [ ! -d $source_snapshot_dir ]; then
echo 'Creating initial snapshot...'
mkdir --parents $source_snapshot_dir $target_snapshot_dir
# create a read-only snapshot on the local disk
btrfs subvolume snapshot -r $source_partition $source_snapshot_dir/$date
# clone the snapshot as a new subvolume on the backup drive
# you could also pipe this through ssh to back up to a remote machine
btrfs send $source_snapshot_dir/$date | pv | \
btrfs receive $target_snapshot_dir
elif [ ! -d $source_snapshot_dir/$date ]; then
echo 'Creating root volume snapshot...'
# create a read-only snapshot on the local disk
btrfs subvolume snapshot -r $source_partition $source_snapshot_dir/$date
# get the most recent snapshot
previous=$(ls --directory $source_snapshot_dir/* | tail -n 1)
# send (and store) only the changes since the last snapshot
btrfs send -p $previous $source_snapshot_dir/$date | pv | \
btrfs receive $target_snapshot_dir
fi
echo 'Cleaning up...'
# keep the 3 most recent snapshots on the source partition
ls --directory $source_snapshot_dir/* | \
head --lines=-3 | \
xargs --no-run-if-empty --verbose \
btrfs subvolume delete --commit-after
# keep the 28 most recent snapshots on the backup partition
ls --directory $target_snapshot_dir/* | \
head --lines=-28 | \
xargs --no-run-if-empty --verbose \
btrfs subvolume delete --commit-after
(Note: I've adapted the script somewhat to make it into a general solution, and haven't tested it as written. Please feel free to submit revisions if necessary.)
Best Answer
There are a few possibilities to fix a messy backup solution.
For a continuous mirror, RAID 1 is your best bet. If you're constantly accessing the drive, an internal drive would perform much better. The only problem is you want to keep moving your drive away in case of a fire....
Maybe periodical Full backups with more frequent differential and incremental backups is better for you. The backup frequency is dependent upon the value of your data. If in a single week, you feel you create a substantial amount of valuable data, your backup frequency should increase. Remember, you can schedule backups manually as well after you've done very important work. DriveImage XML is a great full backup tool. For incremental backups, Freebyte backup is excellent (DriveImage XML may also have this feature). The point I'm trying to get across is, you can make a full backup every once in a while (say every 2 weeks) and store that somewhere else, and small incremental backups in between. Incremental backups take up less disk space than full backups, and are faster to perform.
Something else you might be interested in is syncing. You can make a full backup every 2 weeks or so with the registry and all, and then maybe just sync your new documents over the network to a NAS in another room. Synctoy is excellent for this and easy to configure.
Use whatever combination works best for you to ensure your data is safe and backed up. Just remember, more backups require more space, but space comes cheap, so backup as often as you can! There's an old saying that "Your data doesn't really exist unless it's saved in at least 3 places", which basically states that copies can easily be destroyed and lost. I try to keep true to this saying, and maybe others should too. ( Not mentioning any names! :) )