IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

仮想化の歴史と機能

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第2回 サーバ仮想化の実装(1) (志茂吉建) 2012年8月

サーバ仮想化の実装方式

 サーバ仮想化の実装方式は、ハイパーバイザ型とホストOS型に分類することが出来ます。VMware WorkstationやOracle VM Virtual BoxなどはホストOS型に分類されます。また、VMware vSphere ESX、Xen、KVMなどはハイパーバイザ型に分類されます。

 VMware WorkstationはWindowsやLinuxにインストールしますので、ホストOSが必要となります。HDDやネットワークカードなどのハードウェアに関しては、ホストOSがサポートするハードウェアであれば基本的に利用可能です。CPUは仮想化対応のものでないとパフォーマンス的に問題が発生する可能性はあります。その他のメモリ、HDD、ネットワークなどはホストOSから利用出来るものは、特別なデバイスドライバなしに利用可能です。また、グラフィック機能に関しても、仮想マシンでDirect Xを利用した3D機能を利用できることもできます。個人で利用するには、ホストOS型のVMware Workstationなどが便利なのではないでしょうか。

 一方、ハイパーバイザ型の仮想化実装ではホストOSは必要ありません。操作するには、VMware vSphere ESXは専用のGUIコンソールが提供されています。また、ハードウェアに関しても専用のデバイスドライバが必要となり、ネットワークカードやHDDを接続するためのHBA(Host Bus Adapter)などは互換性の制限が発生する場合があります。逆に言うと、デバイスドライバさえあれば、ハードウェア利用可能になります。ハイパーバイザ型の仮想化の特徴としては、ハードウェア上で直接仮想マシンが実行されます。ホストOS型と比べてOSの影響がない分、仮想マシンのパフォーマンスは向上します。

準仮想と完全仮想

 仮想化形式は、準仮想と完全仮想の2種類があります。ホストOS型であれ、ハイパーバイザ型であれ、仮想マシン上のOSから見みれば、ネットワークやHDDなどは、仮想マシンが提供している汎用的なデバイスを利用することになり、個別のハードウェアの差異は意識する必要はありません。つまり、OSから見れば、仮想マシンに対応しているデバイスドライバを利用するだけでハードウェアの違いは吸収されることになります。このような形式を完全仮想と呼びます。

 しかし、仮想マシン上のOSに提供されるデバイスドライバは、汎用性が高いものとなり、場合によってはパフォーマンスが遅くなったりする可能性があります。そこで、仮想マシンに特化したデバイスドライバがOSに提供されるものもあります。このような形態を準仮想とよびます。準仮想では、仮想マシン専用のデバイスドライバが必要となります。

 完全仮想の場合は、汎用的なデバイスドライバを利用すれば仮想マシンは動作します。特別なドライバは必要ありません。しかし、パフォーマンスは平均的な可能性があります。準仮想では、仮想マシン上で動作するOSに対してその仮想マシンに特化したデバイスドライバを提供します。VMwareなどでは、VMware Toolsをインストールすることでネットワークデバイスドライバが準仮想のものを利用できるようになり、汎用ドライバより効率的にネットワークを利用することができます。また、Windowsなど上ではOSインストール直後は汎用VGAドライバが利用されますが、同じくVMware Toolsを入れると専用ドライバを利用することができるようになり、パフォーマンスも向上します。Windows 7ではDirect X機能を利用でき、Aeroも利用することも出来ます。

CPUの仮想化

 続いて、CPUの仮想化について考えてみたいと思います。少し触れましたが、仮想環境を利用するにはCPUが仮想化に対応している必要があります。少し前までは、仮想機能に対応していないCPUでもVMware Workstationを利用することができましたが、パフォーマンスに難点がありました。仮想化に対応しているCPUはIntel VTかAMD-Vに対応したCPUとなります。最近、リリースされているCPUはほとんど仮想化対応となっています。

 仮想環境では当然のことながら、一つのCPUコア上で複数の仮想マシンが動作します。仮想化に対応しているCPUであれば、仮想マシン間での切り替えが高速に行えるようになっています。また、複数のCPUを搭載したハードウェアでも効率よく動作できるようにメモリのアクセスを最適化する機能であるNUMA(Non-Uniform Memory Access)機能を備えたCPUなどもあります。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes