xref: /titanic_41/usr/src/man/man4/volume-config.4 (revision deef35fd18fdfb1c42002a4793ebb2c181b08680)
te
Copyright (c) 2003, Sun Microsystems, Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (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]
VOLUME-CONFIG 4 "Aug 8, 2003"
NAME
volume-config - Solaris Volume Manager volume configuration information for top down volume creation with metassist
SYNOPSIS

/usr/share/lib/xml/dtd/volume-config.dtd
DESCRIPTION

A volume configuration file, XML-based and compliant with the volume-config.dtd Document Type Definition, describes the detailed configuration of the volume or volumes to be created, including the names, sizes and configurations of all the components used in the volume or volumes. This configuration file can be automatically generated by running metassist with the -d option, or can be manually created.

The volume configuration file can then be used to either generate a command file or to directly create volumes by running metassist and specifying the volume configuration file as input to the command.

As a system administrator, you would want to change, manually create, or edit the volume configuration file only if there are small details of the configuration that you want to change. For example, you might want to change names for volumes or hot spare pools, mirror read option, or stripe interlace values.

It would be possible to also select different devices or change slice sizes or make similar changes, but that is generally not recommended. Substantial changes to the volume-config file could result in a poor or non-functional configuration.

With a volume-config file, you can run metassist and provide the file as input to the command to generate either a command file or to actually set up the configuration.

"Defining Volume Configuration"

The top level element <volume-config> surrounds the volume configuration data. This element has no attributes. A volume configuration requires exactly one <diskset> element, which must be the first element of the volume configuration. Additionally, the volume-config can have zero or more of the following elements: <disk>, <slice>, <hsp>, <concat>, <stripe>, <mirror> as required to define the configuration of the volume to be created.

"Defining Disk Set"

Within the <volume-config> element, a <diskset> element must exist. The <diskset> element, with the name attribute, specifies the name of the diskset in which to create the volume or volumes. This element and attribute are required. If this named disk set does not exist, it is created upon implementation of this volume configuration.

"Defining Slice"

The volume configuration format provides for a <slice> element that defines the name of a slice to use as a component of a volume. The <slice> element requires a name attribute which specifies a full ctd name. If the <slice> is newly created as part of the volume configuration, the startsector and sizeinblocks attributes must be specified. If the slice was previously existing, these attributes need not be specified.

"Defining Hot Spare Pool"

The volume configuration format provides for a <hsp> element that defines the name of a hot spare pool to use as a component of a configuration. The <hsp> element requires a name attribute which specifies a hot spare pool name.

Slices defined by <slice> elements contained in the <hsp> element are included in the hot spare pool when metassist creates it."

"Defining Stripe"

The <stripe> element defines stripes (interlaced RAID 0 volumes) to be used in a volume. The <stripe> element takes a required name attribute to specify a name conforming to Solaris Volume Manager naming requirements. If the name specifies an existing stripe, no <slice> elements are required. If the name specifies a new stripe, the <slice> elements to construct the slice must be specified within the <stripe> element. The <stripe> elements takes an optional interlace attribute as value and units (for example, 16KB, 5BLOCKS, 20MB). If this value isn't specified, the Solaris Volume Manager default value is used.

"Defining Concat"

The <concat> element defines concats (non-interlaced RAID 0 volumes) to be used in a configuration. It is the same as a <stripe> element, except that the interlace attribute is not valid.

"Defining Mirror"

The <mirror> element defines mirrors (RAID 1 volumes) to be used in a volume configuration. It can contain combinations of <concat> and <stripe> elements (to explicitly determine which volumes are used as submirrors).

The <mirror> element takes a required name attribute to specify a name conforming to Solaris Volume Manager naming requirements.

The <mirror> element takes an optional read attribute to define the mirror read options (ROUNDROBIN, GEOMETRIC, or FIRST) for the mirrors. If this attribute is not specified, the Solaris Volume Manager default value is used.

The <mirror> element takes an optional write attribute to define the mirror write options (PARALLEL, SERIAL, or FIRST) for the mirrors. If this attribute is not specified, the Solaris Volume Manager default value is used. The <mirror> element takes an optional passnum attribute (0-9) to define the mirror passnum that defines the order in which mirrors are resynced at boot, if required. Smaller numbers are resynced first. If this attribute is not specified, the Solaris Volume Manager default value is used.

EXAMPLES

Example 1 Specifying a Volume Configuration

The following is an example volume configuration:

<!-- Example configuration -->
<volume-config>
 <!-- Specify the existing disk set to use -->
 <diskset name="redundant"/>

<!-- Create slices -->
<slice name="/dev/dsk/c0t0d1s7" startsector="1444464" \e
 sizeinblocks="205632BLOCKS"/>
<slice name="/dev/dsk/c0t0d1s6" startsector="1239840" \e
 sizeinblocks="102816KB"/>

<!-- Create a concat -->
<concat name="d12">
<slice name="/dev/dsk/c0t0d0s7"/>
<slice name="/dev/dsk/c0t0d0s6"/>
<slice name="/dev/dsk/c0t0d1s7"/>
<slice name="/dev/dsk/c0t0d1s6"/>

<!-- Create (and use) a HSP -->
hsp name="hsp0">
<slice name="/dev/dsk/c0t0d4s0"/>
<slice name="/dev/dsk/c0t0d4s1"/>
<slice name="/dev/dsk/c0t0d4s3"/>
<slice name="/dev/dsk/c0t0d4s4"/>
</hsp>

</concat>

<!-- Create a stripe -->
<stripe name="d15" interlace="32KB">
<slice name="/dev/dsk/c0t0d0s7"/>
<slice name="/dev/dsk/c0t0d1s7"/>

<!-- Use a previously-defined HSP -->
<hsp name="hsp0"/>
</stripe>

<!-- Create a mirror -->
<mirror name="d10">

<!-- Submirror 1: An existing stripe -->
<stripe name="d11"/>

<!-- Submirror 2: The concat defined above -->
<concat name="d12"/>

<!-- Submirror 3: A stripe defined here -->
<stripe name="d13">
<slice name="/dev/dsk/c0t0d2s6"/>
<slice name="/dev/dsk/c0t0d2s7"/>
<slice name="/dev/dsk/c0t0d3s6"/>
slice name="/dev/dsk/c0t0d3s7"/>
</stripe>

</mirror>

</volume-config>
FILES
/usr/share/lib/xml/dtd/volume-config.dtd

SEE ALSO

metassist(1M), metaclear(1M), metadb(1M), metadetach(1M), metahs(1M), metainit(1M), metaoffline(1M), metaonline(1M), metaparam(1M), metarecover(1M), metareplace(1M), metaroot(1M), metaset(1M), metasync(1M), metattach(1M), mount_ufs(1M), mddb.cf(4)

Solaris Volume Manager Administration Guide