SDC(Software Defined Compute)とは、「CPUやGPU、メモリなどのコンピューターが計算するために必要とする資源を、必要な時に必要な量だけソフトウエアによって動的に確保して利用する技術やそのアーキテクチャ」を意味します。現時点ではサーバー仮想化技術によって、制御された仮想マシンを利用者に自動的に提供することでSDCを実現するクラウドが主流ですが、近頃は物理サーバーをソフトウエア的に制御して利用者に素早く提供する「ベアメタルクラウド」も普及し始めています。どのような手段で提供されようと、統一されたAPIを通じて望みのコンピューティングリソースをソフトウエア的にオンデマンドで取得できることが、SDCのキモとなります。
サーバー仮想化は、メインフレームの時代から使われてきた歴史ある技術です。コモディティなx86サーバーの仮想化技術は2000年前後から商用化が始まり、Linuxベースの「Xen」やLinuxカーネルに統合された「KVM」など、OSSの仮想化技術が一般化したことで一気に普及しました。サーバー仮想化には大きく分けてホスト型/ハイパーバイザー型があり、近年ではコンテナー型の仮想化も脚光を浴びています。以下でそれぞれの概要をおさらいしておきましょう。
・サーバー仮想化(ホスト型)
ホストOS上にハードウエアをエミュレートするアプリケーションを動作させ、その上でゲストOSを動作させます。「VMWare Workstation」や「Oracle VM VirtualBox」などがホスト型の仮想化アプリケーションの代表例です。仮想化アプリケーションを簡単に導入でき仮想マシンの管理も簡単な反面、ホストOSのオーバーヘッドがあるため速度的に不利であることを否めません。
・サーバー仮想化(ハイパーバイザー型)
物理サーバー上にハードウエアをエミュレートする仮想化プロダクト(ハイパーバイザー)を直接導入し、ハイパーバイザー上でゲストOSを動作させます。「VMware vSphere Hypervisor」やXen、KVMなどが代表例です(KVMは物理サーバー上にLinuxがインストールされるためホスト型のようにも見えますが、ホストOS上に独自の仮想化アプリケーションプロセスを動作させるわけではないため、こちらに分類しています)。ホストOSのオーバーヘッドがないため、ホスト型よりも速度的に有利だといわれています。
・コンテナー型
最近はやりの「Docker」や「LXC」「OpenVZ」などが代表例です。ホスト型やハイパーバイザー型のようなハードウエアエミュレートは行わず、Linuxの各種コンテナー技術(リソース割当量の調整を行う「cgroup」や、プロセス空間やネットワーク空間などを分離する「namespace」など)を用いてコンテナーを構成します。
各コンテナーはホストOSのカーネルを共有しますが、コンテナー技術によってユーザープロセスやネットワーク、ディスク領域などが他のコンテナーから隔離されるため、利用者からすれば新しい仮想マシンが立ち上がったように見えます。ホストOSのカーネルを共有するため、コンテナーの起動が圧倒的に速くオーバーヘッドも小さいのが特徴です。
しかし一方で、Linux上でWindows Serverを立ち上げるようなカーネルが異なるOSの起動はできませんし、カーネルモジュールのロードのような特権的操作は他のコンテナーに影響を及ぼすため、十分な注意が必要となります。
ちなみに、マイクロソフトのクラウド責任者のScott Guthrieは、「次リリースのWindows Serverは新しいコンテナー分離技術を備え、Dockerエンジンも統合する」と発表しています 。コンテナー技術は今後も大いに着目すべきでしょう。
参考リンク
このようにさまざまなサーバー仮想化技術がありますが、物理サーバーを直接操作することに比べて何らかの仮想化レイヤーが挟まるため、オーバーヘッドやある程度の制約を避けることはできません。
そこで近年、ソフトウエア的に物理サーバーを制御し、利用者の要求に応じて必要な物理サーバーをオンデマンドに提供するサービスが登場しています。このようなサービスは「ベアメタルクラウド」と呼ばれており、ホスティングとクラウドの良いとこ取りをしたようなサービスとして注目を集めています。
パブリッククラウドの「IBM SoftLayer」のベアメタルサービスや プライベートクラウドの「OpenStack Ironic」などがその代表例です。必要とする性能や可用性、起動に要する時間と費用、機能性などを熟慮し、釣り合うのであればベアメタルクラウドを選択しても良いでしょう。
Copyright © ITmedia, Inc. All Rights Reserved.