VxVM command line cheat sheet (part 2)

This article is an extension to my original article Veritas Volume Manager (VxVM) cheat sheet providing additional command-line examples for VxVM version 2.x with additional VxVM. 3.x specific examples.

  • put vxconfigd into enabled mode and probe the attached devices.
    vxdctl enable
  • makes a volume called martin using any disk
    vxassist make martin 100m
  • makes a volume called martin using disk10
    vxassist make martin 100m disk10
  • creates a 100mb striped volume called martin using disks7 and 8
    vxassist make martin 100m layout=stripe disk07 disk08
  • uses disks5 and 6 ro make a mirror on volume called martin
    vxassist mirror martin disk05 disk06
  • makes a 50Mb mirror using any 2 disks
    vxassist make martin 50m layout=mirror
  • makes a 50mb mirror using disks 5 and 6
    vxassist make martin 50m layout=mirror disk05 disk06
  • makes a 50Mb stripe using disks5 and 6 mirrored across 7 and 8
    vxassist make martin 50m layout=mirror,stripe disk05 disk06 disk07 disk08
  • makes a 50Mb stripe using disks5 and 6 mirrored across 7 and 8 and uses a log subdisk
    vxassist make martin 50m layout=mirror,stripe,log disk05 disk06 disk07 disk08
  • makes a 100m raid5 volume
    vxassist make martin 100m layout=raid5
  • to rename disk12 to disk09 in the rootdg
    vxedit −g rootdg rename disk12 disk09
  • to remove a greyed out or obsolete disk in this case disk10 or to remove a disk from a diskgroup
    vxedit rm disk10
  • to list all disks under vmcontrol
    vxdisk list
  • to allow a disk to be imported after a server crash
    vxdisk clearimport c#t#d#s#
  • to remove a disk called test from a diskgroup called mydg
    vxdg −g mydg rmdisk test
  • create a new disk group mydg and put disk c1t3d3 into it and call it disk01
    vxdg init mydg disk01=c1t3d3
  • to add disk c1t3d3 to a diskgroup called mydg calling the disk test
    vxdg −g mydg adddisk test=c1t3d3
  • sets disk09 in the rootdg as a hotspare.
    vxedit −g rootdg set spare=on disk09
  • mirrors all the volumes on the root disk to disk01
    vxmirror rootdisk disk01
  • mirrors all the volumes in datadg on disk data01 to disk data10
    vxmirror −g datadg data01 data10
  • mirrors vol01 (in rootdg) to disk03
    vxassist −g rootdg mirror vol01 disk03
  • will mirror the volume martin
    vxassist mirror martin
  • to create a subdisk on disk03 callin the subdisk disk03−01 the len 81920 is 81920sectors x 512bytes =40M
    vxmake −g rootdg sd disk03−01 dm_name=disk03 dm_offset=0 len=81920
  • creates a plex called martin−02 using subdisk disk03−01
    vxmake plex martin−02 sd=disk03−01
  • attaches the plex martin−02 to volume martin
    vxplex att martin martin−02
  • to list all volumes on your primary boot disk enter
    vxprint −t −v −e ’aslist.aslist.sd_disk="boot_disk_name"’
  • moves the contents of subdisk disk03−01 to disk05−01 then moves subdisk disk05−01 into the plex where subdisk disk03−01 once lived, leaving disk03−01 free
    vxsd mv disk03−01 disk05−01
  • reattach disks which have become accessible again. −rb starts vxrecover and puts the process into the background to make a subdisk
    vxreattach −rb
  • create a subdisk called disk02−02 at the start of disk02 and would be 8000 blocks (4000k) long.
    vxmake sd disk02−02 disk02,0,8000
  • if you wanted to create another subdisk on this disk the offset would be 8000 as this is where the next free space would be onthe disk so... thus, would create another 8000 block subdisk.
    vxmake sd disk02−02 disk02,8000,8000
  • to remove a disk so it’s out of vm control
    vxdisk rm c#t#d#s2
  • to add bring a new disk under vm control
    vxdiskadd c#t#d#
  • or you can try...
    vxdisksetup −i c#t#d#
  • to stop a volume
    vxvol −g diskgroup stop volname
  • removes a volume called martin and plex(es) and subdisks though
    vxedit −rf rm martin
  • to display info a stripe looks like this..
    vxprint −ht volume
    Disk group: rootdg
    
    V NAME RVG/VSET/CO KSTATE STATE LENGTH READPOL PREFPLEX UTYPE
    PL NAME VOLUME KSTATE STATE LENGTH LAYOUT NCOL/WID MODE
    SD NAME PLEX DISK DISKOFFS LENGTH [COL/]OFF DEVICE MODE
    SV NAME PLEX VOLNAME NVOLLAYR LENGTH [COL/]OFF AM/NM MODE
    SC NAME PLEX CACHE DISKOFFS LENGTH [COL/]OFF DEVICE MODE 
    
    v martin fsgen ENABLED ACTIVE 204800 SELECT martin−01
    
    pl martin−01 martin ENABLED ACTIVE 205776 STRIPE 4/128 RW
    sd disk04−01 martin−01 disk04 0 51408 0/0 c1t1d2 ENA 
    sd disk05−01 martin−01 disk05 0 51408 1/0 c1t2d0 ENA 
    sd disk02−01 martin−01 disk02 0 51408 2/0 c1t3d0 ENA 
    sd disk03−01 martin−01 disk03 0 51408 3/0 c1t4d0 ENA
  • a mirror like this...
    vxprint −ht martin
    Disk group: rootdg
    
    V NAME RVG/VSET/CO KSTATE STATE LENGTH READPOL PREFPLEX UTYPE
    PL NAME VOLUME KSTATE STATE LENGTH LAYOUT NCOL/WID MODE
    SD NAME PLEX DISK DISKOFFS LENGTH [COL/]OFF DEVICE MODE
    SV NAME PLEX VOLNAME NVOLLAYR LENGTH [COL/]OFF AM/NM MODE
    SC NAME PLEX CACHE DISKOFFS LENGTH [COL/]OFF DEVICE MODE 
    
    v martin fsgen ENABLED ACTIVE 204800 SELECT martin−01
    
    pl martin−01 martin ENABLED ACTIVE 205776 STRIPE 4/128 RW
    sd disk04−01 martin−01 disk04 0 51408 0/0 c1t1d2 ENA
    sd disk05−01 martin−01 disk05 0 51408 1/0 c1t2d0 ENA
    sd disk02−01 martin−01 disk02 0 51408 2/0 c1t3d0 ENA
    sd disk03−01 martin−01 disk03 0 51408 3/0 c1t4d0 ENA
    
    pl martin−02 martin ENABLED TEMPRMSD 205632 CONCAT − WO
    sd disk10−01 martin−02 disk10 0 205632 0 c1t1d3 ENA
  • a raid5 like this...
    vxprint −ht martin
    Disk group: rootdg
    
    V NAME RVG/VSET/CO KSTATE STATE LENGTH READPOL PREFPLEX UTYPE
    PL NAME VOLUME KSTATE STATE LENGTH LAYOUT NCOL/WID MODE
    SD NAME PLEX DISK DISKOFFS LENGTH [COL/]OFF DEVICE MODE
    
    v martin
    raid5 ENABLED ACTIVE 40992 RAID − pl martin−01 martin ENABLED ACTIVE 42336 RAID 4/32 RW
    sd disk04−01 martin−01 disk04 0 14112 0/0 c1t1d2 ENA
    sd disk06−01 martin−01 disk06 0 14112 1/0 c1t1d4s2 ENA
    sd disk05−01 martin−01 disk05 0 14112 2/0 c1t2d0 ENA
    sd disk02−01 martin−01 disk02 0 14112 3/0 c1t3d0 ENA
    
    pl martin−02 martin ENABLED LOG 2016 CONCAT − RW
    sd disk03−01 martin−02 disk03 0 2016 0 c1t4d0 ENA
  • deletes a plex (or volume if used with −f)
    vxplex −o rm dis plex
  • detach’s one half of the plex..
    vxplex det plex−0
  • if a volume is unstartable try try to start it by setting one of the plexes in a mirror to CLEAN using
    vxmend mirror plex_name
  • if this doesn’t get the plex back into a kernel state of enabled try
    vxplex att vol_name plex_name
  • to dissociate a subdisk try
    vxsd dis disk##−##
  • remove a subdisk by
    vxedit rm disk##−##
  • this command show’s you what the lagest stripe you can currently have ?
    vxassist maxsize layout=stripe
    Maximum volume size: 17833984 (8708Mb)
  • same again for raid5
    vxassist maxsize layout=raid5
    Maximum volume size: 12300288 (6006Mb)
  • this shows how you how much you can grow a volume by..
    vxassist maxgrow vol01
    Volume vol01 can be extended by 18245632 to 18450432 (9009Mb)
  • grows a volume to 2000 512byte sectors
    vxassist growto martin 2000
  • increases the volume martin by 2000 512byte sectors
    vxassist growby martin 2000
  • will shrink a volume by 1000 sectors, make sure you don’t shrink a volume below the current size of the filesystem
    vxassist shrinkto vol_name 1000
  • shrinks a volume by 1000 sectors
    vxassist shrinkby vol_name 1000
  • will change the length to 100000 sectors it cannot increase the volume unless spce is available in the plexes (use vxassist)
    vxvol set len=100000 vol_name
  • split an existing subdisk in 2 of the specified SIZE
    vxsd −s SIZE split orignal_sd newdisk newdisk
  • join subdisk1 and subdisk2 to create a new subdisk
    vxsd join sd1 sd2 new_sd
  • so start/stop disk trays...
    ssaadm −t 1|2|3 stop|start controller #
  • will start a volume
    vxrecover −s vol_name
  • will start all volumes
    vxrecover −s
  • puts a volume into maintenance mode
    vxvol maint vol_name
  • to offline a plex
    vxmend off plex_name
  • attches and starts the plex in a volume
    vxplex att vol_name plex_name
  • to start plex in volume
    vxmend on plex_name
  • if the volume won’t start up try
    vxinfo volume_name
  • sets the owner as martin, the group as techies and the mode to rw−rw−rw on a volume
    vxedit set user=martin group=techies mode=0666 volume
  • sets a round robin read policy on a volume
    vxvol rdpol round volume
  • sets a prefered plex to read from.
    vxvol rdpol prefer vol_name plex_anme
  • sets the comment field to testing
    vxedit set comment="message" disk01−01
  • sets the putil01 to "go away"
    vxedit set putil01="go away" vol01
  • well bring stale plexes back online, −b indcates background job
    vxrecover −b vol
  • move the voume to a disk other than disk10
    vxassist move volume !disk10
  • sets the plax toa clean state so you can start vol and access data
    vxmend fix clean plex_name
  • lists all diskgroups
    vxdg list
  • lists all disks under VM control and which group their in
    vxdisk list
  • lists the properties of disk01
    vxdisk list disk01
  • display’s info about the volumes
    vxprint −vt
    vxprint −l volume_name
    vxprint −vl
  • displays info about plexes
    vxprint −lp
    vxprint −l plex_name
  • displays info about subdisks
    vxprint −st
    vxprint −l disk##−##
  • show disk iops over 10 seconds...
    ssaadm display −p c#
  • traces all i/o on a volume..
    vxtrace vol
  • to report disk stats
    vxstat −d
  • displays the free space on the disks
    vxdg free
  • tells you how much you can grow a volume by
    vxassist maxgrow vol
  • adds a log disk (disk02−01) to the volume vol01−01
    vxsd aslog vol01−01 disk02−01
  • creates a log disk for a raid5 volume.
    vxassist addlog volume_name
  • removes a log disk from a volume
    vxedit −g −r rm 
  • there are some variables you can set for debugging:
    • S_DEBUG — prints info when running mode sense command
    • P_DEDUG — prints info for each ext library function called
    • I_DEBUG — prints progress during get status function
    • O_DEBUG — prints when files are opened

