Red Hat Training

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

第27章 Xen 設定ファイル

Red Hat Enterprise Linux はほとんどのタスクのために libvirt 設定ファイルを使用します。一部のユーザーは以下のような標準の変数を含んだ Xen 設定ファイルを 必要とするかも知れません。これらのファイル内の設定項目は単独引用句 (') で囲まなければなりません。 これらの設定ファイルは /etc/xen ディレクトリ内に存在します。

表27.1 libvirt 設定ファイル

項目 説明
pae
物理アドレス拡張子の設定データを指定します。
apic
高度なプログラム可能割り込みコントローラの設定データを指定します。
memory
メモリー容量をメガバイトで指定します。
vcpus
仮想 CPU の数量を指定します。
console
domain コンソールのエキスポート先のポート番号を指定します。
nic
仮想ネットワークインターフェイスの数量を指定します。
vif
ランダム割り当ての MAC アドレスと ドメインネットワークアドレスの使用に割り当てたブリッジを一覧表示します。
disk
ドメインにエキスポートするブロックデバイスを一覧表示して、物理デバイスを読み込み専用アクセスでドメインにエキスポートします。
dhcp
DHCP を使用してネットワークを有効にします。
netmask
設定した IP ネットマスクを指定します。
gateway
設定した IP ゲートウェイを指定します。
acpi
高度な電源インターフェイス設定の設定データを指定します。
以下のテーブル、表27.2「Xen 設定ファイルの参照」 は、xm create --help_config からの出力をフォーマットしたものです。

表27.2 Xen 設定ファイルの参照

パラメータ
説明
vncpasswd=NAME HVM ドメインにある VNC コンソール用のパスワード
vncviewer=no | yes ドメイン内の vnc サーバーの為の vncviewer リスニングを引き起こします。 vncviewer のアドレスは、VNC_SERVER=<host>:<port> を 使用してカーネルコマンド行上のドメインへ渡されます。vnc に使用されるポートは 5500 + DISPLAY です。 フリーポートを持つ表示値は可能であれば選択されます。vnc=1 の時にのみ有効です。
vncconsole=no | yes ドメインのグラフィカルコンソール用の vncviewer プロセスを引き起こします。 vnc=1 の時にのみ有効です。
name=NAME ドメイン名。特有のものにします。
bootloader=FILE ブートローダーへのパス
bootargs=NAME ブートローダーへのパスの引数
bootentry=NAME 破棄されました。ブートローダーを経由したブートへのエントリ。bootargs を使用
kernel=FILE カーネルイメージへのパス
ramdisk=FILE ramdisk へのパス
features=FEATURES ゲストカーネル内で有効にする機能
builder=FUNCTION ドメインをビルドするために使用する関数
memory=MEMORY MB 表示のドメインメモリー
maxmem=MEMORY MB 表示の最大ドメインメモリー
shadow_memory=MEMORY MB 表示のドメインシャドーメモリー
cpu=CPU VCPU0 を維持する CPU
cpus=CPUS ドメインを稼働する CPUS
pae=PAE HVM ドメインの PAE を有効化/無効化
acpi=ACPI HVM ドメインの ACPI を有効化/無効化
apic=APIC HVM ドメインの APIC を有効化/無効化
vcpus=VCPUs ドメイン内の仮想 CPUS の数
cpu_weight=WEIGHT 新しいドメインの cpu 量をセットします。WEIGHT は cpu に於けるドメインのシェアを制御する変動数です。
restart=onreboot | always | never ドメインが 終了時に再スタートすべきかどうかを決定するものです。 - onreboot= シャットダウンコード reboot を付けて終了時に再スタート - always = 常に終了時に再スタート、終了コードを無視。 - never = 終了時に再スタートしない、終了コードを無視。 これらはすべて破棄されました。代わりにon_poweroffon_reboot、及び on_crash を使います。
on_poweroff=destroy | restart | preserve | destroy ドメインが理由 'poweroff' で終了する時の動作 = - destroy : ドメインが通常にクリーンアップされる。 - restart: 古いドメインの代わりに新しいドメインがスタートする。 - preserve: ドメインが手動で破壊(例えば、xm destroy を使用)されるまではクリーンアップがされない。 - rename-restart: 古いドメインはクリーンアップされず改名されて、新しいドメインが代わりにスタートする。
on_reboot=destroy | restart | preserve | destroy ドメインが理由 'reboot' で終了する時の動作 = - destroy:ドメインは普通にクリーンアップされる。 - restart: 新しいドメインが古いドメインの代わりにスタートする。 - preserve: ドメインが手動で破壊(例えば xm destroy の使用)されるまでクリーンアップはされない。 - rename-restart: 古いドメインはクリーンアップされず改名されて、新しいドメインが代わりにスタートする。
on_crash=destroy | restart | preserve | destroy ドメインが理由 'crash' で終了する時の動作 = - destroy: ドメインは普通にクリーンアップされる。 - restart: 古いドメインの代わりに新しいドメインがスタートする。 - preserve: ドメインが手動で破壊(例えば xm destroy を使用)されるまでクリーンアップされない。 - rename-restart: 古いドメインはクリーンアップされず改名されて、新しいドメインが代わりにスタートする。
blkif=no | yes ドメインをブロックデバイスバックエンドにする
netif=no | yes ドメインをネットワークインターフェイスバックエンドにする
tpmif=no | yes ドメインを TPM インターフェイスバックエンドにする
disk=phy:DEV,VDEV,MODE[,DOM] ディスクデバイスをドメインに追加します。物理デバイスは DEV となり、ドメインに対して VDEV として現れます。MODEr の場合は、 読み込み専用で、 MODEw の場合は、読み込み/書き込みと なります。DOM が指定されると、それはディスクの為に使用するようにバックエンドドライバー ドメインを定義します。このオプションは複数のディスクを追加するために繰り返すことができます。
pci=BUS:DEV.FUNC 任意のパラメータ(16進法で)を使用して、ドメインに PCI デバイスを追加します。 例えば、pci=c0:02.1a。このオプションは、繰り返して 複数の PCI デバイスを追加することができます。
ioports=FROM[-TO] パラメータ(16進法で)使用してドメインにレガシー I/O の幅を追加します。 ioports=02f8-02ff。このオプションは、繰り返して 複数の I/O の幅を追加することができます。
irq=IRQ ドメインに IRQ(割り込みの行)を追加します。例えば、irq=7。このオプションは繰り返して複数の IRQ を追加することができます。
usbport=PATH そのポートへのパスで指定されている通りにドメインに物理 USB ポートを追加します。 このオプションは繰り返して複数のポートを追加することが出来ます。
vfb=type={vnc,sdl}, vncunused=1, vncdisplay=N,
vnclisten=ADDR, display=DISPLAY,
xauthority=XAUTHORITY, vncpasswd=PASSWORD,
keymap=KEYMAP
ドメインをフレームバッファのバックエンドにします。バックエンドタイプは、sdlvnc のいずれかにする必要があります。type=vnc では、 外部の vncviewer を接続して下さい。サーバーはポート N+5900 の ADDR (デフォルト 127.0.0.1) で リッスンします。N はデフォルトでドメインの id となります。vncunused=1 となる場合は、サーバーは 5900 以上の任意の未使用ポートを探す試みをします。type=sdl では、 該当する DISPLAYXAUTHORITY を使用して viewer の1つが自動的にスタートし、デフォルトで現在のユーザーの設定になります。
vif=type=TYPE, mac=MAC, bridge=BRIDGE, ip=IPADDR,
script=SCRIPT, backend=DOM, vifname=NAME
該当する MAC アドレスとブリッジを使用してネットワーク インターフェイスを追加します。vif は該当する設定スクリプトを コールすることにより、設定されます。タイプが指定されていない場合は、デフォルトは netfront となり、 ioemu ではありません。MAC が指定されていない場合は、ランダムに MAC アドレスが使用されます。指定されていないと、ネットワークバックエンドはそれ自身の MAC アドレスを選択します。ブリッジが指定されていないと、最初に見付かったブリッジが使用されます。スクリプトが 指定されていないと、デフォルトのスクリプトが使用されます。バックエンドが指定されていないと、デフォルトの バックエンドドライバードメインが使用されます。vif 名が指定されていない場合は、バックエンドの仮想インターフェイスが vifD.N と言う名前を取り、この D はドメイン id であり、N がインターフェイスの id となります。このオプションは 複数の vif を追加する時に繰り返されます。vif を指定することにより、必要に応じてインターフェイスの数を増加できます。
vtpm=instance=INSTANCE,backend=DOM TPM インターフェイスを追加します。バックエンド側では、該当するインスタンスを 仮想 TPM インスタンスとして使用します。与えられた数値は単に好みのインスタンス番号です。 hotplug スクリプトはどのインスタンス番号が実際にドメインに割り当てられるかを決定します。 仮想マシンと TPM インスタンス番号は /etc/xen/vtpm.db 内で見る ことが出来ます。該当するドメインにはバックエンドを使用して下さい。
access_control=policy=POLICY,label=LABEL セキュリティラベルとそれを定義するセキュリティポリシー参照を追加します。 ローカルの ssid 参照は、ドメインが開始、又は復帰する時点に算出されます。この 時点で、ポリシーがアクティブなポリシーに対してチェックされます。このようにして、 「保存」又は「復元」の機能が処理されて、ローカルラベルはドメインが開始、又は 復帰するシステム上で自動的に正しく作成されます。
nics=NUM 破棄されています。代わりに空の vif エントリを使用します。ネットワークインターフェイスの 数を設定します。vif オプションを使用するとインターフェイスのパラメータを定義できます。 それ以外ではデフォルトが使用されます。vif を指定することにより必要に応じてインターフェイスの 数を増加できます。
root=DEVICE カーネルコマンド行に root= パラメータをセットします。 NFS root には、例えば、/dev/sda1/dev/nfs のようなデバイスを使用します。
extra=ARGS カーネルコマンド行に追記するために余分の引数をセットします。
ip=IPADDR カーネル IP インターフェイスアドレスをセットします。
gateway=IPADDR カーネル IP ゲートウェイをセットします。
netmask=MASK カーネル IP ネットマスクをセットします。
hostname=NAME カーネル IP ホスト名をセットします。
interface=INTF カーネル IP インターフェイス名をセットします。
dhcp=off|dhcp カーネル dhcp オプションをセットします。
nfs_server=IPADDR NFS root 用に NFS サーバーのアドレスをセットします。
nfs_root=PATH root NFS ディレクトリのパスをセットします。
device_model=FILE デバイスモデルプログラムへのパス
fda=FILE fda へのパス
fdb=FILE fdb へのパス
serial=FILE シリアルか、pty か vc へのパス
localtime=no | yes RTC がローカルタイムにセットされているかどうか
keymap=FILE 使用されるキーボードマップをセットします。
usb=no | yes USB デバイスを模倣します。
usbdevice=NAME 追加する USB デバイスの名前
stdvga=no | yes std vga 又は Cirrus Logic グラフィックスを 使用します。
isa=no | yes ISA のみのシステムをシミュレートします
boot=a|b|c|d デフォルトのブートデバイス
nographic=no | yes デバイスモデルがグラフィックスを使用すべきか?
soundhw=audiodev デバイスモデルがオーディオデバイスを有効にすべきか?
vnc デバイスモデルが VNC を使用すべきか?
vncdisplay 使用する VNC 表示
vnclisten リッスンする VNC サーバー用のアドレス
vncunused VNC サーバーには未使用のポートを見つけるようにします。vnc=1 の時にのみ有効。
sdl デバイスモデルが SDL を使用すべきか?
display=DISPLAY 使用する X11 ディスプレイ
xauthority=XAUTHORITY 使用する X11 権限
uuid 使用する xenstore UUID (universally unique identifier) です。このオプションが セットされていないと、ランダムに1つ生成されます。仮想ネットワークインターフェイス用の MAC アドレスと同様です。これはクラスター全域に渡って特有である必要があります。
表27.4「設定パラメータのデフォルト値」 値とデフォルトの値群をセットする Python パーサー関数で利用可能な設定パラメータの全てを一覧表示します。 このセッター関数はユーザーが指定する値でパーサーが何をするのか についての示唆を与えます。パーサーは値を Python 値として読み込み、それからそれを格納するために セッター関数に送り込みます。その値が有効な Python でなければ、曖昧なエラーメッセージが 表示されます。セッターがユーザーの値を拒否すると、ユーザーは妥当なエラーメッセージを 受けます。しかし、いい加減な設定ではそれが紛失したように見えます。セッターが値を受け付けても、 その値が正しくなければ、アプリケーションはまだ失敗する可能性があります。

表27.3 パラメータ値をセットする Python 関数

パーサー関数 有効な引数
set_bool
受理される値:
  • yes
  • y
  • no
  • yes
set_float
Python の float() を使用する浮動小数点を受理します。例えば:
  • 3.14
  • 10.
  • .001
  • 1e100
  • 3.14e-10
set_int
Python の int() を使用する整数を受理します。
set_value
いずれの Python 値も受理します。
append_value
いずれの Python 値も受理して、アレイに格納されている以前の値に追記します。

表27.4 設定パラメータのデフォルト値

パラメータ パーサー関数 デフォルト値
name setter デフォルト値
vncpasswd set_value なし
vncviewer set_bool なし
vncconsole set_bool なし
name set_value なし
bootloader set_value なし
bootargs set_value なし
bootentry set_value なし
kernel set_value なし
ramdisk set_value ''
features set_value ''
builder set_value 'linux'
memory set_int 128
maxmem set_int なし
shadow_memory set_int 0
cpu set_int なし
cpus set_value なし
pae set_int 0
acpi set_int 0
apic set_int 0
vcpus set_int 1
cpu_weight set_float なし
restart set_value なし
on_poweroff set_value なし
on_reboot set_value なし
on_crash set_value なし
blkif set_bool 0
netif set_bool 0
tpmif append_value 0
disk append_value []
pci append_value []
ioports append_value []
irq append_value []
usbport append_value []
vfb append_value []
vif append_value []
vtpm append_value []
access_control append_value []
nics set_int -1
root set_value ''
extra set_value ''
ip set_value ''
gateway set_value ''
netmask set_value ''
hostname set_value ''
interface set_value "eth0"
dhcp set_value 'off'
nfs_server set_value なし
nfs_root set_value なし
device_model set_value ''
fda set_value ''
fdb set_value ''
serial set_value ''
localtime set_bool 0
keymap set_value ''
usb set_bool 0
usbdevice set_value ''
stdvga set_bool 0
isa set_bool 0
boot set_value 'c'
nographic set_bool 0
soundhw set_value ''
vnc set_value なし
vncdisplay set_value なし
vnclisten set_value なし
vncunused set_bool 1
sdl set_value なし
display set_value なし
xauthority set_value なし
uuid set_value なし