Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
コンテンツコンテンツ
仮想化ガイド
  1. 前書き
  2. I 概要
    1. 1 仮想化技術
    2. 2 仮想化シナリオ
    3. 3 Xen 仮想化の紹介
    4. 4 KVM 仮想化の紹介
    5. 5 仮想化ツール
    6. 6 仮想化コンポーネントのインストール
  3. II libvirt を利用した仮想マシンの管理
    1. 7 libvirt デーモン
    2. 8 VM ホストサーバ の準備
    3. 9 ゲストのインストール
    4. 10 基本的な VM ゲスト の管理
    5. 11 接続と認可
    6. 12 高度なストレージ設定
    7. 13 仮想マシンマネージャ を利用した仮想マシンの設定
    8. 14 virsh を利用した仮想マシンの設定
    9. 15 AMD SEV-SNP による仮想マシンのセキュリティ強化
    10. 16 VM ゲスト の移行
    11. 17 Xen から KVM への移行ガイド
  4. III 全ハイパーバイザ共通の機能
    1. 18 ディスクのキャッシュモード
    2. 19 VM ゲスト の時刻設定
    3. 20 libguestfs
    4. 21 QEMU ゲストエージェント
    5. 22 ソフトウエア TPM エミュレータ
    6. 23 VM ゲスト に対するクラッシュダンプの作成
  5. IV Xen を利用した仮想マシンの管理
    1. 24 仮想マシンホストの設定
    2. 25 仮想ネットワーク
    3. 26 仮想環境の管理
    4. 27 Xen 内でのブロックデバイス
    5. 28 仮想化: オプション設定
    6. 29 管理作業
    7. 30 XenStore: ドメイン間で共有される設定データベース
    8. 31 Xen の高可用性仮想化ホストとしての使用
    9. 32 Xen: 準仮想化 (PV) ゲストから完全仮想化 (FV/HVM) ゲストへの変換
  6. V QEMU を利用した仮想マシンの管理
    1. 33 QEMU の概要
    2. 34 KVM VM ホストサーバ の構築
    3. 35 ゲストのインストール
    4. 36 qemu-system-ARCH を利用した仮想マシンの実行
    5. 37 QEMU モニタを利用した仮想マシンの管理
  7. VI トラブルシューティング
    1. 38 内蔵ヘルプとパッケージのドキュメンテーション
    2. 39 システム情報とログの収集
  8. 用語集
  9. A NVIDIA カードに対する GPU パススルー の設定
  10. B GNU ライセンス
ナビゲーション
適用先 openSUSE Leap 15.7

26 仮想環境の管理 Edit source

推奨される方式である libvirt ライブラリによる管理 ( パートII「libvirt を利用した仮想マシンの管理」 ) とは別に、コマンドラインから Xen 専用のツールである xl を使用することで、 Xen のゲストドメインを管理することもできます。

26.1 xl: Xen 管理ツール Edit source

xl コマンドは Xen ゲストドメインを管理するためのツールです。このプログラムは xen-tools パッケージ内に含まれています。 xl コマンドは LibXenlight ライブラリをベースにして作られていますので、ドメインの作成や一覧表示、一時停止やシャットダウンなど、一般的なゲスト管理を行うことができます。通常は xl コマンドを実行するのに root の権限が必要となります。

注記
注記

xl コマンドは設定ファイルを指定しますが、動作中のゲストドメインのみを管理することができます。対象のゲストドメインが動作中ではない場合、 xl コマンドによる管理を行うことができません。

ヒント
ヒント

従来の xm コマンドで実現できていた、一般ユーザからのゲストドメイン管理を行いたい場合は、 libvirt 側に用意されている virshvirt-manager の各ツールをお使いください。詳しくは パートII「libvirt を利用した仮想マシンの管理」 をお読みください。

xl を動作させるには、 xenstored サービスと xenconsoled サービスを開始しておく必要があります。下記を実行して開始しておいてください:

> systemctl start xencommons

"\n \n"

ヒント
ヒント: ホストドメイン内での xenbr0 ネットワークブリッジの設定について

最も一般的なネットワーク設定では、ホストドメイン側に xenbr0 という名前のブリッジを作成して、ゲストドメインのネットワークを動作させます。

xl コマンドの基本構造は下記のとおりです:

xl <サブコマンド> [オプション] ドメイン_ID

ここで、 <サブコマンド> には実行すべき xl のサブコマンドを、 ドメイン_ID にはドメインに対して割り当てられた ID か、仮想マシンの名前を、そして [オプション] にはサブコマンドごとに固有のオプション類を指定します。

