<?xml version="1.0" encoding="utf-8" ?>
<!--
CDDL HEADER START
The contents of this file are subject to the terms of the
Common Development and Distribution License, Version 1.0 only
(the "License"). You may not use this file except in compliance
with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
or http://www.opensolaris.org/os/licensing.
See the License for the specific language governing permissions
and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each
file and include the License file at usr/src/OPENSOLARIS.LICENSE.
If applicable, add the following below this CDDL HEADER, with the
fields enclosed by brackets "[]" replaced with your own identifying
information: Portions Copyright [yyyy] [name of copyright owner]
CDDL HEADER END
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
* ident "%Z%%M% %I% %E% SMI"
*
* Describes the request for a new volume configuration used by
* metassist(1M).
*
* See volume-request(4) for a detailed description of the syntax.
-->
<!ELEMENT volume-request (diskset,(available|unavailable)*,hsp?,(concat|stripe|mirror|volume)*)>
<!--
*****************************************************************
*
* Disk set definition
*
*****************************************************************
-->
<!--
* The new or existing disk set to use. If the disk set does not
* exist, it will be created.
-->
<!ELEMENT diskset EMPTY>
<!ATTLIST diskset name CDATA #REQUIRED>
<!--
*****************************************************************
*
* Available devices definition
*
*****************************************************************
-->
<!--
* Specify a controller, target, disk, or slice that may be used in
* the construction of new SVM configuration.
*
* Disks specified herein should be:
*
* 1. part of the disk set named above
*
* or
*
* 2. unused and not belong to any disk set
*
* If a controller is specified, all slices on all disks on the
* controller which match the above criteria are considered
* available.
*
* If a target is specified, all slices on all disks on the target
* which match the above criteria are considered available.
*
* If no available devices are specified, all disks on the system
* which match the above criteria are considered available.
-->
<!ELEMENT available EMPTY>
<!ATTLIST available name CDATA #REQUIRED>
<!--
* Specify a controller, target, disk, or slice to exclude from the
* available pool.
-->
<!ELEMENT unavailable EMPTY>
<!ATTLIST unavailable name CDATA #REQUIRED>
<!--
*****************************************************************
*
* Hot spare pool definition
*
*****************************************************************
-->
<!--
* Specify a new or existing hot spare pool for submirrors defined
* in this request. If a HSP is required by this request, and no
* HSP is specified here, the first existing HSP in the above disk
* set will be used instead. If no HSPs exist, a new HSP will be
* created.
*
* Optionally specify disks that can be used/excluded if new hot
* spares must be created.
-->
<!ELEMENT hsp ((available|unavailable)*)>
<!--
* The name to assign to this hot spare pool. If no name is
* specified, a name will be chosen automatically. No guarantees
* are made about the algorithm used, except that the resulting name
* will be one that is not currently in use.
-->
<!ATTLIST hsp name CDATA #IMPLIED>
<!--
*****************************************************************
*
* Slice definition
*
*****************************************************************
-->
<!ELEMENT slice EMPTY>
<!ATTLIST slice name CDATA #REQUIRED>
<!--
*****************************************************************
*
* Stripe definition
*
*****************************************************************
-->
<!--
* the following line should work, but fails xmllint for some reason
*
* <!ELEMENT stripe (slice*|(available|unavailable)*)>
-->
<!--
* Create a new top-level stripe either by specifying the underlying
* components (slices and soft partitions) or by specifying the
* required size and optional available/unavailable resources.
-->
<!ELEMENT stripe ((available|unavailable)*,slice*)>
<!--
* The volume name to assign to this stripe. If no name is
* specified, a name will be chosen automatically. No guarantees
* are made about the algorithm used, except that the resulting name
* will be one that is not currently in use.
-->
<!ATTLIST stripe name CDATA #IMPLIED>
<!--
* The size of this stripe, in the format <value><units>, where
* <units> is "KB", "MB", "GB", or "TB", and <value> is the
* multiplier of the units.
*
* This attribute is ignored if the underlying components are
* explicitly specified.
-->
<!ATTLIST stripe size CDATA #IMPLIED>
<!--
* Specify the minimum and maximum number of components (slices and
* soft partitions) to use when constructing this stripe.
*
* The default value for mincomp is 4.
*
* The default value for maxcomp is 10.
*
* These attributes should not be specified if the underlying
* components are explicitly specified.
-->
<!ATTLIST stripe mincomp CDATA #IMPLIED>
<!ATTLIST stripe maxcomp CDATA #IMPLIED>
<!--
* The interlace of this stripe, in the format <value><units>, where
* <units> is "BLOCKS", "KB", or "MB", and <value> is the multiplier
* of the units.
*
* The default value is 64KB.
-->
<!ATTLIST stripe interlace CDATA #IMPLIED>
<!--
* Boolean (TRUE or FALSE) indicating whether to use a HSP.
*
* This is only relevant if this stripe is a submirror, i.e. it is
* defined within a <mirror> element. If not, this attribute is
* ignored.
*
* The default value is FALSE.
-->
<!ATTLIST stripe usehsp (TRUE|FALSE) #IMPLIED>
<!--
*****************************************************************
*
* Concat definition
*
*****************************************************************
-->
<!--
* the following line should work, but fails xmllint for some reason
*
* <!ELEMENT concat (slice+|(available|unavailable)*)>
-->
<!--
* Create a new concat either by specifying the underlying slices
* and soft partitions or by specifying the required size and
* optional available/unavailable resources.
-->
<!ELEMENT concat ((available|unavailable)*,slice*)>
<!--
* The volume name to assign to this concat. If no name is
* specified, a name will be chosen automatically. No guarantees
* are made about the algorithm used, except that the resulting name
* will be one that is not currently in use.
-->
<!ATTLIST concat name CDATA #IMPLIED>
<!--
* The size of this concat, in the format <value><units>, where
* <units> is "KB", "MB", "GB", or "TB", and <value> is the
* multiplier of the units.
*
* This attribute is ignored if the underlying slices/soft
* partitions are explicitly specified.
-->
<!ATTLIST concat size CDATA #IMPLIED>
<!--
* Boolean (TRUE or FALSE) indicating whether to use a HSP.
*
* This is only relevant if this concat is a submirror, i.e. it is
* defined within a <mirror> element. If not, this attribute is
* ignored.
*
* The default value is FALSE.
-->
<!ATTLIST concat usehsp (TRUE|FALSE) #IMPLIED>
<!--
*****************************************************************
*
* Mirror definition
*
*****************************************************************
-->
<!--
* Create a new mirror either by specifying the underlying
* submirrors or by specifying the required size and optional
* available/unavailable resources.
-->
<!ELEMENT mirror ((available|unavailable)*,(stripe|concat)*)>
<!--
* The volume name to assign to this mirror. If no name is
* specified, a name will be chosen automatically. No guarantees
* are made about the algorithm used, except that the resulting name
* will be one that is not currently in use.
-->
<!ATTLIST mirror name CDATA #IMPLIED>
<!--
* The number of submirrors under this mirror. If this number
* exceeds the number of explicitly specified submirrors, the
* remaining submirrors will be created from the available
* resources.
*
* The default value is 2.
-->
<!ATTLIST mirror nsubmirrors CDATA #IMPLIED>
<!--
* The size of this mirror, in the format <value><units>, where
* <units> is "KB", "MB", "GB", or "TB", and <value> is the
* multiplier of the units.
*
* This attribute is required if no submirrors are defined.
-->
<!ATTLIST mirror size CDATA #IMPLIED>
<!--
* Specify values for common mirror options.
*
* The default values are described in the metainint(1M) man page.
-->
<!ATTLIST mirror read (ROUNDROBIN|GEOMETRIC|FIRST) #IMPLIED>
<!ATTLIST mirror write (PARALLEL|SERIAL) #IMPLIED>
<!ATTLIST mirror passnum CDATA #IMPLIED>
<!--
* Boolean (TRUE or FALSE) indicating whether to use a HSP for each
* submirror. This can be overridden using the submirror's usehsp
* attribute.
*
* The default value is FALSE.
-->
<!ATTLIST mirror usehsp (TRUE|FALSE) #IMPLIED>
<!--
*****************************************************************
*
* QoS volume definition
*
*****************************************************************
-->
<!--
* Create a volume defined by Quality of Service attributes. The
* default is to create a non-redundant volume. In any case, high
* performance is attempted.
*
* Translates to a stripe (non-redundant) or mirror of stripes
* (redundant) for SVM.
-->
<!ELEMENT volume ((available|unavailable)*)>
<!--
* The name to assign to this volume. If no name is specified, a
* name will be chosen automatically. No guarantees are made about
* the algorithm used, except that the resulting name will be one
* that is not currently in use.
-->
<!ATTLIST volume name CDATA #IMPLIED>
<!--
* The size of this mirror, in the format <value><units>, where
* <units> is "KB", "MB", "GB", or "TB", and <value> is the
* multiplier of the units.
*
* This attribute is required if no submirrors are defined.
-->
<!ATTLIST volume size CDATA #REQUIRED>
<!--
* Specify the redundancy level (0-4) of the data.
*
* If redundancy is 0, a stripe will be created.
*
* If redundancy is > 0, a mirror with this number of submirrors
* will be created. In this case, the volume can suffer a disk
* failure on <n-1> copies without data loss. With the use of HSPs
* (see the "faultrecovery" attribute), a volume can suffer a disk
* failure on <n+hsps-1> volumes without data loss, assuming non-
* concurrent failures.
*
* The default value is 0.
-->
<!ATTLIST volume redundancy CDATA #IMPLIED>
<!--
* Boolean (TRUE or FALSE) indicating whether to include fault
* recovery.
*
* If this attribute is TRUE, a mirror will be created and its
* submirror(s) will be associated with a HSP.
*
* The default value is FALSE.
-->
<!ATTLIST volume faultrecovery (TRUE|FALSE) #IMPLIED>
<!--
* Number of data paths through which to ensure the volume is
* reachable.
*
* The default value is 1.
-->
<!ATTLIST volume datapaths CDATA #IMPLIED>