Thin Reclamation application programming interface

You can use Thin Reclamation with the following API:

uint vxfs_ts_reclaim(char *mountpoint, uint64_t offset,
uint64_t length, int32_t volindex, uint64_t unit_size,
uint64_t *bytes_reclaimed, uint32_t flag)

This is a non-reentrant API. This API cannot be called when an instance of the fsadm command or a reorg of the file system is running.

mountpoint

The pathname of the VxFS file system that is mounted on a Veritas Volume Manager (VxVM) volume.

offset

The offset in bytes in the volume from which to start reclamation.

length

The length in bytes from offset, up to which to reclaim free storage.

volindex

The index of the volume in a volume set. When volindex has a value of -1, all the volumes in the file system ignore offset and length. On a non-multi-volume file system, volindex should be zero.

unit_size

The size in multiples by which the file system issues reclaim requests to VxVM. Each Thin Provisioning array supports reclamation by a factor of some unit size.

bytes_reclaimed

Returns the number of bytes that the file system attempted to reclaim. The value does not give an indication of the number of bytes actually reclaimed.

flag

Possible values for flag are:

  • VXFS_TS_RECLAIM_AGGRESSIVE - Perform an additional data and metadata reorganization to maximize free space reclamation. This operation might trigger additional space allocation from the underlying Thin Storage, which is released at the end of the operation. This operation can fragment existing large allocations.

    Aggressive reclamation is performed only if VxVM reports the volume as thinrclm. In case of multi−volume file systems, only the volumes that VxVM reports as thinrclm are considered.

    If the volindex argument has a value of −1, then the full file system is covered. The offset and length arguments are ignored. If you specify a value for the volindex argument, then the full volume is covered if both the offset argument and length argument have a value of 0. If you specify a value for the offset argument and length argument, vxfs_ts_reclaim() does not perform aggressive reclamation, but performs the default the default reclamation instead, regardless if you specified a value for the volindex argument.

  • VXFS_TS_RECLAIM_ANALYSE | VXFS_TS_RECLAIM_ANALYZE - Perform an analysis of the file system to recommend whether you should use Normal Reclaim or Aggressive Reclaim. You can use either reclaim policy regardless of the recommendation. Analyse reclamation is performed only if Veritas Volume Manager (VxVM) reports the volume as thinrclm. In the case of multi-volume file systems, the vxfs_ts_reclaim() API considers only the volumes that VxVM reports as thinrclm.

  • VXFS_TS_RECLAIM_AUTO - Perform an analysis of the file system determine which reclaim policy is suitable at this point and, depending upon the analysis, execute the policy on behalf of the user. Auto reclamation is performed only if VxVM reports the volume as thinrclm. In the case of multi-volume file systems, the vxfs_ts_reclaim() API considers only the volumes that VxVM reports as thinrclm.

VxFS may align the offset and length internally for correctness.

Note:

Thin Reclamation is a slow process and may take several hours to complete, depending on the file system size. Thin Reclamation is not guaranteed to reclaim 100% of the free space.