利用可能な全ての xl のサブコマンドの一覧を表示するには、 xl help コマンドを実行してください。このほか、各サブコマンドに対して詳細なヘルプも表示することができます。この場合は、サブコマンドのオプションとして --help を指定してください。また、サブコマンドに関する詳細は、 xl のマニュアルページにも記載があります。

たとえば xl list --help のように入力して実行すると、 list コマンドに対して指定可能な全てのオプションが表示されます。ちなみに、 xl list コマンドは、全ての仮想マシンの状態を一覧表示するためのコマンドです。

> sudo xl list
Name                                 ID    Mem VCPUs        State   Time(s)
Domain-0                              0    457     2       r-----   2712.9
sles12                                7    512     1       -b----     16.3
opensuse                                   512     1                  12.9

State の列には、対象のマシンが動作しているかどうかと、その現在の状態が示されています。最もよく表示されるのが r (running; 動作中) と b (blocked; ブロック中) (IO 処理待ち、もしくは何もすべきことが無く、待機中) です。状態 (State) フラグの一覧に関する詳細は、 man 1 xl のマニュアルページをお読みください。

その他の xl サブコマンドには、下記のようなものがあります:

  • xl create: 指定した設定ファイルから仮想マシンを作成します。

  • xl reboot : 仮想マシンを再起動します。

  • xl destroy: 仮想マシンを即時に停止します。

  • xl block-list: 仮想マシンに接続されている全ての仮想マシンを表示します。

26.1.1 ゲストドメインの設定ファイル Edit source

ゲストドメイン (仮想マシン) を動作させるにあたって、 xl ではゲストドメイン向けの設定ファイルが必要となります。設定ファイルを保存しておくための既定のディレクトリは /etc/xen/ です。

ドメインの設定ファイルは純粋なテキスト形式です。ここには キー = の形式で、さまざまな設定が記述されます。キーによっては必須のものもあるほか、一般的で任意のゲストに適用することができるものや、特定の種類のゲストにのみ適用できるもの (たとえば完全仮想化環境専用の設定など) があります。値は "文字列" のようにして、単一もしくは二重引用符で括ることもできるほか、数値やブール値、もしくは [ 値_1, 値_2, ... ] のように括弧で複数の値をまとめることもできます。

例 26.1: SLED 12 のゲストドメイン設定ファイル例: /etc/xen/sled12.cfg
name= "sled12"
builder = "hvm"
vncviewer = 1
memory = 512
disk = [ '/var/lib/xen/images/sled12.raw,,hda', '/dev/cdrom,,hdc,cdrom' ]
vif = [ 'mac=00:16:3e:5f:48:e4,model=rtl8139,bridge=br0' ]
boot = "n"

上記のドメインを起動するには、 xl create /etc/xen/sled12.cfg を実行します。

26.2 ゲストドメインの自動起動 Edit source

ホスト側のシステムが起動した際にゲストドメインを自動的に起動したい場合は、下記の手順を実施します:

  1. ドメインの設定ファイルを作成していない場合は、 /etc/xen/ ディレクトリ内に作成します。たとえば /etc/xen/domain_name.cfg のようになります。

  2. auto/ サブディレクトリ内に、ゲストドメインの設定ファイルに対するシンボリックリンクを作成します。

    > sudo ln -s /etc/xen/domain_name.cfg /etc/xen/auto/domain_name.cfg
  3. このように設定することで、システムの起動時に domain_name.cfg で設定されたゲストドメインが開始するようになります。

26.3 イベントアクション Edit source

ゲスト側の設定ファイルでは、さまざまなイベントに対応するアクションを設定することができます。たとえばゲスト側の電源が落とされた際、その後にドメインを再起動させたい場合は、設定ファイル内に下記を記述します:

on_poweroff="restart"

ゲストドメインで利用できるイベントには、下記のようなものがあります:

イベントの一覧
on_poweroff

ドメインをシャットダウンした際に取るべきアクションを指定します。

on_reboot

ドメインが再起動を要求するような理由コード付きのシャットダウンを受け取った際に、取るべきアクションを指定します。

on_watchdog

Xen のウオッチドッグタイムアウトにより、ドメインをシャットダウンする際に取るべきアクションを指定します。

on_crash

ドメインがクラッシュした際に取るべきアクションを指定します。

これらのイベントに対して、下記のアクションを指定することができます:

