クラウドコンピューティングを学ぶ(2)

2. コンピューティングの仮想化

1. コンピューティング仮想化の概要

1.1 仮想化の概要

a. 仮想化とは何ですか

物理デバイスを論理化し、ファイルまたはフォルダに変換します。このファイルまたはフォルダには 2 つの部分が含まれている必要があります。1 つの部分はデバイス構成情報の記録に使用され、もう 1 つの部分はユーザー データの記録に使用されます。

仮想マシンはサーバーの制限から解放され、クラスター内で仮想マシンを移行できるようになります。

b. コンピューティング仮想化の歴史

ここに画像の説明を挿入

c. コンピューティング仮想化における重要な概念

ここに画像の説明を挿入

ホスト マシン: 物理マシン。オペレーティング システム (ホスト OS) を転送する必要があります。

ハイパーバイザー: 仮想化ソフトウェア層/仮想マシン モニター (仮想マシン モニター、VMM)。仮想マシンのステータスの監視、仮想マシンへの CPU の割り当て、および IO 仮想化を担当する仮想化コア。

ゲスト マシン: 仮想化された仮想マシン。

ゲスト OS: 仮想マシンのオペレーティング システム。

d. コンピューティング仮想化の分類

① ベアメタル仮想化(ベアメタルサーバー、BMS、タイプIモデル)
ここに画像の説明を挿入

ハイパーバイザーは、基盤となるホスト OS を介さずにハードウェア リソースを直接呼び出すことができます。また、タイプ I 仮想化では、ハイパーバイザー自体がカスタマイズされたホスト OS であることも理解できます。VMM の役割を果たすことができることに加えて、通常、これをホスト OS にインストールすることはできませんホスト OS、その他のアプリケーション。

ハイパーバイザーは主に 2 つの基本機能を実装します。1 つ目は、仮想マシンが発行する CPU 特権命令または保護命令を識別、キャプチャし、応答することです。2 つ目は、仮想マシンのキューとスケジューリングを処理し、処理結果を返すことです。物理ハードウェアを対応する仮想マシンに接続します。

ハイパーバイザーは、すべてのリソースと仮想環境の管理を担当します。VMM は、すべてのリソース (メモリ、CPU、IO デバイスなど) を制御する、仮想化のための完全なオペレーティング システムとして使用できます。マシンはゲスト OS を実行するために使用され、ハードウェアとの接続を担当します。

**主な製品:**VMware ESXI、Proxmox VE、Microsoft Hyper-V、Alibaba Cloud Shenlong、Huawei Cloud BMS、Tencent Cloud Blackstone

**利点: **仮想マシンはオペレーティング システムに依存しません。互換性が高く、複数のオペレーティング システムとアプリケーションをサポートします。優れたパフォーマンスと低損失を実現します。

**欠点: **仮想化カーネルの開発が難しい

② ホストベース仮想化(ホストベースモデル、タイプ II モデル)
ここに画像の説明を挿入
このモデルの物理リソースはホスト OS によって管理され、仮想化機能は基盤となるオペレーティング システム上の共通アプリケーション プログラムである VMM によって提供されます。 (ホスト OS)。対応する仮想マシンを作成して、基盤となるサーバー リソースを共有します。VMM は、ホスト OS サービスをスケジュールすることでリソースを取得し、メモリ、CPU、および IO デバイスの仮想化を実現します。VMM によって作成された仮想マシンは、通常、ホスト OS のプロセスとしてスケジューリングに参加します。

主な製品:VMware Workstation、VirtualBox、Parallels Desktop

長所: シンプルで実装が簡単

短所: インストールとアプリケーションはコンポーネントに依存するデバイスのオペレーティング システム サポートに依存する、管理オーバーヘッドが高い、パフォーマンスが大幅に低下する

e. 仮想化の特徴

画像.png

