System Administration Guide: Devices and File Systems

Maintaining a CacheFS File System

This section describes how to maintain a CacheFS file system.

If you are using the /etc/vfstab file to mount file systems, you modify the cache by editing the file system options in the /etc/vfstab file. If you are using AutoFS, you modify the cache by editing the file system options in the AutoFS maps.

Modifying a CacheFS File System

When you modify a file system in the cache, you need to delete the cache and then re-create it. You might also need to reboot your machine in single-user mode, depending on how your file systems are shared and accessed.

In the following example, the cache is deleted, re-created, and then mounted again by using demandconst option specified for the /docs file system.


# shutdown -g30 -y
.
.
.
Root password for system maintenance (control-d to bypass):
single-user privilege assigned to /dev/console. 

.
.
.
Here is where you might be prompted to run fsck on the
file system where the cache is located.

# fsck /local
# mount /local
# cfsadmin -d all /local/mycache
# cfsadmin -c /local/mycache
# init 6
.
.
.
console login:
password:
# mount -F cachefs -o backfstype=nfs,cachedir=/local/cache1,demandconst
merlin:/docs /docs
#

ProcedureHow to Display Information About a CacheFS File System

  1. Become superuser on the client system.

  2. Display information about all file systems cached under a specified cache.


    # cfsadmin -l /cache-directory
    

    where /cache-directory is the name of the directory where the cache resides.


Example 20–5 Displaying Information About CacheFS File Systems

The following example shows information about the /local/mycache cache directory. In this example, the /docs file system is cached in /local/mycache. The last line displays the name of the CacheFS file system.


# cfsadmin -l /local/mycache
cfsadmin: list cache FS information
   maxblocks     90%
   minblocks      0%
   threshblocks  85%
   maxfiles      90%
   minfiles       0%
   threshfiles   85%
   maxfilesize    3MB
merlin:_docs:_docs
#

Consistency Checking of a CacheFS File System

To ensure that the cached directories and files remain current, the CacheFS software periodically checks the consistency of files stored in the cache. To check consistency, the CacheFS software compares the current modification time to the previous modification time. If the modification times are different, all data and attributes for the directory or file are purged from the cache. Then, new data and attributes are retrieved from the back file system.

Consistency Checking on Demand

Consistency checks can be performed only when you explicitly request checks for file systems that are mounted by using the -o demandconst option. If you mount a file system in a cache with this option, then use the cfsadmin command with the -s option to request a consistency check. By default, consistency checking is performed file by file as the files are accessed. If no files are accessed, no checks are performed. Using the -o demandconst option avoids the situation where the network is flooded with consistency checks.

For more information, see mount_cachefs(1M).

ProcedureHow to Specify Cache Consistency Checking on Demand

  1. Become superuser on the client system.

  2. Mount the file system in the cache and specify cache consistency checking.


    # mount -F cachefs -o backfstype=nfs,cachedir=/directory,demandconst
    server:/file-system /mount-point
    
  3. Initiate consistency checking on a specific CacheFS file system.


    # cfsadmin -s /mount-point
    

ProcedureHow to Delete a CacheFS File System

  1. Become superuser on the client system.

  2. Unmount the CacheFS file system.


    # umount /mount-point
    

    where /mount-point specifies the CacheFS file system that you want to delete.

  3. Determine the name of the CacheFS file system (cache ID).


    # cfsadmin -l /cache-directory
    cfsadmin: list cache FS information
       maxblocks     90%
       minblocks      0%
       threshblocks  85%
       maxfiles      90%
       minfiles       0%
       threshfiles   85%
       maxfilesize    3MB
    cache-ID
    #
  4. Delete the CacheFS file system from the specified cache.


    # cfsadmin -d cache-ID /cache-directory
    
    cache-ID

    Indicates the name of the CacheFS file system, which is the last line of the cfsadmin -l output. For more information, see How to Display Information About a CacheFS File System. You can delete all the CacheFS file systems in a particular cache by specifying all for cache-ID.

    /cache-directory

    Specifies the directory where the cache resides.

  5. Verify that the CacheFS file system has been deleted.

    The cache ID of the file system you just deleted should be missing from the cfsadmin -l output.


    # cfsadmin -l /cache-directory
    cfsadmin: list cache FS information
       maxblocks     90%
       minblocks      0%
       threshblocks  85%
       maxfiles      90%
       minfiles       0%
       threshfiles   85%
       maxfilesize    3MB
    # 

    For more information about the fields that are specified in the command output, refer to cfsadmin(1M).

  6. Update the resource counts for the cache.


    # fsck -F cachefs /cache-directory
    

    For more information, see How to Check the Integrity of a CacheFS File System.


Example 20–6 Deleting a CacheFS File System

The following example shows how to delete the file systems from the cache.


# umount /cfssrc
# cfsadmin -l /cfssrc
# cfsadmin -d _dev_dsk_c0t6d0s0:_cfssrc
# cfsadmin -l
# fsck -F cachefs /cache-directory

ProcedureHow to Check the Integrity of a CacheFS File System

Use the fsck command to check the integrity of CacheFS file systems. The CacheFS version of the fsck command automatically corrects problems without requiring user interaction. You should not need to run the fsck command manually for CacheFS file systems because the fsck command is run automatically at boot time or when the file system is mounted. If you want to manually check the integrity, you can use the following procedure.

For more information, see fsck_cachefs(1M).

  1. Become superuser on the client system.

  2. Check the file systems in the specified cache.


    # fsck -F cachefs [-m -o noclean] /cache-directory
    
    -m

    Causes the fsck command to check a CacheFS file system without making any repairs.

    -o noclean

    Forces a check on the CacheFS file systems only. Does not make any repairs.

    /cache-directory

    Indicates the name of the directory where the cache resides.


Example 20–7 Checking the Integrity of CacheFS File Systems

The following example shows how to check the file systems cached in the /local/mycache cache.


# fsck -F cachefs /local/mycache
#