Crashplan Plugin for FreeNAS

|

I am very thankful that someone created a Crashplan plugin for FreeNAS. It was a quick, easy install, but unfortunately, it didn't exactly ..work after the easy install. The plugin is new, so I'm sure it will improve. Until then, hopefully the following can help others.

These instructions detail how I set up Crashplan on my FreeNAS box to #1 back up its own files and #2 serve as an incoming destination for other Crashplan clients.

IMPORTANT! I am writing this as of FreeNAS 9.2.1 and version 3.5.3_1 of the Crashplan plugin

Setting up Crashplan on FreeNAS

Goals

  1. Be able to backup from the FreeNAS box to offsite Crashplan Central.
  2. Allow incoming Crashplan backups from other devices.

Install the CrashPlan plugin

  1. Install the plugin into a jail: Click on Plugins, then the Available tab, the "crashplan" line and finally the Install button.
  2. Once the installation completes, on the left tree, expand Plugins and click on CrashPlan. Accept the Java EULA.
  3. Start the Crashplan plugin: Plugins->Installed and make sure the Crashplan plugin is in the "ON" position.

Cause Crashplan to listen on all interfaces

Normally, the Crashplan GUI runs on the same computer as the engine process. In this "headless" situation, the engine runs on the FreeNAS box and the GUI runs on a different computer.

NOTE! Crashplan recommends an approach where the GUI-to-engine communication is done over a ssh tunnel with port forwarding. This is pretty cumbersome as there are extra steps to enable the ssh server on the FreeNAS box and you must remember to establish the ssh tunnel before running the GUI. I think there is a simple way!

We can modify the Crashplan installation on the FreeNAS box to allow connections from other computers. This avoids messy sshd setup and the need to ssh before running the GUI. (Note: The ssh method is probably more secure. But this traffic is contained within your own LAN, so it should be fine.)

To allow GUI connections from other computers on your LAN, first ssh to your FreeNAS box. Once logged in, run the following command to get a shell within the Crashplan jail:

jexec crashplan_1 csh

Using your favorite text editor, edit the following file:

/usr/pbi/crashplan-amd64/share/crashplan/conf/my.service.xml

Within this file, change the from "127.0.0.1" to "0.0.0.0". Save, and then restart the Crashplan service:

service crashplan stop && service crashplan start

To verify that this worked and Crashplan is now listening on all interfaces, run "sockstat -l". Make sure that the java process is listening on "*:4243" and not "127.0.0.1:4243"

Add Storage to the jail

  1. From the left hand tree pane, select Jails->crashplan_1->Storage->Add Storage
  2. For each source path you want to back up, add the Source path and a Destination path, usually "/mnt/<name>". Select "read-only" and "Create directory"

Add Storage for incoming backups

At this point Crashplan will accept incoming backups, but it will store those backups within the jail filesystem. This is probably not desirable, so instead, configure the destination to be a path within your main ZFS pool.

  1. From the left hand tree pane, select Jails->crashplan_1->Storage->Add Storage
  2. Add the Source path within your FreeNAS pool and a Destination path, usually "/mnt/incoming". Do not tick "read-only" but do tick "Create directory"

Next, ssh to your FreeNAS box and execute the following commands to set link where Crashplan deposits incoming backups to your incoming folder:

jexec crashplan_1 csh
service crashplan stop
rmdir /usr/pbi/crashplan-amd64/share/crashplan/backupArchives
ln -s /mnt/incoming /usr/pbi/crashplan-amd64/share/crashplan/backupArchives
service crashplan start

Login with the Desktop Crashplan Client

First, install Crashplan on another computer (one with a GUI). Then open the ui.properties configuration file in your favorite editor:

  • Linux (if installed as root): /usr/local/crashplan/conf/ui.properties
  • Mac: /Applications/CrashPlan.app/Contents/Resources/Java/conf/ui.properties
  • Solaris (if installed as root): /opt/sfw/crashplan/conf/ui.properties
  • Windows: C:\Program Files\CrashPlan\conf\ui.properties

Within the ui.properties file, change the line:

#serviceHost=127.0.0.1

to this:

serviceHost=192.168.1.26

(where "192.168.1.26" should be the IP address of your FreeNAS jail.)

Finally, run Crashplan on this GUI-based computer. It should connect to your FreeNAS box so that you can setup backups to destinations like Crashplan Central and start accepting incoming backups from your other computers.

References:

blog comments powered by Disqus