First, CrashPlan is awesome. But since this is the time of year when all of the children post their Christmas wish lists, I figured I’d list a few features that would be cool to see in an upcoming release. In no particular order:
Wish #1: Prompt to Replace an Existing Computer
During the past couple years of using CrashPlan, I’ve needed to reinstall CrashPlan a number of times. Most often, it has been to migrate from one laptop to another. Other times, it has been after reinstalling an operating system. In either case, it’s a relatively straightforward procedure to re-install CrashPlan and replace an existing host:
- Download and install CrashPlan
- Sign in using your existing username and password to set up your new computer
- Copy your old GUID from the list of computers on CrashPlan’s website
- Double-click the CrashPlan logo to enable the super-secret command line
- Type guid [paste the old GUID]
- Re-launch the CrashPlan desktop interface
- Log back into the CrashPlan website to remove the new, unused computer GUID
I have had no problems performing this procedure, but it’s understandably daunting for those who could care less about GUIDs and terminal commands — that is, a majority of the human race. It would be nicer to see process similar to the following:
- Download and install CrashPlan
- Sign in using your existing username and password to set up your new computer
- CrashPlan asks if you’d like to add a new computer or replace an existing computer from a selectable menu
Based on the answer to the question, CrashPlan can either generate a new GUID and setup the client with defaults, or it can set the GUID to match that of your existing computer and inherit all of the appropriate settings, without any unnecessary command-line gymnastics.
Wish #2: Improve Stability of the Linux Desktop Client
One of the reasons I love CrashPlan is that they’re very dedicated to bringing an excellent backup tool to many platforms. For some reason, however, the Java-based desktop client for Linux tends to by flakier than its Mac and Windows counterparts. Maybe it’s just me, but I’ve seen this instability on at least a dozen Linux servers. First, navigating through the restore interface is slow and tends to cause the CrashPlan GUI to crash with Java OutOfMemory errors. One workaround I’ve tried has been to increase the size of the Java heap allocated for the desktop client by editing /usr/local/crashplan/bin/run.conf and increasing the -Xms and -Xmx values, as below:
GUI_JAVA_OPTS="-Dfile.encoding=UTF-8 -Dapp=CrashPlanDesktop -DappBaseName=CrashPlan -Xms256m -Xmx1024m -Dsun.net.inetaddr.ttl=300 -Dnetworkaddress.cache.ttl=300 -Dsun.net.inetaddr.negative.ttl=0 -Dnetworkaddress.cache.negative.ttl=0"
While this tends to fix most of the issues, selecting files for restore still tends to be an arduous process. To get around the clunky client completely, I’ve resorted to running the desktop interface locally on my Mac or Windows workstation, and connecting to the destination server using ssh. Despite operating over a network link, the interface is much more responsive and stable…
Wish #3: Central Management Client
… which segues quite nicely to my next wish: a central management client for maintaining deployed instances. While the CrashPlan PRO Server has a web interface for administration of clients, it lacks the relative simplicity and polish of the desktop interface. The web management server is also not an option for folks who have deployed the standard CrashPlan software. A similar web management interface is available for CrashPlan users, although I cannot locate an option to retrieve the backup history of each host. For folks who manage a number of CrashPlan or CrashPlan PRO clients, it would be great to be able to fire up the CrashPlan desktop client on a workstation and have the ability to manage any of the hosts on your account, or to enter the IP address and credentials for a remote host running CrashPlan (VMware’s vSphere Client comes to mind):

Wish #4: Restore Points for Directories
While the CrashPlan interface allows one to drill down on a per-file basis and choose the exact version of a file to be restore, it doesn’t present the same options for folders. At best, you can ask the client to restore the “latest version before [date and time].” I’d love to see the same sort of drill-down method of restoring the contents of an entire folder at a specific time (aka “restore point” or “safeset”).

The current method is slightly less-than straightforward, since it doesn’t tell you the exact time and date of the directory it will be restoring. For now, I’ve taken to browsing through the history.log.0 file, picking the best ”Completed” time.
Wish #5: Time-Based Scheduling
CrashPlan doesn’t currently offer a means of scheduling a backup to kick off at specific intervals (a la crontab). Sure, it offers the ability to set a time window during which backups are allowed to run, but it doesn’t offer fine-grained controls. For example, if I set a backup to run every 4 hours, it will create a dynamic schedule where the next backup will kick off 4 hours after the completion — not start — of the previous successful backup. Also, this timing is destination-specific, so the effect is an ever-changing, unpredictable timeline. While this is typically not an issue in a desktop environment, it causes understandable consternation to businesses whose IT staff are used to rigid backup schedules and predictable restore points. The current scheduling methodology is not without its benefits, notably the staggered nature by which backups are performed across an organization tends to balance the load to any central backup destinations, but I believe there’s a business need for traditional “static” scheduling.
Wish #6: Destination-specific Backups
Ah, to have the ability to set different source selections and retention policies for each backup destination. For example, I may want to backup copies of raw video captures to my local destination for “just in case” protection while I’m editing a short, but I don’t want to waste the bandwidth and time backing them up off-site when I’ll be deleting them soon anyway. Or perhaps I have an on-site backup vault with a limited amount of storage, so I want to keep one week’s worth of backups on-site, while retaining an year’s worth of versions off-site.
In the meantime, I’ll just back up everything, everywhere and wait for Matthew’s promise to come true.
Wish #7: Full Command Line Interface
Not to stretch it, but it would be super cool if the CrashPlan service were geeked-out with a full CLI for use with external scripts. This would make it so much easier to coordinate CrashPlan backups with systems that require pre- and post-scripts to properly prepare the data for backup (databases, especially).
Wish #8: Understand Filesystem Hierarchy
The CrashPlan restore interface is polite. If you attempt to restore a file without sufficient space in the destination folder, you’re shown a gracious error message. Unfortunately, this logic doesn’t take into account filesystem hierarchy. For instance, say I have the following folder/filesystem layout:
- /foo (1GB filesystem)
- /foo/bar (10GB filesystem)
- /foo/bar/bigfile1 (2GB file)
- /foo/baz (10GB filesystem)
- /foo/baz/bigfile2 (2GB file)
If I attempt to restore the entire contents of the directory /foo, CrashPlan won’t allow me. It knows that I’m trying to restore 4GB of total data, but only checks the free space in the top-level /foo filesystem — unaware that both subdirectories reside on separate filesystems with plenty of free space. My options are to restore each subdirectory one-by-one, or to restore the entire shebang into a separate folder and rsync the contents back to their final destination.
That’s all I can think of for now. Despite these quirks, I still believe CrashPlan is one of the best commercial backup products on the market. It’s low-cost (or free), extremely flexible, and relatively easy to manage. Thanks to all the folks at Code42 for their hard work! I can’t wait to see what features are going to be launched in the next iteration of the platform.
What are some killer features you’re waiting for in a backup solution?