Veritas Volume Manager

VM daemons


Maintains system configuration in the kernel & disk (private region). If the daemon is stopped it does not disable any configuration state loaded into the kernel, it only affects the ability to make configuration changes until vxconfigd is restarted.

It can be in three states:
Enabl = Normal mode
Disable = Most operations cannot be be used
Booted = Normal startup while using boot disk group

vxrelocd Monitors for failure events and relocates failed subdisks
vxconfigbackupd Used to backup configuration chnages, the files created can be used with vxmake to restored lost groups.
vxnotify Display vertias volume manager events used with the vxconfigd daemon
Kernel Info
Kernel States

The kernel can be in three states:

Enabled - both private and public regions are accessible
Disabled - no private or public regions are accessible
Detached - only private regions are accessible

VM utilities

VxVM debug

vxconfigd -k -m enable -x <debug option>

-x log                                log to /var/vxvm/vxconfigd.log
-x logfile = <name>              log to filename
-x syslog                            log to syslog
-x timestamp                      date and timestamp every entry
-x tracefile=name                log all possible tracing to file


The vxiod utility starts, stops, or reports on VERITAS Volume Manager (VxVM) I/O daemons. An I/O daemon provides a process context for performing I/O in VxVM.Manage extended disk i/o & handles dirty regions, logging

vxiod set <number> = set number of runnning viod daemon

Note: when run on its own it displays # of vxiod daemons that are running.

vxdctl [option]

The vxdctl utility manages aspects of the state of the volume configuration daemon vxconfigd and also manages aspects of configuration for bootstrapping the rootdg disk group.

mode = what mode the vxconfigd is running in
enable = enable the vxconfigd daemon (reread the db)
disable = disable the vxconfigd daemon
stop = kill the vxconfigd daemon  (Use 'vxconfigd -k -m disable' to start again)
license [init] = print out license info or reread licenses
support = display version and components
list = display entries in /etc/vx/volboot
init [dmp] = recreate /etc/vx/volboot

Note: when is disabled or stop mode no VX commands will be able to run


Install volume manger (use /etc/vx/disk to exclude any disks or controllers)

Disk Regions


This is were veritas holds the meta data regarding the disk. A copy of the configuration database is copied to each private region within the disk group. Veritas will try and keep 5 copies of the configuration database.

Normally configured as slice 3


This is the area that will store the users data.

Normally configured as slice 4.

Disk Layouts
Sliced Disk layout

private region and public region slices are on seprate partitions (3 & 4), tis type of disk is not suitable for moving between different O/S's but are suitable for boot partitions

Can be converted to CDS

CDS (Cross-platform Data Sharing) private and public regions are one slice (slice 7) , this type is suitable for moving between different O/S's but not suitable for boot parttions.

Private and public are the same partition but continuous (slice 3)

Can be converted to CDS

None None partitioning

VxVM Configuration Database

DB size vxdg list <group> | grep permlen - the size of the configuration db
DB location vxdisk list <disk> | grep -i configs - db location

File Locations

vxinstall has not be run /etc/vx/reconfig.d/state.d/install-db
Host ID's /etc/vx/volboot
backup config files (vxconfigbackupd) /etc/vx/cbr/bk
delete or deported disk group config files /etc/vx/dgcfg/deport
All commands logs /var/adm/vx/veacmdlog
Licenses /etc/vx/licenses/lic
Imported disk groups info


Note: to clear the tempdb file:
vxconfigd -k -x cleartempdir - clear the /var/vxvm/tempdb

vxconfigd log file /var/vxvm/vxconfigd.log

Backup & Restore


/usr/lib/vxvm/bin/vxconfigbackup -l /var/vxvm/backups

-l = location where to store backup

Restore (precommit/commit)

vxconfigrestore -p <group>

# either one of the below after the precommit
vxconfigrestore -d <group>
vxconfigrestore -c <group>

-p = when you want to check that the restore is correct (use vxprint to check)
-d = abort the precommit
-c = commit the precommit


Initialize disk

vxdisksetup -i c2t0d0 privlen=768
vxdisksetup -i <device> format=sliced   - initialized a disk as a sliced disk

Note: format can be either sliced, simple, cdsdisk or none (see above - Disk Regions)

Uninitialize disk vxdiskunsetup -C c2t0d0
Disk Information vxdisk -g <group> list <disk>
vxdisk -s list
Resize a LUN vxdisk -g <group> resize <disk> length=8G
Add a disk slice to volboot vxdctl add disk <device> type=simple
Add a disk slice vxdisk –f <device> type=simple
Add a disk vxdiskadd c1t0d0 or c1 (all disk on controller)
vxdisksetup -i <device>
Remove a disk totally from VM vxdisk rm <device>
Remove a disk from a volume vxdg -g <group> rmdisk <diskname>
Remove a disk slice from VM vxdctl rm disk <device>
Clear any host ID flags vxdisk clearimport <disk name>
Renaming a disk vxedit -g <disk> rename <old disk name> <new disk name>
Move disk to different disk group vxdg move <source dg> <target dg> <disk>
Offline a disk

