Menu Close
Settings Close

Language and Page Formatting Options

22.5. IBM Z の仮想化と、AMD64 および Intel 64 の仮想化の相違点

IBM Z システムの RHEL 9 の KVM 仮想化は、以下の点で AMD64 システムおよび Intel 64 システムの KVM とは異なります。

PCI デバイスおよび USB デバイス

IBM Z は、仮想 PCI デバイスおよび USB デバイスに対応していません。したがって、virtio-*-pci デバイスに対応していないため、代わりに virtio-*-ccw デバイスを使用してください。たとえば、virtio-net-pci の代わりに virtio-net-ccw を使用します。

PCI パススルーとも呼ばれる PCI デバイスの直接アタッチに対応しています。

サポート対象のゲスト OS
Red Hat が IBM Z でホストする仮想マシンをサポートするのは、仮想マシンがゲストオペレーティングシステムとして RHEL 7、8、または 9 を使用している場合のみです。
デバイスの起動順序

IBM Z は、XML 設定要素 <boot dev='device'> に対応していません。デバイスの起動順序を定義するには、XML の <devices> セクションで、 <boot order='number'> 要素を使用します。以下に例を示します。

<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2'/>
  <source file='/path/to/qcow2'/>
  <target dev='vda' bus='virtio'/>
  <address type='ccw' cssid='0xfe' ssid='0x0' devno='0x0000'/>
  <boot order='2'>
</disk>
注記

また、AMD64 および Intel 64 のホストでは、ブート手順管理に <boot order='number'> を使用することが推奨されます。

メモリーのホットプラグ
IBM Z では、実行中の仮想マシンにメモリーを追加することはできません。実行中の仮想マシン (メモリーの ホットアンプラグ) からメモリーを削除することは、IBM Z や、AMD64 および Intel 64 でもできないことに注意してください。
NUMA トポロジー
CPU の NUMA (Non-Uniform Memory Access) トポロジーは、IBM Z 上の libvirt では対応していません。したがって、このシステムでは、NUMA を使用して vCPU パフォーマンスを調整することはできません。
vfio-ap
IBM Z ホストの仮想マシンは、vfio-ap 暗号デバイスパススルーを使用しますが、その他のアーキテクチャーでは対応していません。
SMBIOS
IBM Z では、SMBIOS 設定は利用できません。
Watchdog デバイス

IBM Z ホストの仮想マシンでウォッチドッグデバイスを使用する場合は、diag288 モデルを使用します。以下に例を示します。

<devices>
  <watchdog model='diag288' action='poweroff'/>
</devices>
kvm-clock
kvm-clock サービスは、AMD64 システムおよび Intel 64 システムに固有のものであり、IBM Z の仮想マシンの時間管理用に設定する必要はありません。
v2v および p2v
virt-v2v ユーティリティーおよび virt-p2v ユーティリティーは、AMD64 および Intel 64 のアーキテクチャーでのみ対応しており、IBM Z では提供されません。
移行

後のホストモデル (たとえば IBM z14 から z15) に正常に移行したり、ハイパーバイザーを更新したりするには、host-model の CPU モードを使用します。host-passthrough および maximum CPU モードは、一般的に移行に対して安全ではないため、お勧めしません。

custom CPU モードで明示的な CPU モデルを指定する場合は、次のガイドラインに従ってください。

  • -base で終わる CPU モデルは使用しない。
  • qemumax、または host CPU モデルは使用しない。

古いホストモデルへの移行 (z15 から z14 など)、または以前のバージョンの QEMU、KVM、RHEL カーネルへの移行の場合、最後に -base が付いていない使用可能な最も古いホストモデルの CPU タイプを使用します。

  • ソースホストと宛先ホストの両方を実行している場合は、代わりに宛先ホストで virsh hypervisor-cpu-baseline コマンドを使用して、適切な CPU モデルを取得できます。
  1. ソースホストのドメイン機能を取得し、XML ファイルに保存します。

    # virsh domcapabilities > capabilities1.xml
  2. 宛先ホストのドメイン機能を取得し、XML ファイルに保存します。

    # virsh domcapabilities > capabilities2.xml
  3. 両方の XML ファイルの <cpu> ブロックを除くすべてのコンテンツを削除します。

        <cpu>
          <model>z13.2-base</model>
          <feature name="aen"/>
          <feature name="aefsi"/>
          <feature name="diag318"/>
          <feature name="msa5"/>
          <feature name="msa4"/>
          <feature name="msa3"/>
          [...]
          <feature name="bpb"/>
          <feature name="ppa15"/>
          <feature name="zpci"/>
          <feature name="sea_esop2"/>
          <feature name="te"/>
        </cpu>
  4. 2 つのファイルの CPU データを 1 つの XML ファイルに結合します。

    # cat capabilities1.xml capabilities2.xml >> combined_capabilities.xml
  5. オプション:新しい XML ファイルに両方のホストの CPU 機能が含まれていることを確認します。

    # cat combined_capabilities.xml
    
    <cpu>
          <model fallback='forbid'>gen15a-base</model>
          <feature policy='require' name='aen'/>
          <feature policy='require' name='vxpdeh'/>
          <feature policy='require' name='aefsi'/>
          <feature policy='require' name='diag318'/>
          [...]
          <feature policy='require' name='zpci'/>
          <feature policy='require' name='sea_esop2'/>
          <feature policy='require' name='te'/>
    </cpu>
    <cpu>
          <model fallback='forbid'>z13.2-base</model>
          <feature policy='require' name='aen'/>
          <feature policy='require' name='aefsi'/>
          <feature policy='require' name='diag318'/>
          [...]
          <feature policy='require' name='sea_esop2'/>
          <feature policy='require' name='te'/>
          <feature policy='require' name='cmm'/>
    </cpu>
  6. virsh hypervisor-cpu-baseline コマンドを使用して、仮想マシンに使用できる CPU の機能およびモデルを取得します。

    # virsh hypervisor-cpu-baseline combined_capabilities.xml
    
    <cpu>
        <model>z13.2-base</model>
        <feature name="aen"/>
        <feature name="aefsi"/>
        <feature name="diag318"/>
        <feature name="msa5"/>
        <feature name="msa4"/>
        <feature name="msa3"/>
        [...]
        <feature name="ais"/>
        <feature name="bpb"/>
        <feature name="ppa15"/>
        <feature name="zpci"/>
        <feature name="sea_esop2"/>
        <feature name="te"/>
    </cpu>
PXE インストールおよび起動

PXE を使用して IBM Z で 仮想マシンを実行する場合は、pxelinux.cfg/default ファイルに特定の設定が必要です。以下に例を示します。

# pxelinux
default linux
label linux
kernel kernel.img
initrd initrd.img
append ip=dhcp inst.repo=example.com/redhat/BaseOS/s390x/os/