Re: git: 72a1cb05cd23 - main - rc(8): Add a zpoolupgrade rc.d script
- In reply to: Warner Losh : "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 09:50:53 UTC
Quoting Warner Losh <imp@bsdimp.com> (from Mon, 7 Nov 2022 14:23:11 -0700): > > > On Mon, Nov 7, 2022 at 4:15 AM Alexander Leidinger > <Alexander@leidinger.net> wrote: > >> Quoting Li-Wen Hsu <lwhsu@freebsd.org> (from Mon, 7 Nov 2022 03:39:19 GMT): >> >>> The branch main has been updated by lwhsu: >>> >>> URL: >>> https://cgit.FreeBSD.org/src/commit/?id=72a1cb05cd230ce0d12a7180ae65ddbba2e0cb6d >>> >>> commit 72a1cb05cd230ce0d12a7180ae65ddbba2e0cb6d >>> Author: Li-Wen Hsu <lwhsu@FreeBSD.org> >>> AuthorDate: 2022-11-07 03:30:09 +0000 >>> Commit: Li-Wen Hsu <lwhsu@FreeBSD.org> >>> CommitDate: 2022-11-07 03:30:09 +0000 >>> >>> rc(8): Add a zpoolupgrade rc.d script >>> >>> If a zpool is created by makefs(8), its version is 5000, i.e., all >>> feature flags are off. Introduce an rc script to run `zpool upgrade` >>> over the assigned zpools on the first boot. This is useful to the >>> ZFS based VM images built from release(7). >> >>> diff --git a/share/man/man5/rc.conf.5 b/share/man/man5/rc.conf.5 >>> index f9ceabc83120..43fa44a5f1cb 100644 >>> --- a/share/man/man5/rc.conf.5 >>> +++ b/share/man/man5/rc.conf.5 >>> @@ -24,7 +24,7 @@ >>> .\" >>> .\" $FreeBSD$ >>> .\" >>> -.Dd August 28, 2022 >>> +.Dd November 7, 2022 >>> .Dt RC.CONF 5 >>> .Os >>> .Sh NAME >>> @@ -2109,6 +2109,13 @@ A space-separated list of ZFS pool names for >>> which new pool GUIDs should be >>> assigned upon first boot. >>> This is useful when using a ZFS pool copied from a template, such >>> as a virtual >>> machine image. >>> +.It Va zpool_upgrade >>> +.Pq Vt str >>> +A space-separated list of ZFS pool names for which version should >>> be upgraded >>> +upon first boot. >>> +This is useful when using a ZFS pool generated by >>> +.Xr makefs 8 >>> +utility. >> >> For someone who knows ZFS well, it is clear that only a zpool upgrade >> is done. Not so experienced people may assume there is a combination >> of zpool upgrade and zfs upgrade (more so for people which do not know >> what the difference is). Maybe you want to add some explicit >> documentation, that zfs upgrade + feature flags needs to be done by >> hand. >> >> 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", > "org.openzfs:blake3", > NULL > }; > > 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. > Thanks for the list. For those interested, it is in $SRC/stand/libsa/zfs/zfsimpl.c Just to make my opinion expressed before explicit again, this should be documented in a boot / bootloader related man-page, but isn't. Should the above list be sorted in some way? Maybe in the same order as the zpool-features lists them (sort by feature name after the colon), or alphabetical? As Mark already mentioned some flags, I checked the features marked as read only (I checked in the zpool-features man page, including the dependencies documented there) and here are those not listed in zfsimpl.c. I would assume as they are read-only compatible, we should add them: com.delphix:async_destroy com.delphix:bookmarks org.openzfs:device_rebuild com.delphix:empty_bpobj com.delphix:enable_txg com.joyent:filesystem_limits com.delphix:livelist com.delphix:log_spacemap com.zfsonlinux:project_quota com.zfsonlinux:userobj_accounting com.openzfs:zilsaxattr Bye, Alexander. -- http://www.Leidinger.net Alexander@Leidinger.net: PGP 0x8F31830F9F2772BF http://www.FreeBSD.org netchild@FreeBSD.org : PGP 0x8F31830F9F2772BF