第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 コマンドを使用してハイパーバイザーのホスト名を表示します。最初の例は標準モード、2 つ目の例は対話モードになります。
 $ 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

重要

virsh を root 権限を持たないユーザーとして使用する場合は、非特権の libvirt セッション を入力します。つまり、ゲスト、または root が作成したその他の仮想化要素には対話できないことを意味します。
要素への読み取り専用アクセスを取得するには、virsh-c qemu:///system オプションを使用します。

virsh のヘルプ

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

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

# 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.
コマンドの各呼び出しは、ドメイン XML ファイルごとに 1 つのアクションを実行できることに注意してください。

注記

このツールは、virt-install パッケージに含まれています。virt-xml の使用に関する詳細は、man ページの virt-xml を参照してください。

4.1.4. guestfish

guestfish は仮想マシンのディスクイメージを検証および修正するためのコマンドラインユーティリティーです。libguestfs ライブラリーを使用し、libguestfs API が提供する機能をすべて公開します。

guestfish の使用

guestfish ユーティリティーは標準のコマンドライン入力モードでも使用できますが、インタラクティブシェルとして使用することもできます。シェルモードでは、guestfish コマンド接頭辞は必要ありません。ユーザーは常に root として登録されます。以下の例は guestfish を使用して、testguest 仮想マシンにファイルシステムを表示します。最初の例は標準モードで、2 つ目の例は対話モードになります。
# 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
さらに、自動化の目的で guestfishbash スクリプト で使用できます。

重要

guestfish を、root 権限を持たないユーザーとして使用する場合は、特権のない libvirt セッション を入力します。つまり、root が作成したゲストのディスクイメージを確認したり、対話したりすることはできません。
これらのディスクイメージへの読み取り専用アクセスを取得するには、guestfish-ro -c qemu:///system オプションを付けて使用します。また、ディスクイメージファイルの読み取り権限が必要です。

guestfish のヘルプ

すべての Linux bash コマンドと同様、man guestfish コマンドまたは --help オプションを使用して、guestfish のヘルプを表示できます。さらに、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 仮想化の導入および管理ガイドを参照してください。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。