Red Hat Training

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

第4章 仮想化コマンドラインインターフェイスの使用

Red Hat Enterprise Linux 7 で仮想化を操作する標準的な方法は、コマンドラインユーザーインターフェイス (CLI) を使用することです。CLI コマンドを入力すると、ホストシステムで仮想マシンを作成または操作するシステムユーティリティーがアクティブになります。この方法を使用すると、virt-manager などのグラフィカルアプリケーション を使用するよりも詳細に制御でき、スクリプト作成や自動化を行うこともできます。

4.1. 仮想化用の主なコマンドラインユーティリティー

以下のサブセクションでは、Red Hat Enterprise Linux 7 で仮想化を設定および管理するために使用できる主なコマンドラインユーティリティーを一覧表示します。これらのコマンドは、他の多数の仮想化ユーティリティーと同様に、Red Hat Enterprise Linux リポジトリーが提供するパッケージに含まれており、Yum パッケージマネージャーを使用 してインストールできます。
仮想化パッケージのインストールの詳細は、仮想化の導入および管理ガイド を参照してください。

4.1.1. virsh

virsh は、ハイパーバイザーとゲスト仮想マシンを管理するための CLI ユーティリティーです。これは、Red Hat Enterprise Linux 7 で仮想化を制御する主要な手段です。その機能は次のとおりです。
  • 仮想マシンの作成、設定、一時停止、一覧表示、およびシャットダウン
  • 仮想ネットワークの管理
  • 仮想マシンの ディスクイメージ のロード
virsh ユーティリティーは、仮想化管理スクリプトの作成に最適です。root 権限を持たないユーザーも virsh を使用できますが、読み取り専用モードで使用することになります。

virsh の使用

virsh ユーティリティーは、標準のコマンドライン入力で使用できるだけでなく、対話式のシェルとしても使用できます。シェルモードでは、コマンドプレフィックスの virsh が不要になり、ユーザーは常に root として登録されます。次の例では、virsh hostname コマンドを使用してハイパーバイザーのホスト名を表示します。最初は標準モードで、次に対話モードで使用します。
 $ virsh hostname
 localhost.localdomain

 $ virsh
 Welcome to virsh, the virtualization interactive terminal.

 Type:  'help' for help with commands
        'quit' to quit

 virsh # hostname
 localhost.localdomain
重要
非 root ユーザーとして virsh を使用すると、非特権 libvirt セッション に入ります。この場合、root によって作成されたゲストやその他の仮想化された要素を表示したり操作したりすることはできません。
要素への読み取り専用アクセスを取得するには、-c qemu:///system オプションを指定して virsh を使用します。

virsh のヘルプの取得

すべての Linux bash コマンドと同様に、virsh のヘルプは man virsh コマンドまたは --help オプションを使用して取得できます。さらに、virsh help コマンドを使用して、特定の virsh コマンドのヘルプテキストを表示したり、キーワードを使用して、特定のグループに属するすべての virsh コマンドを一覧表示したりできます。
virsh コマンドグループとそれぞれのキーワードは次のとおりです。
  • ゲスト管理 - キーワード domain
  • ゲスト監視 - キーワード monitor
  • ホストとハイパーバイザーの監視と管理 - キーワード host
  • ホストシステムのネットワークインターフェイス管理 - キーワード interface
  • 仮想ネットワーク管理 - キーワード network
  • ネットワークフィルター管理 - キーワード filter
  • ノードデバイス管理 - キーワード nodedev
  • パスフレーズや暗号化キーなどのシークレットの管理 - キーワード secret
  • スナップショット管理 - キーワード snapshot
  • ストレージプール管理 - キーワード pool
  • ストレージボリューム管理 - キーワード volume
  • 一般的な virsh の使用法 - キーワード virsh
次の例では、ゲスト仮想マシンの名前を変更する方法を知る必要があります。virsh help を使用して、まず使用する適切なコマンドを見つけ、次にその構文を理解します。最後に、コマンドを使用して Fontaine というゲストの名前を Atlas に変更します。

例4.1 キーワードを使用してすべてのコマンドのヘルプを一覧表示する方法

# virsh help domain
 Domain Management (help keyword 'domain'):
    attach-device                  attach device from an XML file
    attach-disk                    attach disk device
    [...]
    domname                        convert a domain id or UUID to domain name
    domrename                      rename a domain
    [...]
# virsh help domrename
 NAME
   domrename - rename a domain

 SYNOPSIS
   domrename <domain> <new-name>

 DESCRIPTION
   Rename an inactive domain.

 OPTIONS
   [--domain] <string>  domain name, id or uuid
   [--new-name] <string>  new domain name

