さあ,始めよう!OpenVMS

春もうららのある日,新入社員の A さんが,学校の先輩 Z 氏のオフィスへやってきます。

「やあ,Aさん。入社おめでとう。」

「 Z さん,入社にあたっては色々とお世話になりました。おかげさまで配属部署も希望どおりになりました。」

「それはよかった。でも,それにしては少し元気がないね。」

「実は,それで相談にうかがったんですけど,1 つシステムの管理を任せていただけることになったんです。」

「君の実力が評価されたんだね。チャレンジしがいがあるじゃないか。」

「でも,そのシステム,OpenVMS というんです。UNIX なら経験があるんですけど。まったく知らなくて。それで,学生時代,VMS の仙人っていわれてた Z さんからコツを教えていただこうとうかがったんです。」

「ハハ,仙人はまいったな。まあ,OpenVMS といって何も特殊なことはないんだ。UNIX の経験があれば,OpenVMS のオペレーションを理解することはそんなに難しいことじゃない。コマンド体系なんかは,いろんな機能を寄せ集めた UNIX よりも,1 社で開発した OpenVMS の方がずっと体系的だよ。OpenVMS のオペレーションそのものについては,ログイン操作 ログアウト操作以降で具体的に説明するとして,その前に OpenVMS について概要を紹介しておこう。」

「おねがいします。」

OpenVMS の定義

「まず,OpenVMS とは何だろうか?」

「オペレーティング・システムですよね。UNIX や Windows なんかと同じだと思いますけど。」

「そう,ではオペレーティング・システムとして,OpenVMS の特徴はなんだろう?」

「えーと。」

「第 1 の特徴は,シングル・アーキテクチャということなんだ。」

「シングル・アーキテクチャ?」

「シングル・アーキテクチャとは,小規模から大規模まですべてのコンピュータ・システムで,同じ環境を提供するというコンセプトのことなんだ。OpenVMS では,1 CPUから 32 CPU までのシステムを,すべて同じ OpenVMS でサポートしているんだ。これは,ハードウェアとしての Alpha アーキテクチャと Alpha システム,オペレーティング・システムとしての OpenVMS が密接に協力し合うことで初めて実現できていることなんだ。」

「でも,すべてのコンピュータ・システムと言っても,モバイル環境やデスクトップ環境まではサポートできていないと思うんですけど。」

「確かにその通りだね。後でもう少し詳しく説明するけれど,シングル・アーキテクチャというコンセプトは,今から 20 年以上も前, OpenVMS の初期設計の段階から構想されていたことなんだ。そういう意味では,現在の PDA やノート PC,デスクトップ PC などなど,多様なクライアント環境をサポートすることは想定されていなかったんだね。」

「ということは,OpenVMS はシングル・アーキテクチャを実現するオペレーティング・システムということですね。」

「そう,そしてこのことは OpenVMS の第 2 の特徴でもあるんだ。つまり,OpenVMS はサーバ・システム向けのオペレーティング・システムであるということだ。」

「サーバ・システム向けってどういう意味ですか?」

「言い換えると,サーバ・システムとして必要な特性を備えたオペレーティング・システムということだ。サーバ・システムとして必要な特性に関しては,いろんな考え方があるだろうが,僕は 2 つの重要な特性があると思う。


 拡張性 
 信頼性

この 2 つだね。」

「それぞれの特性をもう少し詳しく説明してください。」

「まず,拡張性だけれど,サーバ・システムは,より大量のデータをより短時間で処理することを常に目標にしていると考えていいだろう。拡張性は,この目標を実現するための特性なんだ。もちろん,Alpha チップをはじめとして,サーバ・システムで利用される CPU はどれも高速性を競っているし,メモリにしても,ストレージにしても大容量なものがサポートできる。しかしシングル CPU システムではやはり限界があるわけだ。」

「それで対称型マルチプロセッシング SMP が登場するわけですね。」

