本节介绍如何维护 CacheFS 文件系统。
如果要使用 /etc/vfstab 文件挂载文件系统,请通过在 /etc/vfstab 文件中编辑文件系统选项来修改高速缓存。如果要使用 AutoFS,请通过在 AutoFS 映射中编辑文件系统选项来修改高速缓存。
在高速缓存中修改文件系统时,需要先删除高速缓存,再重新创建它。还可能需要在单用户模式下重新引导计算机,具体取决于共享和访问文件系统的方式。
在以下示例中,使用为 /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 # |
以下示例说明有关 /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 软件将最新的修改时间与以前的修改时间进行比较。如果这两个修改时间不同,则从高速缓存中清除目录或文件的所有数据和属性。然后,从后台文件系统检索新的数据和属性。
仅当显式请求对使用 -o demandconst 选项挂载的文件系统进行检查时,才执行一致性检查。如果使用此选项在高速缓存中挂载文件系统,之后就可以使用带有-s 选项的 cfsadmin 命令来请求一致性检查。缺省情况下,在访问文件时逐个对文件执行一致性检查。如果未访问文件,则不执行检查。使用 -o demandconst 选项可避免出现在网络中执行大量一致性检查的情况。
有关更多信息,请参见 mount_cachefs(1M)。
成为客户机系统上的超级用户。
在高速缓存中挂载文件系统,然后指定高速缓存一致性检查。
# mount -F cachefs -o backfstype=nfs,cachedir=/directory,demandconst server:/file-system /mount-point |
启动对特定 CacheFS 文件系统的一致性检查。
# cfsadmin -s /mount-point |
成为客户机系统上的超级用户。
取消挂载 CacheFS 文件系统。
# umount /mount-point |
其中 /mount-point 指定要删除的 CacheFS 文件系统。
确定 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 # |
# cfsadmin -d cache-ID /cache-directory |
指示 CacheFS 文件系统的名称,即 cfsadmin -l 输出的最后一行。 有关更多信息,请参见如何显示有关 CacheFS 文件系统的信息。通过将 cache-ID 指定为 all,可以删除特定高速缓存中的所有 CacheFS 文件系统。
指定高速缓存所驻留的目录。
验证是否已删除 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)。
更新高速缓存的资源计数。
# fsck -F cachefs /cache-directory |
有关更多信息,请参见如何检查 CacheFS 文件系统的完整性。
以下示例说明如何从高速缓存中删除文件系统。
# umount /cfssrc # cfsadmin -l /cfssrc # cfsadmin -d _dev_dsk_c0t6d0s0:_cfssrc # cfsadmin -l # fsck -F cachefs /cache-directory |
使用 fsck 命令可检查 CacheFS 文件系统的完整性。CacheFS 版本的 fsck 命令可自动更正问题,而不要求用户进行交互。应该无需对 CacheFS 文件系统手动运行 fsck 命令,因为 fsck 命令在引导时或挂载文件系统时自动运行。如果要手动检查完整性,可以使用以下过程。
有关更多信息,请参见 fsck_cachefs(1M)。
成为客户机系统上的超级用户。
检查指定高速缓存中的文件系统。
# fsck -F cachefs [-m -o noclean] /cache-directory |
导致 fsck 命令检查 CacheFS 文件系统,而不进行任何修复。
仅对 CacheFS 文件系统进行强制检查。不进行任何修复。
指示高速缓存所驻留的目录的名称。
以下示例说明如何检查在 /local/mycache 高速缓存中高速缓存的文件系统。
# fsck -F cachefs /local/mycache # |