2019年7月10日 06:00
弊社刊「クラウド&データセンター完全ガイド 2019年夏号」から記事を抜粋してお届けします。「クラウド&データセンター完全ガイド」は、国内唯一のクラウド/データセンター専門誌です。クラウドサービスやデータセンターの選定・利用に携わる読者に向けて、有用な情報をタイムリーに発信しています。
発売:2019年7月1日
定価:本体2000円+税
元々はメインフレームに起源を持ち、商用UNIXサーバーなどでも使われていたハイパーバイザー型のサーバー仮想化技術がIAサーバーでも実用化されたことで、ITインフラの仮想化が急速に発展し、さらにはクラウドの実用化にも繋がっていった。ここではまず、現在のITインフラの基礎とも言えるサーバー仮想化技術の概要について紹介しておこう。 text:渡邉利和
ハイパーバイザーの進化
IAサーバーは、登場して間もない頃は一般的に“PCサーバー”と呼ばれていた。当時はまだクライアントPCと比べてそう顕著な違いはなく、ファイルサーバーとして利用されることを想定して内蔵HDD用のドライブベイの数に余裕を持たせてある一方、対話的な処理の必要性が低いことからグラフィック処理性能は抑え気味になっているなど、当時のハイエンドPCをベースにやや独特なチューニングを施してみた、といった構成が標準的だった。クライアントPCとほぼ同様の処理性能だったこともあり、仮想化技術を実装するニーズもなかったし、実装しても実用的なパフォーマンスを発揮できるとは考えられていなかったのが実情だ。
現在のITインフラの仮想化のトレンドを牽引しているVMwareも、創業当初に実装したのはクライアントPC向けの「OSのスイッチャー」的なソフトウェアであった。「Windows PCの環境を破壊せずにLinuxも併用できる」といったメリットをアピールする、ホスト型仮想化製品でまず注目を集めたという経緯がある。その後のVMwareの急速な発展は多くの人がご存じのことと思われるが、製品の主力はハイパーバイザー型になり、クライアントPCの仮想化ではなくサーバーの仮想化に完全に軸足を移しているが、これにはVMware自身のソフトウェアの進化はもちろん、IAサーバーが“サーバー”として充分な機能/性能を発揮するよう進化したことも大きく寄与している。
サーバーハードウェア側の進化としては、なによりまずサーバー向けプロセッサーというものが登場したことが挙げられる。ソフトウェア的な互換性は相変わらず維持されているものの、現在ではPCとサーバーはマザーボードのレベルから違っている。ストレージやメモリの容量/帯域などが強化されているのはもちろん、かつては「ゲームなどを実行するわけではない」という理由で最低限の廉価なグラフィックスチップを採用するのが当たり前だったサーバーに、現在ではAI関連処理用のアクセラレータとして極めて高価かつ高性能なGPUが搭載される例が目立つようになってきている点は面白いところだ。ともあれ、ハイパーバイザーなどのソフトウェアの進化と、ハードウェアやOSの進化がともに起こることで、現在のITインフラの仮想化が急速に進化した形だ。
なお、IAサーバー用のハイパーバイザーが実用化されたのは、その前にLinuxを始めとするオープンソースソフトウェアの整備が始まっていたことも大きく寄与している。初期のハイパーバイザーはLinuxカーネルをベースに作成されていた。従来はごく限られたコンピュータメーカー以外は開発するのが困難だったOSがオープンソースという形で広く利用できるようになったことがさまざまなイノベーションを引き起こすことになったのだが、仮想化技術もこうしたトレンドの恩恵を受けているのは間違いない。
VMwareの成功を受けて、さまざまな競合製品も登場している。元々仮想化技術はメインフレームや商用UNIXなどの独自OSの機能の一つとして実装される例が一般的だったことや、当時のVMwareが主にLinuxをサポートしていたことなどを背景として、MicrosoftがWindows環境向けの仮想化技術として開発/リリースしたのがHyper-Vだ。
仮想化技術が急速な発展を続けていた段階では、ハイパーバイザー間での機能競争も熾烈だったが、現在ではほぼ一段落している。競争が激しかった頃は、VMware 、Microsoft Hyper-V、Xen、KVMといったさまざまな仮想化ソフトウェアが比較され、機能表が作られて優劣を競ったりもしていた時期があったのだが、現在ではハイパーバイザー単体の機能差が問題となることはほぼなくなっている。技術的な成熟とともにコモディティ化が起こったと見ることもできるし、仮想化技術が「ITインフラを構成するための、重要ではあるが本質的には部品的な位置づけの存在」だという本来の立ち位置に納まったためと見ることもできるだろう。
現在では、ハイパーバイザー単体としての性能差や優劣を気にするよりも、オンプレミスとクラウドの連携のような、より上位レベルでの運用管理が重要だという認識が広く共有されている。たとえば、クラウドとしてMicrosoft Azureを使うのであればオンプレミス環境でもHyper-Vを使っておけば環境が統一できて便利、という具合だ。もちろん、その背景として、仮想マシンのイメージがある程度標準化され、ハイパーバイザーの違いを意識せずに自由に仮想マシンイメージを移動できる環境が整備されたという要素も大きい。その上で、ユーザーが注目するレイヤーがOSを含む“仮想マシン”から、アプリケーション実行環境である“コンテナ”に急速に移りつつあるのが昨今の状況である(図1)。
ストレージの仮想化
ハイパーバイザーによるIAサーバーの仮想化がITインフラの進化に大きな役割を果たしたのはその通りなのだが、同時に、仮想化を支えるためのハードウェアの進化や、さらに周辺機器の仮想化も同時に進行するといった状況も起こった。
たとえば、ストレージの仮想化が進化し、かつての硬直的なボリューム割り当てから、より柔軟な“ストレージプール”としての運用が可能になった。また、ネットワークの仮想化では従来のMACアドレスやIPアドレスに直接関連づけられていたネットワークセグメントをオーバレイネットワークなどの形で自由に変更可能になった。
このように、さまざまなレイヤー、さまざまな領域で仮想化が発展したことで、オンプレミス環境でのITインフラがハードウェアに密接にひも付いた形から、“プライベートクラウド”といって過言ではない柔軟かつ“Software-Definend”なインフラへと進化したのである。
IAサーバーの仮想化は、基本的には物理サーバーを複数の仮想サーバーで共有する、いわば「リソースを分割する」形の仮想化だが、ストレージの仮想化は当初は「複数のストレージを束ねて巨大なストレージ領域を作り出す」というリソースの集約の方向で実現された。当時主流の記憶メディアだったHDDにはサイズの制約があり、単一ドライブの容量を越えるストレージ領域を必要とする場合には複数のドライブをまとめて大きな領域を作ると言うことが行われていたため、発想としては自然であった。
耐障害性を向上させ、HDDの機械的な故障が生じた際にもデータ喪失が起こらないように冗長性を確保する仕組みとしてRAIDが使われていたが、RAIDはまず複数のHDDの容量を繋ぎ合わせて1つの巨大なボリュームにまとめた上で、それを必要に応じて分割してファイルシステムを構築するという動作になっていた。とはいえ、こうした容量の統合は基本的には単一のRAIDコントローラーの配下にあるHDDが対象であり、複数のRAIDボックスを繋ぎ合わせて容量をまとめることは簡単にはできなかった。
そこで、初期のストレージ仮想化技術では、異なるベンダー製/異なるモデルのストレージを制御して、そのストレージの容量を自身の容量と足し合わせる形で容量の拡大を図る、という手法がまず実装された。この段階ではある意味、ユーザー環境に存在する異なるベンダー製ストレージをすべて支配下に置く“コントール”を獲得するための競争をストレージベンダー間で行っていた時代だとも言えるだろう。当然ながら、各社のストレージをコントールする役割を担ったストレージは、運用管理者がその操作方法などに習熟してくれることで継続的に導入される可能性が上がるためだ。
容量の統合に次いで普及したのが、アクセス速度やコストが異なる記憶メディアを適宜使い分ける形の「階層化ストレージ」機能だ。HDDには安価で比較的低速なSATA HDDや比較的高速だがやや高価なSAS HDD、さらに、当時普及が始まった高速だが高価なSSDが混在していた。これを仮想化技術をベースに統合して一つの領域を作りつつ、内部的にデータのアクセス頻度に応じて使い分ける、というのが階層化ストレージの基本的な考え方だ。容量に加えてアクセス速度も制御の対象に加えた、という見方もできるだろう。
この段階までは、伝統的な巨大なRAIDボックスとしてストレージに組み込まれた仮想化機能、という形を採っていたストレージ仮想化だが、さらに次の段階としてSDS(Software-Defined Storage)が出現すると、サーバーの筐体内部の内蔵HDD/SSDを繋ぎ合わせて巨大なストレージプールを作り出すことが可能になった(図2)。
かつてはサーバーの内部にHDDが内蔵されているのが当たり前だったが、大規模なRAIDボックスをSAN(Storage Area Network)で接続して集中管理する手法が一般化した結果、かつての内蔵HDDはDAS(Direct Attached Storage) と呼ばれるようになり、運用管理が分散し、データ保護が充分に実装できないなど、古い良くないアーキテクチャとして扱われるようになっていた。SDSの実用化によって、かつてのDASと完全に同一というわけではないが、ハードウェアの構成としては同じ内蔵ストレージという形で復活したのは面白い現象である。
SDSの実用化によって、プロセッサー、メモリ、ストレージ、ネットワークインターフェイスというITインフラを構成する主要なコンポーネントすべてを内蔵したサーバー筐体という単位で増設できるようになった。このコンセプトは、現在HCI(Hyper Converged Infrastructure) という形で商品化され、普及段階に入り始めている。
ネットワークの仮想化
サーバーの仮想化の初期段階で問題になったのが、ネットワークの複雑さだった。サーバーの仮想化によって、必要なサーバーを準備するために要する時間が劇的に短縮された。新たな物理サーバーを準備するには、ベンダーに発注してから一定の納期を待って納品されたサーバーをデータセンターやマシンルームに設置してセットアップを行う、という具合に週単位/月単位の時間を要する作業だったが、仮想サーバーを稼働状態にするには、あらかじめテンプレートが準備されている場合にはそれこそ秒単位の時間で済んでしまう。
必要な時に必要なコンピューティングリソースを即座に準備し、利用できるという点がサーバー仮想化の大きなメリットとして盛んに喧伝されたのだが、実際には落とし穴もあった。仮想サーバーを準備するには、ネットワークの設定も必要だが、こちらは秒単位というわけにはいかず、場合によってはネットワーク管理者に依頼を出して数日待つこともあった。ネットワークの設定、特にポート単位で行われるセキュリティ関連の設定などが“スイッチのポート”という物理的な要素にひも付けられていたためだ。
ネットワークの仮想化は、まずはパケット転送を司る“データプレーン”と、パケットの行き先の設定や運用管理などを行う“コントロールプレーン”の分離というコンセプトから始まった。この目的で開発された通信プロトコルのOpenFlowが目指したのは、コモディティ化された汎用的な“スイッチハードウェア”によって安価に構成されたネットワークをソフトウェアで制御する“SDN(Software-Defined Network)”だった(図3)。実際にはOpenFlowはエンタープライズ/ネットワークではあまり使われることはなく、大規模なルーティング制御などを行うキャリアやサービスプロバイダーを中心に利用されている。
そして、エンタープライズユーザーが活用するネットワーク仮想化は、VPNと同様のトンネリング技術を活用した「オーバーレイネットワーク」となった。この分野で先行していたNiciraを買収したVMwareが優位に立つことになり、Niciraのテクノロジーをベースとした同社の“NSX”は、現在のネットワーク仮想化市場をリードする存在に成長した(図4)。こうして、サーバーの仮想化が成熟するのと歩調を合わせるように、ストレージとネットワークの仮想化がそれぞれ顕著な進化を遂げ、ITインフラの主要構成要素であるサーバー/ストレージ/ネットワークの3要素すべてが仮想化されることとなった。
HCIの実現
HCI(Hyper Converged Infrastructure)は、サーバー、ストレージ、ネットワークのすべてで仮想化技術を活用し、スケールアウト型のコンポーネントにまとめて運用管理をシンプルにした新世代のITインフラ製品だ。先行するコンセプトとして、まずCI(Converged Infrastructure)があったが、CIはサーバー、ストレージ、ネットワークのすべてをベンダー側があらかじめ統合した形で提供するというコンセプトであり、個々のコンポーネント自体は従来と特に変わらず、付加価値として「インテグレーション」が提供される形であった。
一方、HCIというコンセプトを市場に広め、確立したNutanixは、具体的な製品としてはラックマウントサーバーをコンポーネントとして構成されるシステムをラインアップしているが、実際の製品/テクノロジーの中核となっているのは仮想化技術とその上に構成された運用管理ソフトウェア群だ。そして、CIとHCIを区別する最大の違いが、CIの世代ではSAN接続のストレージ(RAIDボックス)がそのまま使われていたのに対し、HCIではSDSに移行しており、ストレージは独立したRAIDボックスではなくサーバー内蔵のHDD / SSDを仮想統合することで実現されている(図5)。
この結果、HCIではコンポーネントとなるラックマウントサーバーを追加すると、演算性能もネットワーク帯域もストレージ容量もすべてが同時に増強され、それに伴う設定変更作業などは不要となっている。この「必要に応じてコンポーネントを追加するだけで必要なリソースを確保できる」点が、クラウドと同様の利便性を実現している。
HCIは新しいコンセプトに基づくITインフラ製品だったこともあって、エンタープライズユーザーからの信頼を勝ち取るまでに時間を要したが、最初の“キラーアプリケーション”となったのがVDI(Virtual Desktop Infrastructure)だった。VDIは、ユーザーのデスクトップ環境を仮想化し、サーバー側で実行するものだ。環境の実態がユーザーの手元のPCではなく、サーバー側に保存されることになるため、バックアップやデータ保護をサーバー側で一元的に実行でき、ユーザー側のハードウェアに依存しないために万一の障害発生時などに迅速に作業環境を復元できるなどのメリットが得られる。一方、ユーザー数や処理内容に応じた負荷の変動が大きく、必要なリソース量を事前に正確に見積もることが難しい面もある。
HCIはこうした状況に上手く適合し、必要に応じてコンポーネントを追加するだけでリニアにスケールする点が評価された。さらに、HCIを運用することでSDSの運用経験も同時に積むことになったユーザーの間で評価が高まったことで市場におけるSDSへの警戒感が薄れたという副次的なメリットも指摘されている。昨今ではSDSがごく普通に使われるようになってきているが、登場当初は「管理ソフトウェアがトラブルを起こしたら全データを喪失することになるのでは」といった不安を感じるユーザーが少なくなかった。現在では、VMwareのvSANなどがエンタープライズユーザーのオンプレミス環境のITインフラの中核部分などで活用されるようになってきているが、こうした状況はHCIがもたらしたものと言うこともできる。
ストレージの進化
データ爆発の時代を経て、現在はAIやデータアナリティクス手法の進化から「データ自体が経済的価値の源泉」と見なされるような“データの時代”となっている。こうした状況から、現在ではサーバーよりもストレージのほうが急速に進化していると言って過言ではないだろう。
長らくストレージメディアの主役を務めたHDDは、エンタープライズ市場では遂にその座をフラッシュストレージに譲っている。しかも、HDDをシンプルに置き換えることを意図して物理的にもインターフェイス仕様の面でもHDDと互換としたSSD(Solid State Disk)は現在でも使われているものの比率は低下傾向にあり、替わってPCIeバスに直結することでより高性能を発揮できるNVMe(Non-Volatile Memory Express)のシェアが高まってきている。SSDでは、HDDと同様のSATAやSASといったインターフェイスを採用しているが、これらは元々HDDのデータ転送性能を前提に設計されたものなので、フラッシュメモリの性能には追いついていないという問題があった。折角の高速アクセス性能も、インターフェイスがボトルネックとなって活かしきれていなかったのである。NVMeはこの問題を解決すると同時に、モジュールの物理形状もSSDの2.5型HDDのフォームファクタからPCIe接続の拡張カード型に変わっている。スペース効率や冷却効率も向上し、より一層使いやすくなっている形だ(図6)。
なお、データ量は今後も増加する一方と予測されており、さらにデータに対する解析/演算処理も複雑化することは間違いない。大量のデータに高速にアクセスするニーズがますます高まることは間違いないが、今後膨大なデータをストレージに記録した上で、演算の際にそのデータをストレージから読み出してメインメモリに展開するというコピー操作を行うことは難しくなっていくのではないかという予測がある。データ量があまりに多くなると、コピーに要する時間も長くなりすぎるということだ。
そこで、データコピーを根本的に不要にする新たなアーキテクチャとして、不揮発性メモリデバイスの活用が検討されている。SCM(Storage Class Memory)などもそうした取り組みの一環であり、IntelのOptane DC Persistent Memoryが具体的な製品として市場投入されたところだ(図7)。現在のDRAMは、データを保持しておくために電力を消費する構造になっている。このため、大量のデータを処理するためにメモリ容量を増やそうとすると電力消費量が増大してしまうという点も問題になるが、それ以上に深刻なのは、何らかのトラブルで電源供給がダウンするとデータを喪失してしまうことだ。このデータ喪失に備えるためにストレージが存在し、バックアップやスナップショット/ミラーリングといった複雑な技術体系が成立していると言って過言ではない。
一方で、不揮発性メモリデバイスはこうしたデータ喪失に対する備えを不要とし、メインメモリとストレージの使い分けすら必要なくなる可能性がある。つまり、大量のデータをメインメモリ上に保持したままで演算を続けてよくなり、逐一ストレージにコピーを取らなくてもよくなるということだ。サーバーの仮想化によってITインフラの構成は新たな世代へと進化を遂げているが、次はストレージの進化がITインフラのアーキテクチャを根本から変更することになると予想される。
現在のエンタープライズストレージ市場の中心は、既に「オールフラッシュストレージ」と呼ばれる製品群に移行している。HDDとのサイズの差から、データセンターのスペースコストを削減でき、さらにアクセス速度の大幅な向上ももたらされた。さらに、HDDの障害発生を厳密に予測することは困難なので、どうしても障害が発生してから事後対応せざるを得なかったが、フラッシュストレージの場合は突然の故障発生の確率はかなり低く、データの書き込みによって生じる摩耗(ウェアリング)に関してはアクセス状況に基づいてほぼ正確に交換時期を見積もることが可能だ。
こうした特性から、HDDベースのストレージをフラッシュストレージに変更すると運用管理コストの削減も可能になることから、エンタープライズ市場でのストレージの世代交代は2017年頃から加速し、現在ではもうあえてHDDストレージを導入するメリットはなくなったとまで言われるようになっている。
こうした状況を受けて、サーバーの内蔵ストレージとしてフラッシュストレージを活用する例も増えており、HCI製品などでも同様だ。前述のようにSSDからNVMeへの移行も進行中だし、今後市場投入される製品ではIntel Optane DC Persistent Memory対応をうたうものが増えてきている。不揮発性メモリデバイスの実用化によってストレージとメモリの境界に新たにSCMというレイヤーが追加され、ITインフラ全体を刷新していく要因となるだろう。バックアップやデータ保護の考え方も変わってくることから、必然的にITインフラ全体のアーキテクチャの見直しが起こってくることにもなるはずだ。