「 1 CPU よりは 2 CPU,2 CPU よりは 4 CPU と CPU を増やしていけば,処理能力は増加することになる。同時に,メモリ容量や接続できる IO スロット数も増加することになる。たとえば,最も大規模な Alpha サーバ, GS320 は,32 CPU,メモリ容量 256 GB,224 個の PCI スロットまでサポートできる。もちろん OpenVMS は,この大規模な SMP システムが最高の性能を実現できるようにサポートしているわけだ。」

「でも CPU の数が増えてくると,単純な拡張は難しいと聞いたのですが。」

「そう,実際のところ GS320 のシステム・アーキテクチャも,単純な SMP ではなくなっている。しかし,アプリケーションがそれを意識するようでは,シングル・アーキテクチャとは呼べない。このギャップを解消することも OpenVMS の役割なんだ。」

「 32 CPU も搭載できれば,どんなアプリケーションでも対応できますね。」

「ところがそうはいかない。実際,GS320 でも処理しきれないほどの処理量を抱えたシステムがいくつも存在するんだ。また,アプリケーションの性質によっては,SMP が有効でない場合もある。」

「そういう場合は,どうするんですか?」

「最近,クラスタリングやクラスタ・システムという言葉をよく聞くだろう。これは,単一システムを超えた拡張性を実現するために,OpenVMS がはじめて提供した機能なんだ。クラスタリングとは,複数のマシンを接続して,全体を 1 つのシステムに見せる技術だ。クラスタリングによって,ほとんど制約なしに,無限の拡張性を実現することが可能になるんだ。」

「でも,最近話題になるクラスタリングは,UNIX や Windows のものですけれど。」

「OpenVMS は既に 15 年以上も前からクラスタリング機能を提供している。 UNIX や Windows はこれに追いつこうとしているわけだ。けれど,クラスタリングの機能はオペレーティング・システムの核の部分と密接に関わっている。クラスタリング・ソフトウェアをオペレーティング・システムの上にかぶせただけのやり方では,十分な拡張性が提供できないだけでなく,システムとしての品質を維持できなくなる。」



「つまり,OpenVMS のような完成されたクラスタリング機能でなければならないということですね。」

「だんだん,わかってきたじゃないか。次に,信頼性についても簡単に説明しておこう。信頼性の定義も議論のあるところだが,サーバ・システムとして一番重要な信頼性の目標がサービスを停止させないこと,もし一時的に停止したとしてもできるだけ短期間でサービスを再開できることにあるということは誰でも合意できるだろう。」

「当然,ハードウェアやソフトウェアの品質や信頼性が問題になるわけですね。」

「 Alpha システムでは,ハードウェアとしての信頼性を高めるさまざまな機能を提供している。同時に,OpenVMS もソフトウェアとしての品質を維持しながら,信頼性を高める機能を提供している。しかし...」

「しかし 1 台のシステムでは,信頼性の向上は限界がある。それでクラスタリングというわけですね。」

「うむ,クラスタを構成する複数のマシンは接続しているとはいえ,それぞれが独立したシステムだ。1 台に障害が発生したとしても,他のマシンに直接影響するわけではない。このことを利用して, 1 台のシステムで実現できない信頼性を提供することもクラスタリングの重要な機能なんだ。」

「具体的にはどうするんですか?」

「単純に言えば,クラスタ・システムの1台のマシンが障害を起こしたとき,そのマシンでサービスを提供していたアプリケーションを他のマシンが引き継いで実行し,サービスを継続させる。これをフェールオーバと一般的に呼んでいる。」

「それは,UNIX や Windows のクラスタ・システムでも提供していますよね。」

「重要な点は,特別なプログラミングや特別な操作を必要とせず,できるだけ制約事項なしに,フェールオーバを実現することだ。 OpenVMS のクラスタリング機能は,クラスタ・システムの各マシンから,システム全体がまったく同じように見えるシングル・システム・イメージを完全に実現している。このため,OpenVMS では,ほとんどのアプリケーションで,手を加える必要なしにフェールオーバが可能なんだ。」

「なるほど。OpenVMS の第 3 の特徴は,完全なクラスタリング機能を提供するオペレーティング・システムということですね。」

「そして,これが僕の説明したかった最後の特徴になるわけだ。」

OpenVMS とユーザ