パーティション: サーバーは多数の仮想マシンを分割できます。各仮想マシンは独自のオペレーティング システムを持ち、相互に干渉しません。各オペレーティング システムは、独自に割り当てられたリソース (CPU、メモリ、ネットワーク カード待機) のみを参照できます。

隔離: 1 つのサーバー上で複数のゲスト OS が実行され、1 つのゲスト OS が攻撃されても、他のゲスト OS は影響を受けず、正常に実行できます。

カプセル化: 仮想化の本質は、サーバーを複数のファイルまたはフォルダーに論理的に分割することです。各仮想マシンはフォルダーであり、多くのファイルに分割されます。これがカプセル化です。カプセル化後、オペレーティング システムとハードウェアを分離し、オペレーティング システムをハードウェア間で実行できるようになります。

独立:仮想マシン作成時にフォルダが生成されますが、このフォルダを別ホストの指定ディレクトリにコピーすることでも正常に動作します。

1.2 コンピューティング仮想化の分野

a.CPU仮想化

①CPU 階層型保護ドメイン
ここに画像の説明を挿入
CPU の階層型保護ドメインでは、CPU を 4 つのリング/パーミッションに分割し、システムをより安定させます。

仮想化では、ホスト OS とゲスト OS またはハイパーバイザーもオペレーティング システムであり、それらはすべてリング 0 権限を持っている必要があります。ハードウェアは誰の命令をリッスンするかを知りません。このとき、新しい命令依存命令が使用されます。解決策は 2 つあります。 : 完全仮想化と準仮想化

② 完全仮想化された
ここに画像の説明を挿入
ゲスト OS が機密命令を実行すると、ハイパーバイザーもそのメッセージを受け取り、ハイパーバイザーはその命令を翻訳して機密命令を実行し、ハードウェアを呼び出して結果をゲスト OS に返します。

欠点: 完全仮想化プロセス中、ゲスト OS は、仮想マシンがコマンドを実行するときに、ハイパーバイザーもそのコマンドを変換して実行することを認識しません。これはコマンドを 2 回実行することと同じであるため、一定のパフォーマンスが消費されます。

③準仮想化
ここに画像の説明を挿入

ゲスト OS は、それが機密命令であることを検出すると、ハイパーコール (Hypercall) を呼び出し、機密命令をハイパーバイザーに送信し、ハイパーバイザーは機密命令を実行し、ハードウェアを呼び出し、結果をゲスト OS に返します。

短所: 多くのクローズドソース オペレーティング システム (Windows など) は準仮想化をサポートしていません。

④ハードウェア仮想化

CPU は保護ドメインをリング 0 ~ リング 3 に分割せず、ルート モードと非ルート モードに分割し、各ルート モードにリング 0 とリング 3 の権限を与え、ゲスト OS は非ルートのリング 0 で動作します。モードでは、ホスト OS はリング 0 上でルート モードで実行されます。

b. メモリ仮想化

物理メモリはホスト上の複数の仮想マシンのメモリ要件を満たすことができないため、メモリ仮想化が表示されます。

物理ホストがメモリアドレス空間を割り当てる場合、メモリアドレス空間は0から開始する必要があり、メモリアドレス空間は連続的ですが、仮想化導入後は、物理アドレスから始まるメモリ使用量のすべての仮想マシンの更新要件を満たすことができなくなります。 0、それも難しいですが、メモリの連続性を保証します。

解決策は、アドレス マッピングを実行することです。メモリ仮想化を実行するとき、新しいアドレス空間が導入され、仮想マシンはここに画像の説明を挿入
実際の物理空間で実行されていると誤って認識されます。実際には、仮想マシンが認識しているのは、VMM によってマップされた仮想メモリです。各仮想マシンのアドレスは連続しているように見えますが、実際には物理マシン側では離散的であり、これらはすべて VMM によって実現されます。

c. IO仮想化

IO 仮想化には、シミュレーション、準仮想化、IO 透過伝送の 3 種類があります。

