Symantec logo

FCL file layout

In VxFS 4.1, the internal layout of the FCL file was exposed to the user and the applications were expected to access the FCL using standard file system interfaces such as open(2), read(2), and lseek(2). However, this methodology may lead to future compatibility issues. For example, if the underlying FCL layout and the FCL version ever changes, the application must be changed and recompiled to accommodate these changes.

VxFS 5.0 introduces a new programming interface, which provides improved compatibility, even when the on-disk FCL layout changes. With this API, the FCL layout is not a concern for applications. Hence, only a rudimentary description of the FCL layout is provided here.

FCL file format depicts the FCL file format. The FCL file is usually a sparse file containing the FCL superblock and the FCL records. The first information block in the FCL file is the FCL superblock. This block may be followed by an optional hole as well as the FCL records which contain information about the changes in the file system.

Click the thumbnail above to view full-sized image.

FCL file format

FCL superblock

Changes to files and directories in the file system are stored as FCL records. The superblock, which is currently stored in the first block of the FCL file, describes the state of the FCL file. The superblock indicates the following information:

An FCL file containing just the superblock is created when FCL is first activated using the fcladm on command. The superblock gets deleted only when the FCL file is removed using the fcladm rm command.

When the FCL is activated using fcladm on, the state in the superblock and its activation time are changed. Whenever any file system activity results in a record being appended to the FCL file, the last offset gets updated.

Event mask

As the FCL file grows in size, depending on the file system tunables (fcl_maxalloc and fcl_keeptime), the oldest records at the start of the FCL file are thrown away to free up some space, as the first offset gets updated. When the set of events tracked in the FCL is changed using fcladm set|clear, it results in the event mask and the event mask change time getting updated as well. An event mask change also results in a event mask change record containing the old event mask and the new one being logged in the FCL file.

FCL record

The FCL records contain information about these typical changes:

See FCL file format.