ZFS plugin for unRAID


steini84

Recommended Posts

On 11/25/2022 at 10:25 AM, SuperW2 said:

It had been working perfectly without error for almost a year, and I created the pool initially with the same Truenas instance I'm not sure if likely related or not.

 

Just remind that when you import a pool, ZFS tries to upgrade the filesystem to the latest version; for me, it looks pretty likely that it is something related to a specific attribute/feature that TrueNAS introduces to the pool; I mean, if the pool works with TrueNAS but not with vanilla ZFS (unRaid) there is not a lot of space for other types of errors.

Link to comment
45 minutes ago, exus said:

Hi, I'm new to Unraid and ZFS.

When using zfs is there something to configure about power outage scenarios (with Ups) or I can just put my settings inside the standard UPS Settings page?

Interesting question, I haven't gone and specifically set anything.  However, there are things you can do to help.  For example using SSD's with power loss data protection and being careful about what kind of caching you set up (but if you're asking you probably haven't done this yet - and you may never).  I guess I'd say it has good sensible defaults that are at least as good as the other options out there, provided you've got some redundancy built in so no, nothing I can think of!  UPS will just help even more.

Link to comment
On 11/24/2022 at 3:02 PM, SuperW2 said:

Have been running ZFS on my UNRaid now for most of this year with no issues.  Completed update to 6.11.5 (had previously been applying all point releases fairly quickly after release)... After the last update I'm getting a PANIC at boot directly after "Starting Samba: on 4th line "/usr/sbin/winbindd -D". 

 

 

If I start Unraid in safe mode it boots just fine... I renamed the unRAID6-ZFS .PLG file and it boots normally as expected...  Has anyone else run into any issues with the ZFS plugin and newer 6.11 versions of UnRaid?  Any ideas?  I completely removed the ZFS plugin and reinstalled and get the error messages in the live SysLog...

 

I've imported my pool into a TRUENAS boot that I've used to add vdevs and it appears healthy and no issues that I can identity.   Scrub completed normally.  I also downgraded to previous 6.11 versions (I was running 6.11.4 before with no issue) and no change, same PANIC error.

 

Any Ideas or anyone else with similar issues?

 

SW2

Did you try uninstalling and reinstalling the plugin with the latest unraid kernel?

Link to comment

Hello,

 

Thanks @steini84for all your work here.  

I jist set up my first unraid server and have been chewing through a ton of info.  Im on page 17 of this thread so far.

 

I have 2 dummy usb sticks in for array and cache.

Is there a way to point my cache to my /zfs/cache pool

and my array to /zfs/data pool

 

My data pool is spinners

My cache pool is ssd's

 

Ive remade all my shares as their respected datasets in the pools.

 

Im sure that info is in here somewhere Im just cross eyed trying to find it right now.

 

So far Ive only found that I choose one or the other and then use samba shares to share it properly.

 

Thank you.

Link to comment
17 minutes ago, dirkinthedark said:

Hello,

 

Thanks @steini84for all your work here.  

I jist set up my first unraid server and have been chewing through a ton of info.  Im on page 17 of this thread so far.

 

I have 2 dummy usb sticks in for array and cache.

Is there a way to point my cache to my /zfs/cache pool

and my array to /zfs/data pool

 

My data pool is spinners

My cache pool is ssd's

 

Ive remade all my shares as their respected datasets in the pools.

 

Im sure that info is in here somewhere Im just cross eyed trying to find it right now.

 

So far Ive only found that I choose one or the other and then use samba shares to share it properly.

 

Thank you.


if I understand you correctly you are talking about the unfair cache which requires the unraid array. If you’re on zfs you don’t really need the unraid cache because it’s not as slow as the unraid array. Plus zfs has a myriad of other smart caching features included and some you can add. If you just need to point default dockers and things you can do that in settings.  

Link to comment

Yeah, I kinda wondered about that too - it's a possibility that the mover will be zfs enabled when unraid make zfs official.  I can't say it would be a waste of time - might be quite nifty, though I expect in a slightly less integrated fashion.  If you want to get files to move to other drives for backup - znapzend is a good option (download as a plugin).  If you have a lot of data and want the most efficient copy, zfs send receive is the best - though it can be quite tricky to set up.  It pays to understand your data to know which is better - rsync can still be a good tool.  Another great tool included with Unraid is midnight commander, a copy of the old xtree gold, you do have to spend 5 mins learning the syntax, but it's the fastest and easiest semi graphical tool around.

Link to comment

