2020 年に知っておくべき 6 つのオープンソース仮想化技術

Virt Tools として知られる仮想化ツールは、仮想化の世界をより良くするためにさまざまな貢献者によって作られた 6 つのオープンソース仮想化ツールのコレクションです。

1_virttools.jpg

Virt Tools website

(Bryant Son, CC BY-SA 4.0).0)

KVM や QEMU など、いくつかのツールは Linux ファンにはおなじみかもしれませんが、libvirt や libguestfs といったツールは、おそらくそれほどでもないでしょう。

読むよりもビデオを見て学びたいという方のために、この記事のビデオ版を作成し、YouTube でアクセスできます。

ツールを見ていく前に、重要な仮想化用語をいくつか知っておくとよいでしょう。 これらの定義の多くは Wikipedia から引用し、表中のページにリンクしています。

LGPLv2+ Kernel->LGPLv2ベースの仮想マネージャ (KVM)

2_kvm.jpg

KVM website

(Bryant Son, CC BY-SA 4.0)

KVM は仮想化拡張を含むハードウェア上の Linux 用に完全な仮想化ソリューションです。 KVM は、Linux、Windows、macOS、ReactOS、および Haiku など、さまざまなゲスト OS 用のハードウェア仮想化を提供します。 KVM を使用すると、修正されていない Linux や Windows のイメージで複数の VM を実行できます。 各 VM は、ネットワーク カード、ディスク、グラフィック アダプターなど、プライベートな仮想化ハードウェアを持ちます。

ほとんどの場合、KVM と直接対話することはありません。 代わりに、QEMU、virt-manager、または他の仮想化管理ツールを使用して KVM を活用する必要があります。

KVM Web サイトでは、そのソース コードにアクセスできるだけでなく、完全なドキュメントを見つけることができます。jpg

QEMU website

(Bryant Son, CC BY-SA 4.0)

QEMU は汎用、オープンソースのマシンエミュレーションおよび仮想化ツールであります。 エミュレーターとして使用する場合、QEMU はあるマシン (例: ARM ボード) 用に作られたオペレーティング システムとプログラムを別のマシン (例: 自分の x86_64 PC) で実行できます。 仮想化装置として使用する場合、QEMU は KVM を使用してホスト CPU 上でゲスト・コードを直接実行することにより、ネイティブに近いパフォーマンスを達成します。

QEMU は複数の OS でサポートされており、そのインストール手順はいくつかの簡単なコマンドの実行と同じくらいに簡単です。

3_1_qemuinstall.jpg

QEMU macOS インストール情報

(Bryant Son, CC BY-SA 4.0).0)

インストールしたら、ドキュメントを読んで使い方を学び、ソースコードにアクセスすることもできます。jpg

Libvirt website

(Bryant Son, CC BY-SA 4.0)

Libvirt はライブラリおよびデーモンで、仮想化ホストの管理用にオープンソース API を安定的に提供するものです。 QEMU、KVM、LXC、Xen、OpenVZ、VMWare ESX、VirtualBox など、複数のハイパーバイザーを対象としています。

libvirt に関するもうひとつの興味深いことは、Kubernetes プラットフォーム内で VM を作成および管理するオープンソース プロジェクトである KubeVirt が、ほとんど Libvirt を利用していることです。 (KubeVirt については、今後の記事で取り上げます。) Libvirt は興味深いプロジェクトであり、その公式サイトで多くの情報を得ることができ、また、ソース コードもダウンロードできます。jpg

Libguestfs website

(Bryant Son, CC BY-SA 4.0)

Libguestfs は VM ディスクイメージにアクセスし変更するためのツール群です。 ゲスト内のファイルの表示と編集、VM への変更のスクリプト作成、ディスク使用/使用済み統計の監視、ゲスト、物理から仮想 (P2V) または仮想から仮想 (V2V) へのマシン作成、バックアップの実行、VM の複製、VM の構築、ディスクのフォーマット、ディスクのサイズ変更、その他多くの目的で使用可能です。 私は最近、OpenShift Virtualization という KubeVirt ベースのプロジェクトに取り組んでいるときにこれを使用しています。

