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