21.27. ホストマシンの管理
21.27.1. ホスト情報の表示
virsh nodeinfo コマンドは、モデル番号、CPU の数、CPU のタイプ、および物理メモリーのサイズを含むホストについての基本情報を表示します。この出力は、virNodeInfo の構造に対応しています。特に「CPU socket(s)」フィールドは NUMA セルごとの CPU ソケット数を示しています。
例21.54 ホストマシン情報の表示
$ virsh nodeinfo
CPU model: x86_64
CPU(s): 4
CPU frequency: 1199 MHz
CPU socket(s): 1
Core(s) per socket: 2
Thread(s) per core: 2
NUMA cell(s): 1
Memory size: 3715908 KiB21.27.2. NUMA パラメーターの設定
virsh numatune コマンドは、指定されたゲスト仮想マシンの NUMA パラメーターの設定または取得のいずれかを実行できます。ゲスト仮想マシンの設定 XML ファイル内で、これらのパラメーターは <numatune> 要素内にネスト化されます。フラグを使用しないと、現在の設定のみが表示されます。numatune domain コマンドには指定されたゲスト仮想マシン名が必要で、以下の引数を取ります。
--mode- このモードはstrict、interleave、またはpreferredのいずれかに設定できます。ゲスト仮想マシンがstrictモードで起動されたのではない限り、ゲスト仮想マシンが稼働中の場合にそれらのモードを変更することはできません。--nodeset- ゲスト仮想マシンを実行するためにホスト物理マシンによって使用される NUMA ノードの一覧が含まれます。この一覧にはノードが含まれますが、それぞれはコンマで区切られ、ノード範囲にはダッシュ-が、ノードの除外にはキャレット^が使用されます。- 各インスタンスごとに使用できるのは以下の 3 つのフラグの 1 つのみです。
--configは、永続的なゲスト仮想マシンの次回の起動で実施されます。--liveは、実行中のゲスト仮想マシンのスケジューラー情報を設定します。--currentは、ゲスト仮想マシンの現在の状態に影響を与えます。
例21.55 ゲスト仮想マシンの NUMA パラメーターを設定する方法
strict に設定します。
# virsh numatune guest1 --mode strict --nodeset 0,2-3 --live
<numatune>
<memory mode='strict' nodeset='0,2-3'/>
</numatune>21.27.3. NUMA セルの空きメモリー容量の表示
virsh freecell コマンドは、指定された NUMA セル内のマシンで利用可能なメモリー容量を表示します。このコマンドは、指定されるオプションに応じて、マシンで利用可能なメモリーについての 3 つの異なる表示のいずれかを提供します。
例21.56 仮想マシンおよび NUMA セルのメモリープロパティーを表示する方法
# virsh freecell
Total: 684096 KiB--all オプションを使用します。
# virsh freecell --all
0: 804676 KiB
--------------------
Total: 804676 KiB
--cellno オプションを使用します。
# virsh freecell --cellno 0
0: 772496 KiB21.27.4. CPU 一覧の表示
virsh nodecpumap コマンドは、ホストマシンで利用可能な CPU 数を表示します。また、現在オンラインの CPU 数も表示します。
例21.57 ホストで利用可能な CPU 数の表示
# virsh nodecpumap
CPUs present: 4
CPUs online: 1
CPU map: y21.27.5. CPU 統計の表示
virsh nodecpustats [cpu_number] [--percent] コマンドは、ホストの CPU 負荷のステータスに関する統計情報を表示します。CPU を指定すると、その CPU についての情報のみが表示されます。percent オプションを指定すると、1 秒間隔で記録された各タイプの CPU 統計のパーセンテージが表示されます。
例21.58 CPU の使用状況についての統計情報を表示する方法
# virsh nodecpustats
user: 1056442260000000
system: 401675280000000
idle: 7549613380000000
iowait: 94593570000000
# virsh nodecpustats 2 --percent
usage: 2.0%
user: 1.0%
system: 1.0%
idle: 98.0%
iowait: 0.0%21.27.6. デバイスの管理
21.27.6.1. virsh を使用したデバイスの割り当てと更新
手順21.4 ゲスト仮想マシンが使用する USB デバイスのホットプラグ
- 以下のコマンドを実行して、割り当てる USB デバイスを特定します。
#
lsusb -vidVendor 0x17ef Lenovo idProduct 0x480f Integrated Webcam [R5U877] - XML ファイルを作成し、そのファイルに論理名 (例:
usb_device.xml) を指定します。ベンダーと製品 ID (16 進数の番号) は、検索時に表示されたものと全く同じものをコピーするようにしてください。この情報は、図21.2「USB デバイス XML スニペット」 に示されるように XML ファイルに追加します。このファイルの名前は次のステップで必要になるので留意してください。<hostdev mode='subsystem' type='usb' managed='yes'> <source> <vendor id='0x17ef'/> <product id='0x480f'/> </source> </hostdev>図21.2 USB デバイス XML スニペット
- 以下のコマンドを実行してデバイスを割り当てます。コマンドの実行時に、guest1 を仮想マシンの名前に、usb_device.xml を直前のステップで作成したデバイスのベンダーと製品 ID を含む XML ファイルの名前に置き換えます。次回の起動時に変更を有効にするには、
--configを使用します。変更を現在のゲスト仮想マシンで有効にするには、--current引数を使用します。追加の引数については virsh man ページを参照してください。#
virsh attach-device guest1--file usb_device.xml--config
例21.59 ゲスト仮想マシンからデバイスのホットアンプラグを実行する方法
# virsh detach-device guest1 --file usb_device.xml21.27.6.2. インターフェースデバイスの割り当て
virsh attach-interface domain type source [<target>] [<mac>] [<script>] [<model>] [<inbound>] [<outbound>] [--config] [--live] [--current] コマンドは以下の引数を取ります。
--type: インターフェースのタイプを設定できます。--source: ネットワークインターフェースのソースを設定できます。--live: 実行中のゲスト仮想マシンの設定からその値を取得します。--config: 次回起動時に有効になります。--current: 現在の設定に基づいて値を取得します。--target: ゲスト仮想マシン内のターゲットデバイスを示します。--mac: ネットワークインターフェースの MAC アドレスを指定するには、このオプションを使用します。--script: デフォルトのスクリプトファイルの代わりにブリッジを処理するスクリプトファイルへのパスを指定するには、このオプションを使用します。--model: モデルのタイプを指定するには、このオプションを使用します。--inbound: インターフェースの受信帯域幅を制御します。使用できる値は、average、peak、およびburstです。--outbound- インターフェースの送信帯域幅を制御します。使用できる値は、average、peak、およびburstです。注記
平均およびピークの値は 1 秒あたりのキロバイト単位で表示されますが、バースト値は Network XML upstream documentation で説明されているピーク速度時の単一バーストにおけるキロバイト単位で表示されます。
network か、デバイスへのブリッジを指定する場合は bridge のいずれかにすることができます。source はデバイスのソースです。割り当てられたデバイスを除去するには、virsh detach-device コマンドを使用します。
例21.60 デバイスをゲスト仮想マシンに割り当てる方法
virtio として提示されます。
# virsh attach-interface guest1 networkw --model virtio21.27.6.3. CDROM メディアの変更
virsh change-media コマンドは CDROM のメディアを別のソースまたはフォーマットに変更します。このコマンドは以下の引数を取ります。これらの引数の例および説明については、man ページを参照してください。
--path: ディスクデバイスの完全修飾パスまたはターゲットを含む文字列です。--source: メディアのソースを含む文字列です。--eject: メディアを取り出します。--insert: メディアを挿入します。--update: メディアを更新します。--current: ハイパーバイザードライバーの実装によって、--liveと--configのいずれかまたはその両方にすることができます。--live: 実行中のゲスト仮想マシンの動作中の設定を変更します。--config: 永続的な設定を変更します。次回起動時に反映されます。--force: メディアの変更を強制します。
21.27.7. ホストの一時停止
virsh nodesuspend targetduration コマンドは、ホストマシンを s3 (suspend-to-RAM)、s4 (suspend-to-disk)、または Hybrid-Suspend と同様のシステム全体でのスリープ状態に置き、リアルタイムクロックをセットアップして、設定された期間が経過した後にホストを起動します。target 変数は、mem、disk、または hybrid のいずれかに設定できます。これらのオプションは、一時停止するメモリー、ディスク、またはこれら 2 つの組み合わせを設定するために指定します。--duration を設定すると、設定された期間が経過した後にノードが起動するよう指示されます。期間は秒単位で設定されます。60 秒を超える期間に設定することが推奨されます。
例21.61 ゲスト仮想マシンをディスク s4 に一時停止する方法
# virsh nodesuspend disk 9021.27.8. ノードメモリーパラメーターの設定および表示
virsh node-memory-tune [shm-pages-to-scan] [shm-sleep-milisecs] [shm-merge-across-nodes] コマンドは、ノードメモリーパラメーターを表示し、これを設定することを可能にします。このコマンドでは、以下のパラメーターが設定できます。
--shm-pages-to-scan- kernel samepage merging (KSM) サービスがスリープに入る前にスキャンするページ数を設定します。--shm-sleep-milisecs- KSM サービスが次回のスキャンの前にスリープするミリ秒数を設定します。--shm-merge-across-nodes- 異なる NUMA ノードからページをマージできるかどうかを指定します。
例21.62 NUMA ノード間でメモリーページをマージする方法
# virsh node-memory-tune --shm-merge-across-nodes 121.27.9. ホスト上デバイスの一覧表示
virsh nodedev-list --cap --tree コマンドは、libvirt サービスが認識しているホスト上の利用可能なすべてのデバイスを一覧表示します。--cap を使用すると、一覧を機能タイプでフィルターしてそれぞれがコンマ区切りになりますが、--tree と共に使用することはできません。引数 --tree を使用すると、出力は以下に示すようなツリー構造になります。
例21.63 ホスト上で利用可能なデバイスの表示方法
# virsh nodedev-list --tree
computer
|
+- net_lo_00_00_00_00_00_00
+- net_macvtap0_52_54_00_12_fe_50
+- net_tun0
+- net_virbr0_nic_52_54_00_03_7d_cb
+- pci_0000_00_00_0
+- pci_0000_00_02_0
+- pci_0000_00_16_0
+- pci_0000_00_19_0
| |
| +- net_eth0_f0_de_f1_3a_35_4f
[...]
# virsh nodedev-list --cap scsi
scsi_0_0_0_021.27.10. ホストマシン上でのデバイス作成
virsh nodedev-create file コマンドを使用すると、ホスト物理マシン上にデバイスを作成し、それをゲスト仮想マシンに割り当てることができます。libvirt は使用できるホストノードを自動的に検出しますが、このコマンドは libvirt が検出しなかったホストハードウェアの登録を可能にします。この指定されたファイルには、ホストデバイスの上位レベルの <device> XML 記述が含まれている必要があります。このファイルの例については、例21.66「デバイスの XML ファイルを取得する方法」 を参照してください。
例21.64 XML ファイルによるデバイスの作成方法
scsi_host2.xml として保存されていることを前提としています。以下のコマンドを実行すると、このデバイスをゲストに割り当てることができます。
# virsh nodedev-create scsi_host2.xml21.27.11. デバイスの削除
virsh nodedev-destroy コマンドは、デバイスをホストから削除します。virsh ノードデバイスドライバーは永続的な設定をサポートしないため、ゲストを再起動するとデバイスも使用できなくなることに注意してください。
--driver 引数を使用することにより、必要なバックエンドドライバーを指定することができます。
例21.65 デバイスをホスト物理マシンから削除する方法
# virsh nodedev-destroy scsi_host221.27.12. デバイス設定の収集
virsh nodedev-dumpxml device コマンドは、指定したホストデバイスの XML 表現を出力します。この XML 表現には、デバイス名、デバイスが接続されている BUS、ベンダー、製品 ID、ケイパビリティー、および libvirt で使用できる情報が含まれます。引数 device はデバイス名か、または WWNN、WWPN フォーマット (HBA のみ) の WWN ペアのいずれかにすることができます。
例21.66 デバイスの XML ファイルを取得する方法
# virsh nodedev-dumpxml scsi_host2
<device>
<name>scsi_host2</name>
<parent>scsi_host1</parent>
<capability type='scsi_host'>
<capability type='fc_host'>
<wwnn>2001001b32a9da5b</wwnn>
<wwpn>2101001b32a9da5b</wwpn>
</capability>
</capability>
</device>21.27.13. デバイスのリセットのトリガー
virsh nodedev-reset device コマンドは、指定されたデバイスのリセットをトリガーします。このコマンドは、ゲスト仮想マシンのパススルーとホスト物理マシン間でノードデバイスを転送する前に実行すると有効です。libvirt は必要に応じてこのアクションを自動的に実行しますが、このコマンドは必要な場合に明示的なリセットを許可します。
例21.67 ゲスト仮想マシンでデバイスをリセットする方法
# virsh nodedev-reset scsi_host2
Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.