関連アクションの一覧
destroy

ドメインを強制停止します。

restart

ドメインを強制停止したあと、同じ設定のまま新しいドメインを作成します。

rename-restart

ドメインを強制停止したあと名前を変更し、元の名前で新しいドメインを作成します。

preserve

ドメインを維持します。ここから何らかの調査を行うことができます。調査が終わったら、 xl destroy で停止を行うことができます。

coredump-destroy

/var/xen/dump/名前 内にドメインのコアダンプを書き込んだあと、ドメインを強制停止します。

coredump-restart

/var/xen/dump/名前 内にドメインのコアダンプを書き込んだあと、ドメインを再起動します。

26.4 タイムスタンプカウンタ (TSC) Edit source

Time Stamp Counter (TSC) をゲストドメインの設定ファイル (詳しくは 26.1.1項 「ゲストドメインの設定ファイル」 をお読みください) 内に設定することができます。

tsc_mode の設定を行うことで、 rdtsc インストラクションをネイティブで動作させる (高速に動作するものの、 TSC を厳格に処理するアプリケーションが正しく動作しなくなってしまうことがあります) か、もしくは擬似的に動作させる (常に正しく動作しますが、性能が劣化します) かを制御することができます。

tsc_mode=0 (既定値)

性能をできるだけ劣化させず、かつ正確性を維持する方式です。詳しくは https://xenbits.xen.org/docs/4.3-testing/misc/tscmode.txt (英語) をお読みください。

tsc_mode=1 (常に擬似的に動作させる)

TSC を厳格に処理するアプリケーションが存在していて、かつ最大限の性能劣化を許容できるシステムである場合に指定する方式です。

tsc_mode=2 (擬似的に動作させない)

TSC を厳格に処理するアプリケーションが存在せず、最大限の性能を発揮させる必要のあるシステムである場合に指定する方式です。

tsc_mode=3 (PVRDTSCP)

頻繁に TSC を使用するアプリケーションが存在する場合、準仮想化 (修正済み) で動作させることによって、正確性と高性能の両方を実現することができます。未修正のアプリケーションについては、 TSC に対する耐性が必須となります。

背景となる情報について、詳しくは https://xenbits.xen.org/docs/4.3-testing/misc/tscmode.txt をお読みください。

26.5 仮想マシンの保存 Edit source

手順 26.1: 仮想マシンに対する現在状態の保存
  1. まずは保存したい仮想マシンが動作中であることを確認します。

  2. ホスト側の環境で下記を実行します:

    > sudo xl save ID 状態ファイル

    ここで ID には保存対象の仮想マシンの ID を、 状態ファイル にはメモリの状態を保存するためのファイルを指定します。 既定では、このようにして保存を行った場合、対象のドメインは停止されますが、 -c を指定することで動作させたままの状態にすることもできます。

26.6 仮想マシンの再開 Edit source

手順 26.2: 仮想マシンに対する保存状態の再開
  1. まずは対象の仮想マシンが開始されていないことを確認します。

  2. ホスト側の環境で下記を実行します:

    > sudo xl restore 状態ファイル

    ここで、 状態ファイル には保存時に使用したファイルのファイル名 (パス) を指定します。既定では再開を行うと動作中の状態に戻りますが、 -p を指定することで、一時停止中のままにしておくこともできます。

26.7 仮想マシンの状態 Edit source

仮想マシンの状態は xl list コマンドで表示することができます。このとき、状態は下記に示す 1 文字の略記で表されます。

  • r (running (動作中)): 仮想マシンが動作していて、割り当てられたリソースを使用していることを示しています。

  • b (blocked (ブロック中)): 仮想マシンのプロセッサが動作しておらず、かつ動作できない状態であることを示しています。 I/O の処理待ち、もしくは停止処理中であることを表しています。

  • p (paused (一時停止中)): 仮想マシンが一時停止中であることを表しています。ハイパーバイザとの通信は行われていませんが、メモリなどのリソースは使用したままの状態になります。

  • s (shutdown (シャットダウン中)): ゲスト側のオペレーティングシステムでシャットダウンや再起動、サスペンド処理などを行っていて、仮想マシンが停止されつつある状態であることを表しています。

  • c (crashed (クラッシュ済み)): 仮想マシンがクラッシュしていて、動作していないことを表しています。

  • d (dying (死亡中)): 仮想マシンがシャットダウン中であるか、クラッシュ中であることを表しています。

このページを印刷