24.6. ARM 64 での仮想化が AMD64 および Intel 64 とどのように異なるか
ARM 64 システム (AArch64 とも呼ばれる) 上の RHEL 9 の KVM 仮想化は、AMD64 および Intel 64 システム上の KVM とはいくつかの点で異なります。これには以下が含まれますが、以下に限定されません。
- ゲストのオペレーティングシステム
- 現在、ARM 64 仮想マシン (VM) でサポートされているゲストオペレーティングシステムは RHEL 9 のみです。
- Web コンソール管理
- RHEL 9 Web コンソールの仮想マシン管理 の一部の機能は、ARM 64 ハードウェアで正しく動作しない場合があります。
- vCPU のホットプラグとホットアンプラグ
- 仮想 CPU (vCPU) を実行中の仮想マシン (vCPU ホットプラグとも呼ばれる) に接続することは、ARM 64 ホストではサポートされていません。さらに、AMD64 および Intel 64 ホストと同様に、実行中の仮想マシンからの vCPU の削除 (vCPU ホットアンプラグ) は、ARM 64 ではサポートされていません。
- SecureBoot
- SecureBoot 機能は、ARM 64 システムでは使用できません。
- Migration
- 現在、ARM 64 ホスト間での仮想マシンの移行はサポートされていません。
- メモリーページサイズ
ARM 64 は現在、64 KB のメモリーページサイズでのみ、また 64 KB のメモリーページサイズのホスト上でのみ仮想マシンの実行をサポートしています。ホストまたはゲスト内の 4 KB ページサイズは現在サポートされていません。
ARM 64 上で仮想マシンを正常に作成するには、ホストが 64 KB のメモリーページサイズのカーネルを使用 している必要があり、仮想マシンを作成するときに、たとえばキックスタートファイルに次のパラメーターを含めるなどして、
kernel-64k パッケージ
を使用して仮想マシンをインストールする必要があります。%packages -kernel kernel-64k %end
- ヒュージページ
64 KB のメモリーページサイズを持つ ARM 64 ホストは、次のサイズの巨大なメモリーページをサポートします。
- 2 MB
- 512 MB
16 GB
ARM 64 ホストで透過的 huge page (THP) ファイルシステムを使用する場合は、512 MB の huge page のみがサポートされます。
- SVE
ARM 64 アーキテクチャーは、Scalable Vector Expansion (SVE) 機能を提供します。ホストがこの機能をサポートしている場合、仮想マシンで SVE を使用すると、これらの仮想マシンでのベクトル数学計算と文字列操作の速度が向上します。
SVE のベースラインレベルは、それをサポートするホスト CPU でデフォルトで有効になっています。ただし、Red Hat では、各ベクトルの長さを明示的に設定することを推奨しています。これにより、仮想マシンは互換性のあるホスト上でのみ起動できるようになります。これを行うには、以下を行います。
CPU に SVE 機能があることを確認します。
# grep -m 1 Features /proc/cpuinfo | grep -w sve Features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm fcma dcpop sve
このコマンドの出力に
sve
が含まれている場合、または終了コードが 0 の場合は、CPU が SVE をサポートしています。変更する仮想マシンの XML 設定を開きます。
# virsh edit vm-name
<cpu>
要素を次のように編集します。<cpu mode='host-passthrough' check='none'> <feature policy='require' name='sve'/> <feature policy='require' name='sve128'/> <feature policy='require' name='sve256'/> <feature policy='disable' name='sve384'/> <feature policy='require' name='sve512'/> </cpu>
この例では、SVE ベクトルの長さ 128、256、および 512 を明示的に有効にし、ベクトルの長さ 384 を明示的に無効にします。
- CPU モデル
-
ARM 64 上の仮想マシンは現在、
host
CPU モデルのみをサポートしています。 - 仮想マシンの保存および復元
- 仮想マシンの 保存と復元 は現在、ARM 64 ホストではサポートされていません。
- PXE
PXE (Preboot Execution Environment) での起動は機能しますがサポートされていないため、実稼働環境では使用しないことを Red Hat は強く推奨します。
PXE ブートが必要な場合は、
virtio-net-pci
ネットワークインターフェイスコントローラー (NIC) でのみ可能です。さらに、PXE ブートには、仮想マシン UEFI プラットフォームファームウェア (edk2-aarch64
パッケージでインストールされる) の組み込みVirtioNetDxe
ドライバーを使用する必要があります。iPXE オプションの ROM はサポートされません。- デバイスメモリー
- DIMM (Dual In-line Memory Module) や NVDIMM (Non-Volatile DIMM) などのデバイスメモリー機能は、ARM 64 では動作しません。
- pvpanic
-
pvpanic デバイスは現在 ARM 64 ではサポートされていません。ARM 64 のゲスト XML 設定の
<devices>
セクションから<panic>
要素を必ず削除してください。この要素が存在すると、VM の起動に失敗する場合があります。 - OVMF
ARM 64 ホスト上の仮想マシンは、
edk2-ovmf
パッケージに含まれる AMD64 および Intel 64 で使用される OVMF UEFI ファームウェアを使用できません。代わりに、これらの仮想マシンはedk2-aarch64
パッケージに含まれる UEFI ファームウェアを使用します。これは、同様のインターフェイスを提供し、同様の機能セットを実装します。具体的には、
edk2-aarch64
は組み込みの UEFI シェルを提供しますが、次の機能はサポートしていません。- SecureBoot
- 管理モード
- kvm-clock
-
kvm-clock
サービスは、ARM 64 の仮想マシンで時間管理用に設定する必要はありません。 - 周辺機器
ARM 64 システムは、AMD64 および Intel 64 デバイスとは部分的に異なる周辺機器のセットをサポートします。
- PCIe トポロジーのみがサポートされます。
-
ARM 64 システムは、
virtio-*-pci
ドライバーを使用してvirtio
デバイスをサポートします。さらに、virtio-iommu
デバイスおよびvirtio-input
デバイスはサポートされていません。 -
virtiofs
機能はテクノロジープレビューとしてのみ提供されているため、サポートされていません。 -
virtio-gpu
ドライバーはグラフィカルインストールでのみサポートされます。 -
ARM 64 システムは、グラフィカルインストールのみで
usb-mouse
およびusb-tablet
デバイスをサポートします。その他の USB デバイス、USB パススルー、または USB リダイレクトはサポートされていません。 - Virtual FunctionI/O (VFIO) を使用するデバイスの割り当ては、NIC (物理および Virtual Function) でのみサポートされます。
- エミュレートされたデバイス
次のデバイスは ARM 64 ではサポートされていません。
- ICH9、ICH6、AC97 などのエミュレートされたサウンドデバイス。
- VGA カードなどのエミュレートされたグラフィックカード。
-
rtl8139
などのエミュレートされたネットワークデバイス。
- GPU devices
- ARM 64 システムでは GPU デバイスの割り当て はサポートされていません。
- シリアルコンソールの設定
-
VM でシリアルコンソールをセットアップする 場合、
grubby
ユーティリティーでconsole=ttyS0
の代わりにconsole=ttyAMA0
カーネルオプションを使用します。 - マスク不可割り込み
- 現在、ARM 64 仮想マシンにマスク不可割り込み (NMI) を送信することはできません。
- ネストされた仮想化
- 現在、ARM 64 ホストではネストされた仮想マシンを作成できません。
- v2v および p2v
-
virt-v2v
ユーティリティーおよびvirt-p2v
ユーティリティーは、AMD64 および Intel 64 のアーキテクチャーでのみ対応しており、ARM 64 では提供されません。