[linux-lvm] New LVM2 reporting tools

Alasdair G Kergon agk at uk.sistina.com
Thu Dec 12 16:25:02 UTC 2002


I've added a new set of flexible tools to produce column-based output
as an alternative to the current 'field: value' xxdisplay format.

ftp://ftp.sistina.com/pub/LVM2/tools/LVM2.0-latest.tgz 
  (currently aka beta5 or LVM2.1.95.12; some minor bug fixes
   also rolled in)

Access them either standalone as lvs, pvs or vgs, or by use the new
--columns (-C) switch on pvdisplay, vgdisplay or lvdisplay.

Some tiny examples:

lvm> pvs
PV         VG   Fmt  Attr PSize  PFree 
/dev/sdb1  vg1  lvm2 a-   13.97G 13.87G
/dev/sdb2  vg3  lvm1 a-   16.00M     0 
/dev/sdb3       lvm1 a-   21.00M 21.00M
/dev/sdb5  vg2  lvm2 a-   64.00M 40.00M
/dev/sdb6  vg2  lvm2 a-   64.00M 60.00M
/dev/sdb7       lvm2 --   40.92M 40.92M

lvm> vgs
VG   #PV #LV #SN Attr VSize   VFree  
vg1    1   1   0 wz--  13.97G  13.87G
vg2    2   3   0 wz-- 128.00M 100.00M
vg3    1   2   1 wz--  16.00M      0

Add a column:
lvm> vgs -o +extent_size
VG   #PV #LV #SN Attr VSize   VFree   Ext  
vg1    1   1   0 wz--  13.97G  13.87G 4.00M
vg2    2   3   0 wz-- 128.00M 100.00M 4.00M
vg3    1   2   1 wz--  16.00M      0  4.00M

Sort on number of PV's descending then free space descending:
lvm> vgs -O -pv_count,-free
VG   #PV #LV #SN Attr VSize   VFree  
vg2    2   3   0 wz-- 128.00M 100.00M
vg1    1   1   0 wz--  13.97G  13.87G
vg3    1   2   1 wz--  16.00M      0 

(It's also OK to sort on fields that aren't output.)

lvm> lvs vg2/lvol1 vg3
LV    VG   Attr   LSize   Origin 
lvol1 vg2  -wn---  12.00M        
lvol1 vg3  own---   8.00M        
lvol2 vg3  swn---   8.00M lvol1  

lvm> lvs --segments -v
    Finding all logical volumes
LV    VG   Attr   Start SSize   #Str Type    Stripe Chunk
lvol0 vg1  -wnm--    0  100.00M    1 linear      0     0 
lvol0 vg2  -wn---    0    4.00M    1 linear      0     0 
lvol1 vg2  -wn---    0    4.00M    1 linear      0     0 
lvol1 vg2  -wn--- 4.00M   8.00M    2 striped 16.00K    0 
lvol2 vg2  -wn---    0   12.00M    1 linear      0     0 
lvol1 vg3  own---    0    8.00M    1 linear      0     0 
lvol2 vg3  swn---    0    8.00M    1 linear      0     0 

Colon-separated LV sizes in sectors, suitable for piping to other tools:
lvm> lvs -o vg_name,name,size --units s --nosuffix --noheadings --separator :
vg1:lvol0:204800.00
vg2:lvol0:8192.00
vg2:lvol1:24576.00
vg2:lvol2:24576.00
vg3:lvol1:16384.00
vg3:lvol2:16384.00


-v for more columns.
--units to change the output units
  (h)uman-readable, (s)ectors, (b)ytes, k, m, g, t
  or HKMGT to use 1000's instead of 1024's
  Wierd custom units also possible e.g. --units 374k
--separator to set the string separating each column
--noheadings to turn off headings

See man pages for full field lists and meanings of attribute letters.

[Next bit still undocumented and could change slightly]
Defaults, including column selections & ordering, can be changed
with config file entries in a new "report" section:
  aligned, buffered, headings - set to 0 or 1
  separator - string
  pvs_sort, pvs_cols, pvs_cols_verbose  - strings of column lists 
(like -o or -O)
  Similarly for lvs_*, vgs_*, segs_* 
units (string) & suffix (0 or 1) can be set in the "global" section.

Alasdair
-- 
agk at uk.sistina.com




More information about the linux-lvm mailing list