Veritas™ File System Programmer's Reference Guide - Solaris

Last Published:
Product(s): InfoScale & Storage Foundation (7.2)
Platform: Solaris
  1. Veritas File System software developer's kit
    1.  
      About the software developer's kit
    2. File System software developer's kit features
      1.  
        API library interfaces
      2.  
        File Change Log
      3.  
        Multi-volume support
      4.  
        Veritas File System I/O
    3.  
      Software developer's kit packages
    4.  
      Required libraries and header files
    5. Compiling environment
      1.  
        Recompiling with a different compiler
  2. File Change Log
    1. About the File Change Log file
      1.  
        Recorded changes
      2. Using the File Change Log file
        1.  
          Space usage
        2.  
          Full system scan reductions
        3.  
          File history traces
      3.  
        File Change Log logging activation
      4. File Change Log file layout
        1.  
          File Change Log superblock
        2.  
          File Change Log record
    2. Record types
      1.  
        Special records
      2.  
        Typical record sequences
    3. File Change Log tunables
      1.  
        How tunables handle File Change Log growth size
    4. Application programming interface for File Change Log
      1.  
        Ease of use
      2.  
        Backward compatibility
      3. API functions
        1.  
          Functions for accessing File Change Log records
        2.  
          Functions for seeking offsets and time stamps in the File Change Log
        3. vxfs_fcl_open
          1.  
            Return value
        4. vxfs_fcl_close
          1.  
            Parameters
        5. vxfs_fcl_getinfo
          1.  
            Return values
        6. vxfs_fcl_read
          1.  
            Parameters
          2.  
            Input
          3.  
            Output
          4.  
            Return values
        7. vxfs_fcl_getcookie
          1.  
            Parameters
        8. vxfs_fcl_seek
          1.  
            Parameters
          2.  
            Return values
        9. vxfs_fcl_seektime
          1.  
            Parameters
          2.  
            Return values
        10. vxfs_fcl_sync
          1.  
            Parameters
      4. File Change Log record
        1.  
          Defines
        2.  
          fcl_iostats structure
        3.  
          fcl_acsinfo structure
        4.  
          Record structure fields
      5. Copying File Change Log records
        1.  
          Index maintenance application
        2. Computing a usage profile
          1.  
            Initial setup
          2.  
            Sample steps
          3.  
            Off host processing
      6. Veritas File System and File Change Log upgrade and downgrade
        1.  
          Converting File Change Log version 3 files to version 4
        2.  
          Downgrading Veritas File System versions
    5. Reverse path name lookup
      1.  
        Inodes
      2.  
        vxfs_inotopath_gen
  3. Multi-volume support
    1.  
      About multi-volume support
    2.  
      Uses for multi-volume support
    3. Volume application programming interfaces
      1.  
        Administering volume sets
      2.  
        Querying the volume set for a file system
      3.  
        Modifying a volume within a file system
      4.  
        Encapsulationg and de-encapsulating a volume
    4. Allocation policy application programming interfaces
      1.  
        Directing file allocations
      2.  
        Creating and assigning policies
      3.  
        Querying the defined policies
      4.  
        Enforcing a policy
    5.  
      Data structures
    6. Using policies and application programming interfaces
      1.  
        Defining and assigning allocation policies
      2.  
        Using volume application programming interfaces
  4. Named data streams
    1.  
      About named data streams
    2.  
      Uses for named data streams
    3.  
      Named data streams application programming interface
    4.  
      Listing named data streams
    5.  
      Namespace for named data streams
    6.  
      Behavior changes in other system calls
    7.  
      Querying named data streams
    8.  
      Application programming interface
    9.  
      Command reference
  5. Veritas File System I/O
    1.  
      About Veritas File System I/O
    2.  
      Freeze and thaw
    3. Caching advisories
      1.  
        Direct I/O
      2.  
        Concurrent I/O
      3.  
        Unbuffered I/O
      4.  
        Other advisories
    4. Extents
      1. Extent attributes
        1.  
          Attribute specifics
      2.  
        Reservation: preallocating space to a file
      3.  
        Fixed extent size
      4.  
        Application programming interface for extent attributes
      5. Allocation flags
        1.  
          Allocation flags with reservation
        2.  
          Reservation trimming
        3.  
          Non-persistent reservation
        4.  
          No write beyond reservation
        5.  
          Contiguous reservation
        6.  
          Include reservation in the file size
        7.  
          Reading the grown part of the file
      6.  
        Allocation flags with fixed extent size
      7.  
        How to use extent attribute APIs
      8.  
        Setting fixed extent size
  6. Thin Reclamation
    1.  
      About Thin Storage
    2.  
      About Thin Reclamation
    3. Thin Reclamation application programming interface
      1.  
        vxfs_ts_reclaim return values