# virsh domrename --domain Fontaine --new-name Atlas
Domain successfully renamed
注記
virsh を使用した仮想マシンの管理に関する詳細は、Red Hat Enterprise Linux 7 仮想化の導入および管理ガイド を参照してください。

4.1.2. virt-install

virt-install は、新しい仮想マシンを作成するための CLI ユーティリティーです。シリアルコンソール、SPICE、または VNC クライアント/サーバーペアグラフィックを使用したテキストベースインストールとグラフィカルインストールの両方をサポートしています。インストールメディアは、ローカルにあるものか、NFS、HTTP、または FTP サーバーにあるリモートのものを使用できます。このツールは、無人で実行し、キックスタート方式を使用してゲストを準備するように設定することもできるため、インストールを簡単に自動化できます。このツールは virt-install パッケージに含まれています。
重要
非 root ユーザーとして virt-install を使用すると、非特権 libvirt セッション に入ります。この場合、作成したゲストは自分にのみ表示され、root によって作成されたゲストが持つ特定の機能にはアクセスできません。
注記
virt-install の使用に関する詳細は、Red Hat Enterprise Linux 7 仮想化の導入および管理ガイド を参照してください。

4.1.3. virt-xml

virt-xml は、ドメイン XML ファイルを編集するためのコマンドラインユーティリティーです。XML 設定を正常に変更するには、ゲストの名前、XML アクション、および変更内容をコマンドに含める必要があります。
たとえば、次の例では、ゲストのブート設定に関連するサブオプションを一覧表示し、example_domain ゲストでブートメニューをオンにします。
# virt-xml boot=?
 --boot options:
   arch
   cdrom
   [...]
   menu
   network
   nvram
   nvram_template
   os_type
   smbios_mode
   uefi
   useserial
# virt-xml example_domain --edit --boot menu=on
Domain 'example_domain' defined successfully.
コマンドの呼び出しごとに、1 つのドメイン XML ファイルに対して 1 つのアクションを実行できることに注意してください。
注記
このツールは virt-install パッケージに含まれています。virt-xml の使用に関する詳細は、virt-xml の man ページを参照してください。

4.1.4. guestfish

guestfish は、仮想マシンのディスクイメージを調査および変更するためのコマンドラインユーティリティーです。libguestfs ライブラリーを使用し、libguestfs API によって提供されるすべての機能を公開します。

guestfish の使用

guestfish ユーティリティーは、標準のコマンドライン入力モードで使用できるだけでなく、対話式のシェルとしても使用できます。シェルモードでは、コマンドプレフィックスの guestfish が不要になり、ユーザーは常に root として登録されます。次の例では、guestfish を使用して testguest 仮想マシン上のファイルシステムを表示します。最初は標準モードで、次に対話モードで使用します。
# guestfish domain testguest : run : list-filesystems
/dev/sda1: xfs
/dev/rhel/root: xfs
/dev/rhel/swap: swap
# guestfish

Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.

Type: 'help' for help on commands
	  'man' to read the manual
	  'quit' to quit the shell

><fs> domain testguest
><fs> run
><fs> list-filesystems
/dev/sda1: xfs
/dev/rhel/root: xfs
/dev/rhel/swap: swap
さらに、guestfish は、自動化のために bash スクリプト で使用することもできます。
重要
非 root ユーザーとして guestfish を使用すると、非特権 libvirt セッション に入ります。この場合、root によって作成されたゲストのディスクイメージを表示したり操作したりすることはできません。
これらのディスクイメージへの読み取り専用アクセスを取得するには、-ro -c qemu:///system オプションを指定して guestfish を使用します。さらに、ディスクイメージファイルの読み取り権限が必要です。

guestfish のヘルプの取得

すべての Linux bash コマンドと同様に、guestfish のヘルプは man guestfish コマンドまたは --help オプションを使用して取得できます。さらに、guestfish help コマンドを使用して、特定の guestfish コマンドに関する詳細情報を表示できます。次の例では、guestfish add コマンドに関する情報を表示します。
$ guestfish help add
NAME
    add-drive - add an image to examine or modify

SYNOPSIS
     add-drive filename [readonly:true|false] [format:..] [iface:..] [name:..] [label:..] [protocol:..] [server:..] [username:..] [secret:..] [cachemode:..] [discard:..] [copyonread:true|false]

DESCRIPTION
    This function adds a disk image called filename to the handle. filename
    may be a regular host file or a host device.
    [...]
注記
guestfish の詳細は、Red Hat Enterprise Linux 7 仮想化の導入および管理ガイド を参照してください。