Re: git: 72a1cb05cd23 - main - rc(8): Add a zpoolupgrade rc.d script
- In reply to: Mark Millard : "Re: git: 72a1cb05cd23 - main - rc(8): Add a zpoolupgrade rc.d script"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 08 Nov 2022 03:04:22 UTC
On Nov 7, 2022, at 16:34, Mark Millard <marklmi@yahoo.com> wrote: > Warner Losh <imp_at_bsdimp.com> wrote on > Date: Mon, 07 Nov 2022 21:23:11 UTC : > >> On Mon, Nov 7, 2022 at 4:15 AM Alexander Leidinger <Alexander@leidinger.net> >> wrote: >> >>> >> . . . >>> >>> And this brings me to a second topic, we don't have an explicit list >>> of features which are supported by the bootloader (I had a look at the >>> zfs and the boot related man pages, if I overlooked a place, then the >>> other places should reference this important part with some text). >>> >> >> There is a fixed list of features we support in the boot loader: >> >> /* >> * List of ZFS features supported for read >> */ >> static const char *features_for_read[] = { >> "org.illumos:lz4_compress", >> "com.delphix:hole_birth", >> "com.delphix:extensible_dataset", >> "com.delphix:embedded_data", >> "org.open-zfs:large_blocks", >> "org.illumos:sha512", >> "org.illumos:skein", >> "org.zfsonlinux:large_dnode", >> "com.joyent:multi_vdev_crash_dump", >> "com.delphix:spacemap_histogram", >> "com.delphix:zpool_checkpoint", >> "com.delphix:spacemap_v2", >> "com.datto:encryption", >> "com.datto:bookmark_v2", >> "org.zfsonlinux:allocation_classes", >> "com.datto:resilver_defer", >> "com.delphix:device_removal", >> "com.delphix:obsolete_counts", >> "com.intel:allocation_classes", >> "org.freebsd:zstd_compress", >> "com.delphix:bookmark_written", >> "com.delphix:head_errlog", > > As an example of a more general question > (referencing a zpool feature, if I understand > right): > > com.delphix:head_errlog in the loaders from > 13.1-RELEASE? 13.1-RELEASE-p3? 12.3-RELEASE*? > (The future 12.4-RELEASE?) > > head_errlog is an interesting example because of > "man zpool-features" reporting the below --and it > being fairly new: > > "READ-ONLY COMPATIBLE no" > and: > "This feature becomes active as soon as it is enabled and will > never return to being enabled." > > I guess the loader avoids types of read activity that cause the > more general "READ-ONLY COMPATIBLE no" status. > > (I use the example just because I've indirectly > run into it before, but in a more limited context. > It may not be the best of examples for the general > question.) > > Does each RELEASE and release-update get its own, > documented zpool feature list for its loaders? > (There might be a question for a zfs vs. zpool > feature distinction as well?) > >> "org.openzfs:blake3", >> NULL >> }; > > The overall list definitely goes beyond what is > listed in: > > /usr/share/zfs/compatibility.d/openzfs-2.1-freebsd > >> Any feature not on this list will cause the boot loader to reject the pool. >> >> Whether or not it should do that by default, always, or never is an open >> question. I've thought there should be a 'shoot footing' override that isn't >> there today. > > As I am not familiar with all the zpool features, I did some exploration. An FYI from it follows. (I originally built a list with things interlaced but the reordering made it more readable. The history explains some of the notation.) In openzfs-2.1-freebsd list but not in Warner's list: async_destroy : not in Warner's list bookmarks : not in Warner's list device_rebuild : not in Warner's list draid : not in Warner's list empty_bpobj : not in Warner's list enabled_txg : not in Warner's list filesystem_limits : not in Warner's list livelist : not in Warner's list log_spacemap : not in Warner's list project_quota : not in Warner's list redacted_datasets : not in Warner's list redaction_bookmarks : not in Warner's list userobj_accounting : not in Warner's list Not in openzfs-2.1-freebsd list but in Warner's list: not in openzfs-2.1-freebsd : com.delphix:head_errlog not in openzfs-2.1-freebsd : org.openzfs:blake3 Not in openzfs-2.1-freebsd list nor in Warner's list: (These are listed in "man zpool-features", as are the rest of the various names listed.) edonr zilsaxattr In both openzfs-2.1-freebsd list and in Warner's list: allocation_classes : org.zfsonlinux:allocation_classes bookmark_v2 : com.datto:bookmark_v2 bookmark_written : com.delphix:bookmark_written device_removal : com.delphix:device_removal embedded_data : com.delphix:embedded_data encryption : com.datto:encryption extensible_dataset : com.delphix:extensible_dataset hole_birth : com.delphix:hole_birth large_blocks : org.open-zfs:large_blocks large_dnode : org.zfsonlinux:large_dnode lz4_compress : org.illumos:lz4_compress multi_vdev_crash_dump : com.joyent:multi_vdev_crash_dump obsolete_counts : com.delphix:obsolete_counts resilver_defer : com.datto:resilver_defer sha512 : org.illumos:sha512 skein : org.illumos:skein spacemap_histogram : com.delphix:spacemap_histogram spacemap_v2 : com.delphix:spacemap_v2 zpool_checkpoint : com.delphix:zpool_checkpoint === Mark Millard marklmi at yahoo.com