「OpenVMS のすばらしさはわかってきた気がするんですけど,残念ながらあまり使われている場面を見たことがないんですけど。」

「うんうん,確かに日常的にお目にかかるというわけにはいかないだろうけど,聞いたところでは,全世界で 50 万台,約 1 千万人のユーザがいるそうだ。」

「どんな分野で利用されているんですか?」

「これも聞いた話では,全世界の十大証券取引所の 5 つで OpenVMS が取引業務に利用されているそうだ。また,全世界の携帯電話の課金処理の 50 %以上が OpenVMS で処理されている。そして全世界の CPU チップ生産の 90 %以上は OpenVMS が管理している。」

「日本ではどうなんですか?」

「製造業やテレコム業界で,よく利用されているようだね。特に半導体や液晶の生産管理システムで採用されているのは,よく話題になっている。」

「なんだか裏方的な役割が多いですね。」

「そうだね。しかし,取引業務や課金処理,生産管理など,その事業の根幹に関わるサービスを提供する役割なんだ。クライアント・システムのように,直接利用するシステムではないけれど,僕らの社会を支える基盤サービスを提供しているなくてはならないオペレーティング・システムといえるだろう。」

OpenVMS 年代記

「ところで,さきほど OpenVMS が誕生して 20 年以上になるっておっしゃってましたけど,そんなに古いオペレーティング・システムなんですか?」

「ハハ,古いとは人聞きが悪いね。OpenVMS のすばらしさは,その 20 年以上にわたって,常にその時代の先端になる機能を提供しつづけているということなんだ。それでは,OpenVMS の栄光の歴史を年代記風に辿ってみるとするかな。」

VMS の誕生

「OpenVMS はいつ誕生したんですか?」

「VMS V1.0 が発表されたのは 1977 年だ。同時に最初の VAX システム, VAX-11/780 が発表されている。これは完全な 32 ビット・アドレッシングのシステムとしては,最初のものの 1 つだろうね。当時は,OpenVMS ではなくて,VMS と呼んでいたんだ。ちなみに, VMS を開発したのは DEC ,ディジタル・イクイップメント社だ。」

「VMS ってどういう意味なんですか?」

「仮想メモリ・システム Virtual Memory System の頭文字をとって命名されたんだ。32 ビット・アドレッシングという当時としては使い切れないほどの大規模なメモリ空間をサポートする一番重要な機能,仮想メモリ・システムにあやかったんだろうね。」

「ところでさっき,シングル・アーキテクチャが最初から構想されていたという話がありましたけど。」

「実は,DEC は 16 ビット・アドレッシングのシステム,PDP の時代に重大な問題を抱えていた。DEC では PDP のために用途ごとに異なったオペレーティング・システムを提供していたんだ。この方式では,アプリケーションの互換性がなくなってしまうし,開発や管理のコストが増大してしまう。OpenVMS と VAX の開発では,この問題に対する深刻な反省の結果として,シングル・アーキテクチャというコンセプトが採用されたんだ。つまり,1 つのプラットフォーム, 1 つのオペレーティング・システムというキャッチフレーズだ。」

ネットワーキング

「ところで,OpenVMS ではインターネットの他に,DECnet というネットワーク・システムを持っていると聞いたんですけど。」

「実は,シングル・アーキテクチャのキャッチフレーズには,続きがあって, 1 つのネットワークで締めくくられる。それほど,ネットワーキングを重要視していたんだね。そして,ネットワーキングでシングル・アーキテクチャを締めくくる製品が DECnet だったわけだ。実際,DECnet は VMS V1.0 から同時に提供されているんだ。」

「インターネットに関しては,どうでしょうか?」

「 DEC は,インターネットの開拓者の 1 つといえるだろうね。たとえば,イーサネットの開発/標準化をゼロックス,インテルと共同で行っている。その他にもさまざまなインターネット技術が DEC の技術者の手で開発されている。初期のファイアウォールも DEC の技術者によって開発されたんだ。OpenVMS 上のインターネット製品に関しては, DECnet が成功しすぎたこともあって,いささか出遅れていたけれど,現在では IPv6 や IPsec など先端の技術が提供されている。」

