VxVM-Cheat-Sheet

Veritas-Volume Manager (VxVM) – Cheat Sheet

Overview

Veritas Volume Manager (VxVM) is a product by Symantec for storage management to manage physical disks as logical devices called volumes. VxVM operates as a subsystem between your operating system and data management systems, such as file systems and database management systems.

VxVM volume appears as a physical disk device on which file systems, databases and other managed data objects can be configured for various applications and databases.

VxVM can be dynamically configured for disk storage while system is in active state.

Features like:

  • RAID (Redundant Array of Independent Disks)
  • Fault Tolerance
  • Fast recovery

enhances the performance and reliability of VxVM.

VM Daemons/Utilities

Vx Daemons

vxconfigd This daemon maintains system configuration in the kernel & disk.

State of vxconfigd daemon:

  • Enable = Normal mode
  • Disable = Most operations cannot be be used
  • Booted = Normal startup while using boot disk group

If this daemon in is stopped state then it does not disable any loaded configuration in kernel. But, no more configurations can be done until this daemon is restarted.

vxrelocd Monitors for failure events and relocates failed subdisks
vxconfigbackupd Used to backup configuration chnages, the files created can be used to restored lost groups.
vxnotify Display veritas volume manager events used with the vxconfigd daemon
vxcached Used to administer a cache object that is assoicated with volumes that have one or more space-optimized snapshots.
vxattachd Monitors VxVM for disks being attached and reattaches a detached site if the disks belongs to that sire become accessible, the daemon monitors vxnotify command and waits for a failed disk
vxdbd Handles comunication to and from the storage foundation product, it uses port 3233
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

Vx 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
vxiod The vxiod utility starts, stops, or reports on VERITAS Volume Manager (VxVM) I/O daemons.
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.

Options:

  • 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 enable’ 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
vxinstall Install volume manger (use /etc/vx/disk to exclude any disks or controllers)
vxdbdctl Used to stop/start the vxdbd daemon, you can also use status to obtain the status of the daemon

Disk Regions

Private This is were veritas holds the meta data regarding the disk. Private region can be changed once created.
Public This is the area that will store the users data.

File Locations

vxinstall has not be run /etc/vx/reconfig.d/state.d/install-db
Host ID’s /etc/vx/volboot
Backup config files /etc/vx/cbr/bk
Note: vxconfigbackup command needs to be executed once, otherwise backup directory will not exist
Config Files of Deleted or Deported disk groups /etc/vx/dgcfg/deport
Logs /var/adm/vx/cmdlog
/var/adm/vx/veacmdlog
Licenses /etc/vx/licenses/lic

VxVM DB Configuration

Public/Private partitions vxdisk list < disk> |egrep -i ‘^public|^private’
DB size vxdg list | grep permlen
DB location vxdisk list | grep -i config – db location

Backup & Restore

Backup /usr/lib/vxvm/bin/vxconfigbackup -l < backup directory> < dg name>
Restore

vxconfigrestore -p < group>
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

Disks/Disk Groups

Disks

Initialize disk
vxdisksetup -i c2t0d0 privlen= 2048

vxdisksetup -i <device> format=[sliced|simple|cdsdisk|none]
Uninitialize disk vxdiskunsetup -C <disk>
Disk Information vxdisk -g <group> list <disk>
vxdisk -s list
Resize a LUN vxdisk -g <group> resize <disk> length=<size>
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 <device> or <device id> (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>
Online a disk vxdisk online <dev name>
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 <device>]
Discover new disks vxdisk scandisks [new | fabric ]
Disk Comment vxedit -g <group> set comment=”…….” <disk>

Disk Groups

Create a disk group vxdg init group <disk>=<device>
vxdg init <group> <disk>=<device> cds=off
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>
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>
Deport a group vxdg deport <group>
vxdg -n <new-group-name> deport <old_group_name>
List no hot use on disk vxdg -g <group> nohotuse
List spare space on disk vxdg -g <group> spare
Display free space vxdg -g <group> free
Backup disk group vxconfigbackup
Restore disk group vxconfigrestore [-p|-d|-c]
Diskgroup Version vxdg list <group> | grep -i version
Upgrade disk version vxdg upgrade <group>
vxdg -T 50 upgrade <group>
vxdg -T 50 init <group> <disk>=<device>
Boot/Default DG vxdg bootdg
vxdg defaultdg
Set Default DG vxdctl defaultdg <group>

Volume

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
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> !<disk>
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=<Raid>
Create a raw volume vxassist -U <usage_type> make <volume> <size> alloc='<disk>’
Remove a volume vxedit –rf rm <volume>
vxassist -g <group> remove volume <vol>
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
vxrelayout -g <group> [status|reverse|start] <vol>
vxtask list
Remove a volume off a particular disk vxassist -g <group> move <vol> \!<disk> [<disk>]
Rename a volume vxedit -g <group> rename <old_vol_name> <new_vol_name>
Starting a volume vxvol start <volume>
Start a disabled volume vxrecover –sb <volume>
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> +<New Size>
Shrinking a volume size vxresize <volume> <new length>
vxresize -g <group> <volume> -<New Size>
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>
Recover a volume Vxmend fix clean <plex>
Change volumes permissions vxedit -g <group> set owner=<user> group=<group> mode=<perms> <vol>
ls -l /dev/vx/rdsk/<group>

Plexs

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 <plex>

Sub Disks

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>
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 <group> move <vol> \!<disk> [<disk>]
Relocating a whole disk sub disks vxprint -g <group> -se ‘sd_orig_dmname=”<disk>”‘
vxunreloc -g <group> <disk>

VM Information

Disks

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>
Disk Group Info vxinfo -p -g <group>

Volume

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

Plex

Display plex properties vxprint -vp
Check for plex failures vxstat -g <group>-ff -p

Sub-Disks

Display sub-disk properties vxprint -st

Veritas Tasks

Display tasks vxtask list
vxtask monitor

Statistics and Tracing

Iostats vxstat -g <group> -r -d <disks>
vxstat -g <group> -d
vxstat -g <group> -i 1 -d <vol>
vxstat -g <group> -i 10 -c 5 -d
Tracing vxtrace -d <filename> -o dev,disk <vol>
vxtrace -f <filename> -o dev,disk <vol> | more

Licensing

Add vxlicinst
View vxlicrep
Paths /etc/vx/licenses/lic
Reload new license vxdctl license init

VEA – Veritas Enterprise Administrator

Start/Stop /etc/init.d/isisd [start|stop|restart]
Status vxsvcctrl status
vxsvc -m
Version vxsvc -v
Kill vxsvc -k
Daemons /opt/VRTSob/bin/vxsvc
/opt/VRTSob/bin/vxsvcctrl
Start VEA GUI /opt/VRTSob/bin/vea

Logging

DRL (Dirty Region Log) is the main form of logging in veritas.

DRL Performs:

  • Log keeps track of changed regions
  • In case of system failure only the changed regions of the volume are recovered
Add vxassist -g <group> addlog <vol> logtype=drl

vxassist -g <group> addlog <vol> logtype=drl
Remove vxassist -g <group> remove log <vol> [nlog=n] <vol>

Volume Read Policy

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>