マルチサイトで使う MultiSite
クリアケースをマルチサイトで使うのは非常に便利につくられている。基本サーバを一個にして、遠距離でもアクセスするか、クリアケースのように複数サーバをたてて、各サーバ間をシンク(同期)して使うかということになる。ここではspainっていう別サイトがあるということで設定などを紹介しようと思う。spainの細かい仕様は「はじめに」の環境とかを見てください。あとjapanとspainはお互いにネットワークがつながっているものとします。
他のサイトとVOBを共有する
クリアケースの本領発揮どころの一つである他サイトとデータを共有する方法だけど、簡単に流れをいうと、コピー(レプリカ(replica)って呼ぶ)を作る→他サイト側でそれをインポートする→同期の設定をする。と、口でいうと簡単です。慣れれば本当に簡単なんだけど、それまではちょっとビビります。ていうか、細かいことがチョロチョロあるので、なんか忘れている気がするんだよねぇ。 japan と spain とでそれぞれやらなくちゃいけないことがあるのですが、順番に書いていきます。ここでは「いよいよVOBを作る」で作ったVOB、/tokyo/clearcase_prj/docsのレプリカを作成する方法を書きます。
- japan
1. spain用にレプリカを作成する。最初にVOBの所有者になってから、mkreplicaコマンドを発行します。ここでは -maxsize でパケットサイズを10Mbyteで区切り、 -fship ですぐにパケットを送信するオプションをつけています。-c でコメントつけていますが、これいつもつける癖をつけましょう(2,3行目で1コマンドです)。
su vobadm
multitool mkreplica -export -maxsize 50m -c "/tokyo/clearcase_prj/docs" -workdir /japan_data/work -fship spain:spain.v6@/tokyo/clearcase_prj/docs
- spain
2. パケットをインポートする。ここで、spain 側をチェックすると、Shippingエリアにちゃんとパケットが届いているはず。なので、それをインポートします。これがまた、ちょっと面倒なんだ。Shippingエリアはデフォルトを使います (3、4、5行目で1コマンドです)。※mkreplica を発行するときのユーザがVOBの所有者になるので、発行する前に管理者アカウントになっときましょう。
su vobadm
cd /var/adm/atria/shipping/ms_ship/incoming
multitool mkreplica -import -workdir /spain_data/work -c "/tokyo/clearcase_prj/docs" -tag /tokyo/clearcase_prj/docs -vob /spain_data/vobs/tokyo_clearcase_prj_docs.vbs -npreserve -region SPAIN -public -password spain repl_japan.v6_15-May-07.18.49.19_90983_1
cleartool mount -a
マウントする、これ基本。
cleartool mktag -vob -tag \\tokyo_clearcase_prj_docs -public -region SPAIN_WIN -password spain -host spain -hpath /spain_data/vobs/tokyo_clearcase_prj_docs.vbs -gpath \\\\spain\\vobs\\tokyo_clearcase_prj_docs.vbs /spain_data/vobs/tokyo_clearcase_prj_docs.vbs
これ全部で1コマンドです、長い。Windows用のタグをえっちらこさえてます。。
- japan
3. さてさて、無事にパケットを送って、相手側も問題なくインポートに成功したとしましょう。これから同期の設定とか色々あるわけですが、まずは相手をセルフマスターにしてあげましょう。これは、お約束のおまじないみたいなものです。
multitool chmaster spain.v6 replica:spain.v6@/tokyo/clearcase_prj/docs
multitool syncreplica -export -fship spain.v6@/tokyo/clearcase_prj/docs
- spain
4. で、それをspain側でアプライします。最後のコマンドの最後はパケット名が入るのですが、僕は面倒なんでワイルドカード使って、全部いけ!ってな命令出します。
cd /var/adm/atria/shipping/ms_ship/incoming
multitool syncreplica -import s*
他のサイトとSYNC(同期)
複数サイトでVOBを共有すると、当然ながら同期を保たなければなりません。クリアケースでは syncreplica コマンドで簡単に同期がとれます。
けどね、これって自動でやってくれないんだよねぇ、いや、もしかしたらそういうツールもあるかもしれません。特に、Windows版だとね。僕が管理者の時はそういうものはなかったので(UNIXだし)、自分でPerlで書いて、それをcrontab で定期的に実行するようにしています。
簡単にスクリプトを紹介しようかとも思っていますが、なんか内臓さらす感じだしな。ということでちょっと保留しております。気が向いたらサンプルスクリプトでも紹介します。ここでは、同期するコマンドを書いておきますね。
- 送信側 (japan -> spain)
multitoool syncreplica -export -fship spain.v6@/tokyo/clearcase_prj/docs
- 受信側 (spain)
cd /var/adm/atria/shipping/ms_ship/incoming
multitool syncreplica -import s*