Red Hat Training

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

20.27. ホストマシン管理

本セクションでは、ホストシステムの管理に必要なコマンド (コマンドによるノードと呼ばれます )を説明します。

20.27.1. ホスト情報の表示

virsh nodeinfo コマンドは、モデル番号、CPU の数、CPU のタイプ、物理メモリーのサイズなど、ホストに関する基本的な情報を表示します。出力は virNodeInfo 構造に対応します。具体的には、「CPU ソケット数」フィールドは、NUMA セルごとの CPU ソケット数を示します。

例20.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 KiB

20.27.2. NUMA パラメーターの設定

virsh numatune コマンドは、指定したゲスト仮想マシンの NUMA パラメーターを設定または取得できます。ゲスト仮想マシンの設定 XML ファイルでは、これらのパラメーターは <numatune> 要素内にネストされます。フラグを使用しないと、現在の設定のみが表示されます。numatune domain コマンドには、指定のゲスト仮想マシン名が必要で、以下の引数を取ることができます。
  • --mode - モードを strict、interleave、または preferred のいずれかに設定できますゲスト仮想マシンが厳格なモードで起動されていない限り、実行中のドメインにはそれらのモードを変更することはできません。
  • --nodeset には、ゲスト仮想マシンを実行するためにホストの物理マシンによって使用される NUMA ノードの一覧が含まれます。この一覧には、ノードが含まれるノードが含まれ、それぞれをコンマで区切ります。ダッシュは、ノード範囲に使用され、ノードの除外に使用されるキャレット ^ が使用されます。
  • 1 つのインスタンスごとに使用できる以下の 3 つのフラグのいずれかのみ
    • --config は、永続ゲスト仮想マシンの次回起動を有効にします。
    • --live は、実行中の仮想マシンのスケジューラー情報を設定します。
    • --current は、ゲスト仮想マシンの現在の状態を有効にします。

例20.55 ゲスト仮想マシンの NUMA パラメーターを設定する方法

以下の例では、実行中の guest1 仮想マシンの NUMA モードをノード 0、2、および 3 に設定できるように設定します。
# virsh numatune guest1
--mode strict --nodeset 0,2-3 --live
このコマンドを実行すると、guest1 の実行設定を XML ファイルの以下の設定に変更します。
<numatune>
        <memory mode='strict' nodeset='0,2-3'/>
</numatune>

20.27.3. NUMA Cell での空き領域の Amount の表示

virsh freecell コマンドは、指定した NUMA セル内のマシンで利用可能なメモリー容量を表示します。このコマンドは、指定したオプションに応じて、マシンで利用可能なメモリーの 3 つの表示するものを提供します。 指定したセル。

例20.56 仮想マシンおよび NUMA セルのメモリープロパティーの表示方法

以下のコマンドは、すべてのセルで利用可能なメモリーの合計量を表示します。
# virsh freecell
Total: 684096 KiB
また、個別のセルで利用可能なメモリー容量も表示するには、--all オプションを使用します。
# virsh freecell --all
    0:     804676 KiB
--------------------
Total:     804676 KiB

特定のセルで個別のメモリー量を表示するには、--cellno オプションを使用します。
# virsh freecell --cellno 0
0: 772496 KiB

20.27.4. CPU 一覧の表示

virsh nodecpumap コマンドは、ホストマシンで利用可能な CPU の数を表示し、現在オンラインの回数も表示します。

例20.57 ホストで利用可能な CPU の数を表示する方法

以下の例は、ホストで利用可能な CPU 数を表示しています。
# virsh nodecpumap
   CPUs present: 4
   CPUs online: 1
   CPU map: y

20.27.5. CPU 統計の表示

virsh nodecpustats [cpu_number] [--percent] コマンドは、ホストの CPU 負荷の状態に関する統計情報を表示します。CPU が指定されている場合、統計は指定された CPU に対してのみ指定されます。percent オプションを指定すると、このコマンドは、1 秒間隔で記録された各タイプの CPU 統計の割合を表示します。

例20.58 CPU 使用率に関する統計情報を表示する

以下の例では、ホスト CPU 負荷に関する一般的な統計を返します。
# virsh nodecpustats
user:               1056442260000000
system:              401675280000000
idle:               7549613380000000
iowait:               94593570000000
この例では、CPU 番号 2 の統計をパーセンテージで表示します。
# virsh nodecpustats 2 --percent
usage:            2.0%
user:             1.0%
system:           1.0%
idle:            98.0%
iowait:           0.0%

