オープンソース

仮想化で使えるオープンソースソフトウェアとは?比較20選

現在、企業が扱うシステムなどでは仮想化システムを導入することが多くなり、一般的になりつつあります。仮想化環境を構築することで、物理リソースの削減による社内スペースの確保、リソースの効率的な管理、運用コストの削減などを実現することができ、ビジネスにおけるメリットは大きいといえます。近年、業務の効率化やDX化推進の需要が高まり、大規模なシステムを構築する機会が増えたことで、この仮想化システムの導入はより加速しています。そして仮想化の人気に伴い、仮想化に関連するソフトウェアも次々と開発されています。

この記事では、仮想化で使えるおすすめのソフトウェアを、以下4つのカテゴリに分け、それぞれの機能や特徴を解説しながらご紹介します。

仮想化とは

仮想化とは、CPU、メモリ、ディスクなどのリソースを、物理構成によらずに柔軟に分割したり統合したりする技術のことをいいます。

仮想環境

通常、1台のパソコンに対し1つのOSが起動し、その上でアプリケーションを動かすのが基本です。これに対して仮想環境では、1台の物理的なハードウェアの中に仮想化ソフトウェアを稼働させることで、複数の仮想的なハードウェアを隔離し、個別のOSを動作させます。そうすることで、 複数台のマシンを用意する場合に比べて物理的資源の管理にかかる手間が省けます。また、リソースの配分も状況に応じて柔軟に設定することができるため、リソースを有効に利用でき高いパフォーマンスを確保することができます。なお、仮想環境を提供するプログラムを動作させる基盤のOSをホストOS、仮想環境上で動作するOSをゲストOSと呼びます。ホストOSはハイパーバイザーとも呼ばれています。

仮想マシンの種類

仮想マシンとは、仮想環境を実行するマシンのことをいいます。1台の物理サーバに、複数の仮想マシンを構築して個別に利用したり、それぞれの仮想マシンで異なるOSを並列して運用することも可能です。

仮想マシンには、使用するソフトウェアによって大きく分けて3つの手法があります。

ホスト型

ホスト型とは、ホストOS上に仮想化ソフトウェアをインストールし、その上でゲストOSを動かすことをいいます。ホスト型では、ホストOSとゲストOSで異なるOSを利用することが可能です。つまり、ホストOSにwindowsをダウンロードした場合に、ゲストOSはLinuxやMacを動かすといったことも可能です。ホスト型を利用できるソフトウェアとして、VMware Player、VMware Fusion、Oracle VirtualBoxなどがあります。

ホスト型

ハイパーバイザー型

ハイパーバイザー型とは、ホストOSを使用せず直接サーバ上に仮想化のソフトウェアをインストールし動かすことをいいます。ホストOSがないため、ハードウェアを直接制御することができ、処理速度を向上させることができます。そして複数の仮想マシンを効率よく動作させることも可能です。

ハイパーバイザー型

コンテナ型

コンテナとは、OS上に他のサービスと分離させたアプリケーション環境をパッケージ化することをいいます。コンテナ型では、コンテナ内でアプリケーションを動かすため、アプリケーションに必要なファイルだけがコンテナに含まれています。各アプリケーションは、ホストコンピュータのカーネルを共有して動作します。コンテナ化することで、アプリケーションがあるコンピュータ環境から他のコンピュータ環境へ、アプリケーションの移行を早く確実に行うことが可能になります。

コンテナ型

仮想基盤のOSS

完全仮想化や凖仮想化などの技術では、ハードウェアをエミュレーションした複数の仮想マシンを動かします。ここでは、仮想環境を構築するためのOSSとして、oVirt、KVM、OpenStack、CloudStackを紹介します。

比較表

まずは、これら4つのOSSと、同じく仮想環境を構築するためのソフトウェアであるVMware vSphereについて、仮想環境の基本的な機能をまとめて比較しました。

機能 VMware
vSphere
oVirt KVM OpenStack CloudStack
仮想マシンのコンソール
- 専用ソフト × × × ×
- Web コンソール ×
- SPICE × ×
- VNC ×
- RDP Client ×
管理ウェブUI
ハイパーバイザー VMware ESXi KVM KVM KVM,Xen,
Vmware ESXi,
Hyper-V
KVM,vSphere,
XenServer,Hyper-V 等
仮想マシンの操作
- 作成
- 削除
- クローン
- メモリサイズ変更
- 仮想CPU数変更
- エクスポート(OVA) × ×
- テンプレートの作成
- テンプレートからの作成
ライブマイグレーション
- 仮想マシン
- ストレージ ×
ホスト障害時
- 他ホストで仮想マシンを再起動 ×
- ダウンタイムなしで仮想マシンを継続 × × × ×
アンチウィルス/アンチマルウェア × × × ×
管理サーバ
- HA構成 ×
- バックアップ/リストア ×
- アプライアンス提供 × × ×
ゲストエージェント ×

