CrashPlan

From unRAID
Jump to: navigation, search
CrashPlan is now available as an plugin through Community Application in unRAID 6.x. Installation and configuration is a breeze.

Please see http://lime-technology.com/forum/index.php?topic=33864.0 for details.

Note

Some instructions for installing CrashPlan with unMENU (posted March 1, 2011) can also be found in the unRAID forums.


Guide

Derived from the work of boof

Here is a very quick and rough guide to getting this going.


Caveats

  • This hasn't been tested thoroughly in terms of clients being happy
  • You do need a couple of packages installed on unRAID to satisfy
  • My unRAID is quite tweaked so you might need *more* packages than I list below
  • Consider this a first pass, we can improve it with feedback and more testing when time allows


  • The install location specified during the command line install is NOT respected. You WILL need to change it via the GUI after you have logged in, and then re-tar the package after you save the settings


Prerequisites

  • Access to a Windows machine with CrashPlan installed (we just want the client!)
  • cpio, SSH and OpenSSL packages for Slackware 12.X, found here,here and here
  • Windows and Linux versions of CrashPlan, found here


Satisfying the dependencies

If you have unRAID version 4.5.5 or above running, just put the three packages above into the "extra" folder on the flash drive ("/boot/extra"). If your version is older than 4.5.5, put those three packages under "/boot/packages" and add these lines into your "go" script:

installpkg /boot/packages/openssl-0.9.8i-i486-1.tgz
installpkg /boot/packages/openssh-5.1p1-i486-1.tgz
installpkg /boot/packages/cpio-2.5-i486-3.tgz
====== with unRaid 5.04 I used the following rather than the above older packages =========================
installpkg /boot/packages/openssl-0.9.8n-i486-1.txz
installpkg /boot/packages/openssh-5.5p1-i486-1.txz
installpkg /boot/packages/cpio-2.9-i486-2.txz


You have to launch the SSH daemon server on boot, saving the key for further boots. Here is the code I use for it:

[ ! -d "/boot/packages" ] && mkdir /boot/packages
[ ! -d "/boot/packages/ssh" ] && mkdir /boot/packages/ssh
[ ! -e "/boot/packages/ssh/ssh.tar.gz" ] && /etc/rc.d/rc.sshd start && tar -zcvf /boot/packages/ssh/ssh.tar.gz /etc/ssh

[ -e "/boot/packages/ssh/ssh.tar.gz" ] && tar -C / -zxvf /boot/packages/ssh/ssh.tar.gz && /etc/rc.d/rc.sshd start


The first three lines are only needed at the first boot time, after that only the fourth line will be triggered. I included all the code above to the "go" script.

Installing CrashPlan into unRAID

  • Download the Linux .tgz installer from their website
  • Un-tar (tar -zxfv)
  • Run install.sh
  • If all goes well you can just follow through the prompts here. Things to be wary of :
  • If it asks you about Java, tell it you would like it to go fetch it and install it dedicated to CrashPlan. It does this quite neatly and tucks it under /usr/local/crashplan
  • Enter anything for the rc scripts, we won't be using them and they'll go bye bye on your next reboot
  • Your manifest directory is where your backups will live. You *really* want this on your unRAID array Wink . I used /mnt/disk4/Private/Backups, but of course tailor to suit
    • NOTE:The manifest directory is NOT respected after the install has completed. You will have to log into the GUI and change it, save your changes, and then re-tar the CrashPlan package
  • In general, accept the defaults for everything else
  • This should install CrashPlan. You might notice wget popping off for Java which will be the longest part of the process
  • CrashPlan is now installed and running! Pop off a quick ps aux | grep java and make sure there's something CrashPlan-esque running


Configuring the CrashPlan engine from a Windows Machine

Now we need to connect to the engine on your unRAID server to add it to your account.

  • On your Windows machine, go to your CrashPlan install directories' conf folder
  • For me, this was C:\Program Files\CrashPlan\conf
  • Edit the file ui.properties (use WordPad)
  • This is all commented out on my default Windows install, don't worry about that
  • Add the following to the bottom :
servicePort=4200
  • This will point the client to this arbitrary port instead of the one running the CrashPlan engine on your actual Windows machine (bear with me!)
  • If you run the client at this point, you will not connect to anything and will receive an error
  • We need to port-forward using ssh now. This is, again, slightly beyond the scope of this but I'll do my best!
  • I'm assuming your ssh install is working, you tested it right? Smiley
  • I'm running PuTTY. You need to port-forward port 4200 on your local machine to 4243 on the unRAID server (this is the actual unRAID server engine port!)
  • In Putty, this is under the connection -> ssh -> tunnels menu
  • Add 4200 as the source port, then in the destination enter localhost:4243
  • Make sure you save this to your unRAID server session so you don't have to do it again next time!
  • Login to your unRAID server via ssh using this newly updated connection
  • Your tunnel is now open!
  • Run the CrashPlan client again on your Windows machine. This should now pop up the box to allow you to create a new account or login with an existing one!
  • At this point you're connected to the engine on your unRAID server
  • Login using your existing credentials and make sure things proceed as you'd expect
  • That's it! Just close the client now


Make a custom CrashPlan package

  • This clearly generates the /var/lib/crashplan/.identity file which is so key

I think this is the most fiddly step. Remember to undo the changes in the Windows client config file to be able to go back to editing the Windows CrashPlan instance. You can re-add that line at any time to connect to and manage the unRAID instance.

Now to make CrashPlan persist across a reboot... By this point you should have CrashPlan running, and have configured it to add your unRAID machine to your account. All your other clients should see your unRAID server and you can now, if you want, send backups to the unRAID server.

To make persistent across a reboot :

  • Be neat and shut down the CrashPlan engine cleanly
/usr/local/crashplan/bin/CrashPlanEngine stop


  • Tar up the CrashPlan folder including the .identify file that's been causing us grief!
tar -cvf /boot/packages/crashplan.tar /usr/local/crashplan /var/lib/crashplan


  • Add the following to your go script :
# install CrashPlan
tar -C / -xvf /boot/packages/crashplan.tar
/usr/local/crashplan/bin/CrashPlanEngine start


  • This un-tars the tar ball we've just created relative to the / folder, thus putting everything back nicely in place, including that pesky identity file!
  • It then fires up CrashPlan
  • This is quite verbose. Drop the v flag in tar to run quietly if you (don't?) like watching your boot up messages.

And, I think, that's it!


Further Caveats

  • I believe the CrashPlan client auto-updates? Obviously this will never stick across reboots. It may be an exercise to crontab the creation of a new tarball periodically based on your current install
  • When backups are running, your array will have open files, so shutting down will be difficult

Other than that, please try the above. Reboot and test things in anger!


Testing Procedure

  • Install / reboot etc and make sure it looks good.
  • Kick off a backup from a client to the unRAID server and let it finish.
  • Reboot the server.
  • Do a restore / another backup from the same client and make sure it propagates seamlessly.

I hope this helps. I've written it off the top of my head, so things might not tie up nicely or I may have skipped a step. I honestly think the hardest part of this is getting your prerequisites up and running and the Windows client batch / ssh tunnel part. Other than that, the original install of CrashPlan is straightforward (thanks CrashPlan devs!) and then we're just creating a simple tar ball. All of my own issues stemmed from not being aware of the /var/lib directory.