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.

[PLUGIN] ZFS Master

Featured Replies

Separate forum post for that troubleshooting as well:
 

 

  • Replies 724
  • Views 126.1k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Is the ZFS -Master plugin still maintained ? Since 2024.12.08 no change anymore. For me, ZFS was the main feature for starting with Unraid and without a maintained ZFS master It's not really attrac

  • Hey, answering some of the questions: @XuvinWhat does it mean if the dataset/snapshot icon is yellow instead of blue: It means that the last snapshot is older than the time configured on the s

  • ZFS Master may need an update with the current 7.2-rc2 (and rc1 as well but that isn't current now). When this plugin is installed it causes the Unraid Connect icon to disappear on the Main tab. It

Posted Images

2 hours ago, Iker said:

 

It's not in my plans to develop that functionality within the plugin; however, the integration with ZnapZend works just fine and lets you see the plans defined for each dataset, so please check out the plugin or the docker container available. In the future, you will also be able to create plans, but the tool (at least for now) will be ZnapZend.

Many thanks for your advice. Definitely will have a look!
 

is there a procedure for removing and going back to default unraid settings ?

The lazy load option causes didk spin up very 30 seconds and if I disable it it causes slow loading times and also freezes when accessing samba shares

  • Author
12 hours ago, drmetro said:

The lazy load option causes didk spin up very 30 seconds and if I disable it it causes slow loading times and also freezes when accessing samba shares

Please check the options for loading information in the plugin setting, as you can load it on demand instead of using a fixed schedule. I have tried reproducing the issue in the latest version and 7 rc1, but I haven't found the proper cause yet; but, as a note, the situation you describe sounds like you have thousands of snapshots or you haven't excluded dockerfiles from the listing process.

5 hours ago, Iker said:

Please check the options for loading information in the plugin setting, as you can load it on demand instead of using a fixed schedule. I have tried reproducing the issue in the latest version and 7 rc1, but I haven't found the proper cause yet; but, as a note, the situation you describe sounds like you have thousands of snapshots or you haven't excluded dockerfiles from the listing process.

I don’t have thousands of snapshots, im just using spaceinvadorone snapshots tutorial, this was never a problem before ( since last year im using it i guess ) , the problem has arised with the current version of zfsmaster

I had a question about exclusion patterns. Should I list the pool and dataset like this:/nvme_cache/docker/*?

  • Author
16 hours ago, TCMapes said:

I had a question about exclusion patterns. Should I list the pool and dataset like this:/nvme_cache/docker/*?

Yes, however, you can also use the dataset name as long as it's unique, for example: "/dockerfiles/.*"

Hi all, 

 

 

 

Merry Christmas! 

 

 

 

Can someone explain me what these snapshot admin options are/doing? 

 

I cannot find any manual, and I am trying to restore a snapshots to a month ago, but I don't know which option I need to take. 

 

 

 

Thanks! 

 

 

Screenshot_20241225_204930_Chrome.jpg

On 12/25/2024 at 5:24 PM, TallMan206 said:

Hi all, 

 

 

 

Merry Christmas! 

 

 

 

Can someone explain me what these snapshot admin options are/doing? 

 

I cannot find any manual, and I am trying to restore a snapshots to a month ago, but I don't know which option I need to take. 

 

 

 

Thanks! 

 

 

Screenshot_20241225_204930_Chrome.jpg

 

When you hover your mouse over them, it explains....

rollback

hold

release

clone

 

Is it possible to dynamically change the list sort order of the datasets? For example, by name, size, creation date, ascending or descending would be really nice too.

 

 

Hi everyone,

 

I'm looking for steps to set zstd-5 compression at both the zpool level, and at the dataset level.  Thanks to help from @bmartino1 I managed to get the dataset compression set, but the zpool level still shows as "on".

 

I checked and Unraid 6.12.14 is running > version 2 of zfs, so zstd-5 should be supported.

zfs -V
zfs-2.1.15-1
zfs-kmod-2.1.15-1

 

With help from @bmartino1 I did the following:

 

Created the zpool via the command line:

zpool create -O casesensitivity=insensitive -m /mnt/ur2pool ur2pool raidz1 ata-HUH721212ALE601_8DJ2S4ZH ata-HUH721212ALE601_8HKS73MY ata-HUH721212ALE601_AAGAX74H ata-HUH721212ALE601_AAGHK6WH

zfs set compression=zstd-5 ur2pool
zfs set atime=off ur2pool

 

I then added a pool via the  "Add Pool" button at the top left:

image.thumb.png.05238902f8e4d54f4d68432622cc35da.png.7c93b0692eaf5660da2509ece9ee20fb.png

I populated the newly created pool with the 4 drives that makeup my raidz1 zpool.

 

I then clicked on the pool and edited the values with red arrows:

image.thumb.png.1c569ab786be20978dd82b8d63309e16.png

 

I then created a dataset via the create dataset button in the ZFS Master plugin as per the screenshot above, and set compression to zstd, and "Quota" to 5 MiB:  Do not set quota to 5, as this limits the data allowed in the dataset.

image.png.e4cacba665961148bc1e4993126b514b.png.d89a4f9810d4ac4c21480e518325b108.png

 

 

However upon reboot, I see the following instead of "zstd-5" for both:

 

zfs get compression
NAME               PROPERTY     VALUE           SOURCE
ur2pool            compression  on              local
ur2pool/hotBackup  compression  zstd            local

 

I then set compression via the command line for both the zpool, and the dataset:

zfs set compression=zstd-5 ur2pool 
zfs set compression=zstd-5 ur2pool/hotBackup

 

Upon reboot, I see the following:

 

 zfs get compression
NAME               PROPERTY     VALUE           SOURCE
ur2pool            compression  on              local
ur2pool/hotBackup  compression  zstd-5          local

 

My understanding is that "on" means lz4 compression.  Ideally I'd like this to be zstd-5.

 

This is pretty close.  Is there a way to set zstd-5 at the pool level?  Is there anything I've done in the steps below that should be adjusted before I populate the pool/dataset with data?

 

Thanks everyone,

Cal.

image.png

 

image.png.e88c1d7d39b55d4d4054937a874576fe.png

Edited by calvados

Follow up question to my post above that is slightly different in nature, hence a separate post:

 

Is it possible to add a 2nd vdev to an existing zpool with a different raidz level?  e.g. adding a 4 disk wide raidz1 vdev to an existing pool made up of a 4 disk wide raidz2 vdev?  I'm currently running 6.12.14.  If this is not possible in 6.12.14, would it be possible in the upcoming version 7?

 

Thanks again everyone,

Cal.

unraid still needs a bit more polsih. theses things can kinda be done in truenas scale.

are you runnign the beta rc2 or latest 6 stable?

My understanding of the vdev is no. once the pool at cretaion is set you can't go back. Unlese you messing with other stuff that adds disk that becomes there own vdez like adding slog, l2arc etce etc...

General info:

Adding a second vdev to an existing ZFS pool with a different RAID-Z level (e.g., adding a RAID-Z1 vdev to a pool that already has a RAID-Z2 vdev) is possible in ZFS, but it comes with some important considerations:

 

Mixed Vdev Types: ZFS allows you to mix vdevs with different RAID-Z levels in a single pool. For example, you can add a RAID-Z1 vdev to a pool that already has a RAID-Z2 vdev. However:

The redundancy and performance characteristics are determined per vdev.

The weakest link determines the pool's effective fault tolerance. If the RAID-Z1 vdev fails catastrophically, the entire pool becomes unavailable.

 

Unraid Version 6.12.14:

ZFS functionality is supported in Unraid 6.12.x, but certain advanced features like native ZFS integration may still be limited.

Adding a second vdev with a different RAID-Z level should be possible using the CLI (zpool add), as Unraid leverages standard ZFS tools.

 

Upcoming Version 7:

Unraid 7 (if released) might introduce improvements in the ZFS management interface, but the underlying ZFS capabilities (like adding a mixed RAID-Z vdev) are determined by the ZFS implementation itself, not Unraid.

If version 7 integrates a newer ZFS version, additional features (like zpool trim, zfs remove, or dRAID enhancements) might be available, but these wouldn’t necessarily affect mixed vdev support.

 

Best Practices:

Plan for Redundancy: Carefully consider the implications of mixing vdev types, especially if the second vdev has lower redundancy (e.g., RAID-Z1 vs. RAID-Z2).

Backup: Always back up your data before making significant changes to your pool.

Uniform Vdevs: While mixing is technically allowed, it’s generally recommended to maintain uniform vdev configurations to ensure consistent performance and redundancy.

CLI Management: Be prepared to use the CLI for advanced ZFS operations, as the Unraid GUI may not support all ZFS features.

 

example:
 

zpool add mypool raidz1 /dev/sdX /dev/sdY /dev/sdZ /dev/sdW

 

16 minutes ago, bmartino1 said:

unraid still needs a bit more polsih. theses things can kinda be done in truenas scale.

are you runnign the beta rc2 or latest 6 stable?

My understanding of the vdev is no. once the pool at cretaion is set you can't go back. Unlese you messing with other stuff that adds disk that becomes there own vdez like adding slog, l2arc etce etc...

General info:

Adding a second vdev to an existing ZFS pool with a different RAID-Z level (e.g., adding a RAID-Z1 vdev to a pool that already has a RAID-Z2 vdev) is possible in ZFS, but it comes with some important considerations:

 

Mixed Vdev Types: ZFS allows you to mix vdevs with different RAID-Z levels in a single pool. For example, you can add a RAID-Z1 vdev to a pool that already has a RAID-Z2 vdev. However:

The redundancy and performance characteristics are determined per vdev.

The weakest link determines the pool's effective fault tolerance. If the RAID-Z1 vdev fails catastrophically, the entire pool becomes unavailable.

 

Unraid Version 6.12.14:

ZFS functionality is supported in Unraid 6.12.x, but certain advanced features like native ZFS integration may still be limited.

Adding a second vdev with a different RAID-Z level should be possible using the CLI (zpool add), as Unraid leverages standard ZFS tools.

 

Upcoming Version 7:

Unraid 7 (if released) might introduce improvements in the ZFS management interface, but the underlying ZFS capabilities (like adding a mixed RAID-Z vdev) are determined by the ZFS implementation itself, not Unraid.

If version 7 integrates a newer ZFS version, additional features (like zpool trim, zfs remove, or dRAID enhancements) might be available, but these wouldn’t necessarily affect mixed vdev support.

 

Best Practices:

Plan for Redundancy: Carefully consider the implications of mixing vdev types, especially if the second vdev has lower redundancy (e.g., RAID-Z1 vs. RAID-Z2).

Backup: Always back up your data before making significant changes to your pool.

Uniform Vdevs: While mixing is technically allowed, it’s generally recommended to maintain uniform vdev configurations to ensure consistent performance and redundancy.

CLI Management: Be prepared to use the CLI for advanced ZFS operations, as the Unraid GUI may not support all ZFS features.

 

example:
 

zpool add mypool raidz1 /dev/sdX /dev/sdY /dev/sdZ /dev/sdW

 

Thanks @bmartino1.  I'm currently running Unraid 6.12.14.  I'm in the middle of migrating to a new server, so I have a chance to create a brand new zpool, so based on what you're saying I should be able to, from the terminal, create the zpool with 2 vdevs, one with raidz1, and one with raidz2.  I have other backups in place, and am comfortable with the risk associated with having one of the vdevs being raidz1.

 

Would I do this simply by running the following?

zpool create -O casesensitivity=insensitive -m /mnt/ur2pool ur2pool raidz1 {4 drives here}
zpool create -O casesensitivity=insensitive -m /mnt/ur2pool ur2pool raidz2 {4 drives here}

 

Then creating the dataset within the zpool as normal?

 

Thanks again @bmartino1,

Cal.

Edited by calvados

9 minutes ago, calvados said:

Thanks @bmartino1.  I'm currently running Unraid 6.12.14.  I'm in the middle of migrating to a new server, so I have a chance to create a brand new zpool, so based on what you're saying I should be able to, from the terminal, create the zpool with 2 vdevs, one with raidz1, and one with raidz2.  I have other backups in place, and am comfortable with the risk associated with having one of the vdevs being raidz1.

 

Would I do this simply by running:

zpool create -O casesensitivity=insensitive -m /mnt/ur2pool ur2pool raidz1 {a bunch of drives here}
zpool create -O casesensitivity=insensitive -m /mnt/ur2pool ur2pool raidz2 {a bunch of drives here}

 

Thanks again @bmartino1,

Cal.

Here are some guides another info:

https://tadeubento.com/2024/aarons-zfs-guide-vdevs/

https://forums.freebsd.org/threads/when-does-it-make-more-sense-to-use-multiple-vdevs-in-a-zfs-pool.83586/

 

That looks correct.

 

Vdevs (Virtual Devices): In ZFS, a vdev is a fundamental building block of storage pools. Vdevs can be individual disks, mirrors, or RAID-Z groups. Multiple vdevs can be combined to form a single storage pool (zpool), allowing for scalability and redundancy.

ZFS Pools with Multiple Vdevs: Combining multiple vdevs in a zpool can enhance performance and storage capacity. However, it's crucial to recognize that the failure of a single vdev can compromise the entire pool. Therefore, ensuring each vdev has appropriate redundancy (e.g., RAID-Z configurations) is vital for data integrity.

 

in unriad webui click pool seclet raidz2 with at least 4 disk and you will see with 1 vdev or 2 vdev.
this indicates a type of raid redundancy. or striping. (this also affects overall storage space)
9/10 you only want 1 vdev

example terminal command:
 

Create the ZFS Pool with Multiple Vdevs:

To create a pool named mypool with two RAID-Z1 vdevs, each comprising three disks, execute

zpool create mypool raidz1 /dev/sdX /dev/sdY /dev/sdZ raidz1 /dev/sdA /dev/sdB /dev/sdC


 

What it does:

Creates a ZFS pool named mypool.

The pool is the top-level storage construct in ZFS, which manages data across all the vdevs (virtual devices) included in it.

Configures two RAID-Z1 vdevs in the pool:

First vdev:

Created with the disks /dev/sdX, /dev/sdY, and /dev/sdZ.

Configured as a RAID-Z1 vdev, meaning it uses single-parity redundancy (it can tolerate the failure of one disk).

 

Edited by bmartino1
Data - Typo

  • 2 weeks later...

Hi all,

Sorry if I ask a stupid question, I am new to UNRAID and obviously I am discovering this fantastic plugin.

 

In my box running 7.0.0-rc2, when I open the ZFS Master tab there is no information and I need to manually click on the refresh icon to populate the page. The refresh interval is set to 15 minutes.

 

Is this the normal behavior?

  • Author
2 hours ago, googleg said:

Hi all,

Sorry if I ask a stupid question, I am new to UNRAID and obviously I am discovering this fantastic plugin.

 

In my box running 7.0.0-rc2, when I open the ZFS Master tab there is no information and I need to manually click on the refresh icon to populate the page. The refresh interval is set to 15 minutes.

 

Is this the normal behavior?

Hi @googleg it's not. Can you please share your plugins settings, just to check that everything is configured as it should.

EDIT: Nevermind after a complete reboot of the NAS the info is showing correctly. Not sure what happened but now it works as expected. 

 

------

Here it is:

 

General Settings
Refresh Interval: 30 seconds
Lazy Load: No
Load ZnapZend Data: No
Destructive Mode: No
Datasets
Datasets Exclusion Patterns (Just One!): /dockerfiles/.*
Directory Listing (Dataset names, one per line!): mypool/docker
 mypool/otherdataset
Snapshots
Dataset Icon Alert Max Days: 30
Snapshots Pattern: Y-m-d-His
Snapshots Prefix (Do not include the '@' or spaces): default blank
 

 

Edited by googleg

Hey guys, i did a similar question a long while back ( i think just a few days after this plugin came out) on how to use the dataset exclusion patterns for the docker share when it is under /mnt/cache/docker and sitting on a zfs formatted pool.

I now had to switch from the zfs backend driver to overlay2 due to various issues and renamed the old share from "docker" to "docker-old" and created a new share called "docker". When i run "zfs list" i get this:
 

cache/docker-old/wolhvhslvf29k8t3pivzaxgeo                                               304K   318G  1.05G  legacy
cache/docker-old/wveaw68gkv2pva12ry251lvvw                                               288K   319G  1.30G  legacy
cache/docker-old/x4szq66lf0kxs1hjvyli9vvcp                                               160K   319G  1.05G  legacy
cache/docker-old/x9rtcl22u2gv15xsca2kn73vc                                               328K   318G   679M  legacy
cache/docker-old/xuwh6qbuz8q154w33lqsskxtw                                              1.86G   318G  2.99G  legacy
cache/docker-old/y5n8i1wbdw946rl40gdp7hhlg                                               572M   318G  1019M  legacy
cache/docker-old/y6crl33ldujwb9jfcyeb97hly                                              19.0M   318G   626M  legacy
cache/docker-old/y9nro0dg7tbovdah2z0k38x4r                                               304K   318G  1.05G  legacy
cache/docker-old/ygpppknipp372joltaaefqpql                                               541M   318G  1.14G  legacy
cache/docker-old/yiretnbh62p6135tcgtjtnj8a                                               100K   318G   100K  legacy
cache/docker-old/yko1q8i6q99g2asu9ogy0b2rl                                               304K   319G  1.33G  legacy
cache/docker-old/ykuwgidf4wn57ynrtgbbqyefj                                               541M   318G  1.14G  legacy
cache/docker-old/ynvwhtzlynd8w4kca5iun3k5m                                               160K   318G  1.05G  legacy
cache/docker-old/ypqwyhi8ch1gmi8qqdomph5g1                                               448K   318G  2.95G  legacy
cache/docker-old/yvbxcyaq33rtsfg38w9l1wyv6                                               288K   318G   626M  legacy
cache/docker-old/zal6250uewuv703rtmyirivb2                                               384K   318G   463M  legacy
cache/docker-old/ztajorcy58sr9k0k8sdhhcsto                                              19.0M   318G   626M  legacy
cache/docker-old/zumi4wozbdoy2czeysshijf5t                                               160K   318G  1.33G  legacy
cache/domains                                                                           9.80G   318G  9.80G  /mnt/cache/domains
cache/system                                                                             968K   323G   968K  /mnt/cache/system

etc

The problem is, that after renaming the share, the zfs master plugin wont hide it anymore.

I had the exclusion pattern previously set to "/docker/.*" (without the ") and now i changed it to "/docker-old/.*" (also without the "), but for some reason, the datasets are not hidden anymore and the main page takes ages to load.

What could be wrong? It worked previously

 

I could probably delete the old share, but as i might have forgotten to move something, i want to make sure and keep it for a while, until i am 100% certain i didnt miss anything

Edited by Joly0

4 minutes ago, Joly0 said:

Hey guys, i did a similar question a long while back ( i think just a few days after this plugin came out) on how to use the dataset exclusion patterns for the docker share when it is under /mnt/cache/docker and sitting on a zfs formatted pool.

I now had to switch from the zfs backend driver to overlay2 due to various issues and renamed the old share from "docker" to "docker-old" and created a new share called "docker". When i run "zfs list" i get this:
 

cache/docker-old/wolhvhslvf29k8t3pivzaxgeo                                               304K   318G  1.05G  legacy
cache/docker-old/wveaw68gkv2pva12ry251lvvw                                               288K   319G  1.30G  legacy
cache/docker-old/x4szq66lf0kxs1hjvyli9vvcp                                               160K   319G  1.05G  legacy
cache/docker-old/x9rtcl22u2gv15xsca2kn73vc                                               328K   318G   679M  legacy
cache/docker-old/xuwh6qbuz8q154w33lqsskxtw                                              1.86G   318G  2.99G  legacy
cache/docker-old/y5n8i1wbdw946rl40gdp7hhlg                                               572M   318G  1019M  legacy
cache/docker-old/y6crl33ldujwb9jfcyeb97hly                                              19.0M   318G   626M  legacy
cache/docker-old/y9nro0dg7tbovdah2z0k38x4r                                               304K   318G  1.05G  legacy
cache/docker-old/ygpppknipp372joltaaefqpql                                               541M   318G  1.14G  legacy
cache/docker-old/yiretnbh62p6135tcgtjtnj8a                                               100K   318G   100K  legacy
cache/docker-old/yko1q8i6q99g2asu9ogy0b2rl                                               304K   319G  1.33G  legacy
cache/docker-old/ykuwgidf4wn57ynrtgbbqyefj                                               541M   318G  1.14G  legacy
cache/docker-old/ynvwhtzlynd8w4kca5iun3k5m                                               160K   318G  1.05G  legacy
cache/docker-old/ypqwyhi8ch1gmi8qqdomph5g1                                               448K   318G  2.95G  legacy
cache/docker-old/yvbxcyaq33rtsfg38w9l1wyv6                                               288K   318G   626M  legacy
cache/docker-old/zal6250uewuv703rtmyirivb2                                               384K   318G   463M  legacy
cache/docker-old/ztajorcy58sr9k0k8sdhhcsto                                              19.0M   318G   626M  legacy
cache/docker-old/zumi4wozbdoy2czeysshijf5t                                               160K   318G  1.33G  legacy
cache/domains                                                                           9.80G   318G  9.80G  /mnt/cache/domains
cache/system                                                                             968K   323G   968K  /mnt/cache/system

etc

The problem is, that after renaming the share, the zfs master plugin wont hide it anymore.

I had the exclusion pattern previously set to "/docker/.*" (without the ") and now i changed it to "/docker-old/.*" (also without the "), but for some reason, the datasets are not hidden anymore and the main page takes ages to load.

What could be wrong? It worked previously

 

I could probably delete the old share, but as i might have forgotten to move something, i want to make sure and keep it for a while, until i am 100% certain i didnt miss anything

 

Maybe I'm missing something but why do you feel the need to save the old share? I mean, you had to recreate the share with overlay2 and re-add your containers? There is nothing to miss. 

2 minutes ago, Niklas said:

 

Maybe I'm missing something but why do you feel the need to save the old share? I mean, you had to recreate the share with overlay2 and re-add your containers? There is nothing to miss. 

There is actually. Some dockers (for example nextcloud-aio) and various dockers i created using docker compose plugin use volumes and not mounts (mounted to /mnt/cache/appdata for example) and therefore to be safe, i keep it for the time being

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.