Is there a way to have the drives in a ZFS pool ignore UDMA CRC errors? I've got something odd happening that started a few days ago where I've been seeing UDMA CRC errors on both my array drives and my ZFS pool. The pool is being more severely affected, and has put it into degraded mode until I run zpool clear <poolname>. As UDMA CRC are usually cable errors, I'll need to shutdown and replace my cables from the HBA to the expanders.

 

Alas I'm in the midst of moving a large amount of data onto larger drives for the array so shutting down now is inconvenient. I'm watching it, and run the zpool clear command every 4 - 6 hrs to keep it from going into a degraded state. These are older 10TB drives, so I've got a plan to replace them with a pool of newer 16TB drives, but I just need an interim workaround to try and prevent degraded mode.

 

Suggestions?

 

EDIT: I suppose I could just create a script that runs every 15 minutes to clear the errors being logged. I don't care that the count continues to increase as UDMA CRC are usually fully recoverable. zpool status reports that they were 'unrecoverable', but also states no known data errors. The errors are definitely not the drives as it's randomly happening to all of the drives in the ZFS pool.

Edited by AgentXXL
Update on temporary solution using script
Link to comment

I really dislike that error!  I get it too, it shouldn't be so persistent in the GUI and should be more informational as it always comes back after a reboot which is not really desirable.  BTW I recall I read that expanders shouldn't be used in JBOD mode, could be wrong but perhaps this is the problem.  I've also had this error with an overheating SAS card.  Good luck!

Link to comment
  • 3 weeks later...
On 11/20/2022 at 11:55 AM, gyto6 said:

You must destroy and create a pool with each disk. Copy your data to an external USB drive temporarily to create your new zpool.

 

in this case, unraid's ZFS plugin essentially renders part of unraid's draw (mix and match disks) somewhat moot, as it behaves just like a normal ZFS zpool with the inability to scale out or scale up. is that right?

Link to comment
5 hours ago, miketew said:

in this case, unraid's ZFS plugin essentially renders part of unraid's draw (mix and match disks) somewhat moot, as it behaves just like a normal ZFS zpool with the inability to scale out or scale up. is that right?

 

The ZFS plugin isn't intended to replace the Unraid array (with it's flexibility to mix and match disks), but rather to replace the functionality otherwise provided by the cache drive/pool (ie. BTRFS)

 

When ZFS is officially supported in Unraid (which has been hinted at), that will still be the case.

 

edit:  That said, ZFS raidz expansion is now a thing, and there has always been the option to fairly easily expand arrays with mirrored pairs (which is generally regarded as the best pool topology)

Edited by jortan
Link to comment
8 hours ago, jortan said:

 

The ZFS plugin isn't intended to replace the Unraid array (with it's flexibility to mix and match disks), but rather to replace the functionality otherwise provided by the cache drive/pool (ie. BTRFS)

 

When ZFS is officially supported in Unraid (which has been hinted at), that will still be the case.

 

edit:  That said, ZFS raidz expansion is now a thing, and there has always been the option to fairly easily expand arrays with mirrored pairs (which is generally regarded as the best pool topology)


yeah, I have no interest in expansion requiring 2 disks for the size of 1 each time 😛 but I was not aware ZFS was that far along with expansion officially, that's awesome.

Link to comment
11 hours ago, jortan said:

 

edit:  That said, ZFS raidz expansion is now a thing,

I doubt as the PR is still opened on the github.

 

But indeed, the operation is already available for mirrored vdev.

 

Concerning ZFS support in Unraid, it's "coming" in Unraid 6.12

 

Quote

Additional Feedback and Gift Card Winners

We heard a lot of feedback for ZFS. We hear you loud and clear and it's coming in Unraid OS 6.12!

 

Edited by gyto6
Link to comment

Hello,

 

A little new to ZFS and using a 2x raidz2. I learned how to check my zpool history and I seem to have a plugin calling an unwanted command on my pool and I am trying to figure out if its the actual ZFS plugin or something else.

 

The issue is that 2-3 a day (random days, maybe a week apart?) I am seeing a day I am seeing the following:

2022-12-17.11:05:54 zpool import -a

2022-12-17.11:13:01 zpool import -a

2022-12-28.10:24:12 zpool import -a

2022-12-28.10:44:10 zpool import -a

2022-12-28.13:03:49 zpool import -a

 

What also happens its run twice a day but about 5 minutes apart and makes no sense. I have only a few plugins installed ZFS, ZFS Companion and ZFS Master.

 

