KVMとは。Linuxに最適化された仮想化技術を徹底解説

ハードウェアリソースを効率よく活用できる仮想化技術。

中でもKVM(Kernel-based Virtual Machine)は、Linuxに最適化された仮想化技術で、Linuxカーネル 2.6.20以降から標準搭載されています。

本記事では、仮想化技術の中でもKVMに焦点を当て、その仕組みや機能について紹介します。

Unix/LinuxVPSで利用するなら
ミライサーバー
\2週間無料・全プランSSD搭載/
ミライサーバーを無料で試す

KVMとは

KVMの概要

KVM (Kernel-based Virtual Machine)は、LinuxのKernelの一部として組み込まれているオープンソースの仮想化技術です。

KVMを使用することで、Linux をハイパーバイザーとして動作させ、複数の独立した仮想マシンを稼働させることができます。

また、この仮想マシンでは、Linuxに限らずWindowsなどさまざまなOSのマシンを稼働できます。

1台の物理サーバーを、複数の利用者で共用することができるため稼働効率がよく、またKVMがオープンソースで費用がかからないため、レンタルサーバー会社など多くのサービスで利用されています。

KVMの仕組み

KVMは、物理サーバーのハードウェアの上で仮想マシンが動く「ハイパーバイザー」型です。

物理サーバー上で稼働するLinux Kernelの中でKVMが動作し、ゲストOS(仮想マシン)を稼働させます。

KVMでは、Intel VT-xやAMD-VなどのCPUに搭載されている仮想化支援機能を利用して、仮想化を実現します。

【KVMの構成】

KVMはLinux Kernelの中で動作するため、仮想マシンが利用するハードウェアはLinuxで対応しているものがそのまま利用できます

KVMの特徴

KVMには、大きく以下の特徴があります。

    • 仮想化支援機能に対応したCPUが必要
    • 独自のハイパーバイザーを持たず、Linuxの機能をそのまま使える

それぞれの特徴について、詳しく見ていきます。

仮想化支援機能を有するCPUが必要

KVMは、ハードウェアそのものを仮想化し、ゲストOSには変更を加えずに仮想化を実現する「完全仮想化」を実現します。

これにより、Windowsなど直接OSに手を加えられないものも動作させることができます。

KVMでは、CPUの仮想化支援機能を使って完全仮想化を実現しています。

仮想化支援機能は、Intel VT-xやAMD-Vなどがあります。

例えば、Intel系CPUであれば、Core i3以上(Core i5やCore i7)、Xeonプロセッサなどが対応しています。

このため、KVMを使用する場合は、仮想化支援機能をもつCPUが必要です。

完全仮想化の実現には、他にもQEMUのようなソフトウェア(エミュレーター)を使用する方法もあります。

この場合、ゲストOSに手を加えられるため最適化による性能向上が期待できますが、ゲストOSに手を加えられないOSは動かせられません

LinuxはOSをカスタマイズできるため、一部の処理のみ準仮想化で動かすなど、完全仮想化と準仮想化の両方のメリットが活用できるようになっています。

【KVMとQEMU両方を利用した構成】

独自のハイパーバイザーを持たず、Linuxの機能をそのまま使える

KVMはLinuxをハイパーバイザーとしているため、ハードウェアを制御する処理もLinuxのものがそのまま使えます。

つまり、ホストOSのLinuxに対応していれば、KVM上で稼働するゲストOSもそのハードウェアが利用できるということです。

特別なソフトウェアの準備なしに最新のLinuxを利用できるため、導入や管理の容易さというメリットは見逃せません。

また、OSが持つメモリ管理やプロセススケジューリングの機能など、Linuxの機能をそのまま利用できるにもかかわらず、KBM自体は非常にシンプルな構成という特徴もあります。

例えば同じく仮想化を実現するVMwareでは、独自のハイパーバイザーを使っているため、ハードウェアを利用する場合もそのハイパーバイザーに対応したデバイスドライバが必要です。

