Solaris のシステム管理 (基本編)

第 41 章 CacheFS ファイルシステムの使用 (手順)

この章では、CacheFSTM ファイルシステムの設定および管理の方法について説明します。

この章で説明する作業マップは、次のとおりです。

CacheFS に関するエラーの障害追跡については、cachefspack エラーの障害追跡を参照してください。

CacheFS ファイルシステムの概観 (作業マップ)

次の作業マップは、CacheFS ファイルシステムを使用するためのすべての作業を確認するために使用してください。このマップに記載された各作業は、CacheFS ファイルシステムの作成とマウント、キャッシュのパッキングと保守などの一連の付加された作業を指しています。

作業 

説明 

参照先 

1. CacheFS ファイルシステムを作成してマウントする 

キャッシュを作成し、ファイルシステムをそのキャッシュにマウントする。 

CacheFS ファイルシステムの作成とマウント (作業マップ)

2. CacheFS ファイルシステムを保守する 

キャッシュをマウント解除、削除、または作成し直して、CacheFS ファイルシステムを表示および変更する。 

CacheFS ファイルシステムの保守 (作業マップ)

3. (省略可能) CacheFS ファイルシステムをパックおよびパック解除する 

キャッシュをパックしてパッキングリストを使用するかどうかを決める。キャッシュをパックすると、キャッシュ内の特定のファイルおよびディレクトリが常に更新されるようになる。 

CacheFS ファイルシステムのパッキング (作業マップ)

4. CacheFS の統計情報を収集する  

キャッシュの性能や適切なキャッシュサイズを決める。 

CacheFS の統計情報の収集 (作業マップ)

CacheFS ファイルシステムの概要

CacheFS ファイルシステムは、サーバーとネットワークの負荷を軽減して NFS サーバーのパフォーマンスとスケーラビリティを改善する汎用ファイルシステムキャッシュメカニズムです。CacheFS ファイルシステムは、階層化ファイルシステムとして設計されており、あるファイルシステムを別のファイルシステムのキャッシュに書き込む機能を持っています。NFS 環境では、CacheFS ファイルシステムはサーバーあたりのクライアント比率を高め、サーバーとネットワークの負荷を軽減し、ポイントツーポイントプロトコル (PPP) などの低速リンク上のクライアントのパフォーマンスを向上させます。

CacheFS ファイルシステムの機能

CacheFS ファイルシステムをクライアントシステム上に作成すると、キャッシュに書き込んだファイルシステムをクライアントがネットワークを経由しなくても、ローカルにアクセスできます。次の図は、CacheFS ファイルシステムの使用に関連する構成要素の関係を示しています。

図 41–1 CacheFS ファイルシステムの機能

CacheFS の構成要素を示しています。サーバーからのバックファイルシステムとクライアント上のキャッシュされたファイルシステムとの関係を識別します。

「バック」ファイルシステムとは、キャッシュにマウントされるように指定したファイルシステムです。通常、これは NFS または HSFS (High Sierra File System) ファイルシステムです。ユーザーがバックファイルシステムの一部であるファイルにアクセスしようとすると、そのファイルはキャッシュに書き込まれます。「フロント」ファイルシステムとは、キャッシュにマウントされ、ローカルのマウントポイントからアクセスされるファイルシステムです。フロントファイルシステムのタイプは、UFS でなければなりません。

ユーザーにとって、CacheFS ファイルシステムのファイルに初めてアクセスするときは低速に思われますが、同じファイルを続けて使用していると高速になります。

CacheFS ファイルシステムの構造と動作

各キャッシュには、キャッシュの構造とその動作を決定する 1 組のパラメータが付いています。各パラメータは、以下の表に示すデフォルト値に設定されています。デフォルト値は、フロントファイルシステム全体をキャッシュに使用するように指定しますが、これはファイルシステムをキャッシュに書き込む場合の推奨方法です。

表 41–1 CacheFS ファイルシステムのパラメータとそのデフォルト値

CacheFS ファイルシステムのパラメータ 

デフォルト値 

定義 

maxblocks

90% 

CacheFS ファイルシステムがフロントファイルシステム内で要求できる最大ブロック数を設定する 

minblocks

0% 

CacheFS ファイルシステムがフロントファイルシステム内で要求できる最小ブロック数を設定する 

threshblocks

85% 

CacheFS ファイルシステムが minblocks で指定したより多数のブロックを要求する前に、フロントファイルシステム内で使用可能でなければならないブロック数を設定する

maxfiles

90% 

CacheFS ファイルシステムがフロントファイルシステム内で要求できる使用可能な i ノードの最大数 (ファイル数) を設定する 

minfiles

0% 

CacheFS ファイルシステムがフロントファイルシステム内で要求できる使用可能な i ノードの最小数を設定する 

threshfiles

85% 

CacheFS ファイルシステムが minfiles で指定したより多くのファイルを要求する前に、フロントファイルシステム内で使用可能でなければならない i ノード数を設定する

