Jump to section

KVM とは

URL をコピー

 

2024 年版 世界のテクノロジートレンド

テクノロジーの世界ではデジタル・トランスフォーメーションが急速に進み、企業の重要なビジネス領域の優先順位に変化が生じています。業界に関する知見を共有して 10 年目を迎える 2024 年版 世界のテクノロジートレンドレポートでは、IT と IT 以外における予算配分の 6 つの優先項目と、進歩を妨げる 3 つの障壁を明らかにします。

 

KVM (Kernel-based Virtual Machine:カーネルベースの仮想マシン) は、Linux® に組み込まれたオープンソース仮想化テクノロジーです。KVM を使用すると、Linux をハイパーバイザーとして機能させることができます。これによりホストマシンは、ゲストや仮想マシン (VM) と呼ばれる複数の独立した仮想化環境を稼働させることができます。そのため、新しいハードウェアに投資することなくスケーリングでき、多数の仮想マシンを簡単にデプロイできます。

KVM は Linux の一部です。Linux 2.6.20 以降をお持ちの場合は、KVM が搭載されています。KVM は 2006 年に初めて発表され、1 年後にメインラインの Linux カーネルバージョンに統合されました。KVM は既存の Linux コードの一部であるため、追加のエンジニアリングを必要とせず、Linux の新機能、修正、拡張機能をすぐに利用できます。

KVM は Linux を Type 1 (ベアメタル) ハイパーバイザーに変換します。すべてのハイパーバイザーには、VM を稼働するために、メモリーマネージャー、プロセス・スケジューラー、入出力 (I/O) スタック、デバイスドライバー、セキュリティ・マネージャー、ネットワークスタックなど、オペレーティング・システム・レベルのコンポーネントが必要です。KVM は Linux カーネルの一部であるため、これらのコンポーネントをすべて備えています。各 VM は、ネットワークカード、グラフィックアダプター、CPU、メモリー、ディスクなどの専用の仮想ハードウェアを使用して、標準の Linux スケジューラーによってスケジュールされた通常の Linux プロセスとして実装されます。

Red Hat を活用した VM の移行

KVM の実装

KVM の実装に必要なのは、要約すると 2007 年以降にリリースされたバージョンの Linux を実行すること、仮想化機能をサポートする X86 ハードウェアにインストールすることです。この 2 つの条件をどちらも満たしていれば、既存の 2 つのモジュール (ホスト・カーネル・モジュールとプロセッサー固有のモジュール)、エミュレータ、および追加のシステムの実行をサポートするドライバーをロードするだけで済みます。

しかし、KVM を Red Hat Enterprise Linux などのサポートされる Linux ディストリビューションに実装すると KVM の能力が拡張され、リソースのゲスト間でのスワップ、共通ライブラリの共有、システムパフォーマンスの最適化などが実現します。

 

契約で縛られているプラットフォームに仮想インフラストラクチャを構築すると、ソースコードへのアクセスが制限されてしまうことがあります。このとき、IT 開発部門の労力はイノベーションよりも回避策を探すことに向けられるようになり、次回の契約ではクラウド、コンテナ、自動化に投資できなくなる可能性があります。KVM ベースの仮想化プラットフォームに移行すると、ハイパーバイザーの内部にあるソースコードを検査、修正、強化できます。そして、保護する必要のあるソースコードは存在しないため、エンタープライズライセンス契約も必要がありません。コードを自由に活用できます。

KVM は Linux の一部であり、Linux は KVM の一部です。Linux に備わっているものは、KVM にも備わっています。企業がハイパーバイザーとして KVM を使用する機能的なメリットとして以下が挙げられます。

セキュリティ

KVM は、Security-Enhanced Linux (SELinux)とセキュア仮想化 (sVirt) を組み合わせて使用し、VM のセキュリティと独立性を強化します。SELinux は VM の周囲にセキュリティ境界を設定します。sVirt は SELinux の機能を拡張し、強制アクセス制御 (MAC) セキュリティをゲスト VM に適用できるようにして、手動によるラベル付けのエラーを防ぎます。

ストレージ

KVM は、一部のローカルディスクやネットワーク接続型ストレージ (NAS) など、Linux がサポートするすべてのストレージを使用できます。マルチパス I/O を使用すると、ストレージが向上し、冗長性がもたらされます。KVM はさらに、共有ファイルシステムもサポートしているため、複数のホストで VM イメージを共有できます。ディスクイメージは、シンプロビジョニングをサポートしており、事前割り当てではなく、オンデマンドでストレージを割り当てます。