20.27.6. デバイスの管理

20.27.6.1. virsh でデバイスのアタッチと更新

手順20.4 ゲスト仮想マシンで使用するために USB デバイスのホットプラグ

USB デバイスは、ホットプラグにより実行している仮想マシンまたはゲストをオフにしている仮想マシンに割り当てることができます。ゲストで使用するデバイスがホストマシンに接続されている。
  1. 以下のコマンドを実行して、接続する USB デバイスを見つけます。
    # lsusb -v
    
    idVendor           0x17ef Lenovo
    idProduct          0x480f Integrated Webcam [R5U877]
    
  2. XML ファイルを作成し、論理名(例:usb_device.xml )を指定します。ご使用の検索で示されているように、ベンダーと製品 ID の番号(16 進数)をコピーします。この情報を XML 図20.2「USB デバイス XML スニペット」。このファイルの名前は、次の手順で必要となるため、名前をメモします。

    図20.2 USB デバイス XML スニペット

    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x17ef'/>
        <product id='0x480f'/>
      </source>
    </hostdev>
  3. 以下のコマンドを実行してデバイスを割り当てます。コマンドを実行すると、guest1 を仮想マシンの名前に置き換え、usb_device.xml を、前の手順で作成したデバイスのベンダーおよび製品 ID が含まれる XML ファイルの名前に置き換えます。次回の再起動時に変更を有効にするには、--config 引数を使用します。現在のゲスト仮想マシンで変更を有効にするには、--current 引数を使用します。その他の引数は、man ページの virsh を参照してください。
    # virsh attach-device guest1
    --file usb_device.xml --config

例20.59 ゲスト仮想マシンからデバイスをホットアンプラグする方法

以下の例では、guest1 仮想マシンから usb_device1.xml ファイル で設定された USB デバイスをデタッチします。
# virsh detach-device guest1
--file usb_device.xml

20.27.6.2. インターフェースデバイスの割り当て

virsh attach-interface ドメイン タイプの source [<target>] [<mac&gt;] [<script >] [<model >] [<outbound>] [--config] [--live] コマンドは以下の引数を取ることができます。
  • --type - インターフェースタイプの設定を可能にします。
  • --source - ネットワークインターフェースのソースを設定できます。
  • --live - ゲスト仮想マシン設定の実行から値を取得します。
  • --config - 次回の起動時に有効になります。
  • --current - 現在の設定と値を取得します。
  • --target - ゲスト仮想マシンのターゲットデバイスを指定します。
  • --MAC - このオプションを使用してネットワークインターフェースの MAC アドレスを指定します。
  • --script - このオプションを使用して、デフォルトのスクリプトファイルではなく、ブリッジを処理するスクリプトファイルへのパスを指定します。
  • --model - このオプションは、モデルタイプを指定します。
  • --inbound - インターフェースのインバウンド帯域幅を制御します。使用できる値は average、peak、および burst です。
  • --outbound: インターフェースの送信帯域幅を制御します。使用できる値は average、peak、および burst です。
    注記
    平均値とピークの値は、1 秒あたりキロバイトで表現され、Network XML アップストリームドキュメントで説明されているように、burst は単一のバーストで 1 つのバーストで表現されます。
種別には 、物理ネットワークデバイスを指定したり、デバイスへのブリッジ を示すブリッジを示すブリッジのいずれかとなりますsource はデバイスのソースです。接続したデバイスを削除するには、virsh detach-device コマンドを使用します。

例20.60 デバイスをゲスト仮想マシンに割り当てる方法

以下の例では、networkw ネットワークデバイスを guest1 仮想マシンに割り当てます。インターフェースモデルは virtio としてゲストに表示されます。
# virsh attach-interface guest1
networkw --model virtio

20.27.6.3. CDROM のメディアの変更

virsh change-media コマンドは、CDROM のメディアを別のソースまたは形式に変更します。このコマンドは以下の引数を取ります。これらの引数の例と説明は、man ページにあります。
  • --path - ディスクデバイスの完全修飾パスまたはターゲットを含む文字列
  • --source: メディアのソースを含む文字列
  • --eject - メディアを拒否します。
  • --insert - メディアを挿入します。
  • --update - メディアを更新します。
  • --current - ハイパーバイザードライバーの実装に依存する --live と --config のいずれかを指定できます。
  • --live - 実行中のゲスト仮想マシンのライブ設定の修正
  • --config - 永続的な設定を行い、次回の起動時に確認された効果
  • --force - 修正するメディアの強制

