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"’