この節では、CacheFS ファイルシステムの保守方法について説明します。
/etc/vfstab ファイルを使用してファイルシステムをマウントしている場合は、このファイル内でファイルシステムオプションを編集してキャッシュを変更します。AutoFS を使用している場合は、AutoFS マップ内でファイルシステムオプションを編集してキャッシュを変更します。
キャッシュ内でファイルシステムを変更する場合は、キャッシュを削除してから作成し直す必要があります。また、ファイルシステムの共有方法とアクセス方法によっては、マシンをシングルユーザーモードでリブートしなければならない場合があります。
次の例では、キャッシュが削除されてから再び作成され、ファイルシステム /docs に指定された demandconst オプションを使用して再びマウントされます。
# shutdown -g30 -y . . . Type Cntrl-d to proceed with normal startup, (or give root password for system maintenance): # enter password: . . . 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 ソフトウェアでは現在の変更時刻を前回の変更時刻と比較します。変更時刻が異なる場合は、そのディレクトリまたはファイルに関するすべてのデータと属性がキャッシュから消去され、バックファイルシステムから新しいデータと属性が取り出されます。
ユーザーがディレクトリやファイルの処理を要求すると、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 |
cache-ID |
CacheFS ファイルシステム名。この名前は、cfsadmin -l コマンドからの出力の最終行に表示される。詳細は、「CacheFS ファイルシステムに関する情報を表示する方法」を参照。cache-ID に all を指定すると、特定のキャッシュに書き込まれた CacheFS ファイルシステムをすべて削除できる |
/cache-directory |
キャッシュがあるディレクトリ |
ファイルシステムが削除されたことを確認します。
直前に削除したファイルシステムのキャッシュ 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 コマンドを実行して、キャッシュのリソースカウントを更新します。
詳細は、「CacheFS ファイルシステムの整合性をチェックする方法」を参照してください。
次の例は、キャッシュからファイルシステムを削除する方法を示しています。
# umount /cfssrc # cfsadmin -l /cfssrc # cfsadmin -d _dev_dsk_c0t6d0s0:_cfssrc # cfsadmin -l |
fsck コマンドを使用して、CacheFS ファイルシステムの整合性を確認します。何も操作しなくても、fsck コマンドの CacheFS バージョンによって問題が自動的に解決されます。fsck コマンドはブート時またはファイルシステムのマウント時に自動的に実行されるため、CacheFS ファイルシステムに対して fsck コマンドを手 作業で実行する必要はありません。整合性を手作業で確認する場合は、次の手順を使用できます。
詳細は、fsck_cachefs(1M) のマニュアルページを参照してください。
クライアントシステムでスーパーユーザーになります。
指定されたキャッシュ内でファイルシステムをチェックします。
# fsck -F cachefs [-m -o noclean] /cache-directory |
-m |
fsck コマンドに CacheFS ファイルシステムをチェックさせるが、修復は行わない。 |
-o noclean |
CacheFS ファイルシステムに対するチェックのみを実行させる。修復は行わない。 |
/cache-directory |
キャッシュがあるディレクトリの名前を指定する。 |
次の例は、/local/mycache キャッシュに書き込まれているファイルシステムをチェックする方法を示しています。
# fsck -F cachefs /local/mycache # |