Dave,


In general, I like this, as it does require less artificial naming of objects. A couple of things.

1. The zpool attribute on the disk_name element would seemingly be redundant if the vdev names were required to be unique across all pools in the manifest. Undecided whether that's a good thing or not. We could perhaps make the zpool attribute optional, only required if the vdev names are not unique.

I don't think we should enforce the zpool name in the vdev label. I did that for readability, but as you'll see below, it's not necessary. I would be concerned that users wouldn't follow that naming convention and it could cause all kinds of issues.



2. I think we need one more case, such as concatenated raidz stripes. A pretty large (and real) example is below. The ZFS Configuration Guide on solarisinternals.com also has some interesting configurations that are similar to this.

<snip> giant zpool status dump

See attached XML file for my take at this.

-Drew
<target>
  <!-- c11 disks -->
  <disk>
    <disk_name name="c11t0d0" name_type="ctd" zpool="z" vdev="this"/>
  </disk>
  <disk>
    <disk_name name="c11t1d0" name_type="ctd" zpool="z" vdev="use"/>
  </disk>
  <disk>
    <disk_name name="c11t2d0" name_type="ctd" zpool="z" vdev="case"/>
  </disk>
  <disk>
    <disk_name name="c11t3d0" name_type="ctd" zpool="z" vdev="is"/>
  </disk>
  <disk>
    <disk_name name="c11t4d0" name_type="ctd" zpool="z" vdev="an"/>
  </disk>
  <disk>
    <disk_name name="c11t5d0" name_type="ctd" zpool="z" vdev="absurd"/>
  </disk>
  <disk>
    <disk_name name="c11t6d0" name_type="ctd" zpool="z" vdev="example"/>
  </disk>
  <disk>
    <disk_name name="c11t7d0" name_type="ctd" zpool="z" vdev="of"/>
  </disk>
  <disk>
    <disk_name name="c11t8d0" name_type="ctd" zpool="z" vdev="the"/>
  </disk>
  <disk>
    <disk_name name="c11t9d0" name_type="ctd" zpool="z" vdev="power"/>
  </disk>
  <disk>
    <disk_name name="c11t10d0" name_type="ctd" zpool="z" vdev="of"/>
  </disk>

  <!-- c12 disks -->
  <disk>
    <disk_name name="c12t48d0" name_type="ctd" zpool="z" vdev="this"/>
  </disk>
  <disk>
    <disk_name name="c12t49d0" name_type="ctd" zpool="z" vdev="use"/>
  </disk>
  <disk>
    <disk_name name="c12t50d0" name_type="ctd" zpool="z" vdev="case"/>
  </disk>
  <disk>
    <disk_name name="c12t51d0" name_type="ctd" zpool="z" vdev="is"/>
  </disk>
  <disk>
    <disk_name name="c12t52d0" name_type="ctd" zpool="z" vdev="an"/>
  </disk>
  <disk>
    <disk_name name="c12t53d0" name_type="ctd" zpool="z" vdev="absurd"/>
  </disk>
  <disk>
    <disk_name name="c12t54d0" name_type="ctd" zpool="z" vdev="example"/>
  </disk>
  <disk>
    <disk_name name="c12t55d0" name_type="ctd" zpool="z" vdev="of"/>
  </disk>
  <disk>
    <disk_name name="c12t56d0" name_type="ctd" zpool="z" vdev="the"/>
  </disk>
  <disk>
    <disk_name name="c12t57d0" name_type="ctd" zpool="z" vdev="power"/>
  </disk>
  <disk>
    <disk_name name="c12t58d0" name_type="ctd" zpool="z" vdev="of"/>
  </disk>

  <!-- c14 disks -->
  <disk>
    <disk_name name="c14t16d0" name_type="ctd" zpool="z" vdev="this"/>
  </disk>
  <disk>
    <disk_name name="c14t17d0" name_type="ctd" zpool="z" vdev="use"/>
  </disk>
  <disk>
    <disk_name name="c14t18d0" name_type="ctd" zpool="z" vdev="case"/>
  </disk>
  <disk>
    <disk_name name="c14t19d0" name_type="ctd" zpool="z" vdev="is"/>
  </disk>
  <disk>
    <disk_name name="c14t20d0" name_type="ctd" zpool="z" vdev="an"/>
  </disk>
  <disk>
    <disk_name name="c14t21d0" name_type="ctd" zpool="z" vdev="absurd"/>
  </disk>
  <disk>
    <disk_name name="c14t22d0" name_type="ctd" zpool="z" vdev="example"/>
  </disk>
  <disk>
    <disk_name name="c14t23d0" name_type="ctd" zpool="z" vdev="of"/>
  </disk>
  <disk>
    <disk_name name="c14t24d0" name_type="ctd" zpool="z" vdev="the"/>
  </disk>
  <disk>
    <disk_name name="c14t25d0" name_type="ctd" zpool="z" vdev="power"/>
  </disk>
  <disk>
    <disk_name name="c14t26d0" name_type="ctd" zpool="z" vdev="of"/>
  </disk>

  <!-- c15 disks -->
  <disk>
    <disk_name name="c15t32d0" name_type="ctd" zpool="z" vdev="this"/>
  </disk>
  <disk>
    <disk_name name="c15t33d0" name_type="ctd" zpool="z" vdev="use"/>
  </disk>
  <disk>
    <disk_name name="c15t34d0" name_type="ctd" zpool="z" vdev="case"/>
  </disk>
  <disk>
    <disk_name name="c15t35d0" name_type="ctd" zpool="z" vdev="is"/>
  </disk>
  <disk>
    <disk_name name="c15t36d0" name_type="ctd" zpool="z" vdev="an"/>
  </disk>
  <disk>
    <disk_name name="c15t37d0" name_type="ctd" zpool="z" vdev="absurd"/>
  </disk>
  <disk>
    <disk_name name="c15t38d0" name_type="ctd" zpool="z" vdev="example"/>
  </disk>
  <disk>
    <disk_name name="c15t39d0" name_type="ctd" zpool="z" vdev="of"/>
  </disk>
  <disk>
    <disk_name name="c15t40d0" name_type="ctd" zpool="z" vdev="the"/>
  </disk>
  <disk>
    <disk_name name="c15t41d0" name_type="ctd" zpool="z" vdev="power"/>
  </disk>
  <disk>
    <disk_name name="c15t42d0" name_type="ctd" zpool="z" vdev="of"/>
  </disk>

  <!-- WWN disks -->
  <disk>
    <disk_name name="c0t600C0FF000000000082F6B1EA30EF700d0" name_type="ctd"
     zpool="z" vdev="zfs"/>
  </disk>
  <disk>
    <disk_name name="c0t600C0FF000000000082F6B4138DF8700d0" name_type="ctd"
     zpool="z" vdev="zfs"/>
  </disk>

  <!-- spare disks -->
  <disk>
    <disk_name name="c1t4d0" name_type="ctd" zpool="z" vdev="spares"/>
  </disk>
  <disk>
    <disk_name name="c1t5d0" name_type="ctd" zpool="z" vdev="spares"/>
  </disk>
  
  <logical>
    <zpool name="z" action="create" is_root="false" />
      <vdev name="this" redundancy="raidz1"/>
      <vdev name="use" redundancy="raidz1"/>
      <vdev name="case" redundancy="raidz1"/>
      <vdev name="is" redundancy="raidz1"/>
      <vdev name="an" redundancy="raidz1"/>
      <vdev name="absurd" redundancy="raidz1"/>
      <vdev name="example" redundancy="raidz1"/>
      <vdev name="of" redundancy="raidz1"/>
      <vdev name="the" redundancy="raidz1"/>
      <vdev name="power" redundancy="raidz1"/>
      <vdev name="of" redundancy="raidz1"/>
	  <!-- would need to add 'mirror log' to the list of valid
		   redundancy entries -->
      <vdev name="zfs" redundancy="mirror log"/>
      <vdev name="spares" redundancy="spare"/>
    </zpool>
  </logical>
</target>
_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss

Reply via email to