20.27.7. ノードメモリーパラメーターの設定と表示

virsh node-memory-tune [shm-pages-to-scan] [shm-sleep-milisecs] [shm-merge-across-nodes] コマンドが表示され、ノードメモリーパラメーターを設定できます。このコマンドでは、以下のパラメーターを設定できます。
  • --shm-pages-to-scan - 項目が同じページのマージ(KSM)サービスがスリープ状態になる前にスキャンするページ数を設定します。
  • --shm-sleep-milisecs - 次のスキャンの前に KSM がスリープ状態になった時間を設定します。
  • --shm-merge-across-nodes - 異なる NUMA ノードのページをマージできるかどうかを指定します。

例20.61 NUMA ノード間でメモリーページをマージする方法

以下の例では、NUMA ノードすべてからの全メモリーページをマージします。
# virsh node-memory-tune --shm-merge-across-nodes 1

20.27.8. ホストでのデバイスの一覧表示

virsh nodedev-list --cap--tree コマンドは、libvirt サービスが認識しているホストで利用可能なすべてのデバイスを一覧表示します。--cap は、機能タイプ別に一覧をフィルターするために使用され、それぞれをコンマで区切って --tree と併用することはできません。引数 --tree を使用すると、出力がツリー構造に格納されます。

例20.62 ホストで利用可能なデバイスの表示方法

以下の例は、ツリーフォーマットのホストで利用可能なデバイスを一覧表示します。リストが省略されたことに注意してください。
# 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
	[...]
以下の例では、ホストで利用可能な SCSI デバイスを一覧表示します。
# virsh nodedev-list --cap scsi
scsi_0_0_0_0

20.27.9. ホストマシンでデバイスの作成

virsh nodedev-create file コマンドを使用すると、ホストの物理マシンにデバイスを作成し、ゲスト仮想マシンに割り当てることができます。libvirt は、使用可能なホストノードを自動的に検出しますが、このコマンドでは libvirt が検出していないハードウェアを登録することができます。<指定したファイルには、ホストデバイスのトップレベルデバイスの説明を> XML にする必要があります。このようなファイルの例については、例20.65「デバイスの XML ファイルの取得方法」

例20.63 XML ファイルからデバイスを作成する方法

この例では、PCI デバイスの XML ファイルを作成し、scsi_host2.xml として保存されています。以下のコマンドを使用すると、このデバイスをゲストに割り当てることができます。
# virsh nodedev-create scsi_host2.xml

20.27.10. デバイスの削除

virsh nodedev-destroy コマンドは、ホストからデバイスを削除します。virsh ノードデバイスドライバーが永続設定に対応していないため、ホストマシンを再起動するとデバイスが再び利用できるようになります。
また、異なる割り当ては、デバイスが異なるバックエンドドライバー(vfio、kvm)にバインドされる必要があることに注意してください。--driver 引数を使用すると、使用するバックエンドドライバーを指定することができます。

例20.64 ホストの物理マシンからデバイスを削除する方法

以下の例では、ホストマシンから scsi_host2 という名前の SCSI デバイスを削除します。
# virsh nodedev-destroy scsi_host2

20.27.11. デバイス設定の収集

virsh nodedev-dumpxml device コマンドは、デバイス名、デバイスの接続先バス、ベンダー、製品 ID、libvirt で使用可能な情報など、指定したホストデバイスの XML 表現を出力します。引数デバイスは、デバイス名または WWN のペア(HBA のみ)のいずれかになります。

例20.65 デバイスの XML ファイルの取得方法

以下の例では、scsi_host2 として識別された SCSI デバイスの XML ファイルを取得します。この名前は、virsh nodedev-list コマンドを使用して取得されました。
# 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>

20.27.12. デバイスのリセットのトリガー

virsh nodedev-reset device コマンドは、指定したデバイスのデバイスリセットをトリガーします。このコマンドは、ゲスト仮想マシンのパススルーまたはホストの物理マシン間でノードデバイスを転送する前に便利です。libvirt はこのアクションを自動的に行いますが、必要に応じて、このコマンドにより、必要に応じて明示的なリセットが許可されます。

例20.66 ゲスト仮想マシンのデバイスをリセットする方法

以下の例では、ゲスト仮想マシン scsi_host2 のデバイスをリセットします。
# virsh nodedev-reset scsi_host2