通常、これらのパラメータ値を変更する必要はありません。最適のキャッシュ動作が得られるデフォルト値に設定されています。ただし、キャッシュに使用されないフロントファイルシステム内に空き空間があり、それを他のファイルシステムに使用する場合は、maxblocksmaxfiles の値を変更することをお勧めします。この変更を行うには、cfsadmin コマンドを使用します。たとえば、次のようになります。


$ cfsadmin -o maxblocks=60

CacheFS ファイルシステムの作成とマウント (作業マップ)

次の表の手順を使用して、CacheFS ファイルシステムを作成およびマウントしてください。

作業 

説明 

参照先 

1. キャッシュに書き込むファイルシステムを共有する  

キャッシュに書き込むファイルシステムが共有されていることを確認する。 

share(1M) のマニュアルページ

2. キャッシュを作成する 

cfsadmin コマンドを使用してキャッシュを作成する。

キャッシュを作成する方法

3. ファイルシステムをキャッシュにマウントする 

次のいずれかの方法を使用して、ファイルシステムをキャッシュにマウントする。 

 

 

mount コマンドで、CacheFS ファイルシステムをマウントする

CacheFS ファイルシステムのマウント方法 (mount)

 

/etc/vfstab ファイルを編集して、CacheFS ファイルシステムをマウントする

CacheFS ファイルシステムのマウント方法 (/etc/vfstab)

 

AutoFS を使用して、キャッシュされたファイルシステムをマウントする 

CacheFS ファイルシステムのマウント方法 (AutoFS)

キャッシュを作成する方法

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

  2. キャッシュを作成します。


    # cfsadmin -c /cache-directory
    

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

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


    注 –

    キャッシュを作成し終わったら、キャッシュディレクトリ内で処理を実行しないでください。何か実行すると、CacheFS ソフトウェア内で矛盾が生じる可能性があります。


例 — キャッシュを作成する

次の例は、デフォルトのキャッシュパラメータ値を使用して、/local/mycache ディレクトリ内にキャッシュを作成する方法を示しています。


# mkdir /local
# cfsadmin -c /local/mycache

ファイルシステムをキャッシュにマウントする

キャッシュにマウントされるファイルシステムを指定して、ユーザーがそのファイルシステム内のファイルにローカルにアクセスできるようにします。実際には、各ファイルは、ユーザーがアクセスするまではキャッシュに書き込まれません。

次の表に、CacheFS ファイルシステムをマウントする 3 つの方法を示します。

CacheFS ファイルシステムのマウント方法 

CacheFS マウント方法の使用頻度 

mount コマンドを使用する方法

同じファイルにアクセスするには、システムをリブートするたびに mount コマンドを使用する

/etc/vfstab ファイルを編集する方法

1 度だけですむ。/etc/vfstab ファイルの内容は、システムをリブートした後も変更されずに残る

AutoFS を使用する方法 

1 度だけですむ。AutoFS のマップは、システムをリブートした後も変更されずに残る 

いずれかの方法を選択してファイルシステムをマウントしてください。

共有可能なファイルシステムしかマウントできません。ファイルシステムの共有については、share(1M) のマニュアルページを参照してください。


注 –

CacheFS ファイルシステムでは、ルート (/) と /usr のファイルシステムをキャッシュに書き込むことはできません。


CacheFS ファイルシステムのマウント方法 (mount)

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

  2. 必要に応じて、マウントポイントを作成します。


    # mkdir /mount-point
    

    マウントポイントはどこからでも作成できますが、UFS ファイルシステムでなければなりません。次の手順のように、mount コマンドで CacheFS オプションを使用すると、作成するマウントポイントが指定したキャッシュディレクトリ内のキャッシュに書き込まれるように指定できます。

  3. ファイルシステムをキャッシュにマウントします。


    # mount -F cachefs -o backfstype=fstype,cachedir=/cache-directory[,options]
    /back-filesystem /mount-point
    

    fstype

    バックファイルシステムのファイルシステムタイプ (NFS または HSFS)

    /cache-directory

    キャッシュがある UFS ディレクトリの名前。これは、キャッシュを作成する方法でキャッシュを作成するときの指定と同じ

    options

    ファイルシステムをキャッシュにマウントするときに追加できる他のマウントオプション。CacheFS mount オプションの詳細については、mount_cachefs(1M) のマニュアルページを参照

    /back-filesystem

    キャッシュにマウントするバックファイルシステムのマウントポイント。バックファイルシステムが NFS ファイルシステムである場合は、ファイルシステムのマウント元となるサーバーのホスト名と、キャッシュにマウントするファイルシステム名 (コロンで区切る) を指定する必要がある。たとえば、merlin: /data/abc

    /mount-point

    ファイルシステムのマウント先となるディレクトリ 

  4. 作成したキャッシュが実際にマウントされたかどうかを確認します。


    # cachefsstat /mount-point 
    

    /mount-point は作成した CacheFS ファイルシステムです。

    たとえば、次のようになります。


    # cachefsstat /docs
    /docs
    	         cache hit rate:   100% (0 hits, 0 misses)
    	     consistency checks:      1 (1 pass, 0 fail)
    	               modifies:      0
    	     garbage collection:      0

    ファイルシステムがキャッシュにマウントされなかった場合は、次のようなエラーメッセージが表示されます。


    # cachefsstat /mount-point
    cachefsstat: mount-point: not a cachefs mountpoint

    cachefsstat コマンドの詳細については、CacheFS の統計情報の収集を参照してください。

