Matt Schmitz/ May 16, 2017

As part of my home lab, I have an older Synology DS411 that I picked up in early 2012. I’ve been using the device since then with 4x 3TB drives as an iSCSI backend to my ESX host. Of course, I’ve also been using the NAS for general file storage (photos, videos, documents, etc). So in late 2014 I decided that I needed to find a good backup solution for it.

I started using CrashPlan, because they offer unlimited cloud storage for only $5.99 a month. This was amazing to me, because I had around 1.2TB of data at the time. I found a great community package (here), which allowed me to install the backup client directly on the NAS. This ran great until late 2016 when CrashPlan updated to 4.8.0 and ended support for ARM processors (which is what the DS411 uses). For the past 6-7 months, I’ve been unable to back up my primary storage device at home. Since my DS411 is reaching the end of it’s life anyways, I figured I would just wait until I replaced it with one of the new Synology devices that use an Intel processor.

Well a few days ago, I received an email from CrashPlan threatening to delete my backups since my NAS hadn’t connected in over 6 months. It makes sense why they do that – but I didn’t want to lose my backups before I could replace the device. Re-seeding my backups whenever I picked up a replacement NAS would take forever (I think I have ~2TB backed up currently). So I finally forced myself to sit down and find an alternate solution.

Alright – so as of today I now have a dedicated CentOS VM running on my ESX host, which is connected to the Synology via NFS. This VM is running the CrashPlan client, and my backups have resumed! Here is how I got this all set up:

Synology Configuration

  1. Enable NFS on the Synology
    1. Open up the Control Panel and go to File Services
    2. Scroll down to the NFS section, and check the box for Enable NFS
    3. Click Apply
  2. Apply NFS permissions to each share
    1. Still under Control Panel, visit Shared Folders
    2. For each folder you need to back up via CrashPlan:
      1. Select the folder and click Edit
      2. Click the tab for NFS Permissions, then click Create
      3. Enter the IP address for your CentOS VM (or other linux system)
      4. Set privilege to Read-Only (you could probably leave this read-write, but CrashPlan only needs read permissions to back up data)
      5. Click OK

Linux VM Setup

  1.  Build a CentOS VM – This can be on an ESX host like I used, or just a standalone PC
    1. Don’t forget to use the same IP address that we entered in the Synology for NFS
  2. Install packages
    1. Make sure you get the latest package updates first: yum -y update
    2. Install NFS tools:  yum -y install nfs-utils nfs-utils-lib
  3. Test NFS
    1. If you have the packages installed and NFS set up correctly on the Synology, then you should be able to validate the configuration by using showmount. For example, here are the directories that I was using CrashPlan to backup:
    2. [[email protected]~]# showmount -e 10.12.32.2
      Export list for 10.12.32.2:
      /volume1/backups   10.12.32.209
      /volume1/documents 10.12.32.209
      /volume1/homes     10.12.32.209
      /volume1/photos    10.12.32.209
    3. Make your local Linux directory structure, which should match what the Synology structure is. So in my case, I made new directories on my local Linux VM for /volume1/backups, /volume1/documents, etc
    4. Edit /etc/fstab to auto-mount your NFS shares on boot. In my case, I added the following lines:
    5. # NFS Share location          Local Folder
      10.12.32.2:/volume1/backups   /volume1/backups   nfs defaults 0 0
      10.12.32.2:/volume1/documents /volume1/documents nfs defaults 0 0
      10.12.32.2:/volume1/homes     /volume1/homes     nfs defaults 0 0
      10.12.32.2:/volume1/photo     /volume1/photo     nfs defaults 0 0
    6. Reboot, and check to make sure each NFS share was actually mounted. If you do a ls /volume1/backups, do you see all the files on the NAS in that folder?
    7. If everything works, then grab the CrashPlan Client installer (4.8.2 was the latest at the time):
      1. wget https://download.code42.com/installs/linux/install/CrashPlan/CrashPlan_4.8.2_Linux.tgz
    8. Extract the files: tar -xzvf CrashPlan_4.8.2_Linux.tgz
    9. Run the installer: cd crashplan-install/ && ./install.sh
      1. I just let CrashPlan use all the defaults, so I didn’t change any options during install
    10. Set CrashPlan to start automatically: chkconfig crashplan on
    11. Make sure the service is already running: /etc/init.d/crashplan status

At this point we should be able to run CrashPlan’s backup client on our VM, which will pull the data across the network from the NAS. The last step is to set up our local PC for remote administration of the Linux VM. Unfortunately, this process has become more and more painful as CrashPlan keeps updating their clients. They provide their own documentation on how to do this piece, but I’ll summarize what I did here:

Connecting the CrashPlan UI to the Linux VM

  1. Download and install the CrashPlan Client on your PC (In this case, I’m using a Windows 10 laptop)
  2. On your linux VM, run the following command to find your authentication token: cat /var/lib/crashplan/.ui_info
  3. Back on the Windows side, place that token in the following file: C:\ProgramData\CrashPlan\.ui_info
    1. You will replace the existing token in the file
    2. Also change the port from 4243 to 4200
    3. Should look something like this when you’re done: 4200,3da4v903-7q38-4r52-e67e-79aecxf760c4,127.0.0.1
  4. Download PuTTY, which will be used to create a SSH tunnel to our linux box
  5. Open PuTTY and set the following configurations:
    1. On the left side, go to Connection > SSH > Tunnels
    2. Enter the source port: 4200
    3. Enter the destination: localhost:4243
    4. Click Add
    5. On the left side, go back up to Session
    6. Enter the IP address of your Linux VM
    7. (optional) Under Saved Sessions, put in a name and click Save
  6. Once that’s done, go ahead and click Open to connect to your Linux VM
  7. Log into the VM and just leave the window open.
    1. Note: This SSH session will need to remain open any time you need to connect to your Linux VM and administer CrashPlan
  8. Open the CrashPlan client locally on your Windows machine
  9. Log into CrashPlan using your account (Should be the same one you were previously using to back up your Synology with)
  10. CrashPlan may give you a warning about migrating to a new PC, and ask if you want to adopt the backups – You want to accept this prompt, and let CrashPlan know that your new Linux VM is a replacement PC for your Synology.

As long as everything went according to plan, the CrashPlan client should start scanning the NFS shares on your Linux VM and comparing them to what’s already backed up. Once it completes its synchronization, it will initiate the backup processes again.

I was extremely happy that this worked, because I was able to start backing up my data again (which had apparently almost doubled since the last time CrashPlan was connected). In my case, moving to a Linux VM provided me with much better backup performance as well, since the Synology DS411 only has a 1.6Ghz single-core processor and 512MB of RAM.

I hope this helps out anyone else out there who may have been trapped in a similar scenario. If you have any questions, please feel free to leave me a comment below!

About Matt Schmitz

Herding packets since 2007. Perpetually trying to automate myself out of a job. I believe that all problems can be solved by implementing more IPv6. Disclaimer: All opinions posted here are my own, and do not represent any vendor or current/former employer.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.