New commands for Version 3.x ONLY

  • To print out the configuration of a layered volume
    vxprint −AthrL
  • To convert a mirrored−stripe to a striped−mirror
    vxassist −g convert layout=stripe−mirror
  • To convert a striped−mirror to a mirrored−stripe
    vxassist −g convert layout=mirror−stripe
  • To convert a striped mirror to a RAID5.
    vxassist −g relayout layout=raid5
  • To change the number of columns, in a RAID5, to 5
    vxassist −g relayout ncol=5
  • To change the stripe unit size to 25K
    vxassist −g relayout stwidth=25k
  • To continue a discontinued relayout operation (process must be stopped)
    vxrelayout −g start 
  • To reverse a discontinured relayout operstion (process must be stopped)
    vxrelayout −g reverse 
  • to get the status of a layout operation
    vxrelayout −g status 
  • to remove a volume
    vxassist −g remove volume 
  • to list current tasks
    vxtask list
  • to continue to display current tasks
    vxtask monitor
  • to pause task 256
    vxtask pause 256
  • to resume task 256
    vxtask resume 256
  • to abort task 256
    vxtask abort 256
  • to destroy an imported disk group
    vxdg destroy 
  • to upgrade an older disk to support v3.x relayout operations
    vxdg −t 60 upgrade 

VxVM 3.1 and after

  • to reverse the effects of hot relocation on disk disk1 in the datadg
    vxunreloc −g datadg disk01
  • to list the locations of all subsisks which have been hot relocated from disk01
    vxprint −g datadg −se ’sd_orig_dmname="disk01"’