①シミュレーション(完全仮想):ソフトウェアを使用して実際のハードウェアをシミュレートし、マウスやキーボードなどの一般的なハードウェアをシミュレートし、フォーカスによってキャプチャします。フォーカスをキャプチャしたホストがホストによって使用され、パフォーマンスが非常に低下します。

②準仮想化: ハードウェアドライバーをフロントエンド (IO フロントエンド) からバックエンド (IO バックエンド) に直接転送するのが一般的で、通常は高性能のハードディスクとネットワーク カードにのみ使用されます。

③IO スルー: ハードディスクやネットワーク カードを仮想マシンに直接割り当てるなど、仮想マシンの物理デバイスに直接割り当てられる IO 透過的伝送には、ハードウェアに IO 透過的伝送テクノロジが必要です。これは、Dom0 によって割り当てられます。 xen を使用しますが、アクセスは Dom0 を経由せずに直接使用されるため、ハードウェアのサポートが必要です

1.3 仮想化とクラウド コンピューティングの違い

仮想化とは、ハードウェアの使用率を向上させることです。1 つの物理ホストが複数の論理ホストに仮想化され、異なるアプリケーションを独立して実行できます。仮想ホストのロジックはファイルまたはフォルダーに変換されるため、ソフトウェアとハ​​ードウェアの強力な結合が壊れます。ファイルやフォルダーを自動的に移行することで、仮想マシン上で実行されているビジネスのパフォーマンスを向上させることができます。

クラウドコンピューティングでは、単純にIaaSのクラウドサービスを実現するために仮想化が用いられており、IaaSやPaasの一部は仮想化に基づいて実現され、他の部分は物理ハードウェアと分散コンピューティングに基づいて実現されます。

1.4 主流のコンピューティング仮想化テクノロジー

ここに画像の説明を挿入
ここに画像の説明を挿入

KVM: 完全仮想化。Linux カーネル内のモジュールで、CPU とメモリの仮想化を実現するために使用されます。Linux のプロセスであり、他の IO デバイスを実現するには KVM が必要です)。

Xen: 完全仮想化/準仮想化、ハードウェア上で直接実行、Xen の仮想マシンは Dom0 と DomU の 2 つのカテゴリに分類されます。Dom0 は、Dom0 でハードウェアに直接アクセスし、他の DomU を管理する権限を持つ特権仮想マシンです。他の仮想マシンが起動する前に、事前に起動する必要があります。DomU は通常の仮想マシンであり、ハードウェア リソースに直接アクセスできません。すべての操作はフロントエンドおよびバックエンド ドライバーの形式で Dom0 に転送される必要があり、その後、Dom0 は特定の操作を完了した後、結果を Dom0 に返します。

2. KVM の概要

2.1 KVMとは

ここに画像の説明を挿入

KVM の正式名称は Kernel-based Virtual Machine です. これはカーネルベースの仮想マシンであり、典型的なタイプ II 完全仮想化です. このモジュールを通常の Linux にインストールすると、3 つの動作モードが追加されます: 仮想モード、ユーザーモード、カーネルモード。

仮想モード: 主に、限定された CPU モードに設定された仮想マシンの CPU、メモリ、ディスクなどの仮想デバイスを含む仮想マシンを指します。

ユーザー モード: 主に KVM を実行し、仮想マシンの IO のような操作をシミュレートして実行します。

カーネル モード: ハードウェア操作を実行できます。ゲスト OS が IO 操作または特権命令操作を実行する場合、ユーザー モードにリクエストを送信する必要があり、ユーザー モードは再度そのリクエストを開始してカーネル モードに送信して実行します。実際の操作。

2.2KVMシステム

KVM は通常、管理ツール、KVM、QEMU の 3 つの部分に分かれています。

ここに画像の説明を挿入
管理ツール: 仮想マシンのハードウェア リソースを管理するために使用されます。

KVM:CPU仮想化とメモリ仮想化を実現します。

