Solaris のシステム管理 (デバイスとファイルシステム)

CacheFS ファイルシステムの保守

この節では、CacheFS ファイルシステムの保守方法について説明します。

/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
#

ProcedureCacheFS ファイルシステムに関する情報を表示する方法

  1. クライアントシステムでスーパーユーザーになります。

  2. 指定したキャッシュにマウントされたすべてのファイルシステムに関する情報を表示します。


    # cfsadmin -l /cache-directory
    

    /cache-directory は、キャッシュがあるディレクトリの名前です。


例 19–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
    

ProcedureCacheFS ファイルシステムを削除する方法

  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-IDall を指定すると、特定のキャッシュに書き込まれた 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 ファイルシステムの整合性を検査する方法」を参照してください。


例 19–6 CacheFS ファイルシステムを削除する

次の例は、キャッシュからファイルシステムを削除する方法を示しています。


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

ProcedureCacheFS ファイルシステムの整合性を検査する方法

fsck コマンドを使用して、CacheFS ファイルシステムの整合性を検査します。何も操作しなくても、fsck コマンドの CacheFS バージョンによって問題が自動的に解決されます。fsck コマンドはブート時またはファイルシステムのマウント時に自動的に実行されるため、CacheFS ファイルシステムに対して fsck コマンドを手作業で実行する必要はありません。整合性を手作業で検査する場合は、次の手順を使用できます。

詳細は、fsck_cachefs(1M) のマニュアルページを参照してください。

  1. クライアントシステムでスーパーユーザーになります。

  2. 指定されたキャッシュ内でファイルシステムを検査します。


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

    fsck コマンドに CacheFS ファイルシステムを検査させますが、修復は行いません。

    -o noclean

    CacheFS ファイルシステムに対する検査のみを実行させます。修復は行いません。

    /cache-directory

    キャッシュがあるディレクトリの名前を指定します。


例 19–7 CacheFS ファイルシステムの整合性を検査する

次の例は、/local/mycache キャッシュに書き込まれているファイルシステムを検査する方法を示しています。


# fsck -F cachefs /local/mycache
#