non-SCMサーバの作成
codaファイルシステムにはSCMとnon-SCMサーバの二つの種類のサーバがある。SCMはどうもServer Control Machineということで、いわゆるマスターサーバである。non-SCMはSCMの制御下で動作するサーバである。せっかく分散ファイルシステムなのだからnon-SCMサーバを作ってみないと意味がないのでやってみた。rubyというのはSCMであり, diaというのはこれから追加するnon-SCMサーバである。
SCMのserversファイルにエントリを追加
SCMが正常に動いている状態では既にSCMのエントリが書かれているのでそれをまねればOK。IDはとうぜんユニークになるように。
ruby.arara.rim.or.jp 1 dia.arara.rim.or.jp 2 ##これを追加
VSGDBファイルを作成する
これは新規作成。
E0000100 ruby E0000102 dia E0000104 ruby dia
EほげほげはVSG番号である。ユニークでなくてはならない。E0000100はSCMを示す特別な番号で、よく注意するとSCMのインストール時に表示されていることに気がつく筈。いまのところ理由は不明だが3行目は必要のよう。
ボリュームエリアを指定するvicetabの編集
これにはSCMで集中管理するアプローチと、それぞれのnon-SCMサーバで管理する分散アプローチがある。ここでは当然集中管理アプローチをする。SCMのvicetabにこれから追加するサーバのvicepaディレクトリを指定する。
ruby.arara.rim.or.jp /dsk/vice/vicepa ftree width=64,depth=3 dia.arara.rim.or.jp /home/vice/vicepa ftree width=64,depth=3 ##<これを追加
また、filesファイルにvicetabエントリがあることを確認する。filesファイルはSCMからnon-SCMへ伝播するファイルをリストするものである。これによりサーバはさまざまな情報を共有することができる。
auth2.pw auth2.tk auth2.tk.BAK auth2.lock dumplist files prot_users.cdb servers scm update.tk volutil.tk vicetab VLDB VRDB VRList maxgroupid
分散アプローチをする場合には、逆にvicetabがfilesファイルにないことを確認すること。さもないと、SCMの情報で上書きされる。
SCMのリスタート
これまで行った更新を読み込ませるためにcodasrvをリスタートする。
non-SCMでの設定
- non-SCMでvice-setupを実行する。
- updateclnt -h SCM-serverを実行する
- vice/db配下のファイルがSCMからコピーされていることを確認する。
- codasrvを実行する