クラスタリング

「クラスタリング機能は15年以上前に登場したとおっしゃってましたね。」

「正確には,1983 年のことになる。当時は,VAXcluster と呼んでいたんだ。」

「 UNIX や Windows のクラスタリングが登場する 10 年以上前なんですね。」

「驚くべきことに,この最初の発表当時に,現在のクラスタリング技術の基本コンセプトが全て提供できていたということだ。特に重要なことは,クラスタ・システムを1つのマシン環境のように見せるシングル・システム・イメージが最初から実現されていたと言うことだ。これは,現在でも,UNIX や Windows のクラスタ・システムでは,ほとんど実現できていない。」

「登場時点で完成されたクラスタ・システムだったわけですね。そして,その後の発展はどうなんでしょうか?」

「クラスタ・システムで一番重要なコンポーネントは,クラスタ・メンバ間を接続するインターコネクトなんだ。発表当初はインターコネクトとして,専用のハードウェアが必要だったんだ。クラスタリング技術を普及させるために,このインターコネクトの選択肢として,より安価で標準的なハードウェアを提供する必要があると考えたんだね。そこで,以降のバージョンでは,イーサネットや FDDI などが順次サポートされていったんだ。」

「OpenVMS は,災害にも対応できるって聞いたんですけど。」

「そう,それもクラスタリングの機能を利用している。対災害性を強調するために,ディザスタトレランスと呼んでいる。ディザスタトレランスというのは,ビル全体や地域全体に被害が及ぶような,火災や地震といった災害に対しても,サービスの継続を保証する技術なんだ。具体的には一種のクラスタ・システムなんだが,クラスタのメンバが,数十キロから数百キロ離れた場所に配置される。」

「それでどちらか一方のメンバが被害を受けても,のこりのメンバがサービスを継続できるんですね。クラスタ・システムでそんなことまで実現できるんですね。」

「もちろん,現在のクラスタ・システムで,ここまでサポートできるのは, OpenVMS だけなんだ。クラスタ・システムの頂点に立っていると言えるだろうね。」

Alpha と 64 ビット・オペレーティング・システム

「 Alpha システムはいつ頃から登場したんですか?」

「ようやく僕の時代に入ってきたね。Alpha チップと Alpha システムが発表されたのは,1992 年のことになる。」

「えー,上司からは VAX 世代の Z さんって聞いたんですけど。」

「むむむ,それはさておき,Alpha と聞いて何を思いつくかな?」

「ともかく早いということでしょうか。」

「そうだね,しかしソフトウェアの側から見ると,世界最初の 64 ビット・アドレッシングということが重要なんだ。 1992 年当時では,まだまだ 32 ビット・アドレッシングで十分という意見が多かったが,最近ではデスクトップ PC でも数百MBのメモリが必要になっている。まして,サーバ・システムでは数 GB 単位でメモリを持つことが常識になっている。また,それに対応してアプリケーションの側でも大規模なメモリ空間を利用した高速化が当然のこととして行われている。この大容量の実メモリと大規模なメモリ空間を有効に使い切るためには, 64 ビット・アドレッシングは必須の機能になっている。」

「つまり,Alpha は時代を先取りして,現在の 64 ビット・アドレッシングによる高速サーバ・システムの時代を切り開いたんですね。」

「もちろん,OpenVMS もこの64ビット・アドレッシングにいち早く対応し,その可能性を追求している。 たとえば,大容量の実メモリを利用して,データベースの高速化を図る VLM,Very Large Memory などが既に提供されている。しかし,64 ビットというほとんど無限大のアドレス空間は,まだまだ無限の可能性を秘めていると言えるだろうね。その可能性を極めることが,OpenVMS に課せられた 21 世紀にまたがる課題と言えるだろう。」

「ところで年代記で重要な点にまだ触れていただいていないんですけれど。」

「なんだい?」

「いつ VMS が OpenVMS になったんでしょう?」

