For a very long time, my NAS was my backup plan. The primary function of my NAS was to store the backups of all of our PCS in the house. My approach worked pretty well except for two chief concerns: stupidity (a catastrophic destructive change) and some sort of disaster that deprived us of the NAS. While my approach of backing the computers up to my FreeNAS box covered the most likely sources of my problems, it has gnawed on me that there are other scenarios it didn’t account for. For example: fire, theft, tornados, and any number of other physical threats. For a long time, I’ve mitigated those with cloud storage providers like Google Drive and Dropbox.
Further complicating matters is the fact that I’ve switched to using SSDs in most of my computers, and the rate at which I’m generating content has skyrocketed. The photos and videos that I record for my blog take up quite a bit of space, and my recent obsession of flying freestyle FPV quadcopters has generated tons of high-definition videos. Reducing the storage capacity of my computers at the same time as ramping up my content creation has forced me to start using my NAS as the primary storage for much of what’s most important to me.
For quite a while, I’ve been pondering the complexity and price of backing up this critical data to one of the cloud storage providers: Amazon S3, Crashplan, or Backblaze B2 Cloud Storage. While I was pondering, I decided to back up that same critical data on our PCs to the cloud using CrashPlan, but weeks later Code42 abandoned the consumer market and yanked the plug on CrashPlan, leaving consumers like me in a lurch.
Without a real backup plan beyond my helter-skelter use of Dropbox and Google Drive, I wandered around aimlessly a bit, pondering exactly what I’d do.
Backblaze’s Blog to the Rescue
I love, love, love Backblaze’s Blog—the hard drive statistics that they share are an invaluable resource in my DIY NAS builds. I also love the detail that they go into when sharing the details about the Backblaze Storage Pod. Just the other day, I was battling through a normal workday and I saw this crawl through my Twitter feed on my phone:
Use a @freenas? Maybe a Truenas? You can easily back up those @iXsystems to B2! Here's how -> https://t.co/4uESc6B1Xk via @rodbauer pic.twitter.com/ocpJrZWYAZ— Backblaze (@backblaze) August 16, 2018
Seeing this tweet reminded me that I needed to get off my rear and get back to addressing my outstanding concerns. That very weekend, I sat down and read through the Backing UP FreeNAS and TrueNAS to Backblaze B2 blog and knew exactly what I was going to experiment with next.
What is Backblaze’s B2 Cloud Storage Anyways?
Effectively, you pay a monthly flat rate of $0.005 per Gigabyte of B2 Storage. And when you need to pull down any of that storage, you pay $0.01 per gigabyte of download. At the moment, there’s nearly 11 TB of data on my NAS, but I don’t think much of that is critical. When you subtract out the amount of storage that my ancient backups, ZFS snapshots, and other cruft take up, there’s right around 2TB of data that I’d label as critical. Using Backblaze’s B2 pricing calculator, it’d cost me about $10 a month (2000GB x $0.005) to store that critical data. In the event that I lost all 2TB of that data in some sort of catastrophe, restoring that 2TB would have a one-time cost of $20 (2000 GB x $0.01).
At first, I wasn’t a big fan of how downloads carried their own cost, which is similar to how Amazon is pricing their competing S3 storage. But the more I thought it over as I wrote this blog, the more I began to understand and appreciate that Backblaze separates the pricing for downloads apart for their B2 Cloud Storage. It seems much more straightforward—other services are certainly accounting for the costs associated with the downloads and factoring that into the pricing of their product. But, depending on how you wind up using it, you may not do much—if any—downloading of your stored data. Considering how I plan to use Backblaze B2, it seems like a much fairer way to price retrieving your stored data.
How much work did it wind up being?
For the sake of this blog, I thought I’d demonstrate setting up a task that backed up the latest copy of my entire blog up to Backblaze B2. I figured I’d set everything up on Backblaze B2 in such a way that only the latest copy of what’s being stored on my NAS is uploaded and stored in the cloud. While I’m intrigued at the backup options and versioning that Backblaze B2 offers, I also didn’t want to wind up paying for storing multiple copies. I’m fine with only having the latest copies of my files backed up on Backblaze B2. With that in mind, here’s what I wound up doing.
Setting up Backblaze B2
- Create a Bucket
- Set the Lifecycle Settings to keep only the last version of the file.
- Follow the Show Account ID and Application Key link to Add an Application Key
- Name the Key
- Specify which bucket(s) to grant it access to.
- Specify the Type of Access (Read and Write)
- Note all the key information somewhere for later.
And that was it! I’d set up a bucket to retain only the latest copy of uploaded files. Now I just needed to set up my FreeNAS box to start syncing the bucket up with the current contents of my blog.
Enter Cloud Credentials
- Expand System
- Expand Cloud Credentials
- Select Add Cloud Credential
- Name the Cloud Credential
- Choose Backblaze B2
- Enter the keyID (from above) as the Account ID
- Enter the text created and displayed one time only by Backblaze as the Application Key
Set up Cloud Sync Task
- Expand Tasks
- Pick Add Cloud Sync
- Add a Description
- Pick Push for Direction
- Pick your Cloud Credential from above for Provider
- Pick the bucket the sync is pushing to for Backblaze B2 Buckets
- Set the Path to the local Path of what you’re wanting to push to B2
- Set the Transfer Mode to Sync
- Pick the Task Scheduling Options which match your needs
Overall, this was pretty much as easy as it seemed in the Backing Up FreeNAS and TrueNAS to Backblaze B2 blog made it sound like it’d be. For the most part, it was a pretty painless exercise. As I’ve been working on this blog, I’ve set up additional tasks to back up the critical files we’ve collected since we began using the NAS as primary storage. As I write these words, my NAS is working pretty tirelessly behind me. With each passing moment that my Cloud Sync tasks are running, I’m feeling a bit more at ease with the welfare of my critical data.
Once it was all said and done, I was pretty pleased with how this worked out. Backing up my NAS to Backblaze B2 was easier than I would’ve anticipated. However, there were a couple wrinkles along the way:
Interestingly enough, it took a try or two to get this running. My first attempt at running my Cloud Sync task claimed it was running, but no files were showing up in Backblaze and there wasn’t any outbound traffic on my NAS. After a while, I went in to look at the details of my Cloud Sync task and it wouldn’t (or couldn’t) pull up my list of buckets and there was a red error message which only read “22.” I did some digging around on Backblaze and found out that I’d hit my daily allotment of free Class C Transactions, which is 2500. After punching in my credit card info (Class C Transactions cost $0.004 per 1,000) and removing the cap, I saw the counts for the Class C transaction calls climbing by the thousands, but never saw any files transferred. I was stumped—I even posted a thread on the FreeNAS forums hoping someone would tell me if I’d made a newbie’s mistake or if there was some tweaking that I needed to do.
Because I’m impatient, I went ahead and upgraded from FreeNAS-11.1-RELEASE to FreeNAS-11.1-U6, and the next time I created and executed a Cloud Sync task, it started right up! I’m not entirely certain what fixed it: the upgrade, the waiting a couple days, or the entering of my credit card information and removal of the cap on Class C Transactions. But one or more of these steps seems to have solved my problem.
One other potential gotcha is that the Cloud Sync tasks are not currently using any client-side encryption. The client (rclone, I believe) being used to accomplish the Cloud Sync tasks to Backblaze B2 is capable of encryption, but the FreeNAS implementation does not currently leverage it. As I understand it, a feature request was submitted for client-side encryption and is going to be part of the upcoming FreeNAS 11.2 release, which is currently in its second beta. Once the client-side encryption feature is available in an official release, I’ll be emptying my buckets and refilling them with encrypted files.
Brian, what if I don’t have a FreeNAS or any NAS at all?
Wanting a solution to back up my PCs is what drove me to build my very first DIY NAS. If Backblaze had been as mature back then, I may have never had a justification to build a NAS in the first place! My advice to many of you would be to go ahead and build your own DIY NAS! After all, you’ve come to the right place to get started. I’ve got a DIY FreeNAS build to get you started thinking about how to build your very own FreeNAS machine.
However, if you don’t want to build your very own NAS, Backblaze has an awesome unlimited backup product which features a user-friendly client application that runs on either on your Macintosh or Windows. You could bypass the NAS entirely and start backing your PCs to Backblaze for five dollars a month per PC!
What about You?
I’m pretty excited with what I’ve been able to accomplish by backing up my FreeNAS machine to Backblaze B2. It ultimately solves a great big concern that I had with my prior strategy of keeping everything on the NAS and hoping that nothing catastrophic happened to my data or to my NAS. When it’s all said and done, I expect the cost of Backblaze B2 to be slightly less expensive for our uses, since we tend to aggregate all of our important data on the NAS and then access it from our various computers. But, given my experience so far, I’d happily switch to the Backblaze Unlimited Backup at $5/mo per PC if it turns out to be the more frugal option.
Are you using a cloud storage service to back up your critical data? What service(s) are you using and how much data are you backing up? What feature (like client-side encryption) would you like to see FreeNAS incorporate in future versions to further leverage services like Backblaze B2?