ハードウェアのサポート

KVM は、さまざまな認定済みの Linux 対応ハードウェア・プラットフォームを使用できます。ハードウェアベンダーは定期的にカーネル開発に貢献しているため、最新のハードウェア機能がいち早く Linux カーネルに採用されることも珍しくありません。

メモリ管理

KVM は、不均一メモリアクセスや Kernel Samepage Merging など、Linux のメモリ管理機能を継承しています。VM のメモリーは、スワップ、大容量の割り当てによるパフォーマンス向上、ディスクファイルでの共有または割り当てができます。

ライブ・マイグレーション

KVM は、ライブ・マイグレーションをサポートしています。ライブ・マイグレーションとは、実行中の VM をサービスの中断なしに物理ホスト間で移動する機能です。VM の再配置中には、VM の電源を入れたままにして、ネットワーク接続をアクティブのまま維持し、アプリケーションを実行し続けます。KVM は VM の現在の状態も保存するため、後からそれを保管して再開することができます。

パフォーマンスと拡張性

KVM は Linux のパフォーマンスを継承し、ゲストマシンとリクエストの数が増えると、負荷需要に合わせてスケーリングします。KVM を使用すると、最も需要の多いアプリケーション・ワークロードを仮想化することができます。KVM は、データセンターやプライベートクラウド (OpenStack® 経由) などの多くのエンタープライズ仮想化セットアップの基礎となります。

スケジューリングとリソース制御

KVM モデルでは、VM は Linux プロセスであり、カーネルによってスケジューリングおよび管理されます。Linux スケジューラーは、Linux プロセスに割り当てられたリソースを細かく制御し、特定のプロセスのサービス品質を保証します。KVM ではこれに、完全に公平なスケジューラー、制御グループ、ネットワーク名前空間、リアルタイム拡張などが含まれます。

レイテンシー短縮と優先順位向上

Linux カーネルはリアルタイム拡張機能を備えているため、VM ベースのアプリケーションを (ベアメタルよりも) 低いレイテンシーかつ高い優先順位で実行できます。カーネルはまた、計算時間が長いプロセスを小規模のコンポーネントに分割します。コンポーネントはそれに応じてスケジューリングされ、処理されます。

単一のワークステーションで起動された数個の VM を、管理ツールを使用せずに手動で管理することも可能ですが、大企業は仮想化管理ソフトウェアを使用します。このソフトウェアは、仮想化環境やその基盤にある物理ハードウェアとインタフェースして、リソース管理を簡素化し、データ分析を向上させ、運用を効率化します。

Red Hat は KVM のメリットを高く認め、すべての Red Hat 製仮想化製品のハイパーバイザーとして KVM を採用しています。また、Red Hat は KVM コミュニティのコントリビューターとして、継続的にカーネルコードを改善しています。しかし、KVM は Linux の一部であるため、すでに Red Hat Enterprise Linux にも含まれています。

関連資料

記事

コンテナと VM

Linux コンテナと仮想マシン (VM) は、さまざまな IT コンポーネントが組み合わさってシステムの他の部分から分離している、パッケージ化されたコンピューティング環境です。

記事

仮想マシン (VM) とは

仮想マシン (VM) は分離されたコンピューティング環境で、物理マシンからリソースを抽象化して作成されます。

記事

KVM とは

KVM (Kernel-based Virtual Machine:カーネルベースの仮想マシン) は、Linux をハイパーバイザーに変貌させるオープンソースの仮想化テクノロジーです。

仮想化の詳細はこちら

製品

コンテナ化アプリケーションの構築とスケーリングに適した、一貫性のあるハイブリッドクラウド基盤です。

ハードウェアを仮想化し、リソースをクラウドにまとめるプラットフォーム。

リソース

トレーニング

無料のトレーニングコース

Virtualization and Infrastructure Migration Technical Overview

  • OpenStack® のワードマークと OpenStack のロゴは、米国とその他の国における OpenStack Foundation の登録商標/サービスマークまたは商標/サービスマークのいずれかであり、OpenStack Foundation の許諾の下で使用されています。Red Hat は、OpenStack Foundation と OpenStack コミュニティのいずれにも所属しておらず、公認や出資も受けていません。