KVM は内部的にどのように動作しますか?

KVM は内部的にどのように動作しますか?

[[314764]]

1. KVMアーキテクチャ

kvm の基本構造は 2 つの部分で構成されます。

kvm ドライバーは Linux カーネルのモジュールになりました。主に仮想マシンの作成、仮想メモリの割り当て、VCPU レジスタの読み取りと書き込み、VCPU の操作を担当します。

もう 1 つのコンポーネントは Qemu です。これは、仮想マシンのユーザー スペース コンポーネントをシミュレートし、I/O デバイス モデルを提供し、周辺機器にアクセスするために使用されます。

図1 KVMの基本構造

kvm の基本構造を上の図に示します。 kvm はすでにカーネル モジュールであり、標準の Linux 文字セット デバイス (/dev/kvm) として認識されます。 Qemu は libkvm アプリケーション インターフェイスを使用して、ioctl 経由で fd を使用するデバイス ドライバーに仮想マシンの作成および実行コマンドを送信します。デバイス ドライバー kvm は、以下に示すように、コマンドを解析します (kvm_dev_ioctl 関数は kvm_main.c ファイル内にあります)。

図2 kvm_dev_ioctl関数

kvm モジュールは、Linux ホストを仮想マシン モニター (VMM) にし、元の 2 つの Linux 実行モードに基づいて新しいクライアント モードを追加します。クライアント モードには、独自のカーネル モードとユーザー モードがあります。仮想マシンの実行中、3 つのモードは次のように動作します。

クライアント モード: 非 I/O クライアント コードを実行します。仮想マシンはこのモードで実行されます。

ユーザー モード: ユーザーに代わって I/O 命令を実行します。 Qemu はこのモードで実行されます。

カーネル モード: クライアント モードの切り替えを実装し、I/O またはその他の命令によって発生するクライアント モードの終了 (VM_EXIT) を処理します。 kvm モジュールはこのモードで動作します。

kvm モデルでは、各 Gust OS は標準の Linux プロセスとして扱われ、Linux プロセス管理コマンドを使用して管理できます。

ここで、qemu が ioctl を通じて KVM_CREATE_VM 命令を発行する場合、VM を作成した後、qemu は KVM_CREATE_VCPU などのいくつかのコマンドを VM に送信する必要があります。もちろん、これらのコマンドも ioctl を通じて送信されます。ユーザプログラム内で ioctl を使って KVM_CREATE_VM を送信した場合の戻り値は、新しく作成された VM に対応する fd (kvm_vm) になります。 fd は、特定の仮想マシンインスタンスを指すために作成されたファイル記述子です。この fd は、アクセス制御のために VM にコマンドを送信するために使用されます。 kvm がこれらのコマンドを解析するために使用する関数は kvm_vm_ioctl です。

2. KVMの動作原理

kvm の基本的な動作原理の概要:

ユーザー モードの qemu は、ioctl を介してカーネル モードに入るために libkvm を使用します。 kvm モジュールは仮想マシンの仮想メモリを作成し、仮想 CPU の後に VMLAUCH 命令を実行してクライアント モードに入ります。ゲスト OS をロードして実行します。ゲスト OS が外部割り込みまたはシャドウ ページ テーブル ページ フォールトに遭遇すると、ゲスト OS の実行が中断され、例外を処理するためにゲスト モードが終了し、その後ゲスト モードが再び開始されてゲスト コードが実行されます。 I/O イベントが発生するか、シグナル キューにシグナルが到着すると、ユーザー モード処理が開始されます。 (下図参照)

図3 KVMの動作原理フローチャート

<<:  分散 KVM とは何かを理解するための分散 KVM システム アーキテクチャ図

>>:  2020 年、クラウド コンピューティングは上位 4 社による戦いになるのでしょうか、それとも勝者総取りになるのでしょうか。

推薦する

馬華クラウド:香港CN2クラウドサーバー - 最低8元、香港クラスタークラウドサーバー - 最低693元/年

Mahua Cloud は現在、香港データセンターのクラウド サーバーの特別プロモーションを実施して...

美団が実店舗共同購入サイト「Mengmai.com」を買収、商品共同購入に回復のチャンス

原題: Meituan が実店舗グループ購入サイト Mengmai.com を買収北京ビジネスデイリ...

なぜ Spring はクラウド ネイティブ時代においても優れたプラットフォームの 1 つなのでしょうか?

今日は、クラウド ネイティブ時代においても Spring が優れたプラットフォームの 1 つであり続...

フォーラム運営戦略1:ポイントシステムの構築と運用

フォーラムは、ウェブサイトの重要な形態として、その強い自律性、強いインタラクティブ性、および管理の容...

ウェブサイトの内部リンク戦略

ウェブサイトの内部リンクの最適化とは何ですか? 1. ウェブサイトのナビゲーションウェブサイトのナビ...

顧客の視点からBaiduのレコメンデーションエンジンについて語る

今日、たまたまフォーラムを訪れて、いつものように外部リンクを投稿しました。今は必要がないので、他の人...

分散ストレージにおけるメタデータ管理

メタデータは、データを説明するデータ、データに関する説明情報、および情報リソースとして定義されます。...

店舗の内部力を強化するには、どのような点から始めるべきでしょうか?

店は開業して2年になりますが、まだ利益が出ていません。先週、社長は広州に行き、Liebo Dafen...

Huayun DataのXu Guangbin氏は、アモイ市党委員会書記のHu Changsheng氏や他の指導者らとクラウドコンピューティングの開発について議論した。

[[265287]]華雲データグループの徐光斌会長兼社長が、福建省党委員会常務委員兼厦門市党委員会書...

クラウド サービスが分散キャッシュ システム アーキテクチャに統合されると、どのような火花が散るでしょうか?

インターネット技術には 2 つの主要な支点があり、その 1 つはキャッシュです。分散キャッシュ シス...

春節マーケティングを活性化させる6つの方法!

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス春節が近づいてきました!...

エッジからリードする: エッジコンピューティングがマイクロデータ構造に革命をもたらす

いつでもどこでもデータに即座にアクセスしたいという需要が高まり続けるにつれて、エッジ コンピューティ...

ウェブマスターの観点から見た 360 Search、Baidu、Google の比較

360 Search は数日間「ひっそりと」オンラインになっており、当初のシンプルなページから現在の...

Sanwu.comは、ドメイン名登録のために公文書や印章を偽造したことは一度もないと回答した。

4月6日、GEM上場企業であるSanwu.comが、政府機関の公印を偽造し、nanjing.cnを含...