Virt-manager

6_virtualmanager.jpg

Virt-manager website

(Bryant Son, CC BY-SA 4.0).0)

Virt-manager は libvirt を通して VM を管理するためのデスクトップ ユーザー インターフェイスです。 主に KVM VM を対象としていますが、Xen や LXC も管理できます。 また、コマンドラインのプロビジョニングツールである virt-install も含まれています。 virt-manager は VM のための使いやすい管理ツールだと考えてください。 たとえば、Linux ワークステーション上で Microsoft Windows 環境を実行するため、またはその逆のために virt-manager を使用できます。

Virt-manager のソースコードは GitHub で利用でき、ドキュメントはその Web サイトにあります。 現時点では、virt-manager は Linux プラットフォームでのみ利用可能です。

Libosinfo

7_libosinfo.jpg

Libosinfo website

(Bryant Son, CC BY-SA 4.0).0)

Libosinfo は、VM をデプロイする際のハードウェアの設定を支援するために、オペレーティングシステムのリリースに関する情報のデータベースを提供します。 データベース内の情報を照会するための C ライブラリを含んでおり、 GObject introspection でサポートされているどの言語からでもアクセスできます。 ご想像のとおり、libosinfo はオペレーティングシステムの機能を有効にするためのビルディングブロックというより、非常に重要なものです。

Libosinfo のソースコードは GitLab で入手でき、そのドキュメントはその Web サイトで見つけることができます。

用語 定義
仮想化 コンピューターでは、仮想化は、仮想コンピューター ハードウェア プラットフォーム、ストレージ デバイス、コンピューター ネットワーク リソースなどの何かの(物理ではなく)仮想バージョンを作成する行為を指します。
エミュレータ エミュレータとは、あるコンピューター システム (ホストと呼ばれます) が別のコンピューター システム (ゲストと呼ばれます) のように動作できるようにするハードウェアまたはソフトウェアのことです。
ホスト ハードウェア仮想化では、ハイパーバイザーが 1 つまたは複数の VM を実行するコンピュータ。
ハイパーバイザー これは VM を作成および実行するコンピュータ ソフトウェア、ファームウェア、またはハードウェアです。
カーネル これは、システム内のすべてを完全に制御するコンピュータのオペレーティング システムの中核にあるコンピュータ プログラムです。
Daemon これは、対話型ユーザーの直接制御下ではなく、バックグラウンド プロセスとして実行されるコンピューター プログラムです。 この情報の多くは、Virt Tools Web サイトおよび各ツールのサイトからのものです。

を通して VM を管理するためのデスクトップ ユーザー インターフェイス

名前 内容 ライセンス ソース コード
Kernel->Virtual Studio は、Virtual Studio と同じ機能を備えています。ベース仮想マシン (KVM) カーネルをハイパーバイザーとして機能させる Linux カーネルの仮想化モジュール GNU GPL または LGPL ソースコード
クイック (Quick) Linux カーネルの仮想化モジュール。 Emulator (QEMU) A generic and open source machine emulator and virtualizer GPLv2 Source code
Libvirt A library and daemon providing stable.Libvirt (QEMU) A generic and open source machine emulator and virtualizer GPLv2 A library and daemon provides a stable, 仮想化ホスト管理のためのオープンソース API GNU ソースコード
Libguestfs VM ディスクイメージへのアクセスおよび修正用ツール群 LGPL, GPL ソースコード
バーチャルmanager libvirt GPLv2+ ソース コード
Libosinfo Provides of a database of a VMs… VM を展開する際にハードウェアを最適に構成するためのオペレーティング システムのリリースに関する情報 LGPLv2+ ソース コード

Kernel->LGPLv2+

LGPLv2+

コメントを残す

メールアドレスが公開されることはありません。