第3章 概要

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 (virt-manager)

Virtual Machine Manager は VM ゲスト を管理するためのデスクトップツールです。このツールは 既存のマシンのライフサイクル (起動やシャットダウン、一時停止や再開、 サスペンドや復元) を制御する機能を持っています。また、新しい VM ゲスト を作成することができるほか、様々な種類のストレージを作成したり、仮想 ネットワークを管理したりすることもできます。それ以外にも、内蔵の VNC ビューアを利用して VM ゲスト のグラフィカルコンソールにアクセスする ことができるほか、性能の統計情報を表示したりすることもできます。いずれの 機能とも、ローカルとリモートの両方で動作させることができます。

Virtual Machine Manager は VM ホストサーバ 上で実行する必要はありません。リモートの接続を利用して VM ゲスト を制御することができます。これにより、それぞれの VM ホストサーバ に対して わざわざログインを行なうことなく、単一のワークステーションから VM ゲスト を集中管理することができるようになります。

Virtual Machine Manager を起動するには、コマンドプロンプトから virt-manager と入力します。

virt-viewer

VM ゲスト のグラフィカルなコンソールを表示するビューアです。 VNC プロトコルを 利用した仕組みで、 TLS と x509 証明書に対応しています。 VM ゲスト の指定は 名前や ID 、 UUID で指定できます。ゲストがその時点で動作していない場合は、 ビューアはコンソールに接続しようとする前に、ゲストが起動するまで待機を するようにすることができます。

vm-install

VM ゲスト をセットアップするためのツールで、デバイスの設定やオペレーティング システムのインストールを開始することができます。グラフィカルなユーザ インターフェイスから呼び出された場合は GUI ウイザードが起動します。端末から 起動した場合は、コマンドラインモードでウイザードが起動します。なお、 vm-install は Virtual Machine Manager で新しい仮想マシンを作成した場合にも 起動します。

virsh

Virtual Machine Manager と似通った機能を持つ VM ゲスト の管理用コマンドラインツールです。 VM ゲスト の状態 (起動、停止、一時停止など) を変化させ、新しいゲストの 設定を行なったり、既存の設定を編集したりすることができます。 virsh は VM ゲスト の管理操作をスクリプトから行なう ような場合に便利なツールです。

virsh は基本的に Subversion の svn コマンドや zypper コマンドのように動作します。 つまり、最初のパラメータとしてコマンドを、それ以降のパラメータとして そのコマンドに対するさらなるオプションを指定します:

virsh [-c URI] 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

openSUSE KVM を利用した仮想化 13.1