1*0Sstevel@tonic-gate<?xml version="1.0" encoding="utf-8" ?> 2*0Sstevel@tonic-gate 3*0Sstevel@tonic-gate<!-- 4*0Sstevel@tonic-gate CDDL HEADER START 5*0Sstevel@tonic-gate 6*0Sstevel@tonic-gate The contents of this file are subject to the terms of the 7*0Sstevel@tonic-gate Common Development and Distribution License, Version 1.0 only 8*0Sstevel@tonic-gate (the "License"). You may not use this file except in compliance 9*0Sstevel@tonic-gate with the License. 10*0Sstevel@tonic-gate 11*0Sstevel@tonic-gate You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 12*0Sstevel@tonic-gate or http://www.opensolaris.org/os/licensing. 13*0Sstevel@tonic-gate See the License for the specific language governing permissions 14*0Sstevel@tonic-gate and limitations under the License. 15*0Sstevel@tonic-gate 16*0Sstevel@tonic-gate When distributing Covered Code, include this CDDL HEADER in each 17*0Sstevel@tonic-gate file and include the License file at usr/src/OPENSOLARIS.LICENSE. 18*0Sstevel@tonic-gate If applicable, add the following below this CDDL HEADER, with the 19*0Sstevel@tonic-gate fields enclosed by brackets "[]" replaced with your own identifying 20*0Sstevel@tonic-gate information: Portions Copyright [yyyy] [name of copyright owner] 21*0Sstevel@tonic-gate 22*0Sstevel@tonic-gate CDDL HEADER END 23*0Sstevel@tonic-gate 24*0Sstevel@tonic-gate * Copyright 2003 Sun Microsystems, Inc. All rights reserved. 25*0Sstevel@tonic-gate * Use is subject to license terms. 26*0Sstevel@tonic-gate * 27*0Sstevel@tonic-gate * ident "%Z%%M% %I% %E% SMI" 28*0Sstevel@tonic-gate * 29*0Sstevel@tonic-gate * Describes the request for a new volume configuration used by 30*0Sstevel@tonic-gate * metassist(1M). 31*0Sstevel@tonic-gate * 32*0Sstevel@tonic-gate * See volume-request(4) for a detailed description of the syntax. 33*0Sstevel@tonic-gate --> 34*0Sstevel@tonic-gate<!ELEMENT volume-request (diskset,(available|unavailable)*,hsp?,(concat|stripe|mirror|volume)*)> 35*0Sstevel@tonic-gate 36*0Sstevel@tonic-gate<!-- 37*0Sstevel@tonic-gate ***************************************************************** 38*0Sstevel@tonic-gate * 39*0Sstevel@tonic-gate * Disk set definition 40*0Sstevel@tonic-gate * 41*0Sstevel@tonic-gate ***************************************************************** 42*0Sstevel@tonic-gate --> 43*0Sstevel@tonic-gate 44*0Sstevel@tonic-gate<!-- 45*0Sstevel@tonic-gate * The new or existing disk set to use. If the disk set does not 46*0Sstevel@tonic-gate * exist, it will be created. 47*0Sstevel@tonic-gate --> 48*0Sstevel@tonic-gate<!ELEMENT diskset EMPTY> 49*0Sstevel@tonic-gate<!ATTLIST diskset name CDATA #REQUIRED> 50*0Sstevel@tonic-gate 51*0Sstevel@tonic-gate 52*0Sstevel@tonic-gate<!-- 53*0Sstevel@tonic-gate ***************************************************************** 54*0Sstevel@tonic-gate * 55*0Sstevel@tonic-gate * Available devices definition 56*0Sstevel@tonic-gate * 57*0Sstevel@tonic-gate ***************************************************************** 58*0Sstevel@tonic-gate --> 59*0Sstevel@tonic-gate 60*0Sstevel@tonic-gate<!-- 61*0Sstevel@tonic-gate * Specify a controller, target, disk, or slice that may be used in 62*0Sstevel@tonic-gate * the construction of new SVM configuration. 63*0Sstevel@tonic-gate * 64*0Sstevel@tonic-gate * Disks specified herein should be: 65*0Sstevel@tonic-gate * 66*0Sstevel@tonic-gate * 1. part of the disk set named above 67*0Sstevel@tonic-gate * 68*0Sstevel@tonic-gate * or 69*0Sstevel@tonic-gate * 70*0Sstevel@tonic-gate * 2. unused and not belong to any disk set 71*0Sstevel@tonic-gate * 72*0Sstevel@tonic-gate * If a controller is specified, all slices on all disks on the 73*0Sstevel@tonic-gate * controller which match the above criteria are considered 74*0Sstevel@tonic-gate * available. 75*0Sstevel@tonic-gate * 76*0Sstevel@tonic-gate * If a target is specified, all slices on all disks on the target 77*0Sstevel@tonic-gate * which match the above criteria are considered available. 78*0Sstevel@tonic-gate * 79*0Sstevel@tonic-gate * If no available devices are specified, all disks on the system 80*0Sstevel@tonic-gate * which match the above criteria are considered available. 81*0Sstevel@tonic-gate --> 82*0Sstevel@tonic-gate<!ELEMENT available EMPTY> 83*0Sstevel@tonic-gate<!ATTLIST available name CDATA #REQUIRED> 84*0Sstevel@tonic-gate 85*0Sstevel@tonic-gate<!-- 86*0Sstevel@tonic-gate * Specify a controller, target, disk, or slice to exclude from the 87*0Sstevel@tonic-gate * available pool. 88*0Sstevel@tonic-gate --> 89*0Sstevel@tonic-gate<!ELEMENT unavailable EMPTY> 90*0Sstevel@tonic-gate<!ATTLIST unavailable name CDATA #REQUIRED> 91*0Sstevel@tonic-gate 92*0Sstevel@tonic-gate 93*0Sstevel@tonic-gate<!-- 94*0Sstevel@tonic-gate ***************************************************************** 95*0Sstevel@tonic-gate * 96*0Sstevel@tonic-gate * Hot spare pool definition 97*0Sstevel@tonic-gate * 98*0Sstevel@tonic-gate ***************************************************************** 99*0Sstevel@tonic-gate --> 100*0Sstevel@tonic-gate 101*0Sstevel@tonic-gate<!-- 102*0Sstevel@tonic-gate * Specify a new or existing hot spare pool for submirrors defined 103*0Sstevel@tonic-gate * in this request. If a HSP is required by this request, and no 104*0Sstevel@tonic-gate * HSP is specified here, the first existing HSP in the above disk 105*0Sstevel@tonic-gate * set will be used instead. If no HSPs exist, a new HSP will be 106*0Sstevel@tonic-gate * created. 107*0Sstevel@tonic-gate * 108*0Sstevel@tonic-gate * Optionally specify disks that can be used/excluded if new hot 109*0Sstevel@tonic-gate * spares must be created. 110*0Sstevel@tonic-gate --> 111*0Sstevel@tonic-gate<!ELEMENT hsp ((available|unavailable)*)> 112*0Sstevel@tonic-gate 113*0Sstevel@tonic-gate<!-- 114*0Sstevel@tonic-gate * The name to assign to this hot spare pool. If no name is 115*0Sstevel@tonic-gate * specified, a name will be chosen automatically. No guarantees 116*0Sstevel@tonic-gate * are made about the algorithm used, except that the resulting name 117*0Sstevel@tonic-gate * will be one that is not currently in use. 118*0Sstevel@tonic-gate --> 119*0Sstevel@tonic-gate<!ATTLIST hsp name CDATA #IMPLIED> 120*0Sstevel@tonic-gate 121*0Sstevel@tonic-gate<!-- 122*0Sstevel@tonic-gate ***************************************************************** 123*0Sstevel@tonic-gate * 124*0Sstevel@tonic-gate * Slice definition 125*0Sstevel@tonic-gate * 126*0Sstevel@tonic-gate ***************************************************************** 127*0Sstevel@tonic-gate --> 128*0Sstevel@tonic-gate 129*0Sstevel@tonic-gate<!ELEMENT slice EMPTY> 130*0Sstevel@tonic-gate<!ATTLIST slice name CDATA #REQUIRED> 131*0Sstevel@tonic-gate 132*0Sstevel@tonic-gate 133*0Sstevel@tonic-gate<!-- 134*0Sstevel@tonic-gate ***************************************************************** 135*0Sstevel@tonic-gate * 136*0Sstevel@tonic-gate * Stripe definition 137*0Sstevel@tonic-gate * 138*0Sstevel@tonic-gate ***************************************************************** 139*0Sstevel@tonic-gate --> 140*0Sstevel@tonic-gate 141*0Sstevel@tonic-gate<!-- 142*0Sstevel@tonic-gate * the following line should work, but fails xmllint for some reason 143*0Sstevel@tonic-gate * 144*0Sstevel@tonic-gate * <!ELEMENT stripe (slice*|(available|unavailable)*)> 145*0Sstevel@tonic-gate --> 146*0Sstevel@tonic-gate 147*0Sstevel@tonic-gate<!-- 148*0Sstevel@tonic-gate * Create a new top-level stripe either by specifying the underlying 149*0Sstevel@tonic-gate * components (slices and soft partitions) or by specifying the 150*0Sstevel@tonic-gate * required size and optional available/unavailable resources. 151*0Sstevel@tonic-gate --> 152*0Sstevel@tonic-gate<!ELEMENT stripe ((available|unavailable)*,slice*)> 153*0Sstevel@tonic-gate 154*0Sstevel@tonic-gate<!-- 155*0Sstevel@tonic-gate * The volume name to assign to this stripe. If no name is 156*0Sstevel@tonic-gate * specified, a name will be chosen automatically. No guarantees 157*0Sstevel@tonic-gate * are made about the algorithm used, except that the resulting name 158*0Sstevel@tonic-gate * will be one that is not currently in use. 159*0Sstevel@tonic-gate --> 160*0Sstevel@tonic-gate<!ATTLIST stripe name CDATA #IMPLIED> 161*0Sstevel@tonic-gate 162*0Sstevel@tonic-gate<!-- 163*0Sstevel@tonic-gate * The size of this stripe, in the format <value><units>, where 164*0Sstevel@tonic-gate * <units> is "KB", "MB", "GB", or "TB", and <value> is the 165*0Sstevel@tonic-gate * multiplier of the units. 166*0Sstevel@tonic-gate * 167*0Sstevel@tonic-gate * This attribute is ignored if the underlying components are 168*0Sstevel@tonic-gate * explicitly specified. 169*0Sstevel@tonic-gate --> 170*0Sstevel@tonic-gate<!ATTLIST stripe size CDATA #IMPLIED> 171*0Sstevel@tonic-gate 172*0Sstevel@tonic-gate<!-- 173*0Sstevel@tonic-gate * Specify the minimum and maximum number of components (slices and 174*0Sstevel@tonic-gate * soft partitions) to use when constructing this stripe. 175*0Sstevel@tonic-gate * 176*0Sstevel@tonic-gate * The default value for mincomp is 4. 177*0Sstevel@tonic-gate * 178*0Sstevel@tonic-gate * The default value for maxcomp is 10. 179*0Sstevel@tonic-gate * 180*0Sstevel@tonic-gate * These attributes should not be specified if the underlying 181*0Sstevel@tonic-gate * components are explicitly specified. 182*0Sstevel@tonic-gate --> 183*0Sstevel@tonic-gate<!ATTLIST stripe mincomp CDATA #IMPLIED> 184*0Sstevel@tonic-gate<!ATTLIST stripe maxcomp CDATA #IMPLIED> 185*0Sstevel@tonic-gate 186*0Sstevel@tonic-gate<!-- 187*0Sstevel@tonic-gate * The interlace of this stripe, in the format <value><units>, where 188*0Sstevel@tonic-gate * <units> is "BLOCKS", "KB", or "MB", and <value> is the multiplier 189*0Sstevel@tonic-gate * of the units. 190*0Sstevel@tonic-gate * 191*0Sstevel@tonic-gate * The default value is 64KB. 192*0Sstevel@tonic-gate --> 193*0Sstevel@tonic-gate<!ATTLIST stripe interlace CDATA #IMPLIED> 194*0Sstevel@tonic-gate 195*0Sstevel@tonic-gate<!-- 196*0Sstevel@tonic-gate * Boolean (TRUE or FALSE) indicating whether to use a HSP. 197*0Sstevel@tonic-gate * 198*0Sstevel@tonic-gate * This is only relevant if this stripe is a submirror, i.e. it is 199*0Sstevel@tonic-gate * defined within a <mirror> element. If not, this attribute is 200*0Sstevel@tonic-gate * ignored. 201*0Sstevel@tonic-gate * 202*0Sstevel@tonic-gate * The default value is FALSE. 203*0Sstevel@tonic-gate --> 204*0Sstevel@tonic-gate<!ATTLIST stripe usehsp (TRUE|FALSE) #IMPLIED> 205*0Sstevel@tonic-gate 206*0Sstevel@tonic-gate 207*0Sstevel@tonic-gate<!-- 208*0Sstevel@tonic-gate ***************************************************************** 209*0Sstevel@tonic-gate * 210*0Sstevel@tonic-gate * Concat definition 211*0Sstevel@tonic-gate * 212*0Sstevel@tonic-gate ***************************************************************** 213*0Sstevel@tonic-gate --> 214*0Sstevel@tonic-gate 215*0Sstevel@tonic-gate<!-- 216*0Sstevel@tonic-gate * the following line should work, but fails xmllint for some reason 217*0Sstevel@tonic-gate * 218*0Sstevel@tonic-gate * <!ELEMENT concat (slice+|(available|unavailable)*)> 219*0Sstevel@tonic-gate --> 220*0Sstevel@tonic-gate 221*0Sstevel@tonic-gate<!-- 222*0Sstevel@tonic-gate * Create a new concat either by specifying the underlying slices 223*0Sstevel@tonic-gate * and soft partitions or by specifying the required size and 224*0Sstevel@tonic-gate * optional available/unavailable resources. 225*0Sstevel@tonic-gate --> 226*0Sstevel@tonic-gate<!ELEMENT concat ((available|unavailable)*,slice*)> 227*0Sstevel@tonic-gate 228*0Sstevel@tonic-gate<!-- 229*0Sstevel@tonic-gate * The volume name to assign to this concat. If no name is 230*0Sstevel@tonic-gate * specified, a name will be chosen automatically. No guarantees 231*0Sstevel@tonic-gate * are made about the algorithm used, except that the resulting name 232*0Sstevel@tonic-gate * will be one that is not currently in use. 233*0Sstevel@tonic-gate --> 234*0Sstevel@tonic-gate<!ATTLIST concat name CDATA #IMPLIED> 235*0Sstevel@tonic-gate 236*0Sstevel@tonic-gate<!-- 237*0Sstevel@tonic-gate * The size of this concat, in the format <value><units>, where 238*0Sstevel@tonic-gate * <units> is "KB", "MB", "GB", or "TB", and <value> is the 239*0Sstevel@tonic-gate * multiplier of the units. 240*0Sstevel@tonic-gate * 241*0Sstevel@tonic-gate * This attribute is ignored if the underlying slices/soft 242*0Sstevel@tonic-gate * partitions are explicitly specified. 243*0Sstevel@tonic-gate --> 244*0Sstevel@tonic-gate<!ATTLIST concat size CDATA #IMPLIED> 245*0Sstevel@tonic-gate 246*0Sstevel@tonic-gate<!-- 247*0Sstevel@tonic-gate * Boolean (TRUE or FALSE) indicating whether to use a HSP. 248*0Sstevel@tonic-gate * 249*0Sstevel@tonic-gate * This is only relevant if this concat is a submirror, i.e. it is 250*0Sstevel@tonic-gate * defined within a <mirror> element. If not, this attribute is 251*0Sstevel@tonic-gate * ignored. 252*0Sstevel@tonic-gate * 253*0Sstevel@tonic-gate * The default value is FALSE. 254*0Sstevel@tonic-gate --> 255*0Sstevel@tonic-gate<!ATTLIST concat usehsp (TRUE|FALSE) #IMPLIED> 256*0Sstevel@tonic-gate 257*0Sstevel@tonic-gate 258*0Sstevel@tonic-gate<!-- 259*0Sstevel@tonic-gate ***************************************************************** 260*0Sstevel@tonic-gate * 261*0Sstevel@tonic-gate * Mirror definition 262*0Sstevel@tonic-gate * 263*0Sstevel@tonic-gate ***************************************************************** 264*0Sstevel@tonic-gate --> 265*0Sstevel@tonic-gate 266*0Sstevel@tonic-gate<!-- 267*0Sstevel@tonic-gate * Create a new mirror either by specifying the underlying 268*0Sstevel@tonic-gate * submirrors or by specifying the required size and optional 269*0Sstevel@tonic-gate * available/unavailable resources. 270*0Sstevel@tonic-gate --> 271*0Sstevel@tonic-gate<!ELEMENT mirror ((available|unavailable)*,(stripe|concat)*)> 272*0Sstevel@tonic-gate 273*0Sstevel@tonic-gate<!-- 274*0Sstevel@tonic-gate * The volume name to assign to this mirror. If no name is 275*0Sstevel@tonic-gate * specified, a name will be chosen automatically. No guarantees 276*0Sstevel@tonic-gate * are made about the algorithm used, except that the resulting name 277*0Sstevel@tonic-gate * will be one that is not currently in use. 278*0Sstevel@tonic-gate --> 279*0Sstevel@tonic-gate<!ATTLIST mirror name CDATA #IMPLIED> 280*0Sstevel@tonic-gate 281*0Sstevel@tonic-gate<!-- 282*0Sstevel@tonic-gate * The number of submirrors under this mirror. If this number 283*0Sstevel@tonic-gate * exceeds the number of explicitly specified submirrors, the 284*0Sstevel@tonic-gate * remaining submirrors will be created from the available 285*0Sstevel@tonic-gate * resources. 286*0Sstevel@tonic-gate * 287*0Sstevel@tonic-gate * The default value is 2. 288*0Sstevel@tonic-gate --> 289*0Sstevel@tonic-gate<!ATTLIST mirror nsubmirrors CDATA #IMPLIED> 290*0Sstevel@tonic-gate 291*0Sstevel@tonic-gate<!-- 292*0Sstevel@tonic-gate * The size of this mirror, in the format <value><units>, where 293*0Sstevel@tonic-gate * <units> is "KB", "MB", "GB", or "TB", and <value> is the 294*0Sstevel@tonic-gate * multiplier of the units. 295*0Sstevel@tonic-gate * 296*0Sstevel@tonic-gate * This attribute is required if no submirrors are defined. 297*0Sstevel@tonic-gate --> 298*0Sstevel@tonic-gate<!ATTLIST mirror size CDATA #IMPLIED> 299*0Sstevel@tonic-gate 300*0Sstevel@tonic-gate<!-- 301*0Sstevel@tonic-gate * Specify values for common mirror options. 302*0Sstevel@tonic-gate * 303*0Sstevel@tonic-gate * The default values are described in the metainint(1M) man page. 304*0Sstevel@tonic-gate --> 305*0Sstevel@tonic-gate<!ATTLIST mirror read (ROUNDROBIN|GEOMETRIC|FIRST) #IMPLIED> 306*0Sstevel@tonic-gate<!ATTLIST mirror write (PARALLEL|SERIAL) #IMPLIED> 307*0Sstevel@tonic-gate<!ATTLIST mirror passnum CDATA #IMPLIED> 308*0Sstevel@tonic-gate 309*0Sstevel@tonic-gate<!-- 310*0Sstevel@tonic-gate * Boolean (TRUE or FALSE) indicating whether to use a HSP for each 311*0Sstevel@tonic-gate * submirror. This can be overridden using the submirror's usehsp 312*0Sstevel@tonic-gate * attribute. 313*0Sstevel@tonic-gate * 314*0Sstevel@tonic-gate * The default value is FALSE. 315*0Sstevel@tonic-gate --> 316*0Sstevel@tonic-gate<!ATTLIST mirror usehsp (TRUE|FALSE) #IMPLIED> 317*0Sstevel@tonic-gate 318*0Sstevel@tonic-gate 319*0Sstevel@tonic-gate 320*0Sstevel@tonic-gate<!-- 321*0Sstevel@tonic-gate ***************************************************************** 322*0Sstevel@tonic-gate * 323*0Sstevel@tonic-gate * QoS volume definition 324*0Sstevel@tonic-gate * 325*0Sstevel@tonic-gate ***************************************************************** 326*0Sstevel@tonic-gate --> 327*0Sstevel@tonic-gate 328*0Sstevel@tonic-gate<!-- 329*0Sstevel@tonic-gate * Create a volume defined by Quality of Service attributes. The 330*0Sstevel@tonic-gate * default is to create a non-redundant volume. In any case, high 331*0Sstevel@tonic-gate * performance is attempted. 332*0Sstevel@tonic-gate * 333*0Sstevel@tonic-gate * Translates to a stripe (non-redundant) or mirror of stripes 334*0Sstevel@tonic-gate * (redundant) for SVM. 335*0Sstevel@tonic-gate --> 336*0Sstevel@tonic-gate<!ELEMENT volume ((available|unavailable)*)> 337*0Sstevel@tonic-gate 338*0Sstevel@tonic-gate<!-- 339*0Sstevel@tonic-gate * The name to assign to this volume. If no name is specified, a 340*0Sstevel@tonic-gate * name will be chosen automatically. No guarantees are made about 341*0Sstevel@tonic-gate * the algorithm used, except that the resulting name will be one 342*0Sstevel@tonic-gate * that is not currently in use. 343*0Sstevel@tonic-gate --> 344*0Sstevel@tonic-gate<!ATTLIST volume name CDATA #IMPLIED> 345*0Sstevel@tonic-gate 346*0Sstevel@tonic-gate<!-- 347*0Sstevel@tonic-gate * The size of this mirror, in the format <value><units>, where 348*0Sstevel@tonic-gate * <units> is "KB", "MB", "GB", or "TB", and <value> is the 349*0Sstevel@tonic-gate * multiplier of the units. 350*0Sstevel@tonic-gate * 351*0Sstevel@tonic-gate * This attribute is required if no submirrors are defined. 352*0Sstevel@tonic-gate --> 353*0Sstevel@tonic-gate<!ATTLIST volume size CDATA #REQUIRED> 354*0Sstevel@tonic-gate 355*0Sstevel@tonic-gate<!-- 356*0Sstevel@tonic-gate * Specify the redundancy level (0-4) of the data. 357*0Sstevel@tonic-gate * 358*0Sstevel@tonic-gate * If redundancy is 0, a stripe will be created. 359*0Sstevel@tonic-gate * 360*0Sstevel@tonic-gate * If redundancy is > 0, a mirror with this number of submirrors 361*0Sstevel@tonic-gate * will be created. In this case, the volume can suffer a disk 362*0Sstevel@tonic-gate * failure on <n-1> copies without data loss. With the use of HSPs 363*0Sstevel@tonic-gate * (see the "faultrecovery" attribute), a volume can suffer a disk 364*0Sstevel@tonic-gate * failure on <n+hsps-1> volumes without data loss, assuming non- 365*0Sstevel@tonic-gate * concurrent failures. 366*0Sstevel@tonic-gate * 367*0Sstevel@tonic-gate * The default value is 0. 368*0Sstevel@tonic-gate --> 369*0Sstevel@tonic-gate<!ATTLIST volume redundancy CDATA #IMPLIED> 370*0Sstevel@tonic-gate 371*0Sstevel@tonic-gate<!-- 372*0Sstevel@tonic-gate * Boolean (TRUE or FALSE) indicating whether to include fault 373*0Sstevel@tonic-gate * recovery. 374*0Sstevel@tonic-gate * 375*0Sstevel@tonic-gate * If this attribute is TRUE, a mirror will be created and its 376*0Sstevel@tonic-gate * submirror(s) will be associated with a HSP. 377*0Sstevel@tonic-gate * 378*0Sstevel@tonic-gate * The default value is FALSE. 379*0Sstevel@tonic-gate --> 380*0Sstevel@tonic-gate<!ATTLIST volume faultrecovery (TRUE|FALSE) #IMPLIED> 381*0Sstevel@tonic-gate 382*0Sstevel@tonic-gate<!-- 383*0Sstevel@tonic-gate * Number of data paths through which to ensure the volume is 384*0Sstevel@tonic-gate * reachable. 385*0Sstevel@tonic-gate * 386*0Sstevel@tonic-gate * The default value is 1. 387*0Sstevel@tonic-gate --> 388*0Sstevel@tonic-gate<!ATTLIST volume datapaths CDATA #IMPLIED> 389