[an error occurred while processing this directive]

(Illustration by Gaich Muramatsu)

Coda File System

Home Downloads
(インフォサイエンス)
Bugs Documentation
News Mailing lists FAQ Research
 
---------

次へ 戻る コンテンツ


4. Coda の機能

4.1 サーバの再起動

サーバでは volutil shutdown コマンドでサーバを停止します。本当にトーストされると、codasrv プロセスを kill する必要があります。

サーバを再起動するためには、startserver コマンドを出します。このシェル・スクリプトは正しい引数で codasrv を立ち上げます。 もしサーバが既に走っていることについて言われたら、以下を行ってください: この場合には ps auxww | grep codasrv で最初にチェックしてください。そうでなければ、/vice/srv/pid ファイルを外して、startserver コマンドを再実行してください。

4.2 より多くのボリューム

サーバに 2、3 の特別なボリュームを作って、coda のディレクトリツリーにマウントする良い方法があります。特に、整復の調査、コンフリクトの解消、サーバの複製をしたい場合には、Coda のファイルシステムの root にマウントされているボリュームではなく、新しいボリュームでそれを行うことを勧めます。

新しいボリュームの作成:

  1. codasrv と updatecln と updatesrv が走っているのを確認してください。
  2. createvol_rep volname vsgaddr partitionname を入力してください。普通、自身のボリューム名、/vice/db/VSGDB にある VSG アドレス、/vicepa になるパーティション名を決めます。
  3. cfs makemount path volumename を使ってボリュームをマウントします。これはマウント・ポイントを作って、ボリュームをマウントします。

ボリュームを調べるためには、cfs whereis pathcfs listvolume path のような他の cfs コマンドを使います。ファイルタイプ cfs getfid path の FID を見ます。

4.3 ユーザの追加

5.2 のリリースでは、ユーザ・データベースを管理するツールを持っています。必要最低限のことですが、階層型グループのようなものをハンドルして、古いツールよりも改善されています。

  1. SCM で pdbtool を走らせます。コマンドのヘルプを見るには、引数なしでコマンドを実行します。pdbtool については、manpage で調べることもできます。
  2. nui コマンドでユーザとユザ id を追加します。
  3. グループにユーザを追加します。
  4. au nu プログラム(クライアントかサーバから)を使って新しいユーザにパスワードを与えます。

インストール時のユーザセットアップのように、ユーザが Coda にログインできるはずです。

注: ユーザ・データベースの pre 5.2 バージョンからの入れ替えは pwdtopdbtool ツールで行われます。このスクリプトは引数なしで古いデータベースを新しいものに入れ替えます; 新しいデータベースを上書きします!

4.4 ACL

cfs setacl dir user rights [user rights...] を使って、ディレクトリにあるアクセス制御リスト(ACL) を設定して列挙することができます。ACL を表示するには cfs listacl directory を入力します。

4.5 Coda の監視

多くの RPC と、クライアントによる 2、3 の動作を見るには codacon を使います。/usr/coda/etc/console ファイルは面白い情報を持っています。

サーバが cmon を使って何をしているのかを見るには、cmon server:25 のフォームでは、サーバに使われるコラムの幅を 25 で表します。

4.6 Coda の切断と再構築

まず root ボリュームではない新しいボリュームを作って、これを調べます。root ボリュームでコンフリクトがあると回復が難しくなります。ボリュームの追加については以下を見てください。

  1. このボリュームに cd します。切断の間に開始させたいディレクトリで "ls -l" を実行してください。 clog. を使ってトークンを得ます。
  2. cfs disconnect を入力するか、ネットワークを切断します。30 秒後に、サーバと繋がっていないことを codacon(常に走らせておくべきです)が示します。
  3. 切断作業をして、いくつかのファイルを作り、それを編集する等してください。
  4. cfs reconnect を実行します。Venus はネットの回復を探知しますが、cfs checkservers を入力することにより、それを素早く行うことができます。codacon を監視して、変更が再構成されているのを確かめてください。

切断している間に Coda を開始するには、/etc/hosts にサーバの IP アドレスとホスト名が必要です。

4.7 コンフリクトの修復

二つのクライアントで open/write/close のシーケンスが重なるだけでなく、ネットからクライアント、またはサーバが切断されたせいでファイルとディレクトリがコンフリクトになります。コンフリクトにあるオブジェクトは、宙に浮いたシンボリック・リンクとして示され、X->@vol.vnode.unique がシンボリック・リンクに指すファイルになります。

このコンフリクトの rid をどうやって入手しますか?

  1. cfs beginrepair X を実行します。これはシンボリック・リンクからディレクトリに X を変更します。ls X すると、local globalserver1 server2 server3 が見えます。前者の場合ローカルとグローバルのコンフリクトで、後者の場合サーバとサーバのコンフリクトです。
  2. ディレクトリにあるオブジェクト X がファイルならファイルのコンフリクトになり、コンテンツが中にあるディレクトリになります。
  3. もし気になるなら、ファイルのコピーを作る良いチャンスです。修復セッションが進行している間に、X ディレクトリで探すことができます。
  4. cfs endrepair X で修復セッションを終了します。
  5. 全てのローカル、グローバルのコンフリクトは repair で修復されます。repair を実行して、以下の指図に従います。
  6. ファイルのサーバとサーバのコンフリクトは filerepairremoveinc で修復されます。ディレクトリのサーバとサーバのコンフリクトは repair で修復されます。

4.8 複製

まず、Coda のクラスタに二番目のサーバを追加します。ソフトウェアをインストールして vice-setup を再び使います。 この時サーバは SCM にはなりません。完了するまで質問に答えてください。

SCM で以下を追加:

  1. SCM/vice/db/servers ファイルを追加するために、サーバはサーバ番号が必要です。
  2. /vice/db/VSGDB ファイルに二つの新しいエントリを作ります。 単独で新しいサーバの一つで、フォームは: E0000104 scm-server second-server.
  3. 二番目のサーバで updatesrv と updateclnt を開始します。
  4. 二番目のサーバで codasrv を開始します。
  5. E0000104 としてボリュームのアドレスを与えて createvol_rep を使って SCM から新しいボリュームを作ります。
  6. 上のようにボリュームをマウントします
このボリュームを使うことができて、ファイルは自動的に複数のサーバに保存されます。一時的にサーバを使えないようにするために、作業を普通に行うことを確認して、volutil shutdown でサーバをシャットダウンするか、ネットワークを切断します。filcon isolate -s server-name でネットワーク・フィルタを使って、サーバを隔離することもできます。フィルターを消すには filcon clear server-name を使います。

ファイルが最初にアクセスされたときに、サーバの停止が解析されている間に coda ファイルの修正が行なわれます。codacon の出力に Resolve path のメッセージが現われます。cfs checkservers を実行することにより、サーバが再び利用可能かどうかを調べます。


次へ 戻る コンテンツ

---------
詳しくはメールで

このページの情報に関わる、ご質問、お問い合わせは、 japache@infoscience.co.jpまで。
Coda ホームページ