KVM仮想化ソリューションシリーズのKVM管理ツール - 紹介

「KVM 仮想化ソリューション シリーズ: KVM アーキテクチャ」では 2 つの重要な内容について説明しました。そのうちの 1 つは、「実行および保守可能な KVM 仮想化ソリューションを実現するには、2 つの問題を解決する必要があります。1 つ目は、仮想化テクノロジの実装です」です。 2 つ目はクラスター仮想マシンの管理です。もう 1 つの内容は、「KVM モジュールは、仮想化環境全体の中核として、カーネル空間で動作し、CPU とメモリのスケジューリングを担当します。QEMU は、シミュレートされた仮想マシンとして機能します。」サーバーはユーザー空間で動作し、仮想マシンの I/O シミュレーションを担当します。KVM 仮想マシンの作成と操作は、カーネル モードの KVM モジュールとユーザー モードの QEMU プログラムが実行するプロセスです。お互いに協力しましょう。

最初のコンテンツは実際に「KVM仮想化」の問題と「KVM管理ツール」の問題について話しています。2 番目のコンテンツでは、最初のコンテンツで述べた「KVM 仮想化」の問題を解決する方法について説明します。KVM+QEMU の連携により、KVM 仮想化の問題は完全に解決されます。ただし、まだ解決されていない「KVM 管理ツール」の問題があり、「KVM 管理ツール」の問題も解決できれば、完全な KVM ソリューションが解決されるため、この 2 つの内容から始めることができます。 KVM 仮想化ソリューションは、図 1 に示すように、一般的に 3 つの層に分かれていると結論付けられます。

ここに画像の説明を挿入

図 1. KVM 仮想化ソリューション

1. KVM の最初の層

KVM の最初の層は基本的に Linux カーネルに組み込まれています。Linux バージョン 2.6.20 以降、KVM は Linux カーネルに完全に組み込まれています。KVM は Linux カーネル内のモジュールとして存在するため、Linux 2.6 を使用している限り、KVM は Linux カーネルにモジュールとして存在します。 Linux バージョン 20 以降、Linux 2.6.20 以降の場合、システムのインストール時に KVM モジュールがロードされているため、CLI コマンド ライン モードで KVM モジュールを有効にするだけで済みます。

2. 第 2 層 QEMU

QEMU の第 2 層である 2012 年に、qemu-kvm ブランチがメインストリーム QEMU にマージされ、それ以来、KVM 仮想化を実現するために特別な qemu-kvm は必要なくなりました (現在の CentOS を引き続き使用することもできます)が使用されています)、一般的な QEMU コマンドに「-enable-kvm」オプションを追加するだけで済みます。これは、KVM 機能を使用するのと同じであり、KVM は仮想マシンを駆動します。つまり、QEMU は KVM カーネルを呼び出すことができます。そのため、効率は純粋な QEMU よりもはるかに高くなります。

3. 第 3 層の KVM 管理ツール

3.1. KVM 管理ツールのさまざまな方法

KVM の第 1 層と QEMU の第 2 層が解決されたら、残りは KVM 管理ツールです。KVM 管理ツールを使用するにはさまざまな方法があります。エンタープライズ クラウド コンピューティング チームに 40 ~ 50 人しかいない場合は、管理を使用してください。 WebVirtMgr や Proxmox VE などのツールがより適しています。企業に数百人の従業員と裕福な父親からなるクラウド コンピューティング チームがある場合は、OpenStack などのクラウド コンピューティング管理プラットフォームを使用できます。

KVM 管理ツールにはさまざまなレベル、ランク、および位置付け方法があり、図 2 に示すように、これは企業の製品の位置付け、ビジネスの方向性、およびスポンサーの有無によって異なります。

ここに画像の説明を挿入

図 2. KVM 管理ツールのさまざまな再生方法

図 2 では、KVM 管理ツールには、ネイティブ、プライマリ、中間、アドバンス、スーパーの 5 種類のゲームプレイがあることがわかります。KVM 仮想化ソリューションの商用化を実現するには、仮想マシン クラスタ管理の問題を解決する必要があります。しかしそうではなく、ネイティブ、初級、中級の3つのランクが役に立たないということではなく、むしろ上級、超級の基礎となる技術です。

3.2. KVM 仮想化ソリューションのアーキテクチャ

誰もがそれをより明確に理解できるように、図 2 の内容に基づいて、より具体的なアーキテクチャ図、つまり図 3 に示す KVM 仮想化ソリューション アーキテクチャ図を再構成しました。

ここに画像の説明を挿入

図 3. KVM 仮想化ソリューションのアーキテクチャ

仮想マシンは通常の Linux プロセスであり、このプロセスを管理することで仮想マシンの管理が実現されます。図 3 から、Proxmox VE、Kimchi、およびネイティブ管理ツール QEMU はすべて、KVM プロセスの管理を通じて仮想マシンを直接管理していることがわかります。