例 — CacheFS ファイルシステムをマウントする (mount)

次の例は、NFS ファイルシステム merlin:/docs/docs という CacheFS ファイルシステムとして、/local/mycache というキャッシュにマウントする方法を示しています。


# mkdir /docs
# mount -F cachefs -o backfstype=nfs,cachedir=/local/mycache merlin:/docs /docs

次の例は、Solaris 9 SPARC CD (HSFS ファイルシステム) を /cfssrc という CacheFS ファイルシステムとして使用できるようにする方法を示しています。CD には書き込めないので、引数 ro を指定して CacheFS ファイルシステムを読み取り専用にします。この例では、vold を実行していないものとします。


# mount -F hsfs -o ro /dev/dsk/c0t6d0s0 /sol9
# mount -F cachefs -o backfstype=hsfs,cachedir=/cfs/cache,ro,noconst,
backpath=/sol9 /dev/dsk/c0t6d0s0 /cfssrc
# ls /cfssrc
Copyright  Solaris_9

次の例は、vold を実行しながら、Solaris 9 SPARC CD を CacheFS ファイルシステムとしてマウントする方法を示しています。


# mount -F cachefs -o backfstype=hsfs,cachedir=/cfs/cache,ro,noconst,
backpath=/cdrom/sol_9_sparc/s0 /vol/dev/dsk/c0t2d0/sol_9_sparc/s0 /cfssrc

次の例は、vold を実行しながら、CD を CacheFS ファイルシステムとしてマウントする方法を示しています。


# mount -F cachefs -o backfstype=hsfs,cachedir=/cfs/cache,ro,noconst,
backpath=/cdrom/epson /vol/dev/dsk/c0t2d0/epson /drvrs

次の例では、demandconst オプションを使用して、NFS CacheFS ファイルシステム /docs の整合性チェックを指定します。/docs のバックファイルシステムは merlin:/docs です。詳細については、CacheFS ファイルシステムの整合性チェックを参照してください。


# mount -F cachefs -o backfstype=nfs,cachedir=/local/mycache,demandconst merlin:/docs /docs

CacheFS ファイルシステムのマウント方法 (/etc/vfstab)

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

  2. エディタを使用して、マウントするファイルシステムを /etc/vfstab ファイル内で指定します。

    下の例を参照してください。

    /etc/vfstab ファイルの詳細については、/etc/vfstab ファイルのフィールドの説明を参照してください。

  3. CacheFS ファイルシステムをマウントします。


    # mount /mount-point
    

    あるいはシステムをリブートします。

例 — CacheFS ファイルシステムをマウントする (/etc/vfstab)

次の例は、キャッシュされたディレクトリ /opt/cache にマウントされるリモートシステム starbug からの /data/abc ディレクトリ用の /etc/vfstab エントリを示しています。


 
#device           device             mount      FS     fsck  mount   mount
#to mount         to fsck            point      type   pass  at boot options
#
starbug:/data/abc /local/abc         /opt/cache cachefs 7    yes     local-access,bg,
nosuid,demandconst,backfstype=nfs,cachedir=/opt/cache

CacheFS ファイルシステムのマウント方法 (AutoFS)

自動マウントマップ内で -fstype=cachefs マウントオプションを指定して、AutoFS によってファイルシステムをキャッシュにマウントします。CacheFS のマウントオプション (backfstypecachedir など) も、自動マウントマップ内で指定します。自動マウントマップの詳細については、automount(1M) のマニュアルページを参照してください。

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

  2. エディタを使用して、次の 1 行を auto_direct マップに追加します。


    /mount-point -fstype=cachefs,cachedir=/directory,backfstype=nfs 
    server:/file-system
    
  3. エディタを使用して、次の 1 行を auto_master マップに追加します。


    /-

    /- エントリによって、auto_direct マップをチェックするように指示します。

  4. システムをリブートします。

  5. エントリが正しく作成されたか確認するには、次のようにキャッシュにマウントしたファイルシステムにカレントディレクトリを変更して内容を表示します。


    # cd /filesystem
    # ls 
    

AutoFS とマップの編集方法については、『Solaris のシステム管理 (資源管理とネットワークサービス)』の「autofs 管理作業の概要」を参照してください。

