第14章 virsh を使用したゲスト仮想マシンの管理
virsh は、ゲスト仮想マシンとハイパーバイザーを管理するためのコマンドラインインターフェイスツールです。virsh コマンドラインツールは libvirt 管理 API に基づいて構築されており、qemu-kvm コマンドおよびグラフィカルな virt-manager アプリケーションの代替として機能します。virsh コマンドは、特権のないユーザーが読み取り専用モードで使用することも、root アクセスで完全な管理機能を使用することもできます。virsh コマンドは、仮想化管理のスクリプトを作成するのに理想的です。
14.1. 一般的なコマンド
このセクションのコマンドは、どのドメインにも固有ではないため、一般的なものです。
14.1.1. help
$ virsh help command | group help コマンドは、オプションの有無にかかわらず使用できます。オプションなしで使用すると、すべてのコマンドが 1 行に 1 つずつ一覧表示されます。オプションとともに使用すると、カテゴリーにグループ化され、各グループのキーワードが表示されます。
特定のオプション専用のコマンドを表示するには、そのグループのキーワードをオプションとして指定する必要があります。以下に例を示します。
$ virsh help pool
Storage Pool (help keyword 'pool'):
find-storage-pool-sources-as find potential storage pool sources
find-storage-pool-sources discover potential storage pool sources
pool-autostart autostart a pool
pool-build build a pool
pool-create-as create a pool from a set of args
pool-create create a pool from an XML file
pool-define-as define a pool from a set of args
pool-define define (but don't start) a pool from an XML file
pool-delete delete a pool
pool-destroy destroy (stop) a pool
pool-dumpxml pool information in XML
pool-edit edit XML configuration for a storage pool
pool-info storage pool information
pool-list list pools
pool-name convert a pool UUID to pool name
pool-refresh refresh a pool
pool-start start a (previously defined) inactive pool
pool-undefine undefine an inactive pool
pool-uuid convert a pool name to pool UUID
同じコマンドをコマンドオプションとともに使用すると、その 1 つの特定のコマンドに関するヘルプ情報が得られます。以下に例を示します。
$ virsh help vol-path
NAME
vol-path - returns the volume path for a given volume name or key
SYNOPSIS
vol-path <vol> [--pool <string>]
OPTIONS
[--vol] <string> volume name or key
--pool <string> pool name or uuid
14.1.2. 終了して終了します
quit コマンドと exit コマンドは、ターミナルを閉じます。以下に例を示します。
$ virsh exit
$ virsh quit
14.1.3. version
version コマンドは、現在の libvirt バージョンを表示し、ビルドの作成元に関する情報を表示します。以下に例を示します。
$ virsh version
Compiled against library: libvirt 1.1.1
Using library: libvirt 1.1.1
Using API: QEMU 1.1.1
Running hypervisor: QEMU 1.5.3
14.1.4. 引数の表示
virsh echo [--shell][--xml][arg] コマンドは、指定された引数をエコーまたは表示します。エコーされた各引数はスペースで区切られます。
--shell
オプションを使用すると、出力は必要に応じて一重引用符で囲まれるため、シェルコマンドでの再利用に適しています。--xml
オプションを使用すると、出力は XML ファイルでの使用に適したものになります。たとえば、virsh echo --shell "hello world" というコマンドは、出力 'hello world'
を送信します。
14.1.5. connect
ハイパーバイザーセッションに接続します。シェルが最初に起動されたとき、このコマンドは、URI パラメーターが -c コマンドによって要求されたときに自動的に実行されます。URI は、ハイパーバイザーへの接続方法を指定します。最も一般的に使用される URI は以下のとおりです。
- xen:/// - ローカルの Xen ハイパーバイザーに接続します。
- qemu:///system- ルートとしてローカルで QEMU および KVM ドメインを監視するデーモンに接続します。
- xen:///session- ユーザーとしてローカルでユーザーの QEMU および KVM ドメインのセットに接続します。
- lxc:/// - ローカルの Linux コンテナーに接続します。
追加の値は、libvirt の Web サイト http://libvirt.org/uri.html で入手できます。
コマンドは次のように実行できます。
$ virsh connect {name|URI}
ここで、
{name}
は、ハイパーバイザーのマシン名 (ホスト名) または URL (virsh uri コマンドの出力) です。読み取り専用接続を開始するには、上記のコマンドに --readonly
を追加します。URI の詳細については、リモート URI を参照してください。URI がわからない場合は、virsh uri コマンドを実行すると以下のようなメッセージが表示されます。
$ virsh uri
qemu:///session
14.1.6. 基本情報の表示
次のコマンドを使用して、基本情報を表示できます。
- $ hostname- ハイパーバイザーのホスト名を表示します
- $ sysinfo- 利用可能な場合、ハイパーバイザーのシステム情報の XML 表現を表示します
14.1.7. NMI の挿入
$ virsh inject-nmi [domain] は、NMI (マスク不可割り込み) メッセージをゲスト仮想マシンに挿入します。これは、回復不能なハードウェアエラーなど、応答時間が重要な場合に使用されます。このコマンドを実行するには:
$ virsh inject-nmi guest-1