QEMU: IO 仮想化を実装します。

2.3リブバート

ここに画像の説明を挿入

Libvirt は、KVM、Xen、VMware、Hyper-V などの仮想プラットフォームを管理できる強力な管理ツールです。仮想プラットフォーム自体は多言語の動作をサポートしていませんが、Libvirtはさまざまな開発言語のインターフェースをサポートしており、Libvirtと接続することで仮想プラットフォーム上でさまざまな開発言語のプラグインを適用することが容易になります。

2.4 KVM I/O 操作プロセス - デフォルト

画像.png

  1. ゲスト OS が操作リクエストを開始し、仮想デバイス ドライバーに送信します。
  2. KVM モジュールには I/O トラップ コードがあり、この IO リクエストをキャプチャします。
  3. キャプチャ後、KVM は IO リクエストを I/O 共有ページに置きます
  4. 同時に、KVM も QEMU に通知し、QEMU は I/O 共有ページに移動してこのリクエストを取得し、IO リクエストの特定の要件を確認します。
  5. QEMUはIOリクエストに従ってシミュレートし、実際のデバイスドライバにリクエストを送信します。
  6. デバイスドライバーが QEMU からリクエストを受信すると、それを物理ハードウェアに配信してリクエストを処理します。
  7. 処理が完了すると、QEMU は処理結果を I/O 共有ページに配置します
  8. 同時に処理結果をKVMモジュールに通知します
  9. KVM モジュールは I/O 共有ページから結果をフェッチし、仮想デバイス ドライバーに送信します。
  10. 仮想デバイス ドライバーは結果をシミュレートし、そのシミュレーション結果をゲスト OS に送信して、IO リクエスト全体が完了します。

2.5KVM I/O操作プロセス - Virtio

ゲスト OS が KVM を経由せずに QUEM と直接通信できるようにすると、要求手順が簡素化され、パフォーマンスが向上します。

Virtio では、IO リクエストと QEMU リターンは KVM を経由しなくなり、準仮想化である vring と呼ばれる空間に配置されます。

ここに画像の説明を挿入

3. FusionCompute の概要

3.1FusionCompute アーキテクチャ

画像.png

FC アーキテクチャは KVM アーキテクチャと非常に似ています。どちらも製品を管理するための管理ツールです。FC の管理ツールは VRM です。VRM は管理者とユーザーに Web ベースのグラフィカル管理インターフェイスを提供します。その上でステータスを確認できます。仮想マシンや仮想リソースの状態、プールの状態、物理ハードウェアの情報、仮想マシンの情報など。

クラスターは、コンピューティング リソース、ストレージ リソース、およびネットワーク リソースを上向きに提供します。

3.2 FusionCompute の利点

①仮想化と物理リソースの一元管理

②VRMは仮想マシン、コピー、テンプレートなどを素早く発行できます。

3.3 FusionCompute コンポーネント

FC は VRM と CAN の 2 つのコンポーネントで構成されます

コンポーネント 関数
CNA ① 仮想コンピューティングの提供
② 計算ノード上の仮想マシンの管理
③ 計算ノード上のコンピューティング、ストレージ、およびネットワーク リソースのシャットダウン
VRM ① クラスター内のブロック ストレージ リソースを管理します。
② クラスター内のネットワーク リソース (IP/VLAN) を管理し、仮想マシンにアドレスを割り当てます。 ③ クラスター
内の仮想マシンのライフ サイクルとコンピューティング ノード上の仮想マシンの分散と移行を管理します。
④ 管理します。リソースの動的な調整
⑤仮想リソースとユーザーデータの一元管理により、エラスティックコンピューティング、ストレージ、ネットワークなどの外部サービスを提供
⑥統一された保守管理インターフェースの提供により、運用保守担当者はWeb管理を通じてリモートからアクセスして操作可能インターフェース

おすすめ

転載: blog.csdn.net/weixin_46706771/article/details/131661974