クラウドを支える仮想化 – 「クラウド時代だから必要なITインフラ基礎知識」(2)

こんにちは、さくらインターネットの大喜多です。

「クラウド時代だから必要なITインフラ基礎知識」第2回は、クラウドを構成する要素技術である「仮想化」について解説致します。

第1回 クラウドインフラのしくみ
第2回 クラウドを支える仮想化
第3回 Linuxコマンドを用いたボトルネック調査
第4回 インターネットを支える技術
第5回 ITインフラ監視入門~Zabbixインストール編~
第6回 ITインフラ監視入門~Zabbix活用編~
第7回 いまどきのインフラ設計のキモ
第8回 Design for FailureなWebシステムの構築

クラウドにおける「仮想化」

本連載の第1回では、『クラウドインフラは、仮想化技術とソフトウェア制御によって、ユーザーは物理インフラを意識することなく利用できるようになっている』とご説明しました。本記事では、『仮想化』について、掘り下げて解説していきます。

サーバの仮想化

物理サーバ上に仮想のハードウェアをソフトウェアによって再現し、その上でゲストOSを稼働させる「完全仮想化」が、今日のクラウドインフラにおけるサーバ仮想化の標準になっています。

Kernel-based Virtual Machine (KVM)

Kernel-based Virtual Machine (KVM)は、x86アーキテクチャ上で動作するLinuxを使用して完全仮想化を提供する仕組みです。x86アーキテクチャで採用されるIntel製CPUにはVT-x、AMD製CPUにはAMD-Vと呼ばれる仮想化支援機能が搭載されています。KVMはこれらの仮想化支援機能を活用して完全仮想化を実現しています。

ディスクの仮想化

サーバの仮想化環境ではディスクも外部ストレージ上に配置され、仮想的なディスクとしてサーバと接続されます。以下の画像がそのイメージ図です。

ネットワークの仮想化

Open vSwitchなどのネットワーク仮想化ソフトウェアによって、仮想ハードウェアに対してネットワークが提供されます。物理サーバ・ネットワーク機器の上に仮想的なネットワークが作られ、それぞれが分離している状態を実現しています。以下の画像がそのイメージ図です。

クラウドインフラは仮想化技術の集合体

さくらインターネットが提供するクラウドプラットフォームであるさくらのクラウドも、このような技術の組み合わせによって作られています。

さくらのクラウドを実際に利用してみると、これらの複雑な仕組みを意識することなく、ブラウザ上からインフラが簡単に操作できるようになっていますが、実際にはこれらの技術の集合体で構成されていることは理解しておいて損はないでしょう。

次回は、仮想サーバ上でサービスを稼働させるうえで必須となる知識である、ボトルネック調査について解説する予定です。

※編集部注:第1回で、クラウドのしくみとしてOpenStackを紹介しましたが、さくらのクラウドではOpenStackを使用していません。OpenStackに相当する機能を自社で開発しています。