Support for new features from ZoL 0.7

Developer discussions.

Support for new features from ZoL 0.7

Postby RJVB » Sun Nov 19, 2017 3:13 am

Hi,


Side-ways related to viewtopic.php?f=24&t=3077:

Is any form of ("as-far-as-possible") support planned for the new features in ZFSonLinux 0.7.x? I just saw this:

Code: Select all
> zpool import -d /dev
Password:
   pool: bolaLNXBak
     id: 15783517359236047261
  state: UNAVAIL
status: The pool uses the following feature(s) not supported on this sytem:
        org.zfsonlinux:large_dnode
        org.zfsonlinux:userobj_accounting
action: The pool cannot be imported. Access the pool on a system that supports
        the required feature(s), or recreate the pool from backup.
 config:

        bolaLNXBak  UNAVAIL  unsupported feature(s)
          disk1s6   ONLINE


I did experiment with setting `dnodesize=auto` on some of that pool's datasets but I didn't touch the userobj_accounting feature (not voluntarily/explicitly at least). The pool imported just fine until I upgraded it.

If I interpret this correctly, O3X isn't currently able to import pools created with the current stable ZoL release (v0.7.3), and that seems like more than just a bummer.
RJVB
 
Posts: 54
Joined: Tue May 23, 2017 12:32 pm

Re: Support for new features from ZoL 0.7

Postby lundman » Sun Nov 19, 2017 4:25 pm

You can create a pool without those features of course. When I ported over largednode to OSX, back when it was new, it did very poorly, corrupted the test pool. So I never included it in master, figured I would wait for ZOL to iron out the issues, and PR it to OpenZFS repo. This is what we are waiting on still.

I have not tried the userobj accounting commit yet (not in openzfs either) as it didn't sound very interesting :)
User avatar
lundman
 
Posts: 1335
Joined: Thu Mar 06, 2014 2:05 pm
Location: Tokyo, Japan

Re: Support for new features from ZoL 0.7

Postby RJVB » Sun Nov 19, 2017 5:23 pm

I don't know if one can still create pools without the new features, but you clearly can't do `pool upgrade` without activating the the userobjc_accounting one. And that one cannot be disabled afterwards, apparently. Once active pools can only be imported read-only. I agree it doesn't sound very interesting, but if I understand its purpose correctly it should be possible to implement it on Darwin too (at least in such a way that the existing accounting information is preserved).

As to the dnode feature: that one goes back to a compatible state once the last dataset that ever had a non-legacy dnodesize attribute is destroyed. A bit drastic but at least there's some kind of workaround. I asked about the feature on IRC and didn't get any reaction suggesting there are known reasons to avoid it. The only advice was not to touch it unless you have a good reason - no good reasons were given. I haven't found any either, at least not in the form of a noticeable disk I/O performance gain in my regular workload. Either way, might be worth it to have another look if you still know your way around that code.
RJVB
 
Posts: 54
Joined: Tue May 23, 2017 12:32 pm

Re: Support for new features from ZoL 0.7

Postby lundman » Sun Nov 19, 2017 10:22 pm

On large-dnodes, the PR to keep an eye on: https://github.com/openzfs/openzfs/pull/409
and note that brian point out a bunch of bug fixes near the end, but I don't know if they've included those yet.
User avatar
lundman
 
Posts: 1335
Joined: Thu Mar 06, 2014 2:05 pm
Location: Tokyo, Japan

Re: Support for new features from ZoL 0.7

Postby RJVB » Mon Nov 20, 2017 1:41 am

Of the 3 bug Brian mentioned:

PR #6564 was merged into master on Sept. 6th
PR #6396 was merged into master on July 26th
PR #6576 was also merged into master on Sept. 6th but apparently has side-effects with #6564

I don't see any explicit mention of either having been included in a 0.7 release version, esp. not for #6396 .
RJVB
 
Posts: 54
Joined: Tue May 23, 2017 12:32 pm

