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

30 XenStore: ドメイン間で共有される設定データベース Edit source

本章では、 XenStore に関する基本的な情報のほか、 Xen 環境内での役割、 XenStore で使用されるファイルのディレクトリ構造、そして XenStore のコマンドに関する説明をそれぞれ行っています。

30.1 概要 Edit source

XenStore は設定や状態の情報を含むデータベースで、 VM ゲスト と Dom0 内で動作する管理ツールとの間で共有される仕組みでもあります。 VM ゲスト と管理ツールは、 XenStore との間で情報を読み書きし、設定情報の伝達や状態の更新/変更などを行うことができます。 XenStore データベースは Dom0 が管理するものであり、キーをベースにした読み書きなどのシンプルな構成になっています。 VM ゲスト と管理ツール側では、 XenStore 内での項目を監視することで、変更の通知を受けることもできます。なお、 xenstored デーモンは xencommons サービスで管理されます。

XenStore は Dom0 内で単一のデータベースファイル /var/lib/xenstored/tdb ( tdbTree DataBase (ツリー構造型データベース) の略) として存在しています。

30.2 ファイルシステムインターフェイス Edit source

XenStore のデータベースの内容は /proc に似た仮想的なファイルシステム構造になっています (/proc に関する詳細は 2.6項 「/proc ファイルシステム」 をお読みください) 。このファイルシステムのツリーには、 /vm , /local/domain ,/tool の 3 つの種類から構成されています。

  • /vm: VM ゲスト の設定に関する情報が保存されています。

  • /local/domain: ローカルノード内の VM ゲスト に関する情報が保存されています。

  • /tool: さまざまなツールに関する一般的な情報が保存されています。

ヒント
ヒント

それぞれの VM ゲスト には 2 種類の ID 番号が設定されます。一方の Universal Unique IDntifier (UUID) は、 VM ゲスト を他のマシンに移行しても変更されることの無い値、もう一方の DOMain IDentifier (DOMID) は、動作中のインスタンスを一位に識別する番号で、こちらは一方から他方に移行を行うと、通常は値が変化することになります。

30.2.1 XenStore のコマンド Edit source

XenStore データベースのファイルシステム構造は、下記のコマンドを使用してアクセスすることができます:

xenstore-ls

XenStore データベースのダンプを表示します。

xenstore-read XenStore_エントリへのパス

指定した XenStore の項目の値を読み取ります。

xenstore-exists XenStore_のパス

指定した XenStore のパスが存在しているかどうかを報告します。

xenstore-list XenStore_のパス

指定した XenStore パス以下の全ての子項目を表示します。

xenstore-write XenStore_エントリへのパス

指定した XenStore の項目の値を更新します。

xenstore-rm XenStore_のパス

指定した XenStore の項目またはディレクトリを削除します。

xenstore-chmod XenStore_のパス モード

指定した XenStore パスの読み込み/書き込み権限を更新します。

xenstore-control

たとえば一貫性のチェックなど、 xenstored バックエンドに対してコマンドを送信します。

30.2.2 /vm Edit source

/vm パスにはそれぞれの VM ゲスト の UUID が順に並べられ、その中には仮想 CPU 数や割り当てられているメモリ量などの設定情報が保存されています。つまり、それぞれの VM ゲスト に対して /vm/<UUID> というディレクトリが存在することになります。ディレクトリの内容を表示したい場合は、 xenstore-list コマンドをお使いください。

> sudo xenstore-list /vm
00000000-0000-0000-0000-000000000000
9b30841b-43bc-2af9-2ed3-5a649f466d79-1

出力の冒頭は Dom0 そのもので、 2 行目が実際の VM ゲスト になります。下記のように実行することで、 VM ゲスト 内の項目を表示することができます:

> sudo xenstore-list /vm/9b30841b-43bc-2af9-2ed3-5a649f466d79-1
image
rtc
device
pool_name
shadow_memory
uuid
on_reboot
start_time
on_poweroff
bootloader_args
on_crash
vcpus
vcpu_avail
bootloader
name