しかし、プロセスを直接管理するのは非常に面倒であるため、RedHat と Proxmox はそれぞれ、KVM 管理の難しさを軽減するオープンソース プロジェクト Libvirt と Proxmox VE をリリースしました。Libvirt は、現在、KVM 仮想マシンを管理するために最も広く使用されているツールおよびアプリケーション プログラム インターフェイスです。つまり、Libvirt には、仮想マシンの管理を完了するための API と一連のコマンド ライン管理ツールが備わっています。Proxmox VE にも同様のことが当てはまります。Proxmox VE には、REST API、コマンド ライン ツールのセット、および仮想マシンの管理を完了できる WebGUI 管理ツールが備わっています。

3.2.1. Libvirt の生態

Libvirt は、RedHat や IBM などの捕食者によって作成されたオープン ソース プロジェクトです。RedHat と IBM の 2 つの大きなツリーに支えられ、Libvirt のエコロジカル チェーンは、基盤となる Linux オペレーティング システムから中間層の仮想化、さらに上位層に至るまで、非常に優れています。 Libvirt API は次のことを行います。

  • 基盤となる Linux システムであるLibvirt は、RHEL、CentOS、Fedora、Ubuntu、Debian などの Linux オペレーティング システムをサポートしています。

  • 中間層の仮想化では、Libvirt は KVM/QEMU、Xen、VMware、VirtualBox、Hyper-V などのプラットフォーム仮想化ソリューションをサポートします。

  • Libvirt ツールには、virsh コマンド ライン ツールが付属しています。virsh コマンド ライン ツールは、スタンドアロン管理モードのみを実装できます。単に virsh に依存して仮想マシンを管理するだけでは、成熟した KVM 仮想化ソリューションにはなりません。

  • Libvirt API、Libvirt は、エコロジカル パートナーの KVM 管理ツールをサポートし、Libvirt API を呼び出して仮想マシンを管理する API ライブラリ セットを提供します。現在、コマンドライン ツール (virt-install)、グラフィカル ツール (virt-manager、virt-viewer、virt-top)、Web 管理ツール (WebVirtMgr、oVirt)、およびクラウド管理プラットフォーム ツール (OpenStack、ZStack、OpenNebula) があります。 、Eucalyptus、CloudStack) およびその他のツールは、Libvirt ベースの管理ツールです。

3.2.2. Proxmox VEの生態

Proxmox VE は、KVM 管理ツールであると同時に、Libvirt 中間層と同様のアプリケーション プログラミング インターフェイスでもあります。Proxmox VE は、オーストリアの営利企業 Proxmox Server Solutions のオープン ソース製品です。Proxmox VE ソフトウェアとコミュニティ サポートは無料で、企業ユーザーはサブスクリプション システムを通じて有料の商用サポートを取得できます。Proxmox VE の主な欠点は、このオープン ソース製品が Proxmox Server Solutions によってのみ保守されており、そのエコロジーが Libvirt ほど良くないことです。

  • 基盤となる Linux システムであるProxmox VE は、Debian Linux オペレーティング システムのみをサポートし、他の Linux オペレーティング システムはサポートしません。
  • 中間層の仮想化については、Proxmox VE は仮想化ソリューションとして KVM/QEMU のみをサポートします。
  • Proxmox VE ツールには、組み込み WebGUI 管理インターフェイス ツールとコマンド ライン管理ツールが付属しています。WebGUI 管理インターフェイスは構成の 98% 以上を完了でき、コマンド ライン管理ツールの構成が必要な機能はほとんどありません。Proxmox VE のこれら 2 つの組み込みツールは小規模なクラスター管理を実現し、KVM/QEMU と組み合わせることで、成熟した KVM 仮想化ソリューションとなります。
  • REST API、Proxmox VE は RESTful API を使用します。サードパーティの開発者は、主要なデータ形式として JSON を選択します。すべての API 定義は JSON 構文を使用します。サードパーティの管理ツールは、Proxmox VE API を簡単に統合できます。ただし、Proxmox VE のエコロジーはあまり良くなく、これまで Proxmox VE API を使用して KVM 仮想化を管理するサードパーティ パートナーはありませんでした。これには 2 つの理由が考えられます。1 つは、Proxmox VE 自体が基盤となるオペレーティング システムと中間層の仮想化サポートをあまり備えていないこと、また、Proxmox VE は小規模なクラスター管理にのみ適しているため、3 番目の機能が存在しないことです。パーティ パートナーは、Proxmox VE API の管理ツールに基づいて開発します。一方、Proxmox VE に付属する WebGUI 管理インターフェイス ツールは、すでに VMware と同等の商用グレードの管理ツールとなっており、顧客は Proxmox VE の WebGUI 管理インターフェイスを直接使用でき、サードパーティ パートナーもあまり多くのツールを見つけることができなくなりました。コマーシャル 想像の余地があります。

次に、以降の章で Libvirt (libvirt ツール、libvirt API) および Libvirt API に基づく管理ツールを 1 つずつ紹介し、Proxmox VE、KVM プロセス管理に基づく Kimchi ツールなどについても紹介しますので、ここでは説明しません。詳細はこちら。

おすすめ

転載: blog.csdn.net/jianghu0755/article/details/129776211