First, let me say I'm so pleased someone actually drove this forward, thank you. :)
I think my only lament about this would be the lack of zpool create defaults, but that's a conversation for once everyone is confident this doesn't cook your pool somehow. - Rich On Mon, Mar 25, 2019 at 9:16 AM Josh Paetzel <[email protected]> wrote: > > This email is a summarization of the current proposal for easing the task of > creating OS portable pools with zpool create. There's been a ton of > discussion around this feature and we wanted to summarize the current > discussion in preparation for tomorrow's meeting: > > Add new options to "zpool create", "zpool upgrade", and "zpool set": > - zpool create -o features=portable-20XX (yearly values) > - zpool create -o features=portable > - zpool upgrade -o features=portable-20XX > - zpool upgrade -o features=portable > - zpool set feature@portable=20XX > - zpool set feature@portable=enabled > > "-o features=portable-2016" means features that were supported by all tier-1 > platforms at the beginning of 2016. This > definition will not change over time. Specifically, on January 1, 2016, the > following all supported the features: > - a numbered release of FreeBSD (specifically FreeBSD 10.2 for > portable-2016) > - a numbered release of ZFSonLinux (specifically ZoL 0.6.5.3 for > portable-2016) > - the code in illumos-gate as of 1 year prior (specifically Jan 1 2015 > for portable-2016). > > Similar yearly portable values will be created at the beginning of each year. > > (Side note: the proposal is for "features=portable" to be able to have > additional features beyond "features=portable-<currentyear>". I.e. it can > change throughout the year. On January 1st, we would add > "features=portable-<currentyear>" which would have the definition as > "features=portable" on January 1, but remain static.) > > "-o features=portable" means that features that are currently supported by > all tier-1 platforms. This definition will change over time. Specifically, > as of the current date, the following all supported the features: > - a numbered release of FreeBSD (currently FreeBSD 11.2) > - a numbered release of ZFSonLinux (currently ZoL 0.7.12) > - the code in illumos-gate as of 1 year prior (currently December 7, 2017, > commit b8e5ecd6 for bug 8895). > > From these definitions, users can make the following conclusions: > - I upgraded this machine sometime in 2017, therefore if I want to bring a > pool to it, I can use "-o features=portable- > 2017" or earlier. > - I case of an emergency or change in strategy, I want to be able to bring > this pool to another operating system. I can > upgrade or install the other OS when I need to. Therefore I can use "-o > features=portable". > > Remember the last "features=" value that was used with "zpool create" or > "zpool upgrade". If it's a static value (portable-20XX), "zpool upgrade" > would not do anything unless you give a force flag. If it's the dynamic > value ("features=portable") then "zpool upgrade" would require a force flag > unless we're enabling a feature that's allowed by the current definition of > "portable". So running "zpool upgrade <pool>" or "zpool upgrade -a" would > always be "safe" in that it respects the "features=portable*" setting last > made. > > "zpool status" would only alert if "zpool upgrade <pool>" would do something. > I.e. If you did "features=portable-20XX", then "zpool status" would never > tell you about unavailable features. If you did "features=portable", then > when you upgrade to newer software that has additional "portable" features, > then "zpool status" would prompt you to upgrade. > > For now the default behavior of "zpool create" remains the same. If we find > something that we think works well then a future consideration would be > making "zpool create" imply "-o features=portable" by default, and "zpool > upgrade <pool>|-a" imply "-o features=portable" by default. > > This proposal as it sits applies to data pools only. Portability of boot > pools is currently not a consideration. > > -- > > Thanks, > > Josh Paetzel ------------------------------------------ openzfs: openzfs-developer Permalink: https://openzfs.topicbox.com/groups/developer/Td66d70a086ae5a9e-Mf6eeb23fcb3dc0e6a30ccb6f Delivery options: https://openzfs.topicbox.com/groups/developer/subscription
