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

Reply via email to