この節では、CacheFS ファイルシステムの保守方法について説明します。
/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 # |
クライアントシステムでスーパーユーザーになります。
指定したキャッシュにマウントされたすべてのファイルシステムに関する情報を表示します。
# cfsadmin -l /cache-directory |
/cache-directory は、キャッシュがあるディレクトリの名前です。
次の例は、/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 # |
指定したキャッシュから CacheFS ファイルシステムを削除します。
# 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 ファイルシステムの整合性を検査します。何も操作しなくても、fsck コマンドの CacheFS バージョンによって問題が自動的に解決されます。fsck コマンドはブート時またはファイルシステムのマウント時に自動的に実行されるため、CacheFS ファイルシステムに対して fsck コマンドを手作業で実行する必要はありません。整合性を手作業で検査する場合は、次の手順を使用できます。
詳細は、fsck_cachefs(1M) のマニュアルページを参照してください。
クライアントシステムでスーパーユーザーになります。
指定されたキャッシュ内でファイルシステムを検査します。
# fsck -F cachefs [-m -o noclean] /cache-directory |
fsck コマンドに CacheFS ファイルシステムを検査させますが、修復は行いません。
CacheFS ファイルシステムに対する検査のみを実行させます。修復は行いません。
キャッシュがあるディレクトリの名前を指定します。
次の例は、/local/mycache キャッシュに書き込まれているファイルシステムを検査する方法を示しています。
# fsck -F cachefs /local/mycache # |