例 — CacheFS ファイルシステムをマウントする (AutoFS)

次の auto_direct エントリは、CacheFS ファイルシステムを /docs ディレクトリに自動的にマウントします。


/docs -fstype=cachefs,cachedir=/local/mycache,backfstype=nfs merlin:/docs

CacheFS ファイルシステムの保守 (作業マップ)

CacheFS ファイルシステムを設定し終わったら、保守作業を多少行う必要があります。CacheFS ファイルシステムの保守作業を行う必要がある場合は、次の表の手順 (オプション) に従ってください。

作業 

説明 

参照先 

1. CacheFS ファイルシステムの変更 

キャッシュをマウント解除、削除、または作成し直して、CacheFS ファイルシステムの動作を変更する。 

CacheFS ファイルシステムの変更

2. CacheFS ファイルシステム情報の表示  

cfsadmin コマンドを使用して、CacheFS ファイルシステムに関する情報を表示する。

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

3. 整合性チェックの実行 

cfsadmin コマンドを使用して必要に応じて整合性チェックを実行する。

必要に応じてキャッシュの整合性チェックを指定する方法

4. CacheFS ファイルシステムの削除 

umount コマンドと cfsadmin コマンドを使用して、CacheFS ファイルシステムを削除する。

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

5. CacheFS ファイルシステムの整合性の検査 

fsck_cachefs コマンドを使用して、CacheFS ファイルシステムの整合性を検査する。

CacheFS ファイルシステムの整合性をチェックする方法

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

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

/etc/vfstab ファイルを使用してファイルシステムをマウントしている場合は、このファイル内でファイルシステムオプションを編集してキャッシュを変更します。AutoFS を使用している場合は、AutoFS マップ内でファイルシステムオプションを編集してキャッシュを変更します。

CacheFS ファイルシステムの変更

キャッシュ内でファイルシステムを変更する場合は、キャッシュを削除してから作成し直す必要があります。また、ファイルシステムの共有方法とアクセス方法によっては、マシンをシングルユーザーモードでリブートしなければならない場合があります。

次の例では、キャッシュが削除されてから再び作成され、ファイルシステム /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
#

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

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

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


    # cfsadmin -l /cache-directory
    

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

例 — 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) のマニュアルページを参照してください。

必要に応じてキャッシュの整合性チェックを指定する方法

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

  2. ファイルシステムをキャッシュにマウントし、キャッシュの整合性チェックを指定します。


    # mount -F cachefs -o backfstype=nfs,cachedir=/directory,demandconst
    server:/file-system /mount-point
    

  3. 特定の CacheFS ファイルシステムに対する整合性チェックを開始します。


    # cfsadmin -s  /mount-point
    

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-IDall を指定すると、特定のキャッシュに書き込まれた CacheFS ファイルシステムをすべて削除できる。

    /cache-directory

    キャッシュがあるディレクトリ。 

  5. ファイルシステムが削除されたことを確認します。

    直前に削除したファイルシステムのキャッシュ 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 コマンドを実行して、キャッシュのリソースアカウントを更新します。

    詳細については、CacheFS ファイルシステムの整合性をチェックする方法を参照してください。

例 — CacheFS ファイルシステムを削除する

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


# umount /cfssrc
# cfsadmin -l /cfssrc
# cfsadmin -d _dev_dsk_c0t6d0s0:_cfssrc
# cfsadmin -l

CacheFS ファイルシステムの整合性をチェックする方法

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

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

例 — CacheFS ファイルシステムの整合性をチェックする

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


# fsck -F cachefs /local/mycache
#

CacheFS ファイルシステムのパッキング (作業マップ)

次の作業マップでは、CacheFS ファイルシステムのパッキングに関連する手順について説明します。これらの手順はすべてオプションです。

作業 

説明 

参照先 

ファイルをキャッシュにパックする 

キャッシュにロードされるファイルとディレクトリを識別し、それらをパックする。パッキングは、これらのファイルのコピーがキャッシュで利用できることを保証する。 

キャッシュにファイルをパックする方法

パッキングリストを作成する 

キャッシュにパックするファイルを個々に指定しない場合は、パッキングリストを作成する。 

パッキングリストを作成する方法

パッキングリストを使ってファイルをキャッシュにパックする 

キャッシュにパックするファイルが記載されているパッキングリストの名前を指定する。 

パッキングリストを使ってファイルをキャッシュにパックする方法

キャッシュからファイルまたはパッキングリストのパッキングを解除する 

不要になったファイルをキャッシュから削除する。 

キャッシュからファイルまたはパッキングリストのパッキングを解除する方法

パックされたファイルの情報を表示する 

パックしたファイルに関する情報 (パッキング状況など) を表示する。 

パックされたファイルの情報を表示する方法

CacheFS ファイルシステムのパッキング