「これはうっかりしてた。OpenVMS に正式に名称を変更したのは, 1991 年で Alpha の発表とほぼ同期しているね。OpenVMS は 1 つの企業が設計 / 開発しているオペレーティング・システムだけど,そのインタフェースとしては POSIX や OSF/Motif などオープンな規格が採用されている。オペレーティング・システムとしてのオープン性を強調するネーミングと言えるだろう。」



21 世紀の OpenVMS

「さきほど,21 世紀にまたがる課題とおっしゃってましたけど, OpenVMS の将来はどうなんでしょうか?」

「進歩しないものに未来はない。年代記でも説明したように, OpenVMS は常にその時代の最先端の技術を提供しつづけている。これは今後とも変わりないことだと思うよ。問題はどの分野にフォーカスするかということだね。」

「具体的にどの分野にフォーカスしていくんでしょうか?」

インターネットとWebアプリケーション

「まず,これからのアプリケーション開発を考えた場合,インターネットの利用は避けて通れないことだろう。当然,OpenVMS でもインターネットへの取り組みは重要だね。 OpenVMS とインターネットの関わりを考えると,IPv6 など基礎的な分野に対しては十分に対応してきたと言えるだろう。」

「最近はやりの WWW や eCommerce への取り組みはどうでしょうか?」

「残念ながら,この分野は UNIX や Windows に一日の長があると言わざるを得ないね。しかし,状況は変わりつつある。 Java や XML のようにプラットフォームに依存しない開発環境が, Web アプリケーションの主流になってきているんだ。これは,OpenVMS にとってはチャンスと言えるだろうね。」

「具体的にはどのようなツールが提供されているんでしょうか?」

「たとえば,Web サーバとしては Apache ベースの CSWS,Compaq Secure Web Server を提供している。このようにオープン系のツールをうまく利用することを考えているようだね。オープン系のツールとしては,Tomcat や XML 関連のツールが既に提供されているし,今後 Java の IDE や Web サービス関連のツールなどが出てくるだろう。もちろん並行して,商用のツールのサポートも進めている。」

クラスタリングの未来と Galaxy

「クラスタリング機能はどうなんでしょうか?既に完成済みですか?」

「クラスタリング機能そのものは,更に完成度を高め,より高速で安定したクラスタ・システムを提供することを目標にしている。新しい展開としては,新しいインターコネクトのサポートがやはり重要だろうね。専用のインターコネクトとしてはメモリ・チャネル,標準化されたものとしてはギガビット・イーサネット,ファイバー・チャネルなどがサポートされてきている。ところで拡張性・信頼性といった特性に対するまったく新しい動向としてはパーティショニングがある。」

「パーティショニングってどういう技術なんですか?」

「クラスタリングが複数のマシンを 1 つのシステムにまとめる技術なのに対して,パーティショニングは1つのマシンを複数のシステムに分割する技術だ。」

「今度は分割しちゃうんですか?」

「そう,GS320 に代表されるように,現在のハイエンドのサーバ・マシンは 1 台で数十 CPU をサポートするようになっている。しかしながら,現実のアプリケーションで数十 CPU を完全な並列処理を実現できるものがそんなに存在するわけではない。一方,複数のアプリケーションを 1 つのオペレーティング・システム上で並列に処理するマルチ・プログラミングにしても,数十 CPU という環境ではシステム・リソースの競合などで,必ずしも期待したパフォーマンスが提供できない場合が多くなる。これを解決するのが,パーティショニングだ。」

「 1 つのマシンで複数のオペレーティング・システムを稼動させるんですか?」

「パーティショニングにはいくつか方式がある。1 つは,ハードウェアの機能として,複数のオペレーティング・システムを稼動できるようにするハードウェア・パーティショニングだ。この場合は,ハードウェア・レベルでマシンのリソースを分割することになるので,リソースの割り当てが固定的になってしまうが,分割された 1 つの部分,パーティションの障害が,他のパーティションに波及することはない。また,ハードウェア・レベルで分割されているので,複数の種類のオペレーティング・システムを稼動させることも可能だ。」

「その他の方式って,ハードウェアに対するソフトウェア・パーティショニングですか?」

