Symantec logo

Using volume application programmatic interfaces

The following pseudocode provides an example of using the volume APIs.

 To shrink or grow a volume within a file system

  1. Use the vxresize command to grow the physical volume.
  2. To use the vxfs_vol_resize() call to shrink or grow the file system, create codes similar to the following:

/* stat volume "vol-03" to get the size information */

fd = open("/mnt");

vxfs_vol_stat(fd, "vol-03", infop);

/* resize (shrink/grow) accordingly. This example shrinks

the volume by half */

vxfs_vol_resize(fd, "vol-03", infop->dev_size / 2);

 To encapsulate a raw volume as a file

  1. Add the volume to the volume set.
  2. To encapsulate a raw volume vol-03 as a file named encapsulate_name in the file system /mnt, create code similar to the following:

/* Take the raw volume vol-03 and encapsulate it. The

volume's contents will be accessible through the given

path name. */

vxfs_vol_encapsulate("/mnt/encapsulate_name", "vol-03",

infop->dev_size);

/* Access to the volume is through writes and reads of file

"/mnt/encapsulate_name" */

encap_fd = open("/mnt/encapsulate_name");

write(encap_fd, buf, 1024);

 To de-encapsulate a raw volume

/* Use de-ecapsulate to remove raw volume. After

de-encapsulation, vol-03 is still part of volset, but is

not an active part of the file system. */

vxfs_vol_deencapsulate("/mnt/encapsulate_name");