一般的な使い方では、設定が終わると、CacheFS ソフトウェアは、ユーザーが要求しなくても自動的に適切な動作をします。最近使用されたファイルがキャッシュされます。「パッキング」機能を使用するとキャッシュ内で、特定のファイルまたはディレクトリを常に最新の状態で保持できるので、より積極的にキャッシュを管理できます。

cachefspack コマンドを使用すると、キャッシュにロードするファイルとディレクトリを指定できます。このコマンドは、これらのファイルのコピーがキャッシュで利用できることを保証します。

パッキングリストには、特定のファイル名やディレクトリ名が入っています。他のパッキングリストを入れることも可能です。この機能によって、たくさんの項目をキャッシュにパックする場合に、個々のファイルやディレクトリを指定する手間が省けます。

次のように、-h オプションを使用すると、cachefspack のすべてのオプションの簡単なヘルプ情報を出力できます。


$ cachefspack -h
Must select 1 and only 1 of the following 5 options
-d Display selected filenames
-i Display selected filenames packing status
-p Pack selected filenames
-u Unpack selected filenames
-U Unpack all files in directory 'dir'
-f Specify input file containing rules
-h Print usage information
-r Interpret strings in LIST rules as regular expressions
-s Strip './' from the beginning of a pattern name
-v Verbose option
files - a list of filenames to be packed/unpacked

キャッシュにファイルをパックする方法

ファイルをキャッシュにパックするには、cachefspack コマンドを使用します。


$ cachefspack -p filename

-p

ファイルまたは複数のファイルをパックすることを示す。このオプションはデフォルト。 

filename

キャッシュにパックするファイルまたはディレクトリの名前を指定する。ディレクトリを指定すると、そのサブディレクトリもすべてパックされる。詳細については、cachefspack(1M) のマニュアルページを参照。

例 — ファイルをキャッシュにパックする

次の例は、projects ファイルがキャッシュにパックされることを示しています。


$ cachefspack -p projects

次の例は、3 つのファイルがキャッシュにパックされることを示しています。


$ cachefspack -p projects updates master_plan 

次の例は、ディレクトリがキャッシュにパックされることを示しています。


$ cachefspack -p /data/abc/bin

パックされたファイルの情報を表示する方法

パックされたファイル情報を表示するには、 cachefspack -i コマンドを使用します。


$ cachefspack -i[v] filename

-i

パックされたファイルの情報を表示することを示す。 

-v

詳細表示オプション。 

cached-filename-or-directory

情報を表示するファイル名またはディレクトリ名を指定する。 

例 — パックされたファイルの情報を表示する

次の例は、doc_file ファイルが正常にパックされていることを示しています。


$ cachefspack -i doc_file
cachefspack: file doc_file marked packed YES, packed YES

次の例では、/data/abc ディレクトリに bin サブディレクトリがあります。bin サブディレクトリには、 bigmedium、および small という 3 つのファイルがあります。big small ファイルはパックするように指定されていますが、パックされていません。medium ファイルは正常にパックされています。


$ cd /data/abc
$ cachefspack -i bin
.
.
.
cachefspack: file /bin/big marked packed YES, packed NO
cachefspack: file /bin/medium marked packed YES,
packed YES
cachefspack: file /bin/small marked packed YES,
packed NO
.
.
.

-iv オプションを指定した場合は、指定したファイルまたはディレクトリがキャッシュからフラッシュされたかどうかに関する追加情報が表示されます。たとえば、次のようになります。


$ cd /data/bin
$ cachefspack -iv bin
.
.
.
cachefspack: file /bin/big marked packed YES, packed NO,
nocache YES
cachefspack: file /bin/medium marked packed YES,
packed YES, nocache NO
cachefspack: file /bin/small marked packed YES,
packed NO
nocache NO
.
.
.

上記例の最後の行は、ディレクトリの内容がキャッシュからフラッシュされていないことを示しています。

パッキングリストの使用

cachefspack コマンドの機能の 1 つに、パッキングリストを作成するという機能があります。

パッキングリストには、キャッシュにパックするファイルやディレクトリが入っています。ディレクトリがパッキングリストに入っている場合、そのサブディレクトリとファイルもすべてパックされます。

この機能によって、キャッシュにパックする各ファイルをそれぞれ指定するという手間が省けます。

パッキングリストを作成する方法

パッキングリストを作成するには、vi などのエディタを使用して、ファイルを開きます。パッキングリストファイルの書式は、filesync コマンドで使用する書式と同じです。詳細については、filesync(1) のマニュアルページを参照してください。

パッキングリストには、次の 2 つの機能があります。

これらの機能の使い方については、cachefspack(1M) のマニュアルページを参照してください。

例 — パッキングリストを作成する

次の例は、パッキングリストファイルの内容を示しています。


BASE /home/ignatz
LIST plans
LIST docs
IGNORE *.ps

パッキングリストを使ってファイルをキャッシュにパックする方法

パッキングリストのファイルをパックするには、次のように cachefspack -f コマンドを使用します。