「そう,ソフトウェア・パーティショニングは,実際にはオペレーティング・システムのリソース管理機能と考えることができる。つまり,特定のアプリケーションやアプリケーションのグループに対して,ポリシーに基づいてシステム・リソースを正確に割り当てていく機能なんだ。この場合は,ポリシーを動的に変更したり,直接指示を与えることによって,リソースの割り当てを非常に柔軟に行うことができるが,全体が 1 つのオペレーティング・システムで実行されているので,障害がシステム全体に波及することになる。このように,ハードウェア・パーティショニングとソフトウェア・パーティショニングでは,リソース割り当ての柔軟性とシステム全体の信頼性の間でトレード・オフがあるんだ。」

「それで OpenVMS の場合はどうなんですか?」

「このトレード・オフを解消するために,OpenVMS が提供しているのが,Galaxy だ。 Galaxy では,ハードウェアやソフトウェアのレベルではなく,ファームウェア・レベルでマシンを分割する。従って,Galaxy の場合は, 1 つのパーティションに割り当てられたシステム・リソースを,他のパーティションへアプリケーション実行中に再割り当てすることができる。しかも,各パーティションでは,独立したオペレーティング・システムが稼動しているので,1 つのパーティションの障害が,他のパーティションに波及することを避けることができる。」

「つまり Galaxy は,ハードウェア・パーティショニングとソフトウェア・パーティショニングの良いとこ取りをしているわけですね。」

「そのとおりだね。更に面白いのは,Galaxy で分割したパーティション同士をクラスタ・メンバとして,1 台のマシンでクラスタ・システムを構築することができる。しかも,そのときには,Galaxy が提供する共有メモリをインターコネクトに利用できるということだ。つまりインターコネクトのパフォーマンスがシステム・バスのレベルになるわけで,非常に高速なクラスタ通信が実現できる。」

「 Galaxy とクラスタで,先進的な大規模システムの構築が可能になるわけですね。」



IPFサポート

「さて,21 世紀の OpenVMS を締めくくるためには,IPF サポートに触れないわけにはいかないだろう。」

「確か Alpha からインテルの Itanium アーキテクチャへ鞍替えするんですよね。」

「そういわれると心外だね。まず,Alpha がすぐになくなるわけじゃない。次世代の Alpha チップ,Alpha 21364 は既に学会でも発表され,システムもまもなくリリースされることになっている。それに,Alpha の設計チームはインテルへ移籍して,Alpha が培ったさまざまな高速化技術はIPFへ引き継がれることになる。」

「 Alpha がすぐなくなるわけではないんですね。」

「もちろんだよ,特にハイエンドの大規模サーバとして,Alpha システムに匹敵するものを提供するには,それなりの時間が必要だろう。今,ここにあるシステムとしては,やはり Alpha システムが最高のシステムの1つと言えるだろう。」

「それじゃ,IPF 版の OpenVMS は,まだまだ先の話なんですね。」

「システムやアプリケーションの移行には,相当な時間がかかる。そのため,OpenVMS の IPF ポーティングは既に開始されていて,着々と進行しているようだ。少なくとも評価用の IPF 版 OpenVMS はそんなに遠くない将来に提供されるだろう。」

「アプリケーションの開発環境やシステム管理ツールのポーティングはどうですか?」

「うん,オペレーティング・システムと平行して,ポーティングのプロジェクトが進められているようだ。ほとんどのツールは,IPFでも利用できると考えていいだろう。その他,アプリケーションのマイグレーションに必要なさまざまなツールも提供されることになっている。」

「つまり,IPF への対応は万全ということですね。」

「そういうことだね。しかし,最も重要なことは,IPF のサポートによって, OpenVMS の利用環境が一気に拡大される可能性があるということだ。デスクトップやノート・サイズのマシンで,OpenVMS が自由に利用できるようになれば,OpenVMS も学びがいがあるってもんだろ。」

「早くそうなるといいですね。」

「その日のためにも,今から勉強しておくことだね。それではいよいよ,ログイン操作 ログアウト操作 から OpenVMS を拡張して,日本語機能を追加した,日本語 OpenVMS のオペレーションについて紹介していこう。」