2009年8月6日木曜日

分散プログラミング事始

Infernoは分散環境に強いと言われているのに、まったくやったことが無いのでした。

そこで、分散プログラミングを始めてみることにしました。
目標はリモートのプロセッサで任意のプログラムを実行し、実行結果を受け取るところに設定します。

参考としたのはこのURLです。

http://www.resc.rdg.ac.uk/twiki/bin/view/Resc/CallingRemoteServices

そのものずばりのことを示しています。
リモートで実行されているのか、ローカルで実行されているのかがよくわからなくなりそうなところを、うまく工夫されていてすばらしいです。

いまさら自分が追記するようなことは特に無いのですが、一応試したことを記録しておきます。

○まずはテスト

二台のinferno環境を用意し、ネットワークでつなぎます。
別のホストOSで動いているとわかりやすいです。
今回はリモートをLinux、ローカルをcygwinで実験しました。

・remote


svc/net
bind -a '#C' /


サービス立ち上げて、/cmdをバインド(ホストOSのコマンド実行のため)。

・local

bind -a '#C' /
mount [remoteホスト] /n/remote
bind -b /n/remote/cmd /cmd


mountでremoteホストにstyxで接続、remoteの/cmdを上書きで(?)バインド。
-bがポイント。

os uname を実行すると、remoteのOS名(Linux)が表示される!
なお、バインドする前はもちろんos unameを実行するとlocalのOS名(cygwin)が表示されます。

○file2chanの簡単なテスト

・remote

svc/net
cd /usr/user
load file2chan
file2chan oschan {} { os uname}


oschanという名前のsynthetic file ができるらしいが正直よくわからない。

echo rubbish > oschan
とかやると、remoteのOS名が表示される。
なんなんでしょうね?
(echoする文字列は別にrubbishじゃなくていいんですが)

・local

svc/net
mount remoteホスト /n/remote
cd /n/remote/usr/user


echo rubbish > oschan
とすると、remoteのプロンプトにremoteのos名が表示される。
不思議。

○limboでプログラミング

・・to be continued.

file2chanモジュールをロードしてごにょごにょするはず。

○疑問点

・いまだにunion directoryがよくわかっていない。

・bindを解除する方法は?

・認証を絡めるには?

0 件のコメント:

コメントを投稿