仮想化ツールは、Virt Toolsとしてよく知られていますが、仮想化の世界をより良い場所にするために、さまざまな貢献者によって作成された6つのオープンソース仮想化ツールのコレクションです。
KVMやQEMUなどの一部のツールは、Linux愛好家にはなじみがあるかもしれませんが、libvirtやlibguestfsなどのツールはおそらくそれほど馴染みがありません。
読むよりもビデオを見て学ぶことを好む場合のために、私はこの記事のビデオバージョンを作成しました。これはYouTubeでアクセスできます。
ツールを実行する前に、仮想化の重要な用語を理解しておくことをお勧めします。私はこれらの定義の多くをウィキペディアから導き出し、ページは表にリンクされています。
期間 | 定義 |
---|---|
仮想化 | コンピューティングでは、仮想化とは、仮想コンピューターのハードウェアプラットフォーム、ストレージデバイス、コンピューターネットワークリソースなど、何かの仮想(物理ではなく)バージョンを作成する行為を指します。 |
エミュレーター | エミュレーターは、あるコンピューターシステム(ホストと呼ばれる)が別のコンピューターシステム(ゲストと呼ばれる)のように動作できるようにするハードウェアまたはソフトウェアです。 |
仮想マシン(VM) | 「ゲストマシン」とも呼ばれるこれらは、実際の物理ハードウェアコンピューターのエミュレーションです。 |
ホスト | ハードウェア仮想化において、ハイパーバイザーが1つ以上のVMを実行するコンピューター。 |
ハイパーバイザー | これは、VMを作成して実行するコンピューターソフトウェア、ファームウェア、またはハードウェアです。 |
カーネル | これは、システム内のすべてを完全に制御する、コンピューターのオペレーティングシステムのコアにあるコンピュータープログラムです。 |
デーモン | これは、インタラクティブユーザーの直接の制御下ではなく、バックグラウンドプロセスとして実行されるコンピュータープログラムです。 |
この表は、ライセンス情報、各ツールのWebサイトおよびソースコードへのリンクを含む、各Virtツールをまとめたものです。この情報の多くは、VirtToolsのWebサイトと各ツールのサイトからのものです。
名前 | それは何ですか | ライセンス | ソースコード |
---|---|---|---|
カーネルベースの仮想マシン(KVM) | カーネルがハイパーバイザーとして機能できるようにするLinuxカーネルの仮想化モジュール | GNUGPLまたはLGPL | ソースコード |
クイックエミュレーター(QEMU) | 汎用のオープンソースマシンエミュレーターおよびバーチャライザー | GPLv2 | ソースコード |
Libvirt | 仮想化ホストを管理するための安定したオープンソースAPIを提供するライブラリとデーモン | GNU | ソースコード |
Libguestfs | VMディスクイメージにアクセスして変更するための一連のツール | LGPL、GPL | ソースコード |
Virt-manager | libvirtを介してVMを管理するためのデスクトップユーザーインターフェイス | GPLv2 + | ソースコード |
Libosinfo | VMを展開するときにハードウェアを最適に構成するのに役立つ、オペレーティングシステムのリリースに関する情報のデータベースを提供します | LGPLv2 + | ソースコード |
カーネルベースの仮想マネージャー(KVM)
KVMは、仮想化拡張機能を含むハードウェア上のLinux向けの完全仮想化ソリューションです。 KVMは、Linux、Windows、macOS、ReactOS、Haikuなどのさまざまなゲストオペレーティングシステムにハードウェア仮想化を提供します。 KVMを使用すると、変更されていないLinuxまたはWindowsイメージで複数のVMを実行できます。各VMには、ネットワークカード、ディスク、グラフィックアダプターなどのプライベート仮想化ハードウェアがあります。
ほとんどの場合、KVMと直接対話することはありません。代わりに、QEMU、virt-manager、または別の仮想化管理ツールを使用してKVMを活用する必要があります。
完全なドキュメントはKVMWebサイトにあり、そのソースコードにアクセスできます。
クイックエミュレーター(QEMU)
QEMUは、汎用のオープンソースマシンエミュレーターおよびバーチャライザーです。 QEMUをエミュレーターとして使用すると、あるマシン(ARMボードなど)用に作成されたオペレーティングシステムとプログラムを別のマシン(たとえば、独自のx86_64 PC)で実行できます。 QEMUをバーチャライザーとして使用すると、KVMを使用してホストCPUでゲストコードを直接実行することにより、ネイティブに近いパフォーマンスを実現します。
QEMUは複数のオペレーティングシステムでサポートされており、そのインストールプロセスはいくつかの簡単なコマンドを実行するのと同じくらい簡単です。ここでは、Homebrewを使用してmacOSにQEMUをインストールする方法を確認できます。
インストール後、ドキュメントを読んで使用方法を学び、ソースコードにアクセスすることもできます。
Libvirt
Libvirtは、仮想化ホストを管理するための安定したオープンソースAPIを提供するライブラリおよびデーモンです。 QEMU、KVM、LXC、Xen、OpenVZ、VMWare ESX、VirtualBoxなどを含む複数のハイパーバイザーを対象としています。
libvirtのもう1つの興味深い点は、Kubernetesプラットフォーム内でVMを作成および管理するためのオープンソースプロジェクトであるKubeVirtが主にLibvirtを利用していることです。 (KubeVirtについては、今後の記事で取り上げます。)Libvirtは興味深いプロジェクトであり、公式Webサイトで多くの情報を見つけたり、ソースコードをダウンロードしたりできます。
Libguestfs
Libguestfsは、VMディスクイメージにアクセスして変更するためのツールのセットです。ゲスト内のファイルの表示と編集に使用できます。 VMへのスクリプト変更。使用済みディスク/空き統計の監視。ゲストの作成、物理から仮想(P2V)、または仮想から仮想(V2V)マシン。バックアップの実行。 VMのクローン作成。 VMの構築;ディスクのフォーマット;ディスクのサイズ変更。とはるかに。最近、OpenShift Virtualizationと呼ばれるKubeVirtベースのプロジェクトに取り組んでいるときに使用しています。これについては、ビデオチュートリアルで詳しく知ることができます。
Libguestfsの公式Webサイトには、各コマンドの使用方法に関する広範なドキュメントが含まれています。また、GitHubからソースコードをダウンロードすることもできます。
Virt-manager
Virt-managerは、libvirtを介してVMを管理するためのデスクトップユーザーインターフェイスです。主にKVMVMを対象としていますが、XenとLXCも管理しています。また、コマンドラインプロビジョニングツールvirt-installも含まれています。 virt-managerは、VM用の使いやすい管理ツールと考えてください。たとえば、virt-managerを使用してLinuxワークステーションでMicrosoft Windows環境を実行したり、その逆を行うことができます。
Virt-managerのソースコードはGitHubで入手でき、ドキュメントはそのWebサイトにあります。現時点では、virt-managerはLinuxプラットフォームでのみ使用できます。
Libosinfo
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
Libosinfoは、VMを展開するときにハードウェアを構成するのに役立つ、オペレーティングシステムのリリースに関する情報のデータベースを提供します。データベース内の情報をクエリするためのCライブラリが含まれており、GObjectイントロスペクションでサポートされている任意の言語からもアクセスできます。ご想像のとおり、libosinfoは、オペレーティングシステムの機能を有効にするための構成要素ですが、非常に重要です。
LibosinfoのソースコードはGitLabで入手でき、そのドキュメントはそのWebサイトで見つけることができます。
Virt-toolsは、仮想化を容易にし、重要な仮想化機能を有効にする6つの強力なツールのセットです。それらはすべてオープンソースプロジェクトであるため、さらに調査し、おそらくそれらに貢献することをお勧めします。
どう思いますか?コメントを残して、考えを共有したり、質問したりしてください。