On 06/11/10 03:20, Matt Keenan wrote:

page 10 - Target definitions

Not mentioned here, but appearing in the actual schema later on,
is the <zpool_target> element.  Initially, it seemed like an unnecessary
additional layer underneath <zpool_vdev>, but looking at it more
it seems we need it so that we can correlate sets of <ai_target_device>,
<ai_device_partitioning>, and <ai_device_vtoc_slices> together.
Was that the reason, or is there something else?


An omission on my part, should be included in this section. Usage is exactly as you state allowing for the grouping of target/partition/slice specifications.

I wonder if perhaps now is the time to simply merge with the
element tag names that Sarah is defining to replace these existing
target tags in the new AI/DC schema design, and just use those anew
here in your work instead of trying to reuse <ai_target_device>,
<ai_device_partitioning>, and <ai_device_vtoc_slices>.  It would
be great if the resultant instance files which support multi disk/pools
look the same.

(It was known that those existing element definitions didn't quite
fit well with being used to support multiple disks.  Namely, that
partitioning and vtoc_slice information should be children of the
target_device, not peers)


I will look into this more when I return from vacation.


page 10 - It would seem more natural that "type" and "name" simply
be attributes of the <zpool_dataset> element.  Was there a reason why
you made two additional subelements levels to define them?


dataset_type is used to encapsulate the choice of whether a filesystem or a volume is being created. The reason for the encapsulation is if it's a volume there are two sub elements which are required to be grouped together, volname and volsize.

In thinking about it more, this could be simplified and remove the dataset_type completely, and just have "name" as an attribute. The name would pertain to both dataset or volume name.

Then make volsize and optional sub element, and dictate it's usage to be, if specified then it's a zfs volume being created. If not specified it's a filesystem.

Schema would look something like this :

<zeroOrMore>
<element name="dataset">
<oneOrMore>
<interleave>
<attribute name="name">
<text/>
</attribute>

<!--
Optional element volsize, if specified creating a ZFS volume.
                     If not specified, then assume creating a filesystem.
                  -->
<optional>
<element name="volume_size">
<unsignedLong/>
</element>
</optional>


<optional>
<element name="properties">
<text/>
</element>
</optional>

</interleave>
</oneOrMore>
</element>
</zeroOrMore>


This would simplify the dataset specification somewhat. What do you think ?

I think that's must simpler, however, I would suggest to define a
'type' attribute to the 'dataset' element, to make it more extensible.
Using the existence or non-existence of 'volume_size' to imply type
will make it harder for us to support other types if one day there
existed some new dataset type that we needed to support.


thanks,
-ethan



cheers
Matt
_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss

Reply via email to