Backing Up FreeNAS and TrueNAS to Backblaze B2 Cloud Storage

FreeNAS and TrueNAS

Thanks to recent updates of FreeNAS and TrueNAS, backing up data to Backblaze B2 Cloud Storage is now available for both platforms. FreeNAS/TrueNAS v11.1 adds a feature called Cloud Sync, which lets you sync, move, or copy data to and from Backblaze B2.

➔ Download Our Complete NAS Guide

What Are FreeNAS and TrueNAS?

FreeNAS and TrueNAS are two faces of a comprehensive NAS storage environment built on the FreeBSD OS and OpenZFS file system. FreeNAS is the open-source and development platform, while TrueNAS is the supported and commercial product line offered by IXSystems.

FreeNAS logo

FreeNAS is for the DIY crowd. If you don’t mind working with bleeding-edge software and figuring out how to make your software and hardware work harmoniously, then FreeNAS could be a good choice for you.

TrueNAS logo

If you’re in a business or other environment with critical data, then a fully supported product like TrueNAS is likely the way you’ll want to go. IXsystems builds their TrueNAS commercial server appliances on the battle-tested, open-source framework that FreeNAS and OpenZFS provide.

The software developed by the FreeNAS open-source community forms the basis for both platforms, so we’ll talk specifically about FreeNAS in this post.

Working With FreeNAS

You can download FreeNAS directly from the open-source project website, freenas.org. Once installed, FreeNAS is managed through a comprehensive web interface that is supplemented by a minimal shell console that handles essential administrative functions. The web interface supports storage pool configuration, user management, sharing configuration, and system maintenance.

FreeNAS web UI

FreeNAS supports Windows, macOS, and Unix clients.

Syncing to Backblaze B2 With FreeNAS

Files or directories can be synchronized to remote cloud storage providers, including Backblaze B2, with the Cloud Sync feature.

Selecting Tasks ‣ Cloud Sync shows the screen below. This screen shows a single cloud sync called “backup-acctg” that “pushes” a file to cloud storage. The last run finished with a status of SUCCESS.

Existing cloud syncs can be run manually, edited, or deleted with the buttons that appear when a single cloud sync line is selected by clicking with the mouse.

FreeNAS Cloud Sync status

Cloud credentials must be defined before a cloud sync is created. One set of credentials can be used for more than one cloud sync. For example, a single set of credentials for Backblaze B2 can be used for separate cloud syncs that push different sets of files or directories.

A cloud storage area must also exist. With Backblaze B2, these are called buckets and must be created before a sync task can be created.

After the credentials and receiving bucket have been created, a cloud sync task is created with Tasks ‣ Cloud Sync ‣ Add Cloud Sync. The Add Cloud Sync dialog is shown below.

FreeNAS Cloud Sync credentials

Cloud Sync Options

The table below shows the options for Cloud Sync.

Setting Value Type Description
Description string a descriptive name for this Cloud Sync
Direction string Push to send data to cloud storage, or Pull to pull data from the cloud storage
Provider drop-down
menu
select the cloud storage provider; the list of providers is defined by Cloud Credentials
Path browse
button
select the directories or files to be sent for Push syncs or the destinations for Pull syncs
Transfer Mode drop-down
menu
Sync (default): make files on destination system identical to those on the source; files removed from the source are removed from the destination (like rsync –delete)
Copy: copy files from the source to the destination, skipping files that are identical (like rsync)
Move: copy files from the source to the destination, deleting files from the source after the copy (like mv)
Minute slider or
minute selections
select Every N minutes and use the slider to choose a value, or select Each selected minute and choose specific minutes
Hour slider or
hour selections
select Every N hours and use the slider to choose a value, or select Each selected hour and choose specific hours
Day of month slider or
day of month
selections
select Every N days of month and use the slider to choose a value, or select Each selected day of month and choose specific days
Month checkboxes months when the Cloud Sync runs
Day of week checkboxes days of the week when the Cloud Sync runs
Enabled checkbox uncheck to temporarily disable this Cloud Sync

Take care when choosing a direction. Most of the time, “push” will be used to send data to the cloud storage. “Pull” retrieves data from cloud storage, but be careful: Files retrieved from cloud storage will overwrite local files with the same names in the destination directory.

“Provider” is the name of the cloud storage provider. These providers are defined by entering credentials in Cloud Credentials.

After the provider is chosen, a list of available cloud storage areas from that provider is shown. With B2 Cloud Storage, this is a drop down with names of existing buckets.

“Path” is the path to the directories or files on the FreeNAS system. On push jobs, this is the source location for files sent to cloud storage. On pull jobs, the path is where the retrieved files are written. Again, be cautious about the destination of pull jobs to avoid overwriting existing files.

The minute, hour, days of month, months, and days of week fields permit creating a flexible schedule of when the cloud synchronization takes place.

Finally, the enabled field makes it possible to temporarily disable a cloud sync job without deleting it.

FreeNAS Cloud Sync Example

This example shows a push cloud sync which writes an accounting department backup file from the FreeNAS system to Backblaze B2 storage.

Before the new cloud sync was added, a bucket called “cloudsync-bucket” was created with the B2 Cloud Storage web console for storing data from the FreeNAS system.

System ‣ Cloud Credentials ‣ Add Cloud Credential is used to enter the credentials for storage on a Backblaze B2 account. Enter an application key ID and application key for the Backblaze B2 account. This application key needs to have full read/write permissions for the bucket or section of the bucket that will be accessed. The credential is given the name “B2,” as shown in the image below:

FreeNAS Cloud Sync B2 credentials

Note on encryption: FreeNAS Cloud Sync versions prior to 11.2 do not support client-side encryption of data and file names before syncing to the cloud, whether the destination is Backblaze B2 or another public cloud provider.

Example: Adding Cloud Credentials

The local data to be sent to the cloud is a single file called accounting-backup.bin on the smb-storage data set. A cloud sync job is created with Tasks ‣ Cloud Sync ‣ Add Cloud Sync.

The description is set to “backup-acctg” to describe the job. This data is being sent to cloud storage, so this is a push. The provider comes from the cloud credentials defined in the previous step, and the destination bucket “cloudsync-bucket” has been chosen.

The path to the data file is selected.

The remaining fields are for setting a schedule. The default is to send the data to cloud storage once an hour, every day. The options provide great versatility in configuring when a cloud sync runs, anywhere from once a minute to once a year.

The “enabled” field is checked by default, so this cloud sync will run at the next scheduled time.

The completed dialog is shown below:

FreeNAS Cloud Sync example

Dependable and Economical Disaster Recovery

In the event of an unexpected data loss incident, the VMs, files, or other data stored in Backblaze B2 from FreeNAS or TrueNAS are available for recovery. Having that data ready and available in B2 Cloud Storage provides a dependable, easy, and cost effective off-site disaster recovery solution.

Are you using FreeNAS or TrueNAS? What tips do you have? Let us know in the comments.

About Roderick Bauer

Roderick has held marketing, engineering, and product management positions with Adobe, Microsoft, Autodesk, and several startups. He's consulted to Apple, Microsoft, Hewlett-Packard, Stanford University, Dell, the Pentagon, and the White House. He was a Ford-Mozilla Fellow in Media and Democracy with Common Cause in Washington, D.C., where he advocated for a free, open, and accessible internet for all, reducing media consolidation, and transparency in politics and the media.