8.8. ホットプラグ対応のセカンダリーネットワークインターフェイス
仮想マシンを停止せずに、セカンダリーネットワークインターフェイスを追加または削除できます。OpenShift Virtualization は、VirtIO デバイスドライバーを使用する Linux ブリッジインターフェイスのホットプラグとホットアンプラグをサポートしています。
ブリッジネットワークインターフェイスのホットプラグおよびホットアンプラグは、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではない場合があります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
8.8.1. VirtIO の制限事項
各 VirtIO インターフェイスは、仮想マシン内の限られたペリフェラル接続インターフェイス (PCI) スロットの 1 つを使用します。合計 32 個のスロットが利用可能です。PCI スロットは他のデバイスでも使用され、事前に予約する必要があるため、オンデマンドでスロットを利用できない場合があります。OpenShift Virtualization は、ホットプラグインターフェイス用に最大 4 つのスロットを予約します。これには、接続されている既存のネットワークインターフェイスが含まれます。たとえば、仮想マシンにプラグインされた既存のインターフェイスが 2 つある場合は、さらに 2 つのネットワークインターフェイスをホットプラグできます。
ホットプラグに使用できる実際のスロット数もマシンのタイプによって異なります。たとえば、q35 マシンタイプのデフォルトの PCI トポロジーは、1 台の追加 PCIe デバイスのホットプラグをサポートしています。PCI トポロジーとホットプラグのサポートの詳細は、libvirt のドキュメント を参照してください。
インターフェイスをホットプラグした後に仮想マシンを再起動すると、そのインターフェイスは標準ネットワークインターフェイスの一部になります。
8.8.2. CLI を使用したブリッジネットワークインターフェイスのホットプラグ
仮想マシンの実行中に、ブリッジネットワークインターフェイスを仮想マシンにホットプラグします。
前提条件
- ネットワークアタッチメント定義は、仮想マシンと同じ namespace で設定されます。
-
virtctl
ツールがインストールされています。
手順
ネットワークインターフェイスをホットプラグする仮想マシンが実行していない場合は、次のコマンドを使用して仮想マシンを起動します。
$ virtctl start <vm_name> -n <namespace>
次のコマンドを使用して、新しいネットワークインターフェイスを実行中の仮想マシンにホットプラグします。
virtctl addinterface
コマンドは、新しいネットワークインターフェイスを仮想マシンおよび仮想マシンインスタンス仕様に追加しますが、実行中の仮想マシンには接続しません。$ virtctl addinterface <vm_name> --network-attachment-definition-name <net_attach_dev_namespace>/<net_attach_def_name> --name <interface_name>
ここでは、以下のようになります。
- <vm_name>
-
VirtualMachine
オブジェクトの名前。 - <net_attach_def_name>
-
NetworkAttachmentDefinition
オブジェクトの名前。 - <net_attach_dev_namespace>
-
NetworkAttachmentDefinition
オブジェクトに関連付けられた namespace の識別子。サポートされている値は、default
または VM が置かれている namespace の名前です。 - <interface_name>
- 新しいネットワークインターフェイスの名前。
実行中の仮想マシンにネットワークインターフェイスを接続するには、次のコマンドを使用して仮想マシンをライブマイグレーションします。
$ virtctl migrate <vm_name>
検証
次のコマンドを使用して、仮想マシンのライブマイグレーションが成功したことを確認します。
$ oc get VirtualMachineInstanceMigration -w
出力例
NAME PHASE VMI kubevirt-migrate-vm-lj62q Scheduling vm-fedora kubevirt-migrate-vm-lj62q Scheduled vm-fedora kubevirt-migrate-vm-lj62q PreparingTarget vm-fedora kubevirt-migrate-vm-lj62q TargetReady vm-fedora kubevirt-migrate-vm-lj62q Running vm-fedora kubevirt-migrate-vm-lj62q Succeeded vm-fedora
VMI ステータスをチェックして、新しいインターフェイスが仮想マシンに追加されていることを確認します。
$ oc get vmi vm-fedora -ojsonpath="{ @.status.interfaces }"
出力例
[ { "infoSource": "domain, guest-agent", "interfaceName": "eth0", "ipAddress": "10.130.0.195", "ipAddresses": [ "10.130.0.195", "fd02:0:0:3::43c" ], "mac": "52:54:00:0e:ab:25", "name": "default", "queueCount": 1 }, { "infoSource": "domain, guest-agent, multus-status", "interfaceName": "eth1", "mac": "02:d8:b8:00:00:2a", "name": "bridge-interface", 1 "queueCount": 1 } ]
- 1
- ホットプラグされたインターフェイスが VMI ステータスに表示されます。
8.8.3. CLI を使用したブリッジネットワークインターフェイスのホットアンプラグ
実行中の仮想マシンからブリッジネットワークインターフェイスを削除できます。
前提条件
- 仮想マシンが実行している必要があります。
- 仮想マシンは、OpenShift Virtualization 4.14 以降を実行しているクラスター上に作成する必要があります。
- 仮想マシンにはブリッジネットワークインターフェイスが接続されている必要があります。
手順
次のコマンドを実行して、ブリッジネットワークインターフェイスをホットアンプラグします。
virtctl removeinterface
コマンドはゲストからネットワークインターフェイスを切り離しますが、インターフェイスは Pod 内にまだ存在します。$ virtctl removeinterface <vm_name> --name <interface_name>
仮想マシンを移行して、Pod からインターフェイスを削除します。
$ virtctl migrate <vm_name>