libvirt
は KVM や Xen などの有名な仮想化ソリューションを管理するための、
汎用 API を提供するライブラリです。本ライブラリはこれらの仮想化ソリューション
に対して標準化された管理 API を提供しているため、安定した形でハイパーバイザ
にも依存しない、高レベルな管理ツールを提供することができます。このライブラリ
には、 VM ホストサーバ 上での仮想ネットワークや仮想ストレージを管理する API も含まれて
います。なお、それぞれの VM ゲスト に関する設定は XML ファイル内に保存されます。
libvirt
を利用することで、 VM ゲスト をネットワーク上離れた場所 (リモート)から
管理することもできます。それ以外にも、 TLS による暗号化や x509 証明書、 SASL に
よる認証などにも対応しています。
仮想化ソリューションと libvirt
間の通信は libvirtd
と呼ばれるデーモンで
管理されます。このツールは管理ツールとしても使用するものです。 libvirtd
は
VM ホストサーバ 上のほか、 libvirtd
ベースのツールを動作させるリモートのマシン上でも
動作させる必要があります。それぞれ下記のコマンドで起動や停止、状態の確認
などを行なうことができます:
~ # rclibvirtd start Starting libvirtd done ~ # rclibvirtd status Checking status of libvirtd running ~ # rclibvirtd stop Shutting down libvirtd done ~ # rclibvirtd status Checking status of libvirtd unused
システムの起動時に libvirtd
を自動で開始するには、 YaST の
を利用して設定するか、
もしくは下記のコマンドを実行します:
insserv libvirtd
openSUSE では、下記の libvirt
ベースのツールが用意されています:
Virtual Machine Manager は VM ゲスト を管理するためのデスクトップツールです。このツールは 既存のマシンのライフサイクル (起動やシャットダウン、一時停止や再開、 サスペンドや復元) を制御する機能を持っています。また、新しい VM ゲスト を作成することができるほか、様々な種類のストレージを作成したり、仮想 ネットワークを管理したりすることもできます。それ以外にも、内蔵の VNC ビューアを利用して VM ゲスト のグラフィカルコンソールにアクセスする ことができるほか、性能の統計情報を表示したりすることもできます。いずれの 機能とも、ローカルとリモートの両方で動作させることができます。
Virtual Machine Manager は VM ホストサーバ 上で実行する必要はありません。リモートの接続を利用して VM ゲスト を制御することができます。これにより、それぞれの VM ホストサーバ に対して わざわざログインを行なうことなく、単一のワークステーションから VM ゲスト を集中管理することができるようになります。
Virtual Machine Manager を起動するには、コマンドプロンプトから virt-manager と入力します。
VM ゲスト のグラフィカルなコンソールを表示するビューアです。 VNC プロトコルを 利用した仕組みで、 TLS と x509 証明書に対応しています。 VM ゲスト の指定は 名前や ID 、 UUID で指定できます。ゲストがその時点で動作していない場合は、 ビューアはコンソールに接続しようとする前に、ゲストが起動するまで待機を するようにすることができます。
VM ゲスト をセットアップするためのツールで、デバイスの設定やオペレーティング システムのインストールを開始することができます。グラフィカルなユーザ インターフェイスから呼び出された場合は GUI ウイザードが起動します。端末から 起動した場合は、コマンドラインモードでウイザードが起動します。なお、 vm-install は Virtual Machine Manager で新しい仮想マシンを作成した場合にも 起動します。
Virtual Machine Manager と似通った機能を持つ VM ゲスト の管理用コマンドラインツールです。 VM ゲスト の状態 (起動、停止、一時停止など) を変化させ、新しいゲストの 設定を行なったり、既存の設定を編集したりすることができます。 virsh は VM ゲスト の管理操作をスクリプトから行なう ような場合に便利なツールです。
virsh は基本的に Subversion の svn コマンドや zypper コマンドのように動作します。 つまり、最初のパラメータとしてコマンドを、それ以降のパラメータとして そのコマンドに対するさらなるオプションを指定します:
virsh [-cURI
]command
domain-id
[OPTIONS]
zypper と同様、 virsh はコマンド無し でも起動することができます。この場合、コマンド入力を待つシェルとして起動 することができます。このモードは、一連のコマンドを実行したい場合に便利です:
~> virsh -c qemu+ssh://wilber@mercury.example.com/system Enter passphrase for key '/home/wilber/.ssh/id_rsa': Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh # hostname mercury.example.com