$ cachefspack -f packing-list

-f

パッキングリストを使用することを示す。 

packing-list

パッキングリスト名を指定する。 

例 — パッキングリストを使ってファイルをキャッシュにパックする

この例では、list.pkg ファイルを cachefspack コマンドのパッキングリストとして使用しています。


$ cachefspack -f list.pkg

キャッシュからファイルまたはパッキングリストのパッキングを解除する

キャッシュからファイルを削除、つまりそのパッキングを解除する場合もあります。他よりも優先度が高い一部のファイルまたはディレクトリが存在する場合があるため、重要でないファイルのパッキングを解除する必要があります。たとえば、あるプロジェクトを終了して、そのプロジェクトに関連するファイルをアーカイブしたと仮定します。次は、新しいプロジェクト、つまり新しいファイルのセットで作業することになります。

キャッシュからファイルまたはパッキングリストのパッキングを解除する方法

キャッシュからファイルまたはパッキングリストのパッキングを解除するには、cachefspack コマンドの -u または -U オプションを使用します。


$ cachefspack -u filename | -U cache-directory

-u

ファイルまたは複数のファイルのパッキングを解除することを示す。このオプションを使用する場合は、ファイル名を指定しなければならない。 

filename

キャッシュからパッキングを解除するファイルまたはパッキングリストの名前を示す。 

-U

キャッシュ中のすべてのファイルのパッキングを解除することを示す。 

cachefspack コマンドの詳細については、マニュアルページを参照してください。

例 — キャッシュからファイルまたはパッキングリストのパッキングを解除する

次の例は、キャッシュから /data/abc/bin/big ファイルのパッキングが解除されることを示しています。


$ cachefspack -u /data/abc/bin/big

次の例は、キャッシュからいくつかのファイルのパッキングが解除されることを示しています。


$ cd /data/abc/bin/big
$ cachefspack -u big small medium

次の例は、パッキングリスト (ファイルのディレクトリへのパスを含むファイル) のパッキングを解除する方法を示しています。


$ cachefspack -uf list.pkg

次の例は、キャッシュディレクトリ中のすべてのファイルのパッキングが解除されるように -U オプションを使用する方法を示しています。


$ cachefspack -U /local/mycache

ファイルシステムを 1 つもマウントしていないキャッシュのパッキングは解除できません。-U オプションに対して、マウント済みファイルシステムを持っていないキャッシュを指定した場合、次のような出力が表示されます。


$ cachefspack -U /local/mycache
cachefspack: Could not unpack cache /local/mycache, no mounted
filesystems in the cache.

cachefspack エラーの障害追跡

cachefspack コマンドを使用すると、次のようなエラーメッセージが表示されることがあります。


cachefspack: pathname
 - ディレクトリをオープンできません。アクセス権がありません。
原因

ファイルまたはディレクトリにアクセスするための正しいアクセス権を持っていません。

解決法

適切なアクセス権を取得してください。


cachefspack: pathname 
- ディレクトリをオープンできません。
ファイルまたはディレクトリがありません。
原因

正しいファイルまたはディレクトリがありません。

解決法

入力ミスがないか確認してください。


cachefspack: pathname - ディレクトリをオープンできません。
NFS のファイルハンドルが無効です。
原因

アクセスしようとしたときに、ファイルまたはディレクトリがサーバーから移動または削除されていた可能性があります。

解決法

サーバー上のファイルやディレクトリにまだアクセスできることを確認してください。


cachefspack: pathname - ディレクトリをオープンできません。
システムコールに割り込みがかかりました。
原因

コマンドの実行中に間違って Control + C を押した可能性があります。

解決法

このコマンドを再度実行してください。


cachefspack: pathname - ディレクトリをオープンできません。I/O エラー
原因

ハードウェアの障害の可能性があります。

解決法

ハードウェアの接続を確認してください。


cachefspack: ディレクトリのオープンに失敗しました。
原因

正しいファイルまたはディレクトリがありません。ファイル書式中の BASE コマンドの後に指定したパスが、ディレクトリではなくファイルになっている可能性があります。指定するパスはディレクトリでなければなりません。

解決法

入力ミスがないか確認してください。ファイル書式中の BASE コマンドの後に指定したパスを確認してください。ファイルではなくディレクトリが指定されていることを確認してください。


cachefspack: 共有オブジェクトを得られません。
原因

実行可能ファイルが壊れているか、その形式を認識できません。

解決法

実行可能ファイルを交換してください。


cachefspack: filename
 - ファイルを pack できません。アクセス権がありません。
原因

ファイルまたはディレクトリにアクセスするための正しいアクセス権を持っていません。

解決法

適切なアクセス権を取得してください。


cachefspack: filename
 - ファイルを pack できません。
ファイルまたはディレクトリがありません。
原因

正しいファイルまたはディレクトリがありません。

解決法

入力ミスがないか確認してください。