File Change Log tunables

You can set four FCL tunable parameters using the vxtunefs command.

See the vxtunefs(1M) manual page.

The following are the four available FCL tunable parameters:

fcl_keeptime

Specifies the duration in seconds that FCL records stay in the FCL file before they can be purged. The first records to be purged are the oldest ones, which are located at the beginning of the file. Additionally, records at the beginning of the file can be purged if the allocation to the FCL file exceeds fcl_maxalloc bytes. The default value is "0". Note that fcl_keeptime takes precedence over fcl_maxalloc. No hole is punched if the FCL file exceeds fcl_maxalloc bytes and the life of the oldest record has not reached fcl_keeptime seconds.

Tuning recommendation: The fcl_keeptime tunable parameter needs to be tuned only when the administrator wants to ensure that records are kept in the FCL for fcl_keeptime length of time. The fcl_keeptime parameter should be set to any value greater than the time between FCL scans. For example, if the FCL is scanned every 24 hours, fcl_keeptime could be set to 25 hours. This prevents FCL records from being purged before they are read and processed.

fcl_maxalloc

Specifies the maximum amount of space in bytes to be allocated to the FCL file. When the space allocated exceeds fcl_maxalloc, a hole is punched at the beginning of the file. As a result, records are purged and the first valid offset is updated in the FCL superblock. The minimum value of fcl_maxalloc is 4MB. The default value is fs_size/33.

fcl_winterval

Specifies the time in seconds that must elapse before the FCL records multiple overwrite, extending write, or truncation records for the same inode. This helps to reduce the number of repetitive records in the FCL. The fcl_winterval time-out is per inode. If an inode happens to go out of cache and returns, its write interval is reset. As a result, there could be more than one write record for that file in the same write interval. The default value is 3600 seconds.

Tuning recommendation: The fcl_winterval tunable parameter should be set to a value that is less than the time between FCL scans. For example, if the FCL is scanned every 24 hours, fcl_winterval should be set to less than 24 hours. This ensures that there is at least one record in the FCL for each file being overwritten, extended, or truncated between scans.

fcl_ointerval

Specifies the time interval in seconds within which subsequent opens of a file do not produce an additional FCL record. This helps to reduce the number of repetitive file-open records logged in the FCL, especially in the case of frequent accesses through NFS. If the tracking of access information is also enabled, a subsequent file open event within fcl_ointerval might produce a record, if the latter open is by a different user. Similar to fcl_ointerval, if an inode goes out of cache and returns, or if there is an FCL sync, there might be more than one file open record within the same open interval. The default value is 600 seconds.

Tuning recommendations: If the application using file-open records only needs to know if a file has been accessed by any user from the last time it scanned the FCL, fcl_ointerval can be set to a time period in the range of the time between the scans. If the application is interested in tracking every access, the tunable can be set to zero.

In the case where the file system is extensively accessed over NFS, depending on the platform and the NFS implementation, there might be a large number of file open records logged. In such cases, it is recommended to set the tunable to a higher value to avoid flooding the FCL with repetitive records.