Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

ZFS BuddyBackup plugin guide

Featured Replies

Hello "Pirat",

 

For my very first post on the forum, I wanted to thank you for this one.

 

I've just installed it to make it easier for me to create snapshots with Sanoid (it's installed but I'm stressed about using the command line).

Your interface is just perfect for me!

 

I can see that I do have snapshots appearing in the “ZFS Master” plugin.

 

As I write these lines, I haven't yet tried to restore a snapshot. I'll have to get on with it.

 

See you soon :D

Edited by Midas_Tech

  • 2 weeks later...
  • Replies 69
  • Views 11.7k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Yeah it's a really neat plugin that is sorely missing from the unraid experience.    Wishlist/Wantlist:   - To run the automatic snapshot feature on a cron schedule  - Ability

  • Different people have different setups and different needs for backup solutions. I know there are different solutions circulating already for Unraid and ZFS, but  many use root ssh connections to func

  • @MowMdown I just pushed an update that fixes the bug you found. I don't think Unraid allows auto updates of manually installed plugins, so you might have to uninstall it and then re-install it wi

Posted Images

I see you've included the ability to restore from a local backup, nice!

  • 3 weeks later...

Hi, I've been using spaceinvaderone's scripts with the Sanoid plugin, do I remove this plugin to use yours? I don't want any conflicts!

Thanks,

Tim

  • Author

Hi @MothyTim

BuddyBackup uses its own instance of sanoid and syncoid and will therefore not conflict with the sanoid plugin! However, if you transfer over your backup configs and is happy with buddybackup there is no reason to keep the sanoid plugin installed anymore 😁

14 hours ago, Pirat said:

Hi @MothyTim

BuddyBackup uses its own instance of sanoid and syncoid and will therefore not conflict with the sanoid plugin! However, if you transfer over your backup configs and is happy with buddybackup there is no reason to keep the sanoid plugin installed anymore 😁

Ok thanks, I'll give it a go then! 😊

Hi. I finally got time to migrate from spaceinvaderone's script v1 to buddybackup. I have a few suggestions:

  • It would be nice if Snapshot creation and pruning had a button "create snapshot now", similar to "Send backup now" in Backup and restore.
  • It would be nice if Snapshot creation Recursive mode had a list of exclusions. I like keeping snapshots for all my docker volumes, but there are a few of them that don't need snapshots E.g. glances, mongodb, redis/valkey, etc.

Thank you for your work!

Edited by ALERT

  • 2 weeks later...

Do you plan to somehow offer a way to find a buddy to back up with?

 

Perhaps via a discussion thread on GitHub?

  • 2 weeks later...

I have installed the pluggin yesterday and so far it's great to automate zfs snaps and replication.

One suggestion.

It seems that the snaps on the destination are not getting pruned like they are at the source.

It would be nice to have an option to be able to get the snaps pruned at the destination as well.

Also, i believe there is a bug where daily snaps are taken on the same day, 15min. appart.
I've also seen some multi weekly and montly snaps on the same day for some data sets.

good work!

thanks,

Edited by MartyMcfly

  • Author
On 4/29/2025 at 3:01 PM, ALERT said:

Hi. I finally got time to migrate from spaceinvaderone's script v1 to buddybackup. I have a few suggestions:

  • It would be nice if Snapshot creation and pruning had a button "create snapshot now", similar to "Send backup now" in Backup and restore.

  • It would be nice if Snapshot creation Recursive mode had a list of exclusions. I like keeping snapshots for all my docker volumes, but there are a few of them that don't need snapshots E.g. glances, mongodb, redis/valkey, etc.

Thank you for your work!

Thanks for the suggestions! Sadly, manually creating snapshots that would also be included when Sanoid runs pruning is not really possible afaik. I'm also not seeing any way of excluding child datasets with Sanoid (https://github.com/jimsalterjrs/sanoid/wiki/Sanoid). But let me know if I'm missing something!

  • Author
On 5/12/2025 at 11:50 AM, DesertCookie said:

Do you plan to somehow offer a way to find a buddy to back up with?

 

Perhaps via a discussion thread on GitHub?

I don't have anything like this planned, but it's a cool idea! I have enabled discussion on the GitHub repo. Feel free to create a post for finding backup buddies.

  • Author
2 hours ago, MartyMcfly said:

I have installed the pluggin yesterday and so far it's great to automate zfs snaps and replication.

One suggestion.

It seems that the snaps on the destination are not getting pruned like they are at the source.

It would be nice to have an option to be able to get the snaps pruned at the destination as well.

Also, i believe there is a bug where daily snaps are taken on the same day, 15min. appart.
I've also seen some multi weekly and montly snaps on the same day for some data sets.

good work!

thanks,

Received snapshots are pruned according to the set snapshot retention in the "Buddy's Backups" section on the machine that receives the backups.