この点が、KVMと他の仮想化ソフトウェアとの大きな違いの1つです。

 

KVMの機能

KVMはLinuxに備わっているため、Linuxで利用できるものはKVMでも利用できます。

ここでは、KVMで利用できる機能について紹介します。

リソース制御

KVMでは、仮想マシンはLinuxプロセスとして動作するため、Linuxの機能により仮想マシンに割り当てるCPUやメモリなどのリソースを柔軟に配分できます

例えば、cgroupの機能により、割り当てる仮想CPUの数を細かく制御できます。

また、メモリもLinuxの機能を利用して管理し、仮想マシンごとに占有メモリを割り当てることができます。

これにより、メモリ使用量が少ない仮想マシンがあれば、空いているメモリを他の仮想マシンに割り当てる、といった制御も可能です。

ストレージ管理

KVMでは、仮想マシンにディスク領域を割り当てる方法として2つの方法がとれます。

1つは事前に必要な領域を割り当てる方法で、ディスクのフラグメンテーションを防ぐことで高速に動作します。

もう1つはオンデマンドで割り当てる方法です。

これはある程度容量を事前に予約しておいて、必要になったら割り当てることで、ディスクリソースを有効に活用できます。

また、仮想マシンが利用できるストレージは、ローカルディスクの他NFSやiSCSI、DRBDを使ってネットワークミラーリングも利用可能です。

DRBDとは、複数の物理サーバーでディスクをリアルタイムにレプリケート(複製)し、ストレージの冗長化を実現するソフトウェアのことで、可用性を向上できます。

仮想ネットワーク(仮想ブリッジ)

KVMでは、仮想ネットワークとして仮想ブリッジが利用できます。

これにより、仮想マシンはホストの物理ネットワークインタフェースを共有でき、外部IPアドレスも最小ですみます

また、仮想マシン間の通信も可能なほか、NATの利用も可能です。

例えば、今まで物理ホスト5台あったとすると、外部向けのIPアドレスが5つ、ネットワークインタフェースカード(NIC)やケーブルもそれぞれ5つ必要です。

この5台を全て仮想マシンにして1台の物理マシンに集約すれば、外部向けのIPアドレスは1つ、NICやケーブルは不要になります。

ライブマイグレーション

KVMは、稼働中の仮想マシンを他のホストに移動することができる「ライブマイグレーション」機能が備わっています。

例えば、ハードウェア障害やメンテナンスなどでホストを停止せざるを得ない場合、そのホスト上で動いている仮想マシンを止めることなく他のホストに移動できます。

これにより、柔軟な仮想マシンの再配置が可能です。Unix系OS専門のホスティングサービス「ミライサーバー」

まとめ

本記事では、Linuxに標準搭載されている仮想化技術「KVM」について解説しました。

「仮想化支援機能に対応したCPUが必要」という制限はあるものの、Linux標準機能であり、オープンソースであるため、誰でも簡単に利用できます。

また、完全自動化であるためさまざまなOSを稼働でき、Linuxの機能をそのまま利用できるという点も大きな特長です。

仮想化技術を実際に使ってみたいという方は、KVMを試してみてはいかがでしょうか。

UnixやLinuxのVPSならミライサーバー

ミライサーバーは、アシストアップ株式会社が提供している、Unix系サーバーに特化したホスティングサービスです。

ミライサーバーのVPSでは、高速処理が可能なSSDを全プランに搭載しています。

OSは、UbuntuDebianAlmaLinuxなどの豊富なラインアップから選択することができます。

2週間無料トライアルを実施しておりますので、まずはお気軽にお試しください。

▼ミライサーバーについてはこちら▼Unix系OS専門のホスティングサービス「ミライサーバー」

VPSなら「ミライサーバー」

・全プランSSD搭載
・2週間無料

▶ ミライサーバーを無料で試す

関連記事

特集記事

TOP