Solaris のシステム管理 (第 1 巻)

キャッシュの管理

キャッシュを設定し終わったら、次の管理作業を実行できます。

キャッシュ内でファイルシステムを変更する方法

ファイルシステムの特定のオプションを変更する方法については、第 28 章「ファイルシステムのマウントとマウント解除の手順」を参照してください。キャッシュ内でファイルシステムを変更する場合は、キャッシュを削除してから作成し直す必要があります。また、ファイルシステムの共有方法とアクセス方法によっては、マシンをシングルユーザーモードでリブートしなければならない場合があります。

次の例は、この手順を示しています。

例 - キャッシュ内でファイルシステムを変更する

次の例では、キャッシュが削除されてから再び作成され、ファイルシステム /docs に指定された demandconst オプションを使用して再びマウントされます。この例は、シングルユーザーモードでリブートするなどの手順を示しています。必要であれば他のコマンドを使用して、この例の作業を実行することもできます。


$ su
password:
 
# shutdown -g30 -y
.
.
.
Type Cntrl-d to proceed with normal startup,
(or give root password for system maintenance):
# enter password:
.
.
.
Here is where you may be prompted from system 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 
#

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

cachefsstat: /doc: not a cachefs mount point

キャッシュされたファイルシステムに関する情報を表示する方法

  1. スーパーユーザーになります。

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


    # cfsadmin -l cache-directory
    

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

例 - キャッシュされたファイルシステムに関する情報を表示する

次の例は、キャッシュディレクトリ /local/mycache に関する情報を示しています。この例では、ファイルシステム /docs/local/mycache にマウントされています。最終行にはキャッシュされたファイルシステムが表示されます。


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

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

  1. スーパーユーザーになります。

  2. 次のように mount(1M) コマンドの demandconst オプションを指定して、ファイルシステムをキャッシュにマウントします。


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

  3. キャッシュされた特定のファイルシステム上で整合性チェックを有効にするには、次のように -s オプションを指定して cfsadmin(1M) コマンドを使用します。


    # cfsadmin -s  /mount-point
    

    整合性チェックについての詳細は、「キャッシュされたファイルシステムとバックファイルシステムとの整合性チェック」を参照してください。

キャッシュされたファイルシステムを削除する方法

  1. スーパーユーザーになります。

  2. キャッシュ内のすべてのファイルシステムをマウント解除します。


    # umount mount-point
    

    mount-point には、削除したい、キャッシュされたファイルシステムを指定します。

  3. 次のように、cfsadmin -l の出力からキャッシュ 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. キャッシュされたファイルシステムを指定したキャッシュから削除します。


    # cfsadmin -d cache-id cache-directory
    

    cache-id

    キャッシュされたファイルシステム名。この名前は、cfsadmin -l コマンドからの出力の最終行に表示される。詳細は、「キャッシュされたファイルシステムに関する情報を表示する方法」を参照。cache-idall を指定すると、特定のキャッシュに書き込まれたすべてのファイルシステムを削除できる

    cache-directory

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

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

    削除したファイルシステムのキャッシュ ID は、次のコマンドの出力に含まれなくなります。コマンド出力で指定するフィールドの詳細は、cfsadmin(1M) のマニュアルページを参照してください。


    # cfsadmin -l cache-directory
    cfsadmin: list cache FS information
       maxblocks     90%
       minblocks      0%
       threshblocks  85%
       maxfiles      90%
       minfiles       0%
       threshfiles   85%
       maxfilesize    3MB
    # 

例 - キャッシュされたファイルシステムを削除する

次の例では、キャッシュされたファイルシステムをマウント解除して、キャッシュから削除します。


# umount /usr/openwin
# cfsadmin -d merlin:docs /docs /local/mycache

次の例では、/local/mycache キャッシュ内のキャッシュされたファイルシステムをすべて削除します。


# cfsadmin -d all /local/mycache

キャッシュされたファイルシステムの完全性をチェックする方法

fsck(1M) コマンドを使用して、キャッシュされたファイルシステムが完全かどうかを確認します。何も操作しなくても、fsck の CacheFS バージョンによって問題が自動的に解決されます。キャッシュされたファイルシステムの場合は、fsck を手作業で実行する必要はありません。fsck は、ブート時またはファイルシステムのマウント時に自動的に実行されます。完全性を手作業で確認したい場合は、次の手順を使用できます。

詳細は、fsck_cachefs(1M) を参照してください。

  1. スーパーユーザーになります。

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


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

    -m

    fsck にキャッシュされたファイルシステムをチェックさせるが、修復しない

    -o noclean

    キャッシュされたファイルシステム上でチェックのみを実行させるが、修復しない 

    cache-directory

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

例 - キャッシュされたファイルシステムの完全性をチェックする

次の例では、/local/mycache キャッシュの一部になっているキャッシュされたファイルシステムをチェックします。


# fsck -F cachefs /local/mycache
#