たとえば VM ゲスト に割り当てられている仮想 CPU 数など、項目の値を読み取りたい場合は、 xenstore-read コマンドを使用します:

> sudo xenstore-read /vm/9b30841b-43bc-2af9-2ed3-5a649f466d79-1/vcpus
1

/vm/<UUID> 以下の主な項目は下記のとおりです:

uuid

VM ゲスト の UUID です。移行処理を行っても、この値は変更されません。

on_reboot

VM ゲスト が再起動要求を受け取った場合、 VM ゲスト のシャットダウンや再起動など、何を行うのかを指定する項目です。

on_poweroff

VM ゲスト が停止要求を受け取った場合、 VM ゲスト のシャットダウンや再起動など、何を行うのかを指定する項目です。

on_crash

VM ゲスト がクラッシュした場合、 VM ゲスト のシャットダウンや再起動など、何を行うのかを指定する項目です。

vcpus

VM ゲスト に割り当てられた仮想 CPU 数を表します。

vcpu_avail

VM ゲスト に対して提供されている仮想 CPU のビットマスクです。このビットマスクには vcpus の値と同じ数だけビットが設定されています。

name

VM ゲスト の名前を表します。

通常の VM ゲスト (Dom0 以外) であれば、 /vm/<UUID>/image のようなパスも存在します:

> sudo xenstore-list /vm/9b30841b-43bc-2af9-2ed3-5a649f466d79-1/image
ostype
kernel
cmdline
ramdisk
dmargs
device-model
display

それぞれの項目の意味は下記のとおりです:

ostype

VM ゲスト の OS の種類を表します。

kernel

VM ゲスト で使用するカーネルの Dom0 内でのパスを表します。

cmdline

VM ゲスト の起動時に使用するカーネルのコマンドラインを表します。

ramdisk

VM ゲスト で使用する RAM ディスクの Dom0 内でのパスを表します。

dmargs

QEMU プロセスに対して渡されるパラメータを表します。 ps コマンドで QEMU のプロセスを参照すると、 /vm/<UUID>/image/dmargs と同じ内容が現れるはずです。

30.2.3 /local/domain/<ドメイン_ID> Edit source

ここでのパスは動作中のドメイン (VM ゲスト) の ID を使用し、動作中の VM ゲスト に対する情報を提供しています。なお、 VM ゲスト の移行を行った場合、ドメイン ID は変化することに注意してください。下記のような項目が提供されます:

vm

この VM ゲスト に対応する /vm ディレクトリのパスを表します。

on_reboot, on_poweroff, on_crash, name

30.2.2項 「/vm での同名の項目と同じ意味を持ちます。

domid

VM ゲスト のドメイン ID を表します。

cpu

VM ゲスト 側でピン設定を行っている現在の CPU を表します。

cpu_weight

スケジューリングの目的で割り当てられた、 VM ゲスト に対する重み値を表します。この値が大きければ大きいほど、物理 CPU が頻繁に割り当てられるようになります。

上述の項目以外にも、 /local/domain/<ドメイン_ID> 内にはいくつかのサブディレクトリが存在しています。利用可能な全ての項目の意味を知りたい場合は、 XenStore Reference (英語) をお読みください。

/local/domain/<ドメイン_ID>/memory

メモリに関する情報が含まれています。なお、 /local/domain/<ドメイン_ID>/memory/target には、 VM ゲスト に対するターゲットのメモリサイズ (キロバイト単位) が含まれています。

/local/domain/<ドメイン_ID>/console

VM ゲスト が使用しているコンソールに関する情報が含まれています。

/local/domain/<ドメイン_ID>/backend

VM ゲスト が使用している全てのバックエンドデバイスの情報が含まれています。ここにはさらにサブディレクトリが存在する場合があります。

/local/domain/<ドメイン_ID>/device

VM ゲスト のフロントエンドデバイスに関する情報が含まれています。

/local/domain/<ドメイン_ID>/device-misc

デバイスに関するその他の情報が含まれています。

/local/domain/<ドメイン_ID>/store

VM ゲスト のストア情報が含まれています。

このページを印刷