Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第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