vxdisk offline <dev name>

Note: disk must not be in a disk group

Online a disk

vxdisk online <dev name>

Note: disk must have a private region otherwise you need to initialise the disk

Hot spare vxedit –g <group> set spare=on <disk>
NoHotUse vxedit –g <group> set nohotuse=on <disk>
Turn off failing flag vxedit -g <group> set failing=off <disk>
Encapsulate a disk vxdisk define c0t0d0s0 type=nopriv
Reattach disk (SAN)

vxreattach [-br | -c]

-b = Background process
-r = Recover volumes
-c = Checks to see if reattach is possible

Discover new disks vxdisk scandisks [new | fabric ]
Disk Comment vxedit -g <group> set comment="......." <disk>

Disk Group

Create a disk group vxdg init group <disk>=<device>
vxdg init <group> <disk>=<device> cds=off    - initialize a non-cds disk group
Remove a group vxdg destroy <group>
Add a disk to a group vxdg –g <group> adddisk <disk>=<device>
Remove a disk from a group vxdg –g <group> rmdisk <disk>
Replace failed disk

vxdg -k -g <group> adddisk <disk>=<device>

-k = forces vxvm to take media name of the failed disk & assign it to the new disk

Import a group

vxdg import <group>
vxdg -n <new-group-name> import <old-group-name>
vxdg -C import <group>

Import group (clear any flags)

vxdg import -C <group>

-C - clears any exist host flags

Depot a group vxdg deport <group>
vxdg -n <new-group-name> deport <old_group_name>
List no hot use on disk vxdg –g <group> nohotuse <disk>
List spare space on disk vxdg –g <group> spare <disk>
Display free space vxdg –g <group> free
Backup disk group (vxvm 4.0) vxconfigbackup
Restore disk group (vxvm 4.0) vxconfigrestore [-p|-d|-c]
Diskgroup Version vxdg list <group> | grep -i version
Upgrade disk version vxdg upgrade <group>                       - upgrade to current version
vxdg -T 50 upgrade <group>                 - upgrade to version 50
vxdg -T 50 init <group> <disk>=<device>    - creater new group @ version 50
Boot/Default DG vxdg bootdg
vxdg defaultdg

vxdctl defaultdg <group> - set defaultdg


Adding mirror to root /etc/vx/bin/vxrootmir <alternate> create rootvol, swap vol,
Create a simple volume

vxassist make <volume> <size> <disk>
vxassist -g <group> make <vol> <size> !ctrl:c2     - don't use controller 2

vxassist make <volume> <size> <disk> layout=[stripe-mirror|concat-mirror|mirror-concat|mirror-stripe]

stripe-mirror = layered volume
concat-mirror = layered volume
mirror-concat = non-layered volume
mirror-stripe = non-layered volume

Mirror a simple volume vxassist mirror <volume> >disk>
vxassist -g <group> remove mirror <vol> !disk01    - remove the disk01 mirror
Create a stripped volume

vxassist make <volume> <size> layout=stripe

vxassist -g <group> -o ordered make <vol> <size> layout=stripe ncol=3 <disk1> <disk2> <disk3>

Create mirrored volume with log vxassist make <volume> <size> layout=mirror, log nmirror=# nlog=#
Create a raid volume vxassist make <volume> <size> layout=raid5
Remove a volume

vxedit –rf rm <volume>
vxassist -g <group> remove volume <vol>

Note: you must disable the volume first

Initializing a volume vxvol init state <volume> [plex]state=clean,enable,active
Online Relayout

vxassist -g <group> relayout <vol> layout=stripe ncol=2
vxassist -g <group> relayout <vol> layout=stripe ncol=+1
vxassist -g <group> relayout <vol> layout=stripe ncol=-1
vxassist -g <group> relayout <vol> layout=stripe stripe=32k ncol=5
vxassist -g <group> relayout <vol> layout=raid5 stripeunit=32k ncol3
vxassist -g <group> convert <vol> layout=stripe-mirror

# Display the relayout operation
vxrelayout -g <group> [status|reverse|start] <vol>
vxtask list

Starting a volume vxvol start <volume>
Start a disabled volume

vxrecover –sb <volume>

-s = start volume after recovery
-b = background the recovery task

Disable a volume vxvol -g <group> stop <volume>
Evacuate a volume vxevac -g <group> <from-disk> <to-disk>
Maintenance mode vxvol maint <volume>
Not clean vxmend mirror clean <plex>
No kernel state vxplex att <vol_name> <plex>
Extending a volume size vxresize <volume> <new length>
vxresize -g <group> <volume> +100m       - increase the volume by 100Mb
Shrinking a volume size vxresize <volume> <new length>
vxresize -g <group> <volume> -100m       - decrease the volume by 100Mb
add a DRL log to a volume vxassist addlog <volume>
remove a DRL log from a volume vxassist remove log <volume>
Extending log size vxvol set loglen = 2m <volume/log>
Detering volume size vxassit -g <group> maxsize layout=mirror - the maximum size you can create a mirror
vxassist -g <group> maxgrow <volume>     - the maximum size the volume can grow too
Recover a volume

