システムとストレージの仮想化、その後を追うネットワークの仮想化
我々は、重要と思われるところではAIXやLinuxに触れつつも、多くの時間を費やしてPower SystemsハードウェアおよびIBM iプラットフォームの核心部に少しでも近づこうとしています。しかし、時には、IT分野全般、さらには一般にビジネスの世界で起きている事象についても大局的に見ては、IBM iエコシステムに何らかの影響を及ぼすかもしれない事柄について、我々の思うところをお話しすることもあります。
今回の記事はそのようなエッセイのようなものかもしれません。何か重大なことが起こりつつあるとは思っているものの、それによってどの程度の影響がIBM iに及ぶことになるのかは分からないというのが率直なところです。そして、お察しの通り、そうした不確かさというのは、確立されたプラットフォーム(レガシーという言葉を用いなかったことにお気付きでしょうか)の特質とも言えるメンテナンス モード的な思考や様子見の姿勢よりも、ある意味、多くのことを気付かせてくれます。
この20年の間、データセンターの分野で一世を風靡してきたのが仮想化だったことは誰もが知るところだと思います。そして我々の間では誰もが知るところであっても、世間はもう覚えていないことは、OS/400 V4R4が、サーバー仮想化を実現した最初の非メインフレーム プラットフォームだったということです。物理マシンを仮想マシンに分割して、それぞれがオペレーティング システムのコピーを稼働することを可能にしたプラットフォームだったわけです。Dockerコンテナのことで誰もがみな大騒ぎのようですが、OS/400には最初からサブシステム(オペレーティング システム カーネル上で稼働する一種のサンドボックス)が備わっていたため、これもまた新しいアイデアというわけではありません。とはいえDockerが依存しているLinuxがありとあらゆるところで使用されていることからすると、Dockerランタイムもまた、ありとあらゆるところで使用されるようになり得るのでしょう。もっとも、Dockerランタイムは必ず特定のLinuxカーネルへコンパイルされる必要がありますが。
ストレージ仮想化も、IBM iベースにとっては新しいものではありません。System/38および後続のAS/400の単一レベル記憶アーキテクチャーは、ストレージ仮想化の最終形態とも言えるでしょう。メイン メモリーおよびディスク ストレージ容量は、すべてのアプリケーションが動作し、それらのデータを格納するための単一のアドレス空間とみなされ、物理メモリーおよび物理ディスクへのアプリケーションおよびデータの割り当てはオペレーティング システムによって自動的に処理されます。これこそが、15年以上前にMicrosoftがWindows Serverに追加しようとしたものの断念するに至ったアイデアです。IBM iプラットフォームには、別のタイプのストレージ仮想化もあります。たとえば、かつてWindows Server SMBファイル システムによく似たASCIIベースの統合ファイル システム(IFS)を開発した時の、OS/400カーネルでのOS/2パラレル ファイル システムの組み込みもその一種と言えるでしょう。今日では、仮想マシンの下または中に仮想SANを置き、演算用の仮想マシンを稼働する同じクラスターにスパンする、ハイパーコンバージド ストレージまで出現し、利用可能になっています。すでに指摘してきたように、IBMでは、現在、Linux on Power Systemsにおいてだけでなく、AIXにおいてもNutanixハイパーコンバージド ストレージの稼働をサポートしていますが、IBM iをその仲間に加えるのは時期尚早とIBMは考えているようです。我々はそうすべきだと思うのですが。
こうした仮想化は、サーバーまたはストレージのいずれにおいても、使用率を向上させ、したがってコストを削減するという点で、結構なことだと言えるのでしょう。しかし、それが要点のすべてというわけではありません。仮想化が本当に行っていることは、インフラストラクチャーを柔軟性の高いものにする、あるいはプログラミングの対象にならしめることです。それはつまり自動化できるということであり、素晴らしいことではあるのですが、より重要なことには、仮想化はまた、サーバーであれ、ストレージであれ、ネットワーキング デバイスであれ、オンザフライで元の性質を変えることができるということも意味します。このようなことは、ここ10年ほどの間に、ネットワーキングの分野で徐々に起こってきました。サーバーやストレージと同様に、仮想化が進んでいるだけでなく、プログラマブル化も進んでいます。
ネットワーク仮想化といっても、マシンにVirtual LANをセット アップして、ハイパーバイザーと複数の論理区画を稼働するというような話をしようとしているわけではありません。素晴らしいものではありますが、それでは普通の話です。そういったものとは別の次元の話です。この10年の間、スイッチ メーカーは、コア スイッチ オペレーティング システムにLinuxカーネルを採用してきたか、あるいは自社製のスイッチ カーネルにLinuxインスタンスを追加してきたかのいずれかであったため、スイッチにはLinuxワークロードが付き物という状況が続いてきました。このようにして、ファイアーウォール、ロード バランサー、侵入検知システム、あるいはその他の高価なアプライアンスが、そのようなソフトウェアを稼働するのに十分な性能を備えたスマート スイッチによって置き換えられるというようなことも起きるようになっています。しかし、スタンフォード大学およびプリンストン大学発で、Googleと新興スイッチ チップ メーカーのBarefoot Networks社が支持しているP4プロジェクトに端を発して、Linuxを稼働しているCPUと同じように、ASIC自体をプログラマブルにするということが人々の話題に上り始めています。
これは急進的な考えですが、そのことが意味しているのは、基本的なルーティングおよびスイッチング エンジンを備えたスイッチ チップは、個々のプロトコル スタックを持たせればあらゆるタイプのスイッチにプログラム可能だということです。そして、これは重要なことですが、新たなスイッチ プロトコルを、たとえば仮想マシン トラフィックのカプセル化を行うために、その場その場で追加することができるのです。前例としては、複数のVLANが境界を越えてVMをライブ マイグレーションするのを可能にするVxLANおよびNV-GREプロトコルのケースを挙げることができるでしょう。これらの新たなプロトコルをスイッチ チップ メーカーが自社チップでサポートするまでに、業界による認証の後、18か月から24か月ほどを要しました。はっきり言って、長くかかり過ぎです。それだからこそ、スイッチ チップをよりジェネリックなものにすることで、必要に応じて様々な機能を持たせるべくプログラムできるようにしたいという要望が生じてくるわけです。
IBMは、System xサーバー ラインとともにBlade Network Technologyのスイッチ事業をLenovo社に売却してしまったため、厳密に言えば、プログラマブルなデータセンター スイッチ市場においてIBMには特にこれといった製品があるわけではありません。けれども、IBM iのショップでは、マシンはそれぞれネットワークでつながっており、そこでは数多くのWindows ServerやLinuxマシンが混ざって多種多様なジョブを行うようになっていて、それらはすべてネットワーク化されているという状況です。
IBM iのショップが、P4とともに、Barefoot Networks社(Tofino)やCavium社(XPliant)やBroadcom社(TridentおよびTomahawk)のこのような新たな柔軟性の高いスイッチ チップをいち早く取り入れて、独自のプロトコルをプログラムし始めるだろうなどいうことを言いたいわけでありません。そのようなことは、最大手のいくつかのIBM iのショップがタッグを組んで、独自のサーバー仮想化ハイパーバイザーやハイパーコンバージド ストレージを開発しようとするというのと同じくらいばかげた話です。我々が言いたいのは、柔軟性の高いネットワークこそが将来の姿だということであり、ハイパースケーラーたちの周辺で起こっている、これらの柔軟性の高い仮想化されたネットワークへと向かうイノベーションから、IBM iのショップも恩恵を受けるチャンスは十分にあるということなのです。真のネットワーキングのエキスパートたちがこれらのスイッチのプログラミングをやってくれるのですから、IBM iのショップは、ちょうどiPhoneのアプリのように、必要なものを買ってきてそれを稼働するだけです。
私が苛立たしいのは、IBMはサーバーおよびストレージ仮想化に関しては最前線にいたのに、上述のようなネットワーク仮想化に関してはあまり前面に出て来ていないことです。これは驚くに当たりません。データセンターでは、コンピュート、ストレージ、ネットワーキングは、それぞれ個別のサイロで稼働していることも多いからです。現時点で必要なことは、ネットワーキングの分野における技術革新から目を離さないでいること、そしてそこで起こっていることに真っ直ぐ目を向けるようにすることです。そして、可能であるなら、こうした柔軟性の高い性質を持つスイッチへの投資を通じて、ネットワークへの投資を拡大してゆくことを考えることです。これこそが、すべてのハイパースケーラーやクラウド ビルダーが行っていることなのです。