This chapter presents LSM commands used for managing volumes and file systems. For details on any of the commands mentioned in this chapter, refer to the appropriate reference pages.
The functions described in this chapter can also be performed using the LSM Support Operations menu interface (voldiskadm) or the graphical user interface (dxlsm).
Table 7-1 introduces the commands and utilities discussed in this chapter.
Command | Description |
volassist | A one-step utility that finds space for and creates simple volumes, adds simple plexes to existing volumes, extends and shrinks existing volumes, provides for the migration of data from a specified disk, and provides facilities for the online backup of existing volumes. The command is supplied a keyword that selects the action to perform. |
voledit | Sets and changes various attributes for LSM configuration records that do not depend upon volume usage types. (See the volume command utility to set attributes that are dependent upon usage types.) Each invocation can be applied to only one disk group at a time. |
volmake | Creates subdisk, plex, and volume records. |
volplex | Performs LSM operations on plexes and volume-and-plex combinations. The volplex utility takes several operands. The first operand is a keyword that determines the specific operation to perform. The remaining operands specify the configuration objects to which the operation is to be applied. Each operation can be applied to only one disk group at a time. |
volprint | Displays information about volumes, plexes, and subdisks. |
volrecover | Recovers plexes and volumes after disk replacement. |
volrestore | Restores an LSM configuration, using the information in the files saved with the volsave command. |
volsave | Saves information about an LSM configuration in a set of files called a description set. |
volume | Performs LSM operations on volumes, including initialization, set the read policy (round robin, preferential, select a default policy based on plex association), enable disabled or detached volumes, stop volumes, and change volume characteristics. |
In addition, this chapter describes the commands for making and mounting UFS and AdvFS file systems on an LSM volume.
If you are administering a volume created by someone else, you may want to know how this volume is configured.
Use the volprint command to display the volume, plex, and subdisk record information for all volumes, as shown here:
#
volprint -ht
For example:
DG NAME GROUP-ID DM NAME DEVICE TYPE PRIVLEN PUBLEN PUBPATH V NAME USETYPE KSTATE STATE LENGTH READPOL... PL NAME VOLUME KSTATE STATE LENGTH LAYOUT... SD NAME PLEX PLOFFS DISKOFFS LENGTH DISK-MEDIA...
dg rootdg 730344554.1025.harley
dm rz8 rz8 sliced 512 829072 /dev/rrz8e dm disk01 rz8d simple 512 202240 /dev/rrz8d dm disk02 rz9 sliced 512 202240 /dev/rrz9e
pl volmir-02 - DISABLED - 10240 CONCAT - RW sd disk02-02 volmir-02 0 16384 10240 disk02 rz9
v homevol fsgen ENABLED ACTIVE 275184 SELECT - pl homevol-01 homevol ENABLED ACTIVE 275184 CONCAT - RW sd rz8-04 homevol-01 0 410256 275184 rz8 rz8
v rootvol root ENABLED ACTIVE 314496 SELECT - pl rootvol-01 rootvol ENABLED ACTIVE 314496 CONCAT - RW sd rz8-01 rootvol-01 0 95760 314496 rz8 rz8
v snapvol fsgen ENABLED - 20480 ROUND - pl voltest-03 snapvol ENABLED ACTIVE 20480 CONCAT - RW sd disk01-01 voltest-03 0 143088 20480 disk01 rz8d
v standvol gen ENABLED ACTIVE 31248 SELECT - pl standvol-01 standvol ENABLED ACTIVE 31248 CONCAT - RW sd rz8-03 standvol-01 0 0 31248 rz8 rz8
v swapvol swap ENABLED ACTIVE 64512 SELECT - pl swapvol-01 swapvol ENABLED ACTIVE 64512 CONCAT - RW sd rz8-02 swapvol-01 0 31248 64512 rz8 rz8
v volcat fsgen ENABLED ACTIVE 20480 SELECT - pl volcat-01 volcat ENABLED ACTIVE 20480 CONCAT - RW sd rz8-06 volcat-01 0 705920 20480 rz8 rz8
v volspec fsgen ENABLED ACTIVE 6144 SELECT - pl volspec-01 volspec ENABLED ACTIVE 6144 CONCAT - RW sd disk02-01 volspec-01 0 10240 6144 disk02 rz8d
v volzebra fsgen ENABLED ACTIVE 20480 SELECT volstripe
pl volzebra-01 volzebra ENABLED ACTIVE 20480 STRIPE 128 RW sd disk01-02 volzebra-01 0 102128 10240 disk01 rz9 sd rz8-01 volzebra-01 10240 0 10240 disk02 rz9
v voltest fsgen ENABLED ACTIVE 20480 SELECT - pl voltest-01 voltest ENABLED ACTIVE 20480 CONCAT - RW sd rz8-05 voltest-01 0 685440 20480 rz8 rz8 pl voltest-02 voltest ENABLED ACTIVE 20480 CONCAT - RW sd disk01-04 voltest-02 0 122608 20480 disk01 rz8d
This example uses the following abbreviations:
dg | Disk group |
dm | Disk |
pl | Plex |
sd | Subdisk |
v | Volume |
You can list information related to volumes under LSM control, including the name of the volume, its usage type, state, length, user and group IDs, and mode.
To display information on a particular volume, specify the volume name on the command line:
#
volprint -t
volume_name
For example, to display the information about a volume named volspec, enter:
#
volprint -t volspec
DG NAME GROUP-ID DM NAME DEVICE TYPE PRIVLEN PUBLEN PUBPATH V NAME USETYPE KSTATE STATE LENGTH READPOL PREFPLEX PL NAME VOLUME KSTATE STATE LENGTH LAYOUT ST-WIDTH MODE SD NAME PLEX PLOFFS DISKOFFS LENGTH DISK-MEDIA ACCESS
v volspec fsgen ENABLED ACTIVE 6144 SELECT -
To display the plexes for this volume, use the following command:
#
volprint -e 'assoc="volspec"'
To list information on all volumes, use the following command:
#
volprint -vt
To show detailed information for all volumes, use the following command:
#
volprint -vl
The volassist command enables you to perform a variety of volume operations, such as creating and mirroring volumes. This utility is easy to use and is LSM's most powerful program.
To get help on using volassist, display the online help information as follows:
#
volassist help
volassist - Perform simple general administrative actions
Usage: volassist [-b] [-g diskgroup] [-U usetype] [-d file] keyword...
Recognized keywords: make volume_name length [options] mirror volume_name [options] move volume_name [options] [-f] growto volume_name new_length [options] [-f] growby volume_name length_change [options] [-f] shrinkto volume_name new_length [options] [-f] shrinkby volume_name length_change [options] snapstart volume_name [options] snapwait volume_name snapshot volume_name snapshot_name help [debug | flags | options]
Note
You can control the behavior of the volassist command by specifying parameters on the command line or in the defaults file /etc/defaults/volassist. See Section 8.4.5 for an example of this file and for instructions on creating and editing it.
A volume is a logical disk device on which file systems and databases can be created.
To create a volume using system defaults, use the following command:
#
volassist make
volume_name length
For example, to create the volume voldef, enter:
#
volassist make voldef 10m
This creates a 10MB volume named voldef.
A concatenated volume is a volume that uses one or more sections of disk space. On a fragmented disk, concatenation allows you to put together a volume larger than any individual section of free disk space available.
To create a concatenated volume, use the following command:
#
volassist make
volume_name length
layout=concat
For example, to create the concatenated volume volcat, enter:
#
volassist make volcat 10m layout=concat
You can set concatenation as the default in the volassist defaults file /etc/defaults/volassist. This file is described in Section 8.4.5.
A spanned volume is a concatenated volume with sections of disk space spread across more than one disk. A spanned volume can be larger than the single largest disk, because it takes space from more than one disk.
To create a spanned volume, use the following command:
#
volassist make
volume_name length
The concatenated, spanned layout is the default.
For example, to create the spanned volume volspan, enter:
#
volassist make volspan 1000m
A striped volume consists of a number of equal sized subdisks, each located on a separate disk drive. To create a striped volume, use the following command:
#
volassist make
volume_name length
layout=stripe
For example, to create the striped volume volzebra, enter:
#
volassist make volzebra 10m layout=stripe
This command line creates a volume with the default stripe width on the default number of drives.
LSM automatically selects the disk or disks each volume will reside on, unless you specify otherwise. If you want a volume to reside on a specific disk, you must designate the disk for LSM.
To create a volume on a specific disk, use the following command:
#
volassist make
volume_name length diskname
[...]
For example, to create the volume volspec on disk03, enter:
#
volassist make volspec 3m disk03
You can specify more than one disk.
A plex contains a copy of the volume's data. A volume must have two plexes for the data to be mirrored. The mirrored copy is not stored on the same disk as the original copy of the volume. Mirroring a volume assures you that the data in that volume will not be lost if one of your disks fails.
To create a new volume with a plex, use the following command:
#
volassist make
volume_name length
mirror=yes
For example, to create the mirrored volume, volmir, enter:
#
volassist make volmir 5m mirror=yes
To create a plex for an existing volume, use the following command:
#
volassist mirror
volume_name
For example, to create a plex of the volume voltest, enter:
#
volassist mirror voltest
If the volume is not large enough for the amount of data that needs to be stored in it, you need to extend the volume's length.
To extend a volume to a specific length, use the following command:
#
volassist growto
volume_name length
For example, to extend volcat to 2000 512-byte sectors, enter:
#
volassist growto volcat 2000
To extend a volume by a specific length, use the following command:
#
volassist growby
volume_name length
For example, to extend volcat by 100 sectors, enter:
#
volassist growby volcat 100
Notes
File systems such as AdvFS and UFS cannot currently take advantage of an enlarged volume.
You cannot use the volassist growto and volassist growby commands with striped volumes.
An extend operation will fail if a volume is open when you perform the operation. To override the failure, use the -f force option with volassist.
If you find that a volume is much larger than needed, you can shrink its size. However, be aware that shrinking a volume containing data (perhaps in the form of a file system or database) can result in the loss of any data residing on the part of the volume that is removed.
To shrink a volume to a specific length, use the following command:
#
volassist shrinkto
volume_name length
This command can be safely used on empty volumes.
For example, to shrink volcat to 1300 sectors, enter:
#
volassist shrinkto volcat 1300
To shrink a volume by a specific length, use the following command:
#
volassist shrinkby
volume_name length
For example, to shrink volcat by 300 sectors, enter:
#
volassist shrinkby volcat 300s
Notes
File systems such as AdvFS and UFS cannot currently take advantage of an enlarged volume.
You cannot use the volassist shrinkto and volassist shrinkby commands with striped volumes.
A shrink operation will fail if a volume is open when you perform the operation. To override the failure, use the -f force option with volassist.
LSM provides the ability to perform snapshot backups of volume devices. This capability is provided through volassist and other utilities. There are various procedures for doing backups, depending upon requirements for integrity of the volume contents. These procedures have the same starting requirement: a plex that is large enough to store the complete contents of the volume. The plex can be larger than necessary, but if it is smaller, an incomplete copy results.
The recommended approach to volume backup involves the use of the volassist utility. The volassist procedure is convenient and relatively simple.
The volassist snapstart, snapwait, and snapshot operations provide a way to do online backup of volumes with minimal interruption of data change and access activity.
The snapstart operation creates a write-only backup plex, which gets attached to and synchronized with the volume. When synchronized with the volume, the backup plex is ready to be used as a snapshot plex. The end of the update procedure is signified by the new snapshot plex changing its state to SNAPDONE. This change can be tracked by the volassist snapwait operation, which waits until at least one of the snapshot plexes changes its state to SNAPDONE. If the attach process fails, the snapshot plex is removed and its space is released.
Once the snapshot plex is synchronized, it continues being updated until it is detached. The system administrator can then select a convenient time at which to create a snapshot volume as an image of the existing volume. The system administrator can also ask users to refrain from using the system during the brief time required to perform the snapshot (typically less than a minute). The amount of time involved in creating the snapshot plex is long and indefinite, in contrast to the brief amount of time that it takes to create the snapshot volume.
The backup procedure is completed by running the volassist snapshot command on a volume with a SNAPDONE plex. This operation detaches the finished snapshot (which becomes a normal plex), creates a new normal volume, and attaches the snapshot plex to it. The snapshot then becomes a normal, functioning plex and the state of the snapshot is set to ACTIVE.
If the snapshot procedure is interrupted, the snapshot plex is automatically removed when the volume is started.
Follow these steps to perform a complete backup using volassist:
#
volassist snapstart
volume_name
Notes
For UFS volumes, Digital recommends the file system be unmounted briefly to ensure the snapshot data on disk is consistent and complete.
For volumes used in AdvFS domains, Digital recommends an AdvFS backup method such as cloning.
#
volassist snapshot
volume_name temp_volume_name
After the snapshot is completed, you can resume normal use of the volume. For example, if the volume contained a UFS, it can be remounted.
#
fsck -p /dev/rvol/
temp-volume-name
#
dump 0 /dev/rvol/
temp-volume-name
#
volume stop
temp_volume_name
#
voledit -r rm
temp_volume_name
Note
The -r option of the voledit command removes multiple objects. Exercise caution when using it.
LSM provides utilities to save and restore configuration information, so that you can recreate your LSM configuration, if necessary.
The volsave command saves information about an LSM configuration in a set of files called a description set. By default, the description set is saved to a timestamped directory in /usr/var/lsm/db (for example, /usr/var/lsm/db/LSM.19951226203620.skylark). Or, you can specify a directory of your choice by using the -d option with volsave (as described in Section C.21 ).
The description set contains the following files:
A volmake description file for all volumes, plexes, and subdisks in a disk group. The volsave utility creates a separate subdirectory and description file for each disk group on the system.
A description of the disks. This file is the output of the voldisk list command.
The contents of the /etc/vol/volboot file.
A header file for the description set, containing a checksum, a magic number, the date of the file's creation, and the version of the volsave command.
The volsave command does not save the data in LSM volumes; it only saves information about the LSM configuration. You should back up the description set, as you would any other files.
See Section C.21 for detailed examples of saving an LSM configuration.
The volrestore command restores an LSM configuration, using the information that you saved with the volsave command. If you enter the volrestore command with no options, volrestore attempts to restore all disk groups. If you use the -i (interactive) option, volrestore prompts you before restoring each disk group.
Before the volrestore command restores the LSM configuration, it validates the checksum that is part of the description set.
By default, the volrestore command restores the whole configuration, using the description set in the directory under /usr/var/lsm/db that has the latest timestamp. You can specify options to the command to use a different directory and to restore a specific volume or disk group. For example, this command restores only the volume named myvol01 in the staffdg disk group:
#
volrestore -g staffdg -v myvol01
When it restores a specific disk group, the volrestore command attempts to reimport the disk group based on configuration information on disks that belong to that disk group. If the import fails, volrestore recreates the disk group by reinitializing all disks within that disk group and recreating all volumes, unassociated plexes, and unassociated subdisks, based on information in the volmake description file, allvol.DF
Notes
The volrestore command does not restore volumes associated with the root, /usr, and /var file systems and the primary swap area. These partitions must be reencapsulated to use LSM volumes.
Before using volrestore in ASE or clusters, please refer to your ASE or clusters documentation.
When you restore a complete LSM configuration, volrestore attempts to reenable the vold daemon based on all rootdg disks in the saved copy of the volboot file. If the complete LSM configuration needs to be restored, you can use the -i (interactive) option with volrestore. The volrestore command prompts you before restoring each file, enabling you to skip specific disk groups.
If vold cannot be enabled, you are given the option of recreating the rootdg disk group and any other disk groups using the other files in the saved LSM description set. The rootdg disk group is recreated first, and vold is put in the enabled mode. Then, the other disk groups are enabled. The disk groups are recreated by first attempting to import them based on available disks in that disk group. If the import fails, the disk group is reinitialized and all volumes in that disk group are also recreated based on the volmake description files.
When volumes are restored using the volmake description file, the plexes are created in the "DISABLED EMPTY" state. The volrestore command does not attempt to start or enable such volumes. You must use volmend or volume to set the plex states appropriately before starting the volume. The volrestore command warns you to check the state of each disk associated with a volume before using volmend to set plex states; to carefully find out which disks in the LSM configuration could have had failures since saving the LSM configuration; and to use volmend to mark plexes on those disks to be "STALE." In addition, any plex that was detached or disabled at any point during or after the LSM configuration was saved should be marked "STALE" using volmend.
See Chapter 14 for information on how to resolve conflicts that may occur when restoring a configuration.
See Section C.23 for detailed examples of restoring a configuration.
This section shows how to use the volume command and other low-level LSM commands to do the following tasks:
The LSM reference pages provide detailed descriptions about the commands used to perform volume operations.
Volumes can be created with either the volassist or volmake utility.
The length of a new volume can be specified in sectors, megabytes, or kilobytes. The unit of measure is indicated by adding the appropriate suffix to the length (s, m, or k). If no unit is specified, sectors are assumed.
To create a volume using volmake, use the following command:
#
volmake -U
usage_type
vol
volume_name
len=
length \
plex=
plex_name,
...
Either the plex= parameter or the len= parameter can be omitted. If the len= parameter is specified with the plex= parameter, then the volume created from an existing plex takes the length of that plex. If the len= parameter is specified without the plex= parameter, then at least one plex of the appropriate length must later be specified.
The following examples show commands for creating an fsgen-type volume called vol01:
#
volmake -Ufsgen vol vol01 len=100000
or
#
volmake vol vol01 use_type=fsgen plex=vol01-01,vol01-02
Note that the first command shown above creates a volume that has no plex.
The usage type for a volume can be specified in either of two ways: -Ufsgen or use_type=fsgen. If a length is not specified (for example, len=100000) or associated plexes are not identified (for example, plex=vol01-01,vol01-02), the volume length will be zero.
Instead of specifying parameters on the command line, you can use a volmake description file to create a volume, as well as associated subdisks and plexes, by using the following command:
#
volmake -d
description_file
For detailed information about how to use volmake, and an example of the volmake description files, refer to Section 8.4.3 or to the volmake(8) reference page.
LSM automatically sets the states of plexes and volumes based on usage type. The volume start command performs a default volume initialization on a newly created volume; the volume init command is used for spanned volumes. When a multiple-plex volume is first configured and needs to be started, you must initialize the volume manually. Use a command like the following:
#
volume init
how volume_name [plex_name]
The how variable determines what the initialization does and what condition the volume and plexes have after the volume has been initialized. The most common form of manual initialization is setting the state of the volume and one of its plexes to CLEAN. To set the state of a volume and plex to CLEAN, use the following command:
#
volume init clean
volume1 plex
The following commands illustrate a specific example of how to set a volume and plex to the CLEAN state during manual initialization:
#
volmake -Ufsgen home plex=home-1,home-2
#
volume init clean home home-2
#
volume start home
In this example, the system administrator has created a new two-plex volume, and then realized that the data that existed on plex home-2 was the data that needed to be mirrored onto the plex labeled home-1. By setting the state of home-2 to CLEAN, LSM will correctly copy the data onto (revive) home-1 during the volume start operation.
To make all the plexes in a volume ACTIVE and enable the volume, use the following command:
#
volume init active
volume_name
To enable a volume to temporarily allow I/O to dump the contents of a tape into a volume, use the following command:
#
volume init enable
volume_name
This enables the volume and all its plexes, but leaves the plex utility state as EMPTY.
After the I/O is complete, issue the volume init active version of the command.
Note
When LSM is restarted (for example, after a system reboot) a volume that has been initialized using init enable will not start.
To zero out all the plexes, set them to ACTIVE, and enable the volume, use the following command:
#
volume init zero
volume_name
Caution
For both mirrored and nonmirrored volumes, this action destroys any existing data residing on the volume. Do not use the zero option unless you are sure that no critical data exists on any plex in the volume. Most initializations will destroy data on some plexes. To preserve data on a volume, use either volume init active or volume init clean, as appropriate.
Volume attributes such as read policy, error policies, ownership, permissions, and the values in the comment and utility fields for existing volumes can be changed. These attributes are changed whenever the use of the volume or users' needs change. Two LSM commands are used to set volume attributes:
Use the following command syntax to set volume attributes:
#
volume set
field
=
value
...
volume_name
...
#
voledit set
field
=
value
...
volume_name
...
Table 7-2 describes the attributes that each command can set.
Command | Attribute | Description |
voledit | The comment field | |
tutil0, tutil1, tutil2 | Descriptive string of volume contents | |
putil0, putil1, putil2 | ||
fstype | String indicating file system type | |
writeback | Boolean (on/off) specifying read error correction mode | |
user | Owner of volume | |
group | Group of volume | |
mode | Permission mode for volume | |
volume | len | Numeric length of volume |
log type | (blkno/undef) specifier of block-change logging mode for volume | |
log | Length of the block-change logging log | |
start opts | Options to be executed to the volume start operation |
For example, to change the owner of vol01 to susan, the group to staff, and the permissions to read/write for owner, group, and other:
#
voledit set user=susan group=staff mode=0666 vol01
Resizing a volume is an instance of changing volume attributes that can be handled using either volassist or volume.
Striped volumes cannot be resized.
The new size of a volume can be specified in sectors, megabytes, or kilobytes. The unit of measure is indicated by adding the appropriate suffix to the length (s, m, or k). If no unit is specified, sectors are assumed.
To change the length of a volume using volume set, use the following command:
#
volume set len=
value
...
volume_name
...
For example, to change the length to 100000 sectors, use the following command:
#
volume set len=100000 vol01
Note
Note the following when using the volume command:
- The volume set len command cannot increase the size of a volume unless the needed space is available in the plexes of the volume.
- When a volume's size is reduced using the volume set len command, the freed space is not released into the free space pool.
LSM offers the choice of three read policies:
The volume rdpol command sets the read policy for a volume. To set a read policy, use one of the following commands:
#
volume rdpol round
volume_name
or
#
volume rdpol prefer
volume_name preferred_plex_name
For example, the command line to set the read policy for volume vol01 to a round-robin read looks like this:
#
volume rdpol round vol01
The command line to set the policy for the same volume to read preferentially from the plex vol01-02 looks like this:
#
volume rdpol prefer vol01 vol01-02
Like mounting and unmounting a file system, starting and stopping a volume affects its availability to the user. Starting a volume changes its state and makes it available for use. Stopping a volume makes it unavailable.
Starting a volume changes the volume state from DISABLED or DETACHED to ENABLED. The success of this operation depends on the ability to enable a volume. If a volume cannot be enabled, it remains in its current state. To start a volume, use the following command:
#
volrecover -s
volume_name
...
To start all DISABLED volumes, use the following command:
#
volrecover -s
Stopping a volume changes the volume state from ENABLED or DETACHED to DISABLED. If the command cannot stop it, the volume remains in its current state. To stop a volume, use the following command:
#
volume stop
volume_name
...
For example, the command line to stop a volume labeled vol01 looks like this:
#
volume stop vol01
To stop all ENABLED volumes, use the following command:
#
volume stopall
If all plexes of the volume become STALE, put the volume in maintenance mode so that the plexes can be looked at while the volume is DETACHED and determine which plex to use for reviving the others. To place a volume in maintenance mode, use the following command:
#
volume maint
volume_name
To assist in choosing the revival source plex, list the unstarted volume and display its plexes.
To take plex vol01-02 off line, use the following command:
#
volmend off vol01-02
For ENABLED volumes, save a step by using volplex att without first invoking volmend on. This command works on an OFFLINE plex of an ENABLED volume (designated as vol01 in the example):
#
volplex att vol01 vol01-02
The volmend utility can change the state of an OFFLINE plex of a DISABLED volume to STALE, after which running volume start on the volume would revive the plex. To put a plex labeled vol01-02 in the STALE state, use the following command:
#
volmend on vol01-02
To make other state changes in a plex or a volume, refer to the subsequent sections on volume recovery options.
To mirror an existing volume using individual commands, first create a plex, then associate it to a volume. Use the following command syntax:
#
volmake plex
plex_name sd=subdisk_name ...
#
volplex att
volume_name plex_name
You can also use the volassist utility to mirror existing volumes.
A plex contains a copy of the volume's data. A volume is mirrored when there are two or more plexes attached to the volume. If you no longer want to mirror a volume, you must disassociate the extra plex copy or copies.
To remove a plex, first disassociate the plex from the volume, then remove the plex and any associated subdisks. Use the following command syntax:
#
volplex dis
plex_name
#
voledit -r rm
plex_name
For example, the following output of volprint shows the volume volmir as a mirrored volume with attached plexes volmir-01 and volmir-02.
#
volprint -h volmir
TYPE NAME ASSOC KSTATE LENGTH COMMENT vol volmir fsgen ENABLED 10240 plex volmir-01 volmir ENABLED 10240 sd disk01-03 volmir-01 - 10240 plex volmir-02 volmir ENABLED 10240 sd disk02-02 volmir-02 - 10240
To "unmirror" the volmir volume, you would need to remove the volume volmir-02 as follows:
#
volplex dis volmir-02
#
voledit -r rm volmir-02
#
volprint -h volmir
TYPE NAME ASSOC KSTATE LENGTH COMMENT vol volmir fsgen ENABLED 10240 plex volmir-01 volmir ENABLED 10240 sd disk01-03 volmir-01 - 10240
Note that volmir-02 and its associated subdisk disk02-02 are no longer listed. Because the volmir volume now has only one plex attached to it, volmir is no longer mirrored.
Once a volume is no longer necessary (it is inactive and archived, for example), you can remove the volume and free up the disk space for other uses.
To remove a volume, all references to the volume must be closed (that is, the file system in the volume must be unmounted, and the volume stopped using the volume stop command). The volume stop command stops all LSM activity to the volume.
After stopping the volume, enter the following command:
#
voledit -r rm
volume_name
To remove the volume volspan, enter:
#
voledit -r rm volspan
Note
The -r option of the voledit command removes multiple objects. Exercise caution when using it.
The following sections summarizes how to create file systems on volumes.
A file system is created on a volume and cannot be larger than the volume on which it is created.
To create a file system on a volume, use the following syntax:
newfs [ specific_options ] special_file disktype
The following table describes the qualifiers you can set with this command:
Variable | Description |
specific_options | Options specific to this file system. See the newfs(2) reference page. |
special_file | The full pathname of the volume on which to create the file system (for example, /dev/rvol/rootdg/pubs). |
disktype | The disk whose characteristics map closely to the logical volume. |
To create a file system on a volume called /dev/rvol/rootdg/pubs, first create the volume called pubs using volassist. Once the volume is created, enter the following command:
#
newfs /dev/rvol/rootdg/pubs rz29b
After creating the file system, mount it using the following command:
#
mount
block_special mount_point
For example, to mount the file system /dev/vol/rootdg/pubs, enter:
#
mount /dev/vol/rootdg/pubs /pubs
If you no longer need to access the data in a file system, you can unmount it using the following command syntax:
umount block_special | mount_point
To unmount the /dev/vol/rootdg/pubs, file system, enter:
#
unmount /dev/vol/rootdg/pubs
It is important to keep track of which file systems are mounted and which are not. This saves users from trying to access unmounted file systems.
You can look at the status of file systems by entering the
mount
command. For example:
#
mount
/dev/rz3a on / type ufs (rw) /proc on /proc type procfs (rw) /dev/vol/rootdg/vol-rz3g on /usr type ufs (rw) /dev/vol/rootdg/vol01 on /ufs1 type ufs (rw)
You can use LSM volumes in AdvFS domains in the same manner that you use disk partitions. The LSM volume names used with AdvFS should be unique, regardless of the LSM disk group that the LSM volume is from.
Use the LSM volume's full device pathname when using an LSM volume with an AdvFS domain. For example, to create a new AdvFS domain called lsmdom using an existing LSM volume, vol01, in the rootdg disk group, enter:
#
mkfdmn /dev/vol/rootdg/vol01 lsmdom
To create a file set called lsmfset with the lsmdom domain, enter:
#
mkfset lsmdom lsmfset
To mount the AdvFS fileset lsmfset on /advfs, enter:
#
mount -t advfs lsmdom#lsmfset /advfs
For further information about setting up and using domains and file sets, refer to the AdvFS documentation set.
When configuring an LSM volume with AdvFS, use the full pathname of the LSM volume's device file. For example, to add the LSM volume vol02 in the LSM rootdg disk group to the existing AdvFS domain called lsmdom, enter:
#
addvol /dev/vol/rootdg/vol02 lsmdom
The system swap space is a vital system resource. In fact, if disk errors occur in the swap space, a system crash is likely to occur. You can guard against disk I/O errors in the secondary swap space by using an LSM mirrored volume for the secondary swap.
To do this, create an LSM volume and add it as secondary swap space using the swapon command and set the volume's start options to norecov. If you are adding multiple disks as LSM volumes to secondary swap, add the disks as several individual LSM volumes rather than striping or concatenating them into a single, larger LSM volume. Adding multiple, individual LSM volumes is preferable because the swapping algorithm automatically distributes its data across multiple disks to improve performance.
The following example demonstrates the commands you use to create and add a mirrored volume ( swapvol1 with a size of 102400 sectors) to the secondary swap space:
#
volmake sd disk01-01 disk01,0,102400
#
volmake sd disk02-01 disk02,0,102400
#
volmake plex swapvol1-01 sd=disk01-01
#
volmake plex swapvol1-02 sd=disk02-01
#
volmake vol swapvol1 plex=swapvol1-01 usetype=gen \
start_opts=norecov
#
volplex att swapvol1 swapvol1-02
#
volume start swapvol1
#
volprint -ht swapvol1
You can add an LSM volume for secondary swap space by editing the /etc/fstab file to add the following line:
/dev/vol/rootdg/swapvol1 swap2 ufs sw 0 2
Then, enter the following commands:
#
swapon /dev/vol/swapvol1
#
swapon -s
See the
swapon(8)
and the
fstab(4)
reference pages
for complete information about these commands and setting up
secondary swap.
LSM volumes have block and character device special files in the /dev/vol and /dev/rvol directories, respectively. For example, the volume dbvol in the disk group dbgrp, would have the block device file /dev/vol/dbgrp/dbvol and the character special device file /dev/rvol/dbgrp/dbvol. If the database uses the raw interface, you can specify the character special device file for an LSM volume for use with the database.
To change the owner, group, or mode of the special device files, use the LSM voledit command. Do not change these attributes using standard UNIX commands (such as chown, chgrp, or chmod).
The following example shows how to change user and group to dba and the mode to 0600 for the disk group dbgrp and volume vol_db:
#
voledit -g dbgrp set user=dba group=dba mode=0600 vol_db
When you unencapsulate an LSM volume, the LSM nopriv disk is removed, and the disk label's fstype field is marked unused. You should use the disklabel command to set the fstype field to the appropriate file system type. For example, if the disk partition is used for AdvFS, it should be labeled AdvFS. If it is used for UFS, it should be labeled 4.2BSD. See the disklabel(8) reference page for information on setting the fstype field.
For information on unencapsulating the /usr and /var file systems, refer to Section C.20.
For information on unencapsulating the root file system and primary swap area, refer to Section C.19.
The following sections describe how to unencapsulate LSM volumes and return to using disk partitions or AdvFS domains.
The following steps describe how to unencapsulate LSM volumes and return to using disk partitions.
In the example shown here, the volume named vol-rz4g, in the staffdg disk group on the rz4g partition, is being removed from LSM control. This example assumes that a UFS file system on rz4g was previously encapsulated. In addition, it assumes that the LSM configuration for volume vol-rz4g has not been changed (for example, moved to a different disk or striped).
#
volume -g staffdg stop vol-rz4g
#
voledit -g staffdg -rf rm vol-rz4g
#
voldg rmdisk rz4g
#
voldisk rm rz4g
At this point, LSM no longer knows about the rz4g nopriv disk.
The following steps describe how to unencapsulate LSM volumes and return to using AdvFS domains. In the example shown here, the domain named dom1, which includes the partition rz4e, was encapsulated into a volume named vol-rz4e in the staffdg disk group.
#
volume -g staffdg stop vol-rz4e
#
voledit -g staffdg -rf rm vol-rz4e
#
voldg rmdisk rz4e
#
voldisk rm rz4e
#
cd /etc/fdmns/dom1
#
rm vol-rz4e
#
ln -s /dev/rz4e rz4e