The author of ZFS Master confirmed it is not his plugin and wanted to check here is the ZFS plugin is calling for the import and maybe why again 5 minutes later?

 

Any help/feedback is very appreciated. This is a great plugin but even though I am new to ZFS that seems like a powerful command to being running on its own and made me nervous to get some answers.

 

Thanks! 

Edited by 1WayJonny
Link to comment

Hey well just to narrow it down a bit, I run ZFS, ZFS Companion and ZFS Master and have done so for a long time I also run znapzend and a few other things but I have never seen it do this.  I assume by your post this is just printing live in the console?  Maybe take a look to see if something got into cron somehow?  Or User Scripts?

 

Unless you've got unmounted ZFS disks that you do not want to mount it's probably pretty safe.  However one thing that occurs to me is to double check this is not a safety feature about disks dropping out - I seriously doubt it because I think that would exhibit more in the Array health i.e zpool status -x has nothing in it.

Link to comment
7 minutes ago, Marshalleq said:

 I assume by your post this is just printing live in the console?

 

You can check this with:

 

zpool history | grep import

 

I have a several of these entries, but not since around 6 months ago, and this may have actually been me running the commands.  I don't use these plugins, but I've just installed zfs-companion to see if that's causing these commands to be run.

Edited by jortan
Link to comment

Well I do get 7 results, though I can't say it's alarming given the server has been up for 63 days.

Screenshot 2022-12-30 at 9.39.39 AM.png

 

I might also add that I do have some kind of hardware problem that requires me to clear the pool every now and then.  It's probably a disk or a controller, or heat related.  Not too frequent now anyway, but it may well be 6 or 7 times in the three months.  That may then lead me to think that you have a similar issue if you have a lot of entries - though I could be completely off here as I'm just guessing.  But it's likely worth googling why you might get this in your log and can it happen when ZFS is detecting errors.

Edited by Marshalleq
Link to comment
15 minutes ago, Marshalleq said:

That may then lead me to think that you have a similar issue if you have a lot of entries - though I could be completely off here as I'm just guessing.  But it's likely worth googling why you might get this in your log and can it happen when ZFS is detecting errors.

 

I don't think it's indicative of a faulty pool, something is issuing a command to import (bring online and mount) all detected zfs pools.  I think 1WayJonny's point is that there could be situations where a plugin randomly issuing a command to import all ZFS pools might not be desirable.

 

 

Link to comment
10 hours ago, Iker said:

found that the command is issued every time you reboot Unraid

Yes, the plugin is issuing this command each reboot and also if the plugin gets updated.

 

Otherwise your pools wouldn't get imported, at least not on pre Unraid 6.11

 

@1WayJonny what's your exact issue with that command or why do you think it's bad?

This command only makes sure that the pools or better speaking disks which are connected to your system and have pools on them are imported/mounted. If a pool/disk for example is connected to your system but not imported/mounted this command is only importing/mounting them, all existing pools stay imported/mounted and are not touched.

 

Imported simply means mounted in terms of ZFS.

  • Upvote 1
Link to comment
On 12/30/2022 at 10:30 PM, ich777 said:

Yes, the plugin is issuing this command each reboot and also if the plugin gets updated.

 

Otherwise your pools wouldn't get imported, at least not on pre Unraid 6.11

 

@1WayJonny what's your exact issue with that command or why do you think it's bad?

This command only makes sure that the pools or better speaking disks which are connected to your system and have pools on them are imported/mounted. If a pool/disk for example is connected to your system but not imported/mounted this command is only importing/mounting them, all existing pools stay imported/mounted and are not touched.

 

Imported simply means mounted in terms of ZFS.

 

@ich777

Hi - thank you much for the information.

 

All good knowing it is the the ZFS plug-in issuing the command. I am new to ZFS & raidz and with 120TB of data I have been learning and watching the zpool history to make sure my migration from Windows RAID5 to UnRaid is working well.

 

When seeing that command I wanted to make sure I did not have plugs doing unwanted things. This is just a learning experience for me and appreciate the explanation.

 

Also, love your docker container work. Ill be sending a donation soon. Awesome job!

Edited by 1WayJonny
  • Like 1
Link to comment

I've now tried resilvering a drive in my pool twice now, and this is the second time I've run into this error:

 

Any ideas? I'd love to finish the resilver, but after this it seems that all i/o to the pool is hung and ultimately leads to services and my server hanging.

 