Regarding snapshots being created on the same day, that does sound weird... Snapshot creation timing is handled by the default sanoid config, see https://github.com/jimsalterjrs/sanoid/blob/master/sanoid.defaults.conf. I have thought about exposing this config under advanced settings in the plugin to allow for more control. Perhaps that could help your case as well 🤔

3 hours ago, Pirat said:

Received snapshots are pruned according to the set snapshot retention in the "Buddy's Backups" section on the machine that receives the backups.

Thanks for the reply!

In my case I'm not sure it's going to work. For now, i'm doing auto snapshots of my cache drive (appdata/domains/etc..) that triggers the backup to a zfs drive (local) in my array.

So I have the snapshots on both the cache dataset and on the array drive dataset. Pruning is fine on the cache dataset, but doesn't seem to work on the array drive dataset which is my local destination.

Is that still pruned according to the "buddy's backup" retention section, even if it's local?

thanks,

  • Author
22 hours ago, MartyMcfly said:

Thanks for the reply!

In my case I'm not sure it's going to work. For now, i'm doing auto snapshots of my cache drive (appdata/domains/etc..) that triggers the backup to a zfs drive (local) in my array.

So I have the snapshots on both the cache dataset and on the array drive dataset. Pruning is fine on the cache dataset, but doesn't seem to work on the array drive dataset which is my local destination.

Is that still pruned according to the "buddy's backup" retention section, even if it's local?

thanks,

Ah, for local destinations you can add a new entry in the snapshot creation and pruning section, disable autosnap and enable auto pruning and set your desired retention there.

  • 2 weeks later...

I was able to configure my local ZFS backups and it's all running great now!

So, now, i want to be able to zfs remote to my remote unraid backup server.

I've followed the instruction for the remote backup. I exchange the buddy's public keys, but when i click "test connection", i get the following message.
Failed: Host key verification failed.

SSH is enabled on both unraid servers. I have also rebooted each server just in case.

Anyone had the same issue?

thanks,

Marty

25 minutes ago, MartyMcfly said:

I was able to configure my local ZFS backups and it's all running great now!

So, now, i want to be able to zfs remote to my remote unraid backup server.

I've followed the instruction for the remote backup. I exchange the buddy's public keys, but when i click "test connection", i get the following message.
Failed: Host key verification failed.

SSH is enabled on both unraid servers. I have also rebooted each server just in case.

Anyone had the same issue?

thanks,

Marty

All good now.
Looks like i didn't exchang the root public key between the servers first.

so, on both servers, i generated ssh keys, and i exchanged it from on to the other.
Now remote buddy backup is working.

thanks,

  • 3 weeks later...

Hi,

I'm not even able to select a disk with ZFS buddy, the drive is set as ZFS encrypted in the screenshot below:

image.png

However, when making a schedule, I'm not able to select the disk from the dropdownlist. It's grayed out for selection.

image.png

Are there maybe any particular steps I might have forgotten?

Thanks!

Edited by Meep Meep

  • Author
On 6/22/2025 at 11:18 AM, Meep Meep said:

Hi,

I'm not even able to select a disk with ZFS buddy, the drive is set as ZFS encrypted in the screenshot below:

image.png

However, when making a schedule, I'm not able to select the disk from the dropdownlist. It's grayed out for selection.

image.png

Are there maybe any particular steps I might have forgotten?

Thanks!

What you are showing in the first screenshot is that you have full disk encryption set in Unraid (luks). This is different than zfs dataset encryption. In order to send raw encrypted zfs datasets, they have to be encrypted by zfs. You can still have luks as well but it might be unessesary depending on your needs.

The easiest way to create an encrypted zfs dataset in unraid is to use the ZFS master plugin.

  • 1 month later...

I had to recreate a local pool and dataset.

When I was performing a restore from a remote snapshot, backup buddy doesn't allow me to force restore.

I had to run the command manually from the command line to force a restore with the -F option.

It would really be great if backup buddy had the option when performing a restore to enable the -F option
Something like that:
ssh user@source_server "zfs send source_pool/dataset@snapshot_name" | zfs receive -F destination_pool/dataset

  • Author
On 8/9/2025 at 11:56 AM, hydkrash said:

I had to recreate a local pool and dataset.

When I was performing a restore from a remote snapshot, backup buddy doesn't allow me to force restore.

I had to run the command manually from the command line to force a restore with the -F option.

It would really be great if backup buddy had the option when performing a restore to enable the -F option
Something like that:
ssh user@source_server "zfs send source_pool/dataset@snapshot_name" | zfs receive -F destination_pool/dataset

Thanks for the suggestion! I added it as an issue on the github for future tracking, and my own thoughts on it

GitHub

Allow using -F flag when running restore · Issue #18 · Pi...

