vxinfo (7)


vxinfo - Veritas Volume Manager general information device




The vxinfo device in Veritas Volume Manager (VxVM) gathers performance statistics from the kernel for a supplied object. Statistics can be retrieved for volume, plex, subdisk, and disk media objects. Statistics can also be cleared through this interface.


The format for calling each ioctl command is:

#include <sys/types.h> #include <vvxvm/volstats.h> struct tag arg; int ioctl (int fd, int cmd, struct tag *arg);

The value of cmd is the ioctl command code, and arg is usually a pointer to a structure containing the arguments that need to be passed to the kernel.

The return value for all the ioctls, with some exceptions, is 0 if the command was successful, and -1 if it was rejected. If the return value is -1, errno is set to indicate the cause of the error.

The following ioctl commands are supported:
  This ioctl returns the process ID of the process with the dev/vx/config device open, or 0 if the dev/vx/config device is closed. The value of arg is undefined and should be NULL.
  This command accepts a pointer to a volinfo structure as an argument. It fills in the volinfo structure with the corresponding values from the kernel. The members of a volinfo structure are:

long      version;            /*kernel version number*/ long      max_volprivmem;     /*max size of volprivmem area*/ major_t   volbmajor;          /*volume blk dev major number*/ major_t   volcmajor;          /*volume char dev major number*/ major_t   plexmajor;          /*plex device major number*/ long      maxvol;             /*max # of volumes supported*/ long      maxplex;            /*max # of associated plexes*/ long      plexnum;            /*max plexes per volume*/ long      sdnum;              /*max subdisks per plex*/ long      max_ioctl;          /*max size of ioctl data*/ long      max_specio;         /*max size of ioctl I/O op*/ long      max_io;             /*max size of I/O operation*/ long      vol_maxkiocount;    /*max # top level I/Os allowed*/ long      dflt_iodelay;       /*default I/O delay for utils*/ long      max_parallelio;     /*max # voldios allowed*/ long      voldrl_min_regionsz;/*min DRL region size*/ long      voldrl_max_drtregs;i/*max # of DRL dirty regions*/ long      vol_is_root;        /*if set, root is volume*/ long      mvrmaxround;        /*max round-robin region size*/ long      prom_version;       /*PROM version of the system*/ long      vol_maxstablebufsize;/*max size of copy buffer*/ size_t    voliot_iobuf_limit; /*max total I/O trace buf spc*/ size_t    voliot_iobuf_max;   /*max size of I/O trace buffer*/ size_t    voliot_iobuf_default;/*default I/O trace buf size*/ size_t    voliot_errbuf_default;/*default error trace buf size*/ long      voliot_max_open;    /*max # of trace channels*/ size_t    vol_checkpt_default;/*default checkpoint size*/ long      volraid_rsrtransmax;/*max # of transient RSRs*/

  This command accepts a pointer to a vol_io_stats_list structure as an argument and will clear the kernel statistics for the identified objects.
  This command accepts a pointer to a vol_io_stats_list structure as an argument so that a single ioctl can operate on any reasonable number of objects. The ioctl then fills in the performance statistics for the objects whose IDs appear in the structure.
The members of the vol_io_stats_list structure are:

size_t    vsl_nobject;        /*# of objects*/ struct    vol_io_stats        /*vsl_stats;*/

The members of the vol_io_stats structure are:

volrid_t  vs_dg_iid;          /*disk group rid*/ volrid_t  vs_rid;             /*vs_rid;*rid of object*/ int       vs_object_type;     /*object type*/ size_t    vs_stats_size;      /*size of stats buffer*/ structure vol_stats           /*vs_stats; *stats buffer*/

The vs_dg_iid field identifies the disk group in which the vs_rid object exists. The vs_rid value can be obtained from either a volrec, plexrec, or sdrec structure. See the volrec(4), plexrec(4), and sdrec(4) man pages.
Most statistics are formed as a concatenation of the vol_stats structure. The members of the vol_stats structure are:

size_t    vs_op;              /*count of I/O operations*/ size_t    vs_fail_op;         /*count of failed I/Os*/ size_t    vs_blocks;          /*total blocks of I/O*/ time_t    vs_time;            /*accumulated I/O times*/

The vol_io_stats_list, vol_io_stats, and vol_stats structures are defined in the </usr/include/vxvm/volstats.h> header file.


The following errors are returned by the VOL_GET_IO_STATS and VOL_CLR_IO_STATS ioctls:
EFAULT A pointer passed to the kernel was invalid, causing a bad memory reference.
ENOENT The supplied vs_dg_iid does not match any existing imported disk groups, or the supplied vs_rid object could not be found.


/dev/vx/info Veritas Volume Manager information device.


vxintro(1M), ioctl(2), plexrec(4), sdrec(4), volrec(4), vxconfig(7), vxio(7)

VxVM 4.0 vxinfo (7)