[an error occurred while processing this directive]

(Illustration by Gaich Muramatsu)

Coda File System

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

Next Previous Contents


7. Coda サーバのインストール

7.1 はじめに

Coda のセルは、全てから信頼される、マスターになるセットの一つか、SCM サーバです Coda のデータベースに対する重要な修正は、全て SCM で行なわれ、それ以外は SCM が通常の Coda サーバの役割を果たします。 それから、updateclt/updatesrv デーモンは SCM から他のサーバに変更を伝えます。

まず、SCM をセットアップしなければなりません。 この章は、3つの章から構成されます: バイナリのインストール、vice-setup という設定スクリプトを使ったシステムの設定 (SCM と SCM 以外のサーバに対して)、そしてサーバを手動でセットアップするために必要な詳細です。 まず、サーバをセットアップするための概要について記述します。

復元可能な仮想メモリー

サーバを再起動している間に矛盾したステートで、データが失われないか、残るようにするために、 Coda は Coda サーバのメタ・データのシステム・ステートを維持するためのトランザクション・システムである 復元可能な仮想メモリー (RVM) を使っています。RVM は RVM ログとトランケーションに修正を書き込むか、 再起動で RVM データファイルにその修正を組み込みます。RVM のログとデータファイルは、完全に生パーティションで保持されます。

注: これを仮想メモリーと混同してはいけません。

起動時に Coda サーバは Coda システム・ステートをレストアするために RVM を使います。 この機能を効果的に使うためには、自身のディスクにあるログ・パーティションのパフォーマンスを最適にするべきでしょう。 しかし、他のディスクのパーティションとログ・パーティションやログファイルの使用を共有することで、ディスクは 最適パフォーマンスのロスに対応した使い方ができます。RVM について詳しくは XXX を見てください。

サーバ・ディスクの構成

Coda サーバは、最適なパフォーマンス(1つは RVM ログのための生パーティション、もう1つは RVM データと Coda にデータを貯めるファイルを 持つ、通常の Unix ファイルシステム)とデータ・セキュリティ、偶発的な削除を避けるために、最低2つのディスク・パーティションを 必要とします。RVM ログ・パーティションで更なるパフォーマンスを得るためには、ログ操作でのディスク・シークタイムを減らす主要部移動 レイテンシを避けるために、それ自身のディスクにするべきです。任意で、/vice が別のパーティションになるのは、 別パーティションで /var を持つのと同じ理由です。

しかし、他の設定になるかもしれません。 パフォーマンスのロスやデータ・セキュリティの点で、通常の Unix ファイルとして貯えられた RVM データとログ情報を持つ場合です。 また、例えば、もし一つ以上の保存データ領域が Coda サーバに必要とされると(デフォルトのディレクトリは /vicepa です)、 追加の保存領域は別のパーティションで(デフォルトの /vicepa とは異なるパーティションで、初期のデータ保存領域は Coda の下です)、 /vicepb としてマウントされなければなりません。

以下の表はそれぞれの目的、マウントポイント、一般的なサイズ、一貫性のチェック・プログラムについて、 Coda サーバのディスク・パーティションを示しています。注意して欲しいのは、これらのパーティションのサイズは、 CMU-SCS にある Coda サーバの一つから取ったものだということです。


Partition
Storage PurposeMountedTypical SizeWhether fscked
hda2RootandUser File System/650MBYes
hda5Var file system/var100MBYes
hda3Vice File System/vice300MBYes
hdc1RVM LogNot12MBNo
sda1RVM DataNot130MBNo
sda2Coda FS Data0/vicepa1.6GBYes
sda3Coda FS Data1/vicepb1.6GBYes
sda5Coda FS Data2/vicepc1.6GBYes
Coda サーバのパーティション例

7.2 Coda の入手

現在、バイナリとソース・パッケージは、以下の ftp サイトから入手できます。

