Veritas Volume Manager – vxassist
vxassist utility in veritas volume manager is used to create volumes, add mirrors and logs to existing volumes, extend and shrink existing volumes, provides for the migration of data from a specified set of disks, and provides facilities for the on-line back up of existing volumes.
The default behavior of vxassist is to create volumes in the rootdg diskgroup if diskgroup is not specified . The default length is taken as number of blocks but this can be specified in Kilobytes or Megabytes or Gigabytes.
About Vxassist 1. Creating a Volume 1.1 Creating a Concatenated Volume 1.2 Creating a Striped Volume 1.3 Creating a RAID-5 Volume 2. Extending a Volume 2.1 Extending a volume up to certain length, 2.2 Extending by a Given Length 3. Shrinking a Volume 3.1 Shrinking to a Given Length 3.2 Shrinking by a Given Length 4. Removing a Volume 5. Mirroring a Volume 5.1 Creating & Mirroring a New Volume 5.2 Mirroring an Existing Volume 5.3 Mirroring All Volumes 6. Removing a Mirror 7. Adding a RAID-5 Log 8. Adding a DRL Log 9. Removing a RAID-5 Log 10.Preparing a Volume for Online Backup 11.Displaying Volume Configuration Information 12.Next Steps
vxassist command syntax :
vxassist volume_name [attributes]
Commonly used options are given below (See man vxassist for complete list of supported options)
-g for specifying diskgroups
-b for background operation
-d file containing defaults for vxassist if not specified /etc/default/vxassist is used
Keywords used are make , mirror , move , growto ,growby ,shrintto ,shirnkby ,snapstart , snapshot ,snapwait
Attributes specify volumes layout disks controllar to include exclude etc
Default rootdg disk group.
Block Device Node /dev/vx/dsk/volume_name
Raw Device Node /dev/vx/rdsk/volume_name
Block Device Node /dev/vx/dsk/diskgroup_name/volume_name
Raw Device Node /dev/vx/rdsk/diskgroup_name/volume_name
1. Creating a Volume
1.1 Creating a Concatenated Volume
By default, vxassist creates a concatenated volume using the space available on a disk or on the number of disks in a diskgroup if the volume size specified is more then the one available on a single disk.
Command syntax :
· #vxassist make volume_name volume_length
To create a new volume appvol of 100 MB in the default disk group rootdg with available disks:
· #vxassist make appvol 100m
To create the volume appvol of 100MB on disk03
· #vxassist make appvol 100m disk03
1.2 Creating a Striped Volume
A striped volume contains at least one plex that consists of two or more subdisks located on two or more physical disks.
· vxassist make volume_name length layout=stripe
To create a striped volume appvol2 with the default stripe unit size on the default number of disks
· #vxassist make appvol2 100m layout=stripe
To create a striped volume appvol2 100MB striped volume on three specific disks.
· #vxassist make appvol2 100m layout=stripe disk04 disk05 disk06
1.3 Creating a RAID-5 Volume
A RAID-5 volume contains a RAID-5 plex that consists of two or more subdisks located on two or more physical disks. Only one RAID-5 plex can exist per volume. A RAID-5 volume may also contain one or more RAID-5 log plexes, which are used to log information about data and parity being written to the volume.
Command Syntax :
· vxassist make volume_name length layout=raid5
To create the RAID-5 volume appvol4 with the default stripe unit size on the default number of disks with RAID-5 log,
· #vxassist make appvol4 100m layout=raid5.
2. Extending a Volume
Caution : If you plan to use volume size change (grow or shrink ) on a volume with data make sure you have the good backup of the volume available before carrying out such operation .
2.1 Extending a volume up to certain length,
· vxassist growto volume_name length
To extend vol3 upto 8000 sectors, type:
· #vxassist growto vol3 8000
2.2 Extending by a Given Length
· vxassist growby volume_name length
To extend volapp by 1000 sectors, type:
· #vxassist growby volapp 1000
3. Shrinking a Volume
Caution – Do not shrink a volume below the size of the file system. If you have a VxFS file system, you can shrink the file system and then shrink the volume. If you do not shrink the file system first, you risk unrecoverable data loss.
Always make sure you have a good backup of the data volume to be shirnked.
3.1 Shrinking to a Given Length
Shrink a volume to a specific length as follows:
· vxassist shrinkto volume_name length
Make sure you do not shrink the volume below the current size of the file system or database using the volume. This command can be safely used on empty volumes.
To shrink volcat to 1300 sectors, type:
· #vxassist shrinkto volcat 1300
3.2 Shrinking by a Given Length
Shrink a volume by a specific length as follows:
· vxassist shrinkby volume_name length
To shrink volcat by 8000 sectors, type:
· #vxassist shrinkby volapp2 8000
4. Removing a Volume
Removing a volume requires removing all references to the volumes to be removed like unmounting the volume if mounted and removing its reference from /etc/vfstab .
An active volume has to be stopped first to stop all the activities to the volume only then it can be removed
· vxvol stop volume_name
To stop appvol1
· #vxvol stop appvol1
· vxedit -rf rm volume_name
To remove the volume appvol1
· #vxedit -rf rm appvol11
5. Mirroring a Volume
Mirroring allow data to be written simultaneously to two disks so that in case of failure of one disk data is available from the other mirrored disk. Boot disks can be mirriored to provide alternate booting disk .
5.1 Creating & Mirroring a New Volume
Command Syntax :
· vxassist make volume_name length layout=mirror
To create the mirrored volume, appvol22 of 100mb
· #vxassist make appvol22 100m layout=mirror
To create a volume with Dirty Region Logging enabled
· #vxassist make volume_name length layout=mirror,log
5.2 Mirroring an Existing Volume
· vxassist mirror volume_name
Creating a mirror of volume vol44:
· #vxassist mirror vol44
5.3 Mirroring All Volumes
To mirror all existing volumes to available disk space
· /etc/vx/bin/vxmirror -a
6. Removing a Mirror
Removing a mirror involves first dissociating the plex from its volume and then removing the plex and any associated subdisks completely.The last valid mirror plex associated with a volume cannot be removed.
Dissociate and remove the plex from its volume as follows:
· vxplex -o rm dis plex_name
vxprint -h shows the volume and associated plexes :
Disk group: rootdg TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0 v volm fsgen ENABLED 10240 – ACTIVE – – pl volm-01 volm ENABLED 10240 – ACTIVE – – sd disk01-02 volm-01 – 10240 0 – – – pl volm-02 volm ENABLED 10240 – ACTIVE – – sd disk02-03 volm-02 – 10240 0 – – –
To disassociate and remove volmir-02 from volmir, type:
· #vxplex -o rm dis volm-02
The output of vxprint -h for volm now shows volume volm with only one plex::
Disk group: rootdg TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0 v volm fsgen ENABLED 10240 – ACTIVE – – pl volm-01 volmir ENABLED 10240 – ACTIVE – – sd disk01-02 volmir-01 – 10240 0 – – –
7. Adding a RAID-5 Log
A RAID-5 log maintains a copy of the data and parity being written to the volume at any given time. If a system failure occurs, VxVM can replay the RAID-5 log to resynchronize the volume. This copies the data and parity that was being written at the time of failure from the log to the appropriate areas of the RAID-5 volume.
RAID-5 log plexes are used to log information about data and parity being written to the raid volume. A log plex is created for the volume by default when a raid volume is created but additional ones can be added by following command .
· vxassist addlog name_of_raid5_vol
8. Adding a DRL Log
Dirty region logging (DRL) is used with mirrored volume layouts. DRL keeps track of the regions that have changed due to I/O writes to a mirrored volume. Prior to every write, a bitmap is written to a log to record the area of the disk that is being changed. In case of system failure, DRL uses this information to recover only the portions of the volume that need to be recovered.
To put Dirty Region Logging into effect for a volume, a log subdisk must be added to that volume and the volume must be mirrored. Only one log subdisk can exist per plex.
The following example creates a log for the mirrored volume vol03:
· #vxassist addlog vol03
When vxassist is used to add a log subdisk to a volume, a log plex is also created to contain the log subdisk, by default.
Once created, the plex containing a log subdisk can be treated as a regular plex. Data subdisks can be added to the log plex. The log plex and log subdisk can be removed using the same procedures used to remove ordinary plexes and subdisks.
9. Removing a RAID-5 Log
Removing a RAID-5 log involves first dissociating the log from its volume and then removing the log and any associated subdisks completely.
Dissociate the log from its volume as follows:
· #vxplex -o rm dis plex_name
To identify the log plex, use the command:
· vxprint -ht raid5_volume_name
To disassociate the log plex volrd-02 from volrd, type:
· #vxplex -o rm dis volrd-02
The output of vxprint -h for volrd now shows:
Disk group: rootdg TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0 v volrd raid5 ENABLED 32 – ACTIVE – – pl volrd-01 volrd ENABLED 32 – ACTIVE – – sd disk01-02 volrd-01 – 32 0 – – – sd disk02-03 volrd-01 – 32 0 – – –
10. Preparing a Volume for Online Backup
Volume manager provides an easy way to take backup of the online data by creating an offline snapshot mirror of the volume .
The vxassist snapstart operation creates a write-only backup mirror, which is attached to and synchronized with the volume to be backed up and later detached and made offline by vxassist snapshot command . The snapshot volume can be used by backup utilities while the original volume continues to be available for applications and users.
The volume backup method described here does not apply to RAID-5 volumes.
Backing up a volume with vxassist involves the following procedure
Create a snapshot mirror
snapstart starts creating a online snapshot mirror of the volume using the available disk space . The snapshot is completed with vxassist snapshot command when offline snapshot volume is created with a userdefined name .
* vxassist snapstart volume_name
To create a snapshot mirror of a volume called vol8, type
* #vxassist snapstart vol8
Create a snapshot volume
vxassist snapshot volume_name new_volume_name
To create a snapshot volume of vol8, type:
#vxassist snapshot vol8 snapvol8
You can now back up the snapshot volume by whatever means you prefer. To avoid wasting space, you can then remove the snapshot volume, which occupies as much space as the original volume
11 Displaying Volume Configuration Information
The vxprint command can be used to display information about how a volume is configured.
Display the volume, mirror, and subdisk record information for all volumes as follows:
Disk group: rootdg
Disk group: rootdg DG NAME NCONFIG NLOG MINORS GROUP-ID DM NAME DEVICE TYPE PRIVLEN PUBLEN STATE V NAME USETYPE KSTATE STATE LENGTH READPOL PREFPLEX PL NAME VOLUME KSTATE STATE LENGTH LAYOUT NCOL/WID MODE SD NAME PLEX DISK DISKOFFS LENGTH [COL/]OFF DEVICE MODE dg rootdg 759096729.1025.tweety dm disk10 c1t0d0s2 sliced 559 1044400 - dm disk20 c2t0d0s2 sliced 559 1044400 - v pubs fsgen ENABLED ACTIVE 2288 SELECT - pl pubs-01 pubs ENABLED ACTIVE 2288 CONCAT - RW sd disk10-01 pubs-01 disk10 0 2288 0 c0t0d0 ENA v vol8 fsgen ENABLED ACTIVE 20480 SELECT - pl vol8-01 vol8 ENABLED ACTIVE 20480 CONCAT - RW sd disk10-02 vol8-0 disk10 2288 20480 0 c0t1d0 ENA
where dg is a disk group, dm is a disk,
v is a volume,
pl is a plex,
sd is a subdisk.
The top few lines indicate the headers that match each type of output line that follows.
Each volume is listed along with its associated plex(es) and subdisk(s).
Display volume-related information for a specific volume as follows:
#vxprint -t volume_name
To display information about vol8, type:
#vxprint -t vol8