cachefspack: filename - ファイルを pack できません。
NFS のファイルハンドルが無効です。
原因

アクセスしようとしたときに、ファイルまたはディレクトリがサーバーから移動または削除されていた可能性があります。

解決法

サーバー上のファイルやディレクトリにまだアクセスできることを確認してください。


cachefspack: filename - ファイルを pack できません。
システムコールに割り込みがかかりました。
原因

コマンドの実行中に間違って Control + C を押した可能性があります。

解決法

このコマンドを再度実行してください。


cachefspack: filename - ファイルを pack できません。I/O エラー
原因

ハードウェアの障害の可能性があります。

解決法

ハードウェアの接続を確認してください。


cachefspack: filename - ファイルを pack できません。
デバイス上に十分な領域がありません。
原因

キャッシュのディスク容量が不足しています。

解決法

ディスク容量を増やしてキャッシュのサイズを大きくする必要があります。


cachefspack: filename
 - ファイルを unpack できません。アクセス権がありません。
原因

ファイルまたはディレクトリにアクセスするための正しいアクセス権を持っていません。

解決法

適切なアクセス権を取得してください。


cachefspack: filename - ファイルを unpack できません。
ファイルまたはディレクトリがありません。
原因

正しいファイルまたはディレクトリがありません。

解決法

入力ミスがないか確認してください。


cachefspack: filename - ファイルを unpack できません。
NFS のファイルハンドルが無効です。
原因

アクセスしようとしたときに、ファイルまたはディレクトリがサーバーから移動または削除されていた可能性があります。

解決法

サーバー上のファイルやディレクトリにまだアクセスできることを確認してください。


cachefspack: filename - ファイルを unpack できません。
システムコールに割り込みがかかりました。
原因

コマンドの実行中に間違って Control + C を押した可能性があります。

解決法

このコマンドを再度実行してください。


cachefspack: filename - ファイルを unpack できません。I/O エラー
原因

ハードウェアの障害の可能性があります。

解決法

ハードウェアの接続を確認してください。


