StratLink: 分散システム2006年06月08日 12時11分17秒

VOS システムは元々複数の機械が統合されて運用されるように出来ている。この機能は、UNIX には存在しない。あえていうなら、NIS でディスクを共有し rsh でプロセスを他の CPU で実行するのが、一番近いところであろうか。

まず、VOS の各一台一台の計算機を module と呼ぶ。そして、複数の計算機を集め system を構築する。すなわち、一つの system は 複数の module から構成することになる。同一 system 上にある module 同士では、物理的資源を共有できる。

また、複数の system を連結することもできる。それを link すると言う。また、一つの system に新しい module を追加するときも link すると言う。違いと言えば、link をしているのがデフォルトかどうかだ。

VOS のファイルシステムのマウントは、UNIX よりも Macintosh と Windows を合わせた感じだ。ボリューム毎にマウントされる。ボリューム自体は RAID0 と RAID1 を合わせた形でマウントされる。それゆえ、ほとんどの場合のボリュームは最低二台の物理ディスクから構成される。マウントの単位がボリュームというのは Macintosh では古くからされていた。VOS でのマウント後の path は Windows に近い。絶対 path は %system#disk の形でマウントされる。A: や C: みたいだ。

先ほど、VOS では、複数の module が一つに成り、system が構成されるとあげた。その時、他の module のディスクでも、どの module からでも同一の path でアクセスできるのである。また、system が link されても、同じことが当てはまる。それゆえ、 %system#disk になる。UNIX の様にルートディレクトリを元に、NIS や NFS でマウントするとこうはいかない。/ の表記で他のリモートの / に NFS でアクセスするのは不可能だ。

さて、VOS では、プロセスを生成するのは login と start_process と batch だと述べた。これらのコマンドは -module を引数としてとる。 start_process して、新しいコマンドを実行するときに他の module で実行することが可能なのだ。ある意味 rsh に近い。 例えば、 module a と module b があるとする。VOS では telnet を module a にして、module b にログインすることも可能なのだ。

最後に、 物理資源の共有について取り上げる。手短に述べると、他の module についているハードウェアを使えるということだ。 他の module についているX25 や 他の module に入ってくる UDP を read したりもできるらしい。やはり、いろいろと余計なオーバーヘッドが増えるので、滅多に使われない。私も、一度か二度ほどお目に掛かった程度である。

これらの機能は、通称 StrataLink と呼ばれる技術を通して提供される。これは一つの分散システムである。 Linux などで、クラスタ型の分散システムが最近はやっているみたいだが、こちらは所詮後付けのものでしかない。 nfs と rsh などを合わせて、リモートにタスクを送り込むのである。それに引き換え、こちらは OS と各プログラムと一体化している。 最初から複数の計算機が一体化して動くことを前提としているのである。