Page 1 of 1

SMB FullSync missing för zfs volumes

PostPosted: Sun Mar 10, 2019 11:55 am
by haer22
To use smb-access instead of afp-access for TimeMachine clients the server need to offer SMB FullSync. The MacOS server does that for HFS volumes but not for ZFS volumes.

Is that a shortcoming of zfs?
Any flag I have forgot to set?
Anything that will be fixed in some future?

Re: SMB FullSync missing för zfs volumes

PostPosted: Sun Mar 10, 2019 2:54 pm
by chrryd
You need to set the ZFS property 'com.apple.devdisk=on' on the ZFS dataset you want to share for TimeMachine. This setting means that a /dev/disk* entry gets created for that particular dataset, which seems to be enough for OSX to then enable SMB FullSync.

Re: SMB FullSync missing för zfs volumes

PostPosted: Mon Mar 11, 2019 9:03 am
by haer22
any drawbacks to doing that?

Re: SMB FullSync missing för zfs volumes

PostPosted: Tue Mar 12, 2019 10:55 am
by chrryd
None that I'm aware of! @lundman can surely tell you more, but my theory is that normally a ZFS dataset has no device entry associated with it, so the SMB server doesn't know what device to send the appropriate sync ioctl to. By enabling the devdisk option, it now sees a device and can send the appropriate ioctl. I may of course be totally wrong :-)

Oh, and when you first set the 'com.apple.devdisk=on' property, you won't get a /dev/disk* entry created until the pool has been exported/imported (or the machine rebooted).

Re: SMB FullSync missing för zfs volumes

PostPosted: Tue Mar 12, 2019 3:51 pm
by lundman
Or "zfs unmount dataset" "zfs mount dataset".

The only drawback with devdisk on is that its a bit more complicated, and eats a tiny bit more memory. But we didn't want to leave the default "on" so for those with 100s of dataset, would get 100s of /dev/disk entries.

Re: SMB FullSync missing för zfs volumes

PostPosted: Wed Sep 20, 2023 1:59 pm
by RJVB
lundman wrote:The only drawback with devdisk on is that its a bit more complicated


Plus, when I set it to `off` for the boot/root dataset I finally stopped getting that pesky initialisation dialog that OS X had been slapping me with on my latest pool. I had thought that was about that one "organisational" nomount dataset but it was the pool itself clearly.

Oh, and `iostat` doesn't see anything on that device either ;)