cachefspack: `d'、`i'、`p'、`u' オプションのどれか 1 つを指定できます。
原因

コマンドに対して上記オプションのうち複数のオプションが指定されています。

解決法

オプションは 1 つだけ選択してください。


cachefspack: 環境変数が見つかりません。
原因

構成ファイル中で $ で指定されている環境変数を設定していません。

解決法

環境変数を適切な場所に定義してください。


cachefspack: LIST コマンドをスキップします - 動作中の base はありません
原因

LIST コマンドが構成ファイル内にありますが、対応する BASE コマンドがありません。

解決法

BASE コマンドを定義してください。

CacheFS の統計情報の収集 (作業マップ)

次の作業マップは、CacheFS の統計情報の収集に関連する手順を示しています。この表に記載されている手順はすべてオプションです。

作業 

説明 

参照先 

ロギングの設定 

cachefslog コマンドを使用して、CacheFS ファイルシステムのロギングを設定する。

CacheFS ロギングを設定する方法

ログファイルの検索 

cachefslog コマンドを使用してログファイルの位置を特定する。

CacheFS ログファイルの場所を調べる方法

ロギングの停止  

cachefslog コマンドを使用してロギングを停止する。

CacheFS ロギングを停止する方法

キャッシュサイズの表示 

cachefswssize コマンドを使用してキャッシュサイズを表示する。

作業セット (キャッシュ) のサイズを表示する方法

キャッシュ統計情報の表示 

cachefsstat コマンドを使用して統計情報を表示する。

CacheFS 統計情報を表示する方法

CacheFS の統計情報の収集

CacheFS の統計情報を収集すると、次の作業を行うことができます。

これらの統計情報を使用すると、キャッシュサイズと望ましいパフォーマンスを選択して調整できます。

CacheFS 統計情報コマンドには次のものがあります。

コマンド 

マニュアルページ 

説明 

cachefslog

cachefslog(1M)

ログファイルの位置を指定します。また、このコマンドでは、統計情報が現在どこに記録されているかが表示されるので、ロギングを中止できます。 

cachefswssize

cachefswssize(1M)

ログファイルを解釈して推奨キャッシュサイズを表示します。 

cachefsstat

cachefsstat(1M)

特定のファイルシステム、またはすべての CacheFS ファイルシステムに関する統計情報を表示します。このコマンドの出力に含まれる情報は、キャッシュから直接取り出されます。 


注 –

CacheFS 統計情報コマンドは、どのディレクトリから実行してもかまいません。ただし、cachefswssize コマンドを実行するには、スーパーユーザーにならなければなりません。


CacheFS 統計の累計は、ログファイルの作成時から始まります。作業時間が終わったら、cachefslog -h コマンドを使用してロギングを停止してください。手順については、CacheFS ロギングを停止する方法を参照してください。

CacheFS 統計情報コマンドを使用する前に、次の操作を実行する必要があります。


注 –

次の手順は推奨する順序を示しています。異なる順序で作業してもかまいません。


CacheFS ロギングを設定する方法

  1. ロギングを設定します。


    $ cachefslog -f log-file-path /mount-point
    

    -f

    ロギングを設定する。 

    log-file-path

    ログファイルの位置を指定する。ログファイルは、vi などのエディタで作成する標準ファイル。

    /mount-point

    統計情報を収集するマウントポイント (CacheFS ファイルシステム) を指定する。 

  2. ログファイルを正しく設定したかどうかを確認します。


    $ cachefslog /mount-point
    

例 — CacheFS ロギングを設定する

次の例は、/var/tmp/samlog ログファイルを設定して、/home/sam ディレクトリに関する統計情報を収集する方法を示しています。


$ cachefslog -f /var/tmp/samlog /home/sam
  /var/tmp/samlog: /home/sam

CacheFS ログファイルの場所を調べる方法

オプションを指定せずに cachefslog コマンドを使用して、特定のマウントポイントに対するログファイルの場所を調べることもできます。


$ cachefslog /mount-point

/mount-point は、統計情報を表示する CacheFS ファイルシステムを示します。

次の例は、ログファイルが設定されている場合の表示を示します。ログファイルは、/var/tmp/stufflog にあります。


$ cachefslog /home/stuff
	 /var/tmp/stufflog: /home/stuff

次の例は、指定したファイルシステムのログファイルが設定されていないことを示しています。


$ cachefslog /home/zap
  	not logged: /home/zap 

CacheFS ロギングを停止する方法

ロギングを停止するには、cachefslog -h オプションを使用します。


$ cachefslog -h /mount-point

次の例は、/home/stuff に対するロギングを停止する方法を示しています。


$ cachefslog -h /home/stuff
  not logged: /home/stuff

上記の例と異なるシステム応答が表示される場合は、ロギングが正常に停止されていません。正しいログファイル名とマウントポイントを指定したかどうかを確認してください。

作業セット (キャッシュ) のサイズを表示する方法

キャッシュサイズを増やすべきかどうかを確認できます。または、特定のマウントポイントに関して前回 cachefslog コマンドを使用した後の作業に基づいて、理想的なキャッシュサイズを決定することもできます。

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

  2. 現在のキャッシュサイズとロギングされた最大キャッシュサイズを表示します。


    # cachefswssize log-file-path
    

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

例 — 作業セット (キャッシュ) のサイズを表示する

次の例で、「end size」とは cachefswssize コマンドを実行した時点のキャッシュサイズです。「high water size」とは、ロギングが発生した時間枠内のキャッシュの最大サイズです。


# cachefswssize /var/tmp/samlog
 
    /home/sam
	       end size:  10688k
	high water size:  10704k
 
    /
	       end size:   1736k
	high water size:   1736k
 
    /opt
	       end size:    128k
	high water size:    128k
 
    /nfs/saturn.dist
	       end size:   1472k
	high water size:   1472k
 
    /data/abc
	       end size:   7168k
	high water size:   7168k
 
    /nfs/venus.svr4
	       end size:   4688k
	high water size:   5000k
 
    /data
	       end size:   4992k
	high water size:   4992k
 
    total for cache
	   initial size: 110960k
	       end size:  30872k
	high water size:  30872k

CacheFS の統計情報の表示

特定の CacheFS ファイルシステムに関する情報を表示できます。次の表は、統計情報の出力時に表示される用語を示しています。

表 41–2 CacheFS 統計情報の用語

用語 

説明 

キャッシュのヒット率

キャッシュのヒット率対ミスヒット率の比と、それに続く実際のヒット数とミスヒット数。キャッシュヒットは、ユーザーがファイル操作を実行したいときに、そのファイルが実際にはキャッシュ内にあると発生する。キャッシュのミスヒットは、ファイルがキャッシュにないときに発生する。サーバーにかかる負荷は、キャッシュのミスヒット数、整合性チェック数、および変更数の合計である 

整合性チェック

実行された整合性チェックの回数、合格回数、不合格回数 

変更数 (modifies)

変更操作の回数。書き込みや作成など 

CacheFS 統計情報を表示する方法

cachefsstat コマンドを使用して統計情報を表示します。この操作はいつでも実行できます。たとえば、ロギングを設定しなくても統計情報を表示できます。


$ cachefsstat /mount-point

/mount-point は、統計情報を表示する CacheFS ファイルシステムを示します。

マウントポイントを指定しなければ、マウントされているすべての CacheFS ファイルシステムに関する統計情報が表示されます。

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

例 — CacheFS 統計情報を表示する

この例は、キャッシュされたファイルシステム /home/sam に関する統計情報の表示方法を示しています。


$ cachefsstat /home/sam
	    cache hit rate: 73% (1234 hits, 450 misses)
	consistency checks: 700 (650 pass, 50 fail)
	          modifies: 321
garbage collection:  0