Re: Support for new features from ZoL 0.7

Postby lundman » Mon Nov 20, 2017 2:35 am

Heh - I mean, we need to make sure they are in the OpenZFS PR ... that is what we pull in if Ahrens approves it
User avatar
lundman
 
Posts: 1335
Joined: Thu Mar 06, 2014 2:05 pm
Location: Tokyo, Japan

Re: Support for new features from ZoL 0.7

Postby RJVB » Mon Nov 20, 2017 4:49 am

Ah, right, makes sense.
RJVB
 
Posts: 54
Joined: Tue May 23, 2017 12:32 pm

Re: Support for new features from ZoL 0.7

Postby paulCIA » Thu Jan 24, 2019 9:23 am

I can't believe the Linux guys made this the default for new and upgraded pools. The entire reason I use ZFS is that it's the only filesystem that interoperates relatively well with Linux and MacOS, so I upgrade ZFS and create a new pool in Linux, stuff a bunch of data in it, try to import it on MacOS and.... this. Incredibly shortsighted turning this on by default, basically completely ignoring the fact that there are at least 4 implementations of ZFS. Typical Linux dev stuff though, if it's not 100% free software it's not worth supporting. RMS would be proud. Especially ironic considering the canonical implementation Oracle ZFS is not free software. (Oracle is such a greedy shit company, Larry needs a new gold-plated yacht for the Americas Cup I guess, but at least they never pretended to be anything else like Facebook, Apple, and Google.)

Well, better get on with shuffling my data and make sure never to upgrade ZFS again.
paulCIA
 
Posts: 3
Joined: Thu Jan 24, 2019 9:19 am

Re: Support for new features from ZoL 0.7

Postby RJVB » Thu Jan 24, 2019 10:38 am

FWIW, O3x now also has a few pool features that are active by default, and that you cannot even disable when creating a pool, apparently. At least you can with the ZoL features (but I'll admit I haven't yet tried to import a new O3x pool on Linux).

Nowadays the safest way to create a cross-compatibe pool is to do it on FreeBSD.

Or you keep a small pool around as a template, and instead of
Code: Select all
zpool create newpool
you do
Code: Select all
zpool attach templool templdev newdev
, wait for the resilver and then
Code: Select all
zpool split -n templool newpool newdev
:arrow:
RJVB
 
Posts: 54
Joined: Tue May 23, 2017 12:32 pm

Re: Support for new features from ZoL 0.7

Postby paulCIA » Thu Jan 24, 2019 11:35 am

RJVB wrote:FWIW, O3x now also has a few pool features that are active by default, and that you cannot even disable when creating a pool, apparently. At least you can with the ZoL features (but I'll admit I haven't yet tried to import a new O3x pool on Linux).

Nowadays the safest way to create a cross-compatibe pool is to do it on FreeBSD.

Or you keep a small pool around as a template, and instead of
Code: Select all
zpool create newpool
you do
Code: Select all
zpool attach templool templdev newdev
, wait for the resilver and then
Code: Select all
zpool split -n templool newpool newdev
:arrow:

Thanks for the tip... Glad I caught this before creating another pool :lol: Now downloading FreeBSD....
Admittedly I didn't check if there was some way to revert these features in an existing pool, but I could barely understand the documentation of them and it was only 250 GB to copy, so considering frustrations I've had with ZFS in the past in general, which usually led me to do the same thing in the end after much wailing and gnashing of teeth, I just decided to go ahead with that option. And I'll create it in a FreeBSD VM

I would still think it should give some kind of a warning or confirmation question before enabling any feature that might not be backward-compatible with the same or other ZFS implementations. There aren't that many pool options, and I'm still not sure what most of them do after reading the manpage :lol:
paulCIA
 
Posts: 3
Joined: Thu Jan 24, 2019 9:19 am


Return to OpenZFS on OS X Development

Who is online

Users browsing this forum: No registered users and 17 guests