( ftp://ftp.coda.cs.cmu.edu/pub/coda/<platform>)

CMU ユーザのための Coda プロジェクトのローカル Coda サーバは(/coda/project/release/objs/<platform>)。 上記のベースディレクトリから、各プラットフォーム用の Coda バイナリは:

linux/<coda-release>/{i386,sparc,coda-fs-module,SRPMS} # For Linux
freebsd/<coda-release>/<OS_RELEASE_VERSION>/i386          # For FreeBSD
netbsd/<coda-release>/<OS_RELEASE_VERSION>/i386        # For NetBSD  

<coda_release> は Coda のバージョンを参照し、<OS_RELEASE_VERSION> は OS のバージョンを参照します。 例えば、i386 FreeBSD 2.2.5 で Coda release 4.3.13 が欲しいなら、正しいプラットフォームのディレクトリは: fbsd/4.3.13/2.2.5/i386/、i386 Linux なら:linux/4.3.13/i386/、i386 NetBSD 1.3 なら: netbsd/4.3.13/1.3/i386/。詳しくは Coda を入手するディレクトリのトップにある LAYOUT で 確認してください。しかし、以下のファイルは、各種のプラットフォームで必要とされます:

Linux

coda-debug-server-<release>.i386.rpm 
coda-doc-<release>.i386.rpm
coda-debug-backup-<release>.i386.rpm

Coda プロジェクトは Red Hat (5.X かそれ以上) の glibc (GNU C Library) バージョンをサポートしています。 古い Linux で標準の Lib C のサポートは現在していません。ですが、Coda は大抵の Linux システムで作動します。

FreeBSD と NetBSD

coda-server-<release>.tgz 
coda-doc-<release>.tgz

7.3 Coda サーバのインストールと設定

現在、Linux と NetBSD と FreeBSD をサポートしています(CMU-MACH はサポートしていません)。 Linux では、rpm をサポートしています。NetBSD 1.3+、FreeBSD 2.X とそれ以上については、 パケージシステムがサポートされています。

TIP: (ftp://ftp.coda.cs.cmu.edu/pub/coda/<platform>) で INSTALL.<platform> を確認してください。マニュアルに反映されていない変更や更新があります。

Coda サーバのバイナリとドキュメントのインストール

現在サポートしているプラットフォームでは、以下のようにインストールされます:

Linux

ファイル/バイナリを /etc/usr/bin/usr/sbin にインストールします。

FreeBSD

ファイル/バイナリを /usr/local/etc/usr/local/bin/usr/local/sbin にインストールします。

NetBSD

ファイル/バイナリを /usr/pkg/etc/usr/pkg/bin/usr/pkg/sbin にインストールします。

注: PATH 環境変数がプラットフォームに適切に設定されているのを確認してください。 FreeBSD なら /usr/local/{bin,sbin}、NetBSD なら /usr/pkg/{bin,sbin} がデフォルトのパスです。 Linux でデフォルトのシステム・パスに Coda をインストールするなら、デフォルトのパスを変更する必要はありません。

全てのプラットフォームで使われるディレクトリは: Coda の設定とデータベースのサポートに使われる /vice です。 PATH には必要ありません。

バイナリとドキュメントをインストールするための段階は:

Linux

rpm -Uvh coda-debug-server-<release>.i386.rpm
rpm -Uvh coda-doc-<release>.i386.rpm

NetBSD と FreeBSD

インストール手順は両方のプラットフォームで同じです(両プラットフォームとも GNU tar を使っているものとします):

pkg_add coda-server-<OS_RELEASE_VERSION>-<coda_release>.tgz
tar zxfv coda-doc-<release>.tgz -C /usr/share
NetBSD は NetBSD パッケージでは異なる場所を使うことに気をつけてください(/usr/local の代わりに /usr/pkg)。 NetBSD で /usr/pkg/{bin,sbin} のパスを通してください。

Coda サーバの設定

サーバ・セットアップは全てのプラットフォームに対して共通です。

はじめに

/vice ディレクトリがなければ、セットアップ・スクリプトによって自動的に作られます。 しかし、root パーティションが十分な追加スペースを持っていなければ(例えば SrvLog ファイルは、ある環境下では +10MB になります)、 /vice としてマウントされるパーティションを作ってやる必要があります。セットアップ・スクリプトを実行する前に、 通常の Unix ファイル・システムとしてパーティションをフォーマットして /vice というマウント・ポイントを作り、 /etc/fstab にパーティションとマウント情報を追加して、手動でマウントします。

代わりに、/vice は十分なスペースのある、存在するパーティションのディレクトリへのシンボリック・リンクになることもできますが、 セットアップ・スクリプト vice-setup を走らせる前に作らなければなりません。 /vice 以下で必要となるサブディレクトリは、vice-setup によって作られます。

SCM のセットアップは、SCM 以外のセットアップとはいくつかの重要な点で異なります。ですので、vice-setupが: Will this machine will be the SCM? とたずねたら、質問に正確に答えるのがとても重要になります。

唯一 SCM だけが Coda セルごとにセットアップされて、Coda はこの時にマルチ・ホーミングのセルをサポートしていません。

vice-setup が SCM と非 SCM サーバの両方に共通な部分をセットアップしている間に、 Is this the SCM? という質問に yes と答えることにより、スクリプトのセットアップは:

SCM Setup

vice-setup

vice-setup-scm
vice-setup-user
vice-setup-rvm
vice-setup-srvdir
no と答えることにより呼ばれるスクリプトのセットアップは:
non-SCM Setup

vice-setup

vice-setup-rvm
vice-setup-srvdir
上記の順番です。

Coda サーバのセットアップ

もしこれが Coda セルにセットアップされる最初の(あるいは唯一の)サーバなら、 vice-setup に尋ねられたときに yes と答えることで、``SCM''としてセットアップされなければなりません。 SCM は Coda のデータベース、Coda に蓄積されるデータ・トラックを維持するのに必要なグローバルの設定ファイルと 同期するように調整します。また SCM は Coda ユーザの認証も調整します。

データベースのコピーを維持しているが、Coda セルを構成しているマシンの後には分配しない非 SCM のサーバを追加したいなら、 no と答えてください。

上記の違いの他に、SCM は Coda のセルでは特別な役割がなく、マルチ・マシン・セルサイトではサービスを拒否することなく 短い時間で実質的にダウンします。しかし、一つだけ SCM を持つのは非常に重要なことです。

注: 走っているサーバは本気でシステムの仮想メモリに手をつけます。 Coda サーバで Coda クライアントと X11 を走らせると、利用できる VM である 64 MB を超えてしまうのが Coda グループによって観察されています。 top コマンドを使うとメモリー、cpu、プロセスの動作に関する情報が得られます。 ですので、Coda サーバで Coda クライアントを走らせるのはお勧めできませんし、サーバのパフォーマンスの管理するときだけ X を 走らせるのが良いでしょう。

SCM Coda サーバをセットアップするか、存在する Coda セルにサーバを追加したら、セットアップ・スクリプトを走らせる前に以下の項目が 満たされるようにしてください:

  1. ファイルサーバがユーザファイルを置く空ディレクトリ ( /vicepa )。 /vicepb で必要とされるように、存在するサーバのファイルサーバに対して一つ以上のストレージが必要とされると、 追加スペースは /vicepa とは別のパーティションでなければなりません。
  2. RVM メタデータに対する生パーティション(ファイルを使うことはできますが、中規模、大規模サーバでは遅くなります)。 このパーティションは /vicepa 下に保存したいトータルなファイル・サイズの約4%でなければなりません(すなわち、3.3GB のサーバでは約 130M rvm データを 使います)。最小で 10M だと考えて下さい。
  3. ログ・パーティション。自身のディスクにあるのが望ましいです。 大きくする必要はありません(vice-setup-rvm スクリプトによって与えられる設定の最大値は 3.3GIG ですが、 デフォルトの 12 MB で十分です。)
  4. 8 文字ちょうどの(例えば elephant)、2つのシークレット・トークン。 RVM ファイルは Coda の journalling/transactional な側面とサーバと、 SCM 自身が更新した時のループバック・デバイス間の RVM ファイルの情報との通信を伴います。 トークンはイントラのサーバ通信をセキュアにするために使われます。
  5. root パーティションに /vice を持つ十分な大きさがなければ、 はじめにに記述してあるセットアップを試してください。

一旦上記の項目を有効にしたら、実行します:

vice-setup

Coda サーバをセットアップのに``canned''設定がいくつかあります。その上、以下の質問をしている間には、 たくさんの舞台裏があります(例えば、もし /vice ディレクトリがなければ、そのディレクトリを作って backup db srv vol bin というサブディレクトリを容易します):

Enter a random token for auth2 authentication (auth2 認証のためにランダムなトークンを入力してください) :

これは 8 文字長でなければなりません。バグがまだ完全に修正されていないせいです。

Enter a random token for volutil authentication (volutil 認証のためにランダムなトークンを入力してください) :

これは 8 文字長でなければなりませんが、auth2 トークンとは異なります。 バグがまだ完全に修正されていないせいです。

Do you want to start the server at boot time? (y/n) (ブート時にサーバを起動しますか?)

この質問に y と答えると、/vice/srv/STARTFROMBOOT というファイルを作ります。これは、 ブート時にサーバを起動する rc.vicevice.init のどちらかがなければなりません。 このファイルを削除すると、ブート時に Coda サーバが立ち上がらないようになります。

Is this the master server, aka the SCM machine? (y/n) (これはマスター・サーバ、すなわち SCM マシンですか?)

Coda セルに初めて Coda マシンがセットアップされる場合には "yes" と答えてください。 既に存在する Coda セルにサーバを追加するなら、"no" と答えてください。

上記の問いに``no''と答えると、存在する SCM の HOSTNAME を尋ねられます:

``yes''と答えれば、メッセージが現われます:

An initial administrative user "admin" with password "changeme" now exists
(初期管理ユーザ"admin"のパスワードは"changeme"です)

そして Are you ready to setup up RVM? (RVM をセットアップする準備ができましたか?) と聞かれます。

上記の問いに``no''と答えると、存在する SCM の HOSTNAME を尋ねられます:

Enter the hostname of the SCM machine (SCM マシンのホスト名を入力してください):

この質問は、マシンが SCM でないときだけです。 入力されたホスト名は、Coda のセル・データベースとグローバルな設定ファイルを配布する SCM のものでなければなりません。

Are you ready to set up RVM? [yes/no] (RVM をセットアップする準備はできていますか?)

この質問に yes と答えるか、セットアップは終了します。

What is your log partition? (ログパーティションは何ですか?)

RVM はローカルディスクにある Coda の仮想メモリーのコピーを維持するために使われる回復可能な仮想メモリー (Recoverable Virtual Memory) です。 これはファイルにもなりますが、ディスクに小さなパーティションを持っていなければなりません。 もし無視するなら、例えばログパーティションとして Linux では /dev/sdc1 をプロンプトでパーティションのデバイス名を入力します。 *BSD システムでセットアップするなら、生パーティション名を入力します。例えば、/dev/sd2e を使うなら、 生デバイス名 /dev/rsd2e を入力しなければなりません。私たちがテストした最大テンプレートサイズは 30MB です。

What is your log size? (enter as e.g. '12M') (ログサイズの大きさは?(例:12M))

ログパーティションはトランザクション記録を保存します。 まだ Coda のデータ・パーティションに書き込まれていないかもしれない Coda ボリュームのアップデートのためです。 30MB 以上の値はテストを行っておらず、お勧めできません。 中小規模のサーバなら、12MB が適当でしょう。値の入力は 12 メガバイトなら 12M あるいは 12288 のように入力します。詳しい説明についてはデータ・パーティションを見てください。

What is your data partition (or file)? (データパーティション(あるいはファイル)は何ですか?)

パーティションかファイルを指定します。 他のシステム・パーティションを置くことができるパーティションでなければなりません。 パーティションを使っているなら、何もファイルシステムを持っていない"raw" で使っているのを忘れないでください。 また、Linux を使っているなら、/dev/sdc1 のようなブロック・デバイスを入力できます。 *BSD システムなら、/dev/rsd2e のような生デバイスを指定してください。

What is the size of you data partition (or file) [22M,44M, 90M, 130M]: " (データ・パーティション(あるいはファイル)のサイズは幾つですか?)

RVM データ・パーティションのサイズを指定します。22M44M90M130M の4つに分かれています。これは、起動時に codasrv へ入力されなければならないデフォルトのパラメータに関連しています。 以下はデータ・ストレージ全体に対するログサイズです:

異なるデータログサイズとデータ・ストレージ領域については、ログ・パーティション に詳しく書いてあります。

Proceed, and wipe out old data? [y/N] (続いて、古いデータを消去しますか?)

WARNING

RVM ログと RVM データ・パーティションに間違った入力をすると、システムにダメージを与えます。 入力は正確に行ってください!

これは、セットアップ・スクリプトによる実行前の、ラストチャンスです。 構わない場合は y を、中止する場合は N を入力してください。

Where shall we store your data [/vicepa]? (データ [/vicepa] をどこに保存しますか?)

Coda の以前の開発バージョンでは /vicepa を必要としていました。 このバージョンでは違います。デフォルトとは違う名前を指定することができます。 しかし、venus と混同する /code のような名前はお勧めできません。

一旦、vice-setup を終了します:

SCM サーバのセットアップ

ファイルサーバだけでなく、アップデート・サーバ、アップデート・クライアント、認証サーバを起動する準備をします。

Linux:

/etc/rc.d/init.d/update.init start
/etc/rc.d/init.d/auth2.init start
/etc/rc.d/init.d/codasrv.init start

FreeBSD:

/usr/local/sbin/auth2 &      
/usr/local/sbin/updateclnt -h `cat /vice/db/scm`  -q coda_udpsrv &
/usr/local/sbin/updatesrv -p /vice/db &

NetBSD:

/usr/pkg/sbin/auth2 &           
/usr/local/sbin/updateclnt -h `cat /vice/db/scm`  -q coda_udpsrv &
/usr/local/sbin/updatesrv -p /vice/db &

最終段階では SCM サーバの機能を make する必要があります。your-root-volume に代わって vice-setup で 指定した root ボリュームを使ってください。この段階ではクラアントのソフトウェアでマウント可能なボリュームを作ります。

       createvol_rep your-root-volume E0000100 /vicepa

一旦これを行って、ログを見てサーバが起動したのを確認してください:

 xterm -e tail -f  /vice/srv/SrvLog &

もし非 SCM サーバなら

まず auth2、updatesrv、updateclnt を起動します:

Linux:

/etc/rc.d/init.d/update.init start
/etc/rc.d/init.d/auth2.init start

FreeBSD:

/usr/local/sbin/auth2 -chk &      
/usr/local/sbin/updateclnt -h `cat /vice/db/scm`  -q coda_udpsrv &
/usr/local/sbin/updatesrv -p /vice/db &

NetBSD:

/usr/pkg/sbin/auth2 -chk &           
/usr/pkg/sbin/updateclnt -h `cat /vice/db/scm`  -q coda_udpsrv &
/usr/pkg/sbin/updatesrv -p /vice/db &

Coda セルに加わるためにこのサーバに必要とされるように、 新しいサーバがまず /vice/db/ROOTVOLUME/vice/db/VRList のようにカレントのサーバファイルを 得るようになります。一旦これらのファイルが読み出されたら、以下のようにして手動でサーバを起動できます:

Linux:

/usr/sbin/startserver &

FreeBSD:

/usr/local/sbin/startserver &           

NetBSD:

/usr/pkg/sbin/startserver &        

一旦これを行って、ログを見てサーバが起動したのを確認してください:

 xterm -e tail -f  /vice/srv/SrvLog & 
注: 上記の SCM、非 SCM サーバ間の違いは小さくありません。

codasrv プロセスが正しく起動すると、``File Server started''というメッセージがでます。 もし出ないなら SrvLog にあるメッセージを見て原因を特定する必要があります。 それでわからなければ、サーバを殺してください (注:サーバは起きたままになるようになっているので、gdb はデバッグするためにアタッチされます):

kill -9 `cat /vice/srv/pid`
そしてサーバを再起動します:
startserver -d 10 &

基本的なトラブル・シューティング、その他

始めに、サーバが立ち上がっているかどうか、top あるいは ps を使って updatesrv と updateclnt が 走っているのを確認してください。

注:

bc パッケージが必要です(サーバにあるバイナリ・カルキュレイター)。 あなたの OS とそのソフトウェアを含んだ、私たちの ftp サイトかミラーサイトから入手できます。

注2:

E0000100 は SCM をセットアップしている時の、vice-setup による ボリューム・ストレージ・グループのセットアップです。 より多くのサーバと共に、/vice/db/VSGDB で他のグループを定義します。

一旦これが終わって、クライアント機をセットアップして Venus を走らせて、venus がこのサーバを指すようにします。 venus でのクライアント機のセットアップについては、次の章に記述してあります。 テストで動作が確認された Coda サーバがクライアントから動いたら、もっとたくさんのボリュームとユーザを adduser する準備をします!

注: カレントの vice-setup-user スクリプトのカレント制限は、必要とされる初期管理アカウントは、Coda の uid が 500 になります。 クライアントがユーザ認証をするために、ユーザは UNIX のパスワード・ファイルで user-id と一致するものがなければなりません。 ローカル uid スペースと組みになっている、管理者アカウントの uid を変更するなら、vice-setup-user スクリプトを 編集して、デフォルトの Coda の uid を変更してスクリプトを再び走らせてください。 これは SCM をセットアップしているときだけ用います。

そうではなくて、これが非 SCM サーバならテストのために新しいサーバで単一レプリカのボリュームをセットアップすることも 考えられます。

7.4 vice-setup の下では

この章には、vice-setup が何をしているのかを記述します。 ここにある情報は、デフォルトの vice-setup スクリプトをカスタマイズしたり、Coda のセットアップ・スクリプトにはないような、 カスタムのサーバ・セットアップをするときに役に立ちます。

RVM 初期化

RVM の初期化は、それぞれ交互に使用するいくつかのパラメータの選択が必要です。 RVM のログとデータは通常の UFS ファイルとして管理されますが、これはお勧めできません: 生パーティションはパフォーマンスの利点だけでなく、データの一貫性の保証を強く維持します。 まず、紙で RVM パーティションを考え出すのが良いでしょう。 vice-setup スクリプトにある値を使いたくない場合、 全体的なディスク使用だけでなく RVM のパフォーマンスも考慮する必要があります。

ログ・パーティション

ログ・デバイスのサイズは利用できるスペースを基にしており、トランケーションを伴ってコマンドを出します。 操作のヒストリに長くアクセスできる、大きなログは切り捨てられる頻度が少なくなっていますが、 それぞれのトランケーションは長い時間を取っています。 短いログはしばしば切り捨てられますが、それぞれのトランケーションは少ない時間になっています。 また、ログサイズはサーバ起動時間と強く関係している。 二つの UNIX パーティションにある 3.2 GIG のストレージ・サイズで、私たちは 90 M のログサイズを使っています (安全を考えて、RVM ログ・パーティションのエンドにちょっとだけスペースを持つようにするのを勧めます。 RVM はあなたが指定した量に、一つ余分なページを自動的に追加するからです。) vice-setup スクリプトにはいくつかのデフォルト値があり、最大で 130MB です。 推奨値で専用パーティションを使うなら、130MB のパーティションは、例え初期値が 22M だけであったとしても、 大きな空きができるでしょう。

ログは rvmutl で初期化されます。rvmutl のプロンプトで、i コマンドを使って、 それからログ・セグメントのサイズを指定します。サイズの指定では、メガバイトなら M、キロバイトなら K を使います。 For example, to initialize a log on partition 0g to eight megabytes:

# @B(rvmutl)
* i
Enter name of log file or device: /dev/sdc1
Enter length of log data area: 22M
* q

データ・パーティション

データ・セグメントには、ボリューム・ヘッダ、Coda ディレクトリ、vmond リスト、レゾリューション・ログ等の システムのメタ・データがあります。データ・セグメントのサイズは、ファイルサイズのディスク・スペースに依存します。 つまり、/vicep? パーティションのサイズです。ヒッチハイクの掟では、回復可能なストレージのファイルデータ・スペース全体の 役 3-5% が必要です。多くの環境下では 4% が妥当でしょう。私たちのシステムでは、データセグメントは、約 3.2 ギガバイトの ディスク・スペースに対して 90 メガバイトです。この値を小さくすることによって、サーバの起動時間を短縮することができます。 しかし、RVM データ・パーティションを使い切ったら、システムを再初期化するハメになります。計画を立てましょう。

初期化(あるいは再初期化)では、いくつかのパラメータが必要です。第一に、アドレス空間に回復可能なセグメントの開始アドレスです。 私たちのサーバでは、インテルのアーキテクチャの Linux と BSD の両方で 0x20000000 の RVM セグメントから開始します。 二番目に、回復可能なヒープを与えるための空間です。ヒープは使用を超えると成長しますので、計画的にしてください。 私たちのヒープは 0x1000000 です。静的な領域に 1Meg (0x100000) を使うには、最後のパラメータには 80 free lists (or nlists) と 32 のチャンクサイズを使うと良いでしょう。これらの番号はファイルサーバの内部構成に対して働き、vice-setup セットアップ・スクリプトにあるデフォルト値として与えられています。

データを初期化するためには、rdsinit プログラムを走らせます。 rdsinit は二つのパラメータ、RVM ログとデータデバイスを取ります。 例えば、インテルのサーバで初期化するには:

# rdsinit /dev/hdc1 /dev/sdb1
Enter the length of the device /dev/hdc1:119070700 
Going to initialize data file to zero, could take awhile.
done.
rvm_initialize succeeded.
starting address of rvm: 0x20000000
heap len: 0x1000000
static len: 0x100000
nlists: 80
chunksize: 32
rds_zap_heap completed successfully.
rvm_terminate succeeded.

注: デバイス長の 10 進数の値と、次の3つの値のアドレスと長さの 16 進数の値を使います。

モニターのアップデート

モニターのアップデートは SCM から全てのサーバに Coda サーバ・データベースの変更を伝えるために使われます。 クライアントのアップデート・プロセスは全ての Coda サーバで走り、SCM でアップデート・プロセスが走っているサーバに接続します。 サーバ・プロセスは、全てのサーバでファイルの一貫性が維持されるように /vice/db/files ファイルを使います。 くわしくは updateclnt(8) と updatesrv(8) の man ページを見てください。

SCM で /vice/db/files ファイルを作ります。現在私たちの /vice/db/files はこんな感じです:

VLDB
auth2.pw
auth2.tk
pro.db
servers
hosts
vice.pdb
vice.pcf
volutil.tk
VRDB
files
VSGDB
dumplist
scm
ROOTVOLUME

認証データベース

Coda は UNIX パスワード・ファイルとは別の認証データベースを使っています。 このデータベースは SCM によって管理されています。誰かが Coda に認証を立てると、そのパスワードはこのデータベースに対してチェックされて、 認証が成功すればその人はトークンを発行されます。この章では認証データベースを初期化する方法について記述します。

SCM で

SCM をインストールしたサーバなら、初期の認証データベースをセットアップしなければなりません。 少なくとも1つのユーザが System:Administrators グループに登録されているようにしてください。 次に、以下を行います:

SCM 以外のサーバで

SCM 以外のサーバで Update モニターは、適当なデータベース・ファイルが SCM から伝えられるようにします。 しかし、Update モニターが動くようにするには /vice/db/volutil.tk ファイルを新しいサーバに コピーしなければなりません。

ボリューム・ストレージ・グループ・データベースの作成(SCM のみ)

サーバセットアップのあらゆる組み合わせは、/vice/db/VSGDB でマルチキャスト・アドレスを 与えられる VSG を使うことを前提としています。このファイルは手動で作らなければなりません; 詳しくは XXX の章にある VSGDB (5) を参照してください。

7.5 ファイル・サーバの起動

/vice/srv.conf ファイルを読み込む startserver というスクリプトが用意されています。 /vice/srv.conf には codasrv に必要とされる起動時の情報が記述されています。 /vice/srv.conf のシンタックスは:

-rvm <log_partition> <data_partition> <size_of_log_partition>
vice-setup-rvmvice-setup で入力された値と一致するように、あらかじめ準備されたデフォルト値を持っています。 これらのデフォルト値の1つから外れると、データ・パーティションの正しいデータサイズを指定するために、 /vice/srv.conf ファイルを作成するか、修正しなければなりません。 例えば、CMU の Coda サーバでは:
-rvm /dev/hdc1 /dev/sda1 119070700

RVM ログ、データ・セグメント、データ・セグメントのサイズのために正しいパーティションを指定しているかどうか、 注意してください。

一旦このファイルが正しく編集されれば、サーバを startserver& で起動することができます

Root ボリュームの作成

SCM 以外のサーバをインストールしているなら、このサーバに新しいボリュームを作成するために XXX の章にある手順に従ってください。

Coda ファイル・システムの root は、機能するために /vicepa パーティションに常駐します。 SCM はたいていサーバとして動くので、SCM の /vicepa パーティションに Coda ファイル・システムの root を置きます。 以下のコマンドの1つを使って root ボリュームを作ります。

% createvol_rep codaroot <VSG_ENTRY> /vicepa

% createvol codaroot <hostname> /vicepa

前者はレプリカのための root ボリュームで、<VSG_ENTRY> はこのボリュームのボリューム・ストレージ・グループ のための VSGDB にあるエントリです; 後者はレプリカでない root ボリュームで、<hostname> はホスト になっている root ボリュームのホスト名です。root はクローンになって、読み込み専用でレプリカされることが多いので、 単純にするために独力でレプリカとなる、このボリュームを作るのもいいかもしれません。

これらのコマンドは /vice/db/VLDB/vice/db/VRDB/vice/vol/VolumeList/vice/vol/BigVolumeList/vice/vol/AllVolume ファイルを作ります。

/vice/vol/VRList ファイルの記述と root ボリュームが一致するように、ボリューム名を持つ(例えば codaroot) /vice/db/ROOTVOLUME ファイルを作成するか、修正します

読み込み専用 root の作成

root は読み込み専用にするのが望ましいです。そのためには、まず上記のように root ボリュームを作成します。 このサーバと話せるように venus を起動します。root ボリュームに欲しいディレクトリ構成をセットアップします。 一旦構成に満足したらボリュームを複製して、volutil プログラムを使ってディスクファイルにダンプします。 読み込み専用のボリュームに対して必要とされる VSG でサーバにダンプファイルをレストアします。 新しいボリュームにボリューム id とボリューム名を指定しているようにしてください:

% volutil restore <filename> /vicepa <newrootname> <volid>

それから、新しい root ボリューム名 <newrootname> を持つように /vice/db/ROOTVOLUME を修正します。


Next Previous Contents

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

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