William Schumann wrote:
> Elaborating upon zfs and zpool enhancements to AI.  BE considerations - 
> add name of BE to create.
> 
> As always, feedback is desired.  Also opinions as to the value of these 
> features - how useful are they?
> 
> The concept of overwriting existing pools was reconsidered.  The 
> question here is what to do with a pool if it has <zpool_create> and it 
> already exists.  "Overwrite" is a misnomer and will not be used here.
> 
> There are a few different pool reuse cases:
> 1) the user wants to reuse the manifest and preserve the pool the 
> created with the manifest
> 2) the user wants to remove contents from the pool and reuse it without 
> having to know its options or vdevs
> 3) the user wants to redefine the pool, changing options or vdevs
> 
> For the first option, adding boolean attribute "preserve" will result in 
> any associated manifest definitions of vdevs, mirrors, and options being 
> ignored, and the zpool will be unchanged, except for BEs in the root 
> pool (discussed below)
> 
> For the second, adding boolean attribute "destroy_all_datasets" will 
> cause any datasets to be destroyed, including any BEs
> 
> For the third, the user must <zpool_destroy>, then <zpool_create> 
> according to the new specifications.
> 
> For root pools, the preserve options become more interesting.  If the 
> root pool exists, it could contain BEs that the user may want to 
> preserve.  Propose for the zfs_root_pool section, add BE_name element.  
> If named BE does not exist, just install OpenSolaris into that BE.  If 
> it does exist, fail the install unless boolean attribute 
> destroy_be_if_it_exists is true in which case the BE is first deleted, 
> then recreated.  When a BE is not named, take the default behavior, 
> which is to use 'opensolaris' BE, destroying it if it exists.
> 
> My original draft of the AI manifest schema allowed the user to create a 
> filesystem in the context of a zpool:
> <ai_manifest name="default">
>    ...
>    <ai_zfs_pool>
>        <zpool_create name="zoolpool">
>           <vdev>c0t0d0</vdev>
>           <zfs_fs_create path="mynewzfs"/>          </zpool_create>
>    </ai_zfs_pool>
> 
> would result in:
> zpool create zoolpool /dev/dsk/c0t0d0
> zfs create zpoolpool/mynewzfs
> 
> Added the ability to create a zfs file system without the pool context, 
> at the top XML level:
> <ai_manifest name="default">
>    ...
>    <zfs_fs_create path="poolname/fully_specified_path"/>
> would result in:
> zpool create poolname/fully_specified_path
> 
> Also added to the manifest the ability to create a zfs filesystem as a 
> child of another zfs filesystem.
>    <zfs_fs_create path="mynewzfs">
>        <zfs_fs_create path="child_of_mynewzfs"/>      </zfs_fs_create> 
> <!-- end mynewzfs -->
> 

What do these variants buy us?  Why would I use them vs. the other form?

Dave


Reply via email to