系统管理指南:设备和文件系统

维护 CacheFS 文件系统

本节介绍如何维护 CacheFS 文件系统。

如果要使用 /etc/vfstab 文件挂载文件系统,请通过在 /etc/vfstab 文件中编辑文件系统选项来修改高速缓存。如果要使用 AutoFS,请通过在 AutoFS 映射中编辑文件系统选项来修改高速缓存。

修改 CacheFS 文件系统

在高速缓存中修改文件系统时,需要先删除高速缓存,再重新创建它。还可能需要在单用户模式下重新引导计算机,具体取决于共享和访问文件系统的方式。

在以下示例中,使用为 /docs 文件系统指定的 demandconst 选项,删除、重新创建并重新挂载高速缓存。


# 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

#

Procedure如何显示有关 CacheFS 文件系统的信息

  1. 成为客户机系统上的超级用户。

  2. 显示有关在指定高速缓存下高速缓存的所有文件系统的信息。


    # cfsadmin -l /cache-directory
    

    其中 /cache-directory 是高速缓存所驻留的目录的名称。


示例 20–5 显示有关 CacheFS 文件系统的信息

以下示例说明有关 /local/mycache 高速缓存目录的信息。在此示例中,/docs 文件系统高速缓存在 /local/mycache 中。最后一行显示 CacheFS 文件系统的名称。


# 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

#

CacheFS 文件系统的一致性检查

为确保已高速缓存的目录和文件保持最新,CacheFS 软件定期检查在高速缓存中存储的文件的一致性。为检查一致性,CacheFS 软件将最新的修改时间与以前的修改时间进行比较。如果这两个修改时间不同,则从高速缓存中清除目录或文件的所有数据和属性。然后,从后台文件系统检索新的数据和属性。

按需执行的一致性检查

仅当显式请求对使用 -o demandconst 选项挂载的文件系统进行检查时,才执行一致性检查。如果使用此选项在高速缓存中挂载文件系统,之后就可以使用带有-s 选项的 cfsadmin 命令来请求一致性检查。缺省情况下,在访问文件时逐个对文件执行一致性检查。如果未访问文件,则不执行检查。使用 -o demandconst 选项可避免出现在网络中执行大量一致性检查的情况。

有关更多信息,请参见 mount_cachefs(1M)

Procedure如何根据需要指定高速缓存一致性检查

  1. 成为客户机系统上的超级用户。

  2. 在高速缓存中挂载文件系统,然后指定高速缓存一致性检查。


    # mount -F cachefs -o backfstype=nfs,cachedir=/directory,demandconst
    
    server:/file-system /mount-point
    
  3. 启动对特定 CacheFS 文件系统的一致性检查。


    # cfsadmin -s /mount-point
    

Procedure如何删除 CacheFS 文件系统

  1. 成为客户机系统上的超级用户。

  2. 取消挂载 CacheFS 文件系统。


    # umount /mount-point
    

    其中 /mount-point 指定要删除的 CacheFS 文件系统。

  3. 确定 CacheFS 文件系统的名称(高速缓存 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. 从指定的高速缓存中删除 CacheFS 文件系统。


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

    指示 CacheFS 文件系统的名称,即 cfsadmin -l 输出的最后一行。 有关更多信息,请参见如何显示有关 CacheFS 文件系统的信息。通过将 cache-ID 指定为 all,可以删除特定高速缓存中的所有 CacheFS 文件系统。

    /cache-directory

    指定高速缓存所驻留的目录。

  5. 验证是否已删除 CacheFS 文件系统。

    刚删除的文件系统的高速缓存 ID 应该不会出现在 cfsadmin -l 输出。


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

    有关在命令输出中指定的字段的更多信息,请参阅 cfsadmin(1M)

  6. 更新高速缓存的资源计数。


    # fsck -F cachefs /cache-directory
    

    有关更多信息,请参见如何检查 CacheFS 文件系统的完整性


示例 20–6 删除 CacheFS 文件系统

以下示例说明如何从高速缓存中删除文件系统。


# umount /cfssrc

# cfsadmin -l /cfssrc

# cfsadmin -d _dev_dsk_c0t6d0s0:_cfssrc

# cfsadmin -l

# fsck -F cachefs /cache-directory

Procedure如何检查 CacheFS 文件系统的完整性

使用 fsck 命令可检查 CacheFS 文件系统的完整性。CacheFS 版本的 fsck 命令可自动更正问题,而不要求用户进行交互。应该无需对 CacheFS 文件系统手动运行 fsck 命令,因为 fsck 命令在引导时或挂载文件系统时自动运行。如果要手动检查完整性,可以使用以下过程。

有关更多信息,请参见 fsck_cachefs(1M)

  1. 成为客户机系统上的超级用户。

  2. 检查指定高速缓存中的文件系统。


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

    导致 fsck 命令检查 CacheFS 文件系统,而不进行任何修复。

    -o noclean

    仅对 CacheFS 文件系统进行强制检查。不进行任何修复。

    /cache-directory

    指示高速缓存所驻留的目录的名称。


示例 20–7 检查 CacheFS 文件系统的完整性

以下示例说明如何检查在 /local/mycache 高速缓存中高速缓存的文件系统。


# fsck -F cachefs /local/mycache

#