Vxmend fix clean <plex>

Change volumes permissions vxedit -g <group> set owner=<user> group=<group> mode=<perms> <vol>


Creating a plex vxmake plex <plex> sd =<sub disk name>
Remove a plex vxplex –o rm dis <plex>
vxplex -g <group> dis <plex>
vxedit -g <group> -rf rm <plex>
Moving a plex vxplex mv <original plex> <new plex>
Copying a plex vxplex cp <volume> <new plex>
Attaching a plex vxplex att <volume> <plex>
Detaching a plex vxplex det <plex>
Offlining a plex vxmend off vol01-02


Creating sub-disk vxmake sd <sub-disk> <disk>, offset, len
Removing sub-disk vxedit rm <sub-disk>
Moving sub-disk vxsd mv <old sub-disk> <new sub-disk>
Associating with a plex vxmake plex <plex> sd=<sub-disk>, …
i.e vxmake plex home-1 sd= disk02-01, disk02-00, disk02-02
Dissociating vxsd dis <sub-disk>
Splitting vxsd –s<size> split sd<new sub><newsub2>
Joining vxsd join <sub-disk1><subdisk2><new subdisk>
relocating a sub disk vxassist -g <disk group> move !disk05 disk02
relocating a whole disk sub disks

vxprint -g rootdg -se 'sd_orig_dmname="disk02"'
vxunreloc -g rootdg disk02

Volume Manager Information

Display all the physical disks

vxdisk list
vxdisk -o alldgs list

Display detailed disk info vxdisk list <disk>
Check for disk failures vxstat –g <group>–ff –d
Disk Group
Display group properties vxdg list
Display detailed group info vxdg list <group>
  vxinfo -p -g <group>
Display volume info vxprint –Aht <vol>
Display volume properties vxprint –vl
Display unstartable volume vxinfo -g <group> <vol>
Check for volume failures vxstat –g <group>–ff -v
Display plex properties vxprint –vp
Check for plex failures vxstat –g <group>–ff -p
Display sub-disk properties vxprint –st
Veritas Tasks
Display tasks

vxtask list
vxtask monitor   - continuously monitor

r = running
p = pause
a = aborting

Statistics and Tracing
Iostats vxstat -g <group> -r –d <disks>       - reset all stats on disk
vxstat -g <group> -d                  - display stats
vxstat -g <group> -i 1 -d <vol>       - display stats every 1 sec intervals for volume
vxstat -g <group> -i 10 -c 5 -d       - display 5 sets @ 10 secs intervals
Tracing vxtrace -d <filename> -o dev,disk <vol>
vxtrace -f <filename> -o dev,disk <vol> | more


Add vxlicinst               - versions greater than 3.5
vxlicense -c            - versions below 3.5
View vxlicrep                - versions greater than 3.5
vxlicense -p            - versions below 3.5

/etc/vx/licenses/lic    - versions greater than 3.5
/etc/vx/elm             - versions below 3.5

Reload new license vxdctl license init


Start/Stop /etc/init.d/isisd [start|stop|restart]

vxsvcctrl status
vxsvc [-m|-k|-v]

-m = status
-k = kill
-v = version

Daemons /opt/VRTSob/bin/vxsvc


You must have X-windows running


Logging help in recovery and can speed it up dramatically, the main form of logging in veritas is the DRL (dirty region log) which performs the following

Add vxassist -g <group> addlog <vol> logtype=drl
vxassist -g <group> addlog <vol>                       - used for raid logs (no type)
Remove vxassist -g <group> remove log <vol> [nlog=n] <vol>

Volume Read Policy

Policies can be used if you have slower disks within a volume and you wish to use the faster disks.

Round Robin vxvol -g <group> rdpol round <vol>
Preffered Plex vxvol -g <group> rdpol prefer <vol> <plex>
Selected Plex vxvol -g <group> rdpol select <vol>

Storage Expert (vxse)

Veritas have created some scripots that can check the integrity of the vxvm setup i.e mirrored volumes, spares, etc. The scripts are based on rules and there are a number of differents rules veritas has set, look in the rules directory to see all of them.

Display Description vxse_raid5log1 info
Check rules vxse_raid5log1 -g <group> check
List spare rules vxse_spares list
Run spare run

vxse_spares run

Note: you need to run "/etc/init.d/isisd start" to start the necessary daemons first

VXSE Paths
Rules /opt/VRTS/vxse/vxvm
Default Parameters /etc/default/vxse


see VxDMP for more information

Veritas links

Recovery features