From hydkrash on unraid forums (https://forums.unraid.net/topic/186256-zfs-buddybackup-plugin-guide/page/2/#findComment-1572178) : I had to recreate a local pool and dataset. When I was performing ...

Great plugin! Would there be a way to expose the pre_snapshot_script/post_snapshot_script in the sanoid.conf? I would like to have it initiate a script to shut down certain containers (databases primarily) before backup of the appdata directory. I can manually edit the file, but all changes revert when applying changes in the plugin gui.

Edited by knaack

  • 2 weeks later...

Hello! I have added a github issue regarding adding new Local backups on at least version 7.1.4+. You are unable to directly add a local backup, and instead have to make the configuration as Remote, apply, then change to local, apply again, and then you have to manually create the dataset for it to work. I have detailed the full issue in my github issue. Otherwise it works fine once using the workaround!

Secondly, whenever I load the BuddyBackup page, or apply a config change to a local backup, the load/reload takes forever, I am not sure why that is, as it's the only place in my server that does so. The ZFS Master plugin loads just fine, even on the /Main page, just this plugin. It works fine on my other server though. Maybe it's the dataset sizes? Idk. This leads me to the next feature request lol

Thirdly, is there anyway to maybe have a combined Apply button at the bottom of each section? It's mostly a non issue once setup, but that initial setup for a bunch of datasets is bothersome when you have to, configure one, apply it, wait for it to apply and the page to reload, then rinse and repeat for X datasets. I see you can click add as many times as you'd like, and the UI populates, but there is only Apply buttons for each individual configuration, and that only saves the config for the one it's relevant too. An "Apply All" button would be fantastic!

Otherwise, absolutely love this plugin and think it's crazy functionality like this isn't native! Thanks for your work!

Edited by TheOgre

  • 1 month later...

SImple, if weird question.

It comes from someone smarter than me when it comes to ZFS and considering jumping over to Unraid.

Does the plugin require the backup target/destination to also be an UnRaid server with ZFS and the Plugin installed? It appears to be running syncoid under the hood, so it's logical to assume that any remote host with ZFS/syncoid should be compatible?

  • Author
On 9/27/2025 at 1:04 PM, alucard87.pl said:

SImple, if weird question.

It comes from someone smarter than me when it comes to ZFS and considering jumping over to Unraid.

Does the plugin require the backup target/destination to also be an UnRaid server with ZFS and the Plugin installed? It appears to be running syncoid under the hood, so it's logical to assume that any remote host with ZFS/syncoid should be compatible?

The focus of this plugin is to simplify the backup process specifically between two UnRaid machines using this plugin. With that said, it's possible to have the other side run on any OS as long as it's done the same way buddybackup does. See https://github.com/Piratkopia13/unraid-buddybackup/issues/2#issuecomment-2658728152 for my comment on how you could receive backups on a non-UnRaid target, for example.

  • 3 weeks later...

Hi, thank you so much for this plugin. Before this, I would use the rsync server container on both of my unraid to sync backups created from the Appdata Backup plugin. So using snapshots with this saves me a ton of space.

A couple of improvements I can suggest after using the plugin for a couple of weeks:

1) An option to stop/start containers before/after snapshots are created. On some containers that use databases, they require proper shutdown to properly be backed up. I recently had to restart my server without properly stopping the containers. Some of my containers wouldn't start (immich for example), so I tried restoring from an earlier snapshot. But it wouldn't work and the containers would still not start properly. What worked was restoring a backup created by the Appdata Backup since it does stop containers before backing them up.

2) Maybe BuddyBackup could use its own ssh server on a different port. I had a bunch of settings on my ssh config, one that was interfering connecting to my other buddy server, I just had to comment those out to get it to work. Other users may have other custom ssh settings, or may not have it turned on.

Edited by cherrybullet

  • 1 month later...

Hi @Pirat and thank you very much for the contribution of this tool.
I was testing out the Buddy Backup on Unraid 7.2.2 and hit quite a big road-block.
The current location on this os for zfs is in /usr/sbin/zfs which is not present in the PATH of the buddybackup user.

root@backup:~# which zfs

/usr/sbin/zfs

root@backup:~# env | grep PATH

PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin

And via SSH for that user
buddybackup@backup:/home/buddybackup$ env | grep PATH

PATH=/usr/local/bin:/usr/bin:/bin

I am not sure if zfs was present in older versions for all users, but you can still just call it from the buddybackup user.
buddybackup@backup:/home/buddybackup$ /usr/sbin/zfs list

NAME USED AVAIL REFER MOUNTPOINT

cache 29.8G 869G 128K /mnt/cache

I'd appreciate your input if the path was different in the past or if e.g. the user had a different path.
I saw that
root@backup:~# cat /etc/profile
...
# Set the default system $PATH:

PATH="/usr/local/bin:/usr/bin:/bin"

# For root users, ensure that /usr/local/sbin, /usr/sbin, and /sbin are in

# the $PATH. Some means of connection don't add these by default (sshd comes

# to mind).

if [ id -u" = "0" ]; then

echo $PATH | grep /usr/local/sbin 1> /dev/null 2> /dev/null

if [ ! $? = 0 ]; then

PATH=/usr/local/sbin:/usr/sbin:/sbin:$PATH

fi

fi

Which would explain why we don't have that path as a non-root user.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.