ソフトウェアを導入する際には、上記の表のような点に注目し、各OSSの利用目的や環境に合わせた選択をすることが大切です。以下では、各OSSの特徴を解説します。

1.oVirt

oVirt

oVirtとは、仮想環境を統合的に管理するために設計された仮想基盤です。KVMをハイパーバイザーとして利用することができます。Red Hatの仮想化プラットフォームであるRed Hat Virtualizationの、オープンソースでの実装となります。

通常、Linuxを使用して仮想環境を構築する場合、KVMを使用することができます。しかし、KVMだけでは、複数のサーバーを使用した仮想環境や障害発生に備えたシステムの構築には対応していないという問題があります。oVirtを使うことで、このようなデメリットを解決することができます。

また、Webベースで直感的に利用できる管理ツールが用意されていたり、冗長性を確保しながら、スケーラブルにシステムを拡張することができたりします。管理コンソールは仮想基盤上に構築することができ、別ハードウェアを用意する必要がありません。OpenStackなどに比べて、インストールの方法も比較的簡単という特長もあります。

問い合わせ

2.KVM

KVMとは、Kernel-based Virtual Machineの略称で、仮想基盤を構築するためのオープンソースソフトウェアです。仮想マシンの作成や起動、ライブマイグレーション等を行うことができます。RedHatが中心となり開発が進められてきました。現在、KVMを使ったRedHatの仮想基盤で機能改善が進んでいることや、そのコミュニティ版の位置付けであるoVirtがリリースされたことなどにより、KVMはVMWare以外のソリューションとして注目されています。

KVM

KVMが他のハイパーバイザーと比べて非常に優れている点は、Linuxカーネルに完全に組み込まれている点です。通常のハイパーバイザーは、仮想マシンを動かすための機能として、メモリ管理、プロセス管理、スケジューラ、入出力管理、デバイス管理、セキュリティ管理、ネットワークスタックなどといった、本来はOSが提供する機能が必要です。しかし、KVMでは、これらの機能はLinuxに実装されているものをそのまま利用することができます。

他のソフトウェアと違い、Linuxカーネルそのものがハイパーバイザーとして動作することで、Linuxのリアルタイム処理の技術を利用することができます。仮想マシンの切り替えや制御をきめ細かく行うことができ、仮想マシンの性能を最大限に引き出すことが可能です。また、すべてのLinuxカーネルの機能を利用可能なため、新しい技術をいち早く取り入れることができ、安定性やセキュリティ対策においても優れています。

KVM構築事例 問い合わせ

3.OpenStack

OpenStack

OpenStackは、クラウド基盤を構築するOSSです。各種ハイパーバイザ(KVM/Xen/VMware Serverの無償製品版であるESXi/Hyper-Vなど)と組み合わせ、クラウドサービスの環境を構築することができます。

OpenStackのメリットは、プライベートクラウド、パブリッククラウドの両方で、クラウドサービスを構築することができる点にあります。プライベートクラウドでは、企業内や組織内部などのクローズド環境向けや、プライベートなIoTクラウドプラットフォームとして利用することができます。一方、パブリッククラウドでは、インターネットを通じて企業や個人など不特定多数のユーザにクラウドサービスを提供することができます。以上のようなメリットから、AWS(Amazon Web Services)のようなIaaS(Infrastructure as a Service)を提供するソリューションとして注目され、積極的に採用されています。さらに、プライベートクラウドとパブリッククラウドを連携させたハイブリッドクラウドの構築も行うことができます。

openstack構築事例 問い合わせ

4.CloudStack

Cloudstack

CloudStackとは、IaaSクラウドを構築するためのOSSです。日本語対応のWebインタフェースを利用できる、KVMやvSphere、Hyper-V等の様々なハイパーバイザーをサポートしているなどの特徴を持っています。

CloudStackは、NAT・ロードバランシング等のネットワーク機能を標準機能として使用することができます。そのため、シンプルな構成のクラウド環境の構築に適しています。一方で、独自のネットワーク構成やコンポーネントを使用したい場合等、複雑な構成のクラウド環境を構築したい場合は、OpenStackの利用が向いています。

cloudstack構築事例 問い合わせ

OSSのおすすめ仮想基盤ツール

仮想化で使えるオープンソースソフトウェアとは?比較20選の先頭へ