Friday, January 16, 2015

Crashplan First thoughts

For over 18 months now I have investigated Cloud Backup Services and have eventually chosen Crashplan

There are many reasons why, here are a few

  • Unlimited backup capacity at the target site
  • 448 bit encryption
  • May backup one computer or several  (for extra cost)
  • Backup targets may be other computers in your household
  • Low Cost   (< 100 USD per year)
  • Online technical support

Rewind - What do we need from Cloud Backup

- For me something to backup my master computer, and on that everything but the Operating System.

- NB: The OS needs a non Cloud, bare metal backup i.e. something that for a restore does not need the OS which is what Crashplan sits on top of

- Be able to keep multiple versions of files in case I change something erroneously

- Be able to keep deleted files until I want them removed forever

- Lots of options to twiddle to improve performance

- Must run on my Server platform of choice  (well obviously)

Why Cloud Backup?
Why do we backup?  Well the reason is that you have some data or computer configuration that you want to keep safe because

Your computer hard disk might fail, Your apartment containing computer might burn down, Somebody might steal your computer.

The last 2 require Offsite backup and Cloud backup by definition meets that need.

If you only needed local backup then investing in some spare hard disks, and a cheap or free automated backup program would be sufficient.  And the transfer rates would be (say) 50MB/second, whereas the cloud might only be 0.5MB/second   (if you are lucky!).  In other words  local backup is at least 100 times faster, so pushing large volumes of data to the cloud might be any of time consuming, impractical or unbelievably expensive!

Still, most people use remote backups because of the issue of theft.   Your local NAS  (Network Attached Storage) box might have protection again a single disk failure, but if somebody breaks in and steals it, then you are basically totally screwed.

Command Menu

On my master Microsoft Windows 2012 R2 server it is installed as a 64 bit application that uses Java

There is a tray application from which you can query the current environment of make changes on the fly to the system.   You would of course be better advised to put permanent changes in the .ini files.

command ? - usage

Name Description
backup.scan (scan) Scan the selected back up paths for changed files.
backup.set (set) Manage backup sets.
backup.validate Validate all or a given destination.
custom Delete existing client customizations (skin and lang only).
deauthorize Deauthorize the computer. This completely disables the backup service and requires login to resume.
disconnect Disconnect all or the given computer.
dump Dump important system information to the logs to help support.
getlogs Get client log files for support.
guid Change the global unique identifier for this computer. If 'deactivate' is specified then this computer will be deactivated before the identity reassignment. If 'new' is specified then a random generated guid will be used. You can also provide an existing guid. No arguments will show your current guid.
help Show a list of available commands.
java View or set the Java JVM maximum heap size. [value] is optional and must be a number.
log Control logging levels.
pause.system (pause) Disable the backup service Pause backup to a given target
proxy Manage proxy settings and refresh PAC file.
reauthorize (rz) Reauthorize with the server.
reconnect Reconnect all or the given computer.
restart Restart the backup service.
resume.system (resume) Enable the backup service.
shutdown (stop,exit) Shutdown the service.
version Print the version date/time string given a long version number.

Optimising the Speed

The main optimisation is to allow Crashplan to use more memory. Below you see it is set to use a maximum of 5000MB

C:\Program Files\CrashPlan\CashPlanService.ini
[Java Runtime Environment]
Maximum Version=any
JRE Path=C:\Program Files\CrashPlan\jre\
Virtual Machine Parameters=-Xrs -Xms512M -Xmx5000M -Dnetworkaddress.cache.ttl=300 -Dnetworkaddress.cache.negative.ttl=0 -Dfile.encoding=UTF-8 -DappBaseName=CrashPlan
Minimum Version=1.5

Main Class=com.backup42.service.CPService

-Xmixed           mixed mode execution (default)
-Xint             interpreted mode execution only
-Xbootclasspath:<directories and zip/jar files separated by ;>
                  set search path for bootstrap classes and resources
-Xbootclasspath/a:<directories and zip/jar files separated by ;>
                  append to end of bootstrap class path
-Xbootclasspath/p:<directories and zip/jar files separated by ;>
                  prepend in front of bootstrap class path
-Xnoclassgc       disable class garbage collection
-Xincgc           enable incremental garbage collection
-Xloggc:<file>    log GC status to a file with time stamps
-Xbatch           disable background compilation
-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size
-Xss<size>        set java thread stack size
-Xprof            output cpu profiling data
-Xfuture          enable strictest checks, anticipating future default
-Xrs              reduce use of OS signals by Java/VM (see documentation)
-Xcheck:jni       perform additional checks for JNI functions
-Xshare:off       do not attempt to use shared class data
-Xshare:auto      use shared class data if possible (default)
-Xshare:on        require using shared class data, otherwise fail.

Even with optimisations on memory usage and send/ receive Network buffer settings I've found that the maximum upload rate to a remote Crashplan server is about 6Mbps  ( say about 0.76 MB/second.

Some Tests & Daily Life

I've checked my results online, in email and on the phone to Crashplan who incidently have always been very helpful

My comments relate to Windows Server 2012R2 OS in particular

  • Once you've installed Crashplan, selected your encrytion level etc,  your first phase is selecting and uploading your data to them
  • In the US you can send them a physical disk that can be used to seed the data at their server, option not available to us in Europe
  • In Europe you can ask them for a European backup server, but since they cap traffic rates to 6Mbps  (best, and usually 3Mbps) at the server end, Europeans with fast DSL/ fibre won't actually be limited by distance in fact

  • Of course you are going to test a restore as one of your earliest actions?

And So
This is just a precursor article that I really should have published about 18 months ago!    I really like Crashplan, I want to use it because I'm interested in the long term in having cloud backups which by their very nature are offsite and as secure as the provider.

No more having to take disks offsite (actually we encrypt then take them to a secret European datastore thousands of Km away at infrequent intervals due to paranoia, but this is a real pain!)

In a forthcoming article I'll explain how we use Crashplan today and why it still it meets some needs brilliantly but not all :-)


Configuring Network

Most popular online backup