Jan 10 20:53:59 TaylorPlex kernel: BUG: unable to handle page fault for address: 0000000000003da8
Jan 10 20:53:59 TaylorPlex kernel: #PF: supervisor write access in kernel mode
Jan 10 20:53:59 TaylorPlex kernel: #PF: error_code(0x0002) - not-present page
Jan 10 20:53:59 TaylorPlex kernel: PGD 0 P4D 0
Jan 10 20:53:59 TaylorPlex kernel: Oops: 0002 [#1] SMP NOPTI
Jan 10 20:53:59 TaylorPlex kernel: CPU: 26 PID: 9194 Comm: dp_sync_taskq Tainted: P           O      5.15.46-Unraid #1
Jan 10 20:53:59 TaylorPlex kernel: Hardware name: Supermicro M12SWA-TF/M12SWA-TF, BIOS 2.0b 06/28/2022
Jan 10 20:53:59 TaylorPlex kernel: RIP: 0010:mutex_lock+0x1e/0x2a
Jan 10 20:53:59 TaylorPlex kernel: Code: 00 00 be 02 00 00 00 e9 37 fd ff ff 0f 1f 44 00 00 51 48 89 3c 24 e8 c3 f4 ff ff 31 c0 48 8b 3c 24 65 48 8b 14 25 c0 bb 01 00 <f0> 48 0f b1 17 74 03 5a eb c9 58 c3 0f 1f 44 00 00 55 50 48 89 3c
Jan 10 20:53:59 TaylorPlex kernel: RSP: 0018:ffffc90035017a60 EFLAGS: 00010246
Jan 10 20:53:59 TaylorPlex kernel: RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
Jan 10 20:53:59 TaylorPlex kernel: RDX: ffff888223723d00 RSI: ffffffffa321121b RDI: 0000000000003da8
Jan 10 20:53:59 TaylorPlex kernel: RBP: 0000000000003d88 R08: ffff8890108bb5a0 R09: 0000000000000000
Jan 10 20:53:59 TaylorPlex kernel: R10: 041599d979dd14da R11: 01bd11284133f858 R12: 0000000000003da8
Jan 10 20:53:59 TaylorPlex kernel: R13: ffff888223723d00 R14: 0000000000012000 R15: 0000000000000001
Jan 10 20:53:59 TaylorPlex kernel: FS:  0000000000000000(0000) GS:ffff88bf3d680000(0000) knlGS:0000000000000000
Jan 10 20:53:59 TaylorPlex kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Jan 10 20:53:59 TaylorPlex kernel: CR2: 0000000000003da8 CR3: 00000002f2bf2000 CR4: 0000000000350ee0
Jan 10 20:53:59 TaylorPlex kernel: Call Trace:
Jan 10 20:53:59 TaylorPlex kernel: <TASK>
Jan 10 20:53:59 TaylorPlex kernel: zfs_ratelimit+0x2d/0xd9 [zfs]
Jan 10 20:53:59 TaylorPlex kernel: zfs_is_ratelimiting_event+0x29/0x76 [zfs]
Jan 10 20:53:59 TaylorPlex kernel: zfs_ereport_start_checksum+0xc3/0x22a [zfs]
Jan 10 20:53:59 TaylorPlex kernel: zio_checksum_verify+0x91/0x13b [zfs]
Jan 10 20:53:59 TaylorPlex kernel: ? ZSTD_compressBlock_fast_extDict_generic+0x970/0x1060 [zzstd]
Jan 10 20:53:59 TaylorPlex kernel: zio_execute+0xb2/0xd9 [zfs]
Jan 10 20:53:59 TaylorPlex kernel: zio_vdev_io_start+0x225/0x233 [zfs]
Jan 10 20:53:59 TaylorPlex kernel: zio_nowait+0xe7/0xf9 [zfs]
Jan 10 20:53:59 TaylorPlex kernel: zio_ddt_read_start+0x18e/0x1bb [zfs]
Jan 10 20:53:59 TaylorPlex kernel: ? spl_kmem_alloc_impl+0xc6/0xf3 [spl]
Jan 10 20:53:59 TaylorPlex kernel: ? zio_nop_write+0x29d/0x29d [zfs]
Jan 10 20:53:59 TaylorPlex kernel: ? zio_push_transform+0x34/0x7a [zfs]
Jan 10 20:53:59 TaylorPlex kernel: zio_nowait+0xe7/0xf9 [zfs]
Jan 10 20:53:59 TaylorPlex kernel: arc_read+0xea7/0xef3 [zfs]
Jan 10 20:53:59 TaylorPlex kernel: dsl_scan_prefetch_thread+0x19a/0x248 [zfs]
Jan 10 20:53:59 TaylorPlex kernel: taskq_thread+0x277/0x3a1 [spl]
Jan 10 20:53:59 TaylorPlex kernel: ? wake_up_q+0x3e/0x3e
Jan 10 20:53:59 TaylorPlex kernel: ? taskq_dispatch_delay+0x111/0x111 [spl]
Jan 10 20:53:59 TaylorPlex kernel: kthread+0xde/0xe3
Jan 10 20:53:59 TaylorPlex kernel: ? set_kthread_struct+0x32/0x32
Jan 10 20:53:59 TaylorPlex kernel: ret_from_fork+0x22/0x30
Jan 10 20:53:59 TaylorPlex kernel: </TASK>
Jan 10 20:53:59 TaylorPlex kernel: Modules linked in: nvidia_uvm(PO) xt_nat xt_CHECKSUM macvlan ipt_REJECT nf_reject_ipv4 xt_tcpudp ip6table_mangle ip6table_nat vhost_net tun vhost vhost_iotlb tap xt_conntrack xt_MASQUERADE nf_conntrack_netlink nfnetlink xt_addrtype iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 br_netfilter xfs dm_crypt dm_mod dax nfsd auth_rpcgss oid_registry lockd grace sunrpc md_mod iptable_mangle zfs(PO) zunicode(PO) zzstd(O) zlua(O) zavl(PO) icp(PO) zcommon(PO) znvpair(PO) spl(O) nvidia_modeset(PO) nvidia(PO) ipmi_devintf efivarfs ip6table_filter ip6_tables iptable_filter ip_tables x_tables mlx4_en mlx4_core wmi_bmof ast drm_vram_helper drm_ttm_helper amd64_edac ttm edac_mce_amd drm_kms_helper kvm_amd kvm drm crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel backlight igb agpgart aesni_intel ahci syscopyarea sysfillrect ipmi_ssif crypto_simd sysimgblt cryptd rapl atlantic fb_sys_fops libahci i2c_algo_bit mpt3sas input_leds nvme i2c_piix4 led_class raid_class
Jan 10 20:53:59 TaylorPlex kernel: ccp acpi_ipmi scsi_transport_sas i2c_core k10temp nvme_core wmi ipmi_si tpm_crb tpm_tis tpm_tis_core tpm button acpi_cpufreq [last unloaded: mlx4_core]
Jan 10 20:53:59 TaylorPlex kernel: CR2: 0000000000003da8
Jan 10 20:53:59 TaylorPlex kernel: ---[ end trace 1fc9ad216c6bdd08 ]---
Jan 10 20:53:59 TaylorPlex kernel: RIP: 0010:mutex_lock+0x1e/0x2a
Jan 10 20:53:59 TaylorPlex kernel: Code: 00 00 be 02 00 00 00 e9 37 fd ff ff 0f 1f 44 00 00 51 48 89 3c 24 e8 c3 f4 ff ff 31 c0 48 8b 3c 24 65 48 8b 14 25 c0 bb 01 00 <f0> 48 0f b1 17 74 03 5a eb c9 58 c3 0f 1f 44 00 00 55 50 48 89 3c
Jan 10 20:53:59 TaylorPlex kernel: RSP: 0018:ffffc90035017a60 EFLAGS: 00010246
Jan 10 20:53:59 TaylorPlex kernel: RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
Jan 10 20:53:59 TaylorPlex kernel: RDX: ffff888223723d00 RSI: ffffffffa321121b RDI: 0000000000003da8
Jan 10 20:53:59 TaylorPlex kernel: RBP: 0000000000003d88 R08: ffff8890108bb5a0 R09: 0000000000000000
Jan 10 20:53:59 TaylorPlex kernel: R10: 041599d979dd14da R11: 01bd11284133f858 R12: 0000000000003da8
Jan 10 20:53:59 TaylorPlex kernel: R13: ffff888223723d00 R14: 0000000000012000 R15: 0000000000000001
Jan 10 20:53:59 TaylorPlex kernel: FS:  0000000000000000(0000) GS:ffff88bf3d680000(0000) knlGS:0000000000000000
Jan 10 20:53:59 TaylorPlex kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Jan 10 20:53:59 TaylorPlex kernel: CR2: 0000000000003da8 CR3: 00000002f2bf2000 CR4: 0000000000350ee0
Link to comment

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...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.