10.11. セカンダリーネットワークインターフェースのホットプラグ
仮想マシンを停止せずに、セカンダリーネットワークインターフェイスを追加または削除できます。OpenShift Virtualization は、ブリッジバインディングおよび VirtIO デバイスドライバーを使用するセカンダリーインターフェイスのホットプラグとホットアンプラグをサポートしています。OpenShift Virtualization は、SR-IOV バインディングを使用するセカンダリーインターフェイスのホットプラグもサポートしています。セカンダリーインターフェイスをホットプラグまたはホットアンプラグするには、VirtualMachineInstanceMigration オブジェクトを作成およびリスト表示するパーミッションが必要です。
ホットアンプラグは、Single Root I/O Virtualization (SR-IOV) インターフェイスではサポートされていません。
10.11.1. VirtIO の制限事項 リンクのコピーリンクがクリップボードにコピーされました!
各 VirtIO インターフェイスは、仮想マシン内の限られたペリフェラル接続インターフェイス (PCI) スロットの 1 つを使用します。合計 32 個のスロットが利用可能です。PCI スロットは他のデバイスでも使用され、事前に予約する必要があるため、オンデマンドでスロットを利用できない場合があります。OpenShift Virtualization は、ホットプラグインターフェイス用に最大 4 つのスロットを予約します。これには、接続されている既存のネットワークインターフェイスが含まれます。たとえば、仮想マシンにプラグインされた既存のインターフェイスが 2 つある場合は、さらに 2 つのネットワークインターフェイスをホットプラグできます。
ホットプラグに使用できる実際のスロット数もマシンのタイプによって異なります。たとえば、q35 マシンタイプのデフォルトの PCI トポロジーは、1 台の追加 PCIe デバイスのホットプラグをサポートしています。PCI トポロジーとホットプラグのサポートの詳細は、libvirt のドキュメント を参照してください。
インターフェイスをホットプラグした後に仮想マシンを再起動すると、そのインターフェイスは標準ネットワークインターフェイスの一部になります。
10.11.2. CLI を使用したセカンダリーネットワークインターフェイスのホットプラグ リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) の実行中に、セカンダリーネットワークインターフェイスを仮想マシンにホットプラグできます。
前提条件
- ネットワークアタッチメント定義が、仮想マシンと同じ namespace に設定されている。
- ネットワークインターフェイスをホットプラグする仮想マシンが実行中です。
-
OpenShift CLI (
oc) がインストールされている。
手順
次の例に示すように、好みのテキストエディターを使用して
VirtualMachineマニフェストを編集します。apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: vm-fedora template: spec: domain: devices: interfaces: - name: defaultnetwork masquerade: {} # new interface - name: <secondary_nic>1 bridge: {} networks: - name: defaultnetwork pod: {} # new network - name: <secondary_nic>2 multus: networkName: <nad_name>3 # ...- 変更を保存し、エディターを終了します。
新しい設定を有効にするには、次のコマンドを実行して変更を適用します。変更を適用すると、自動仮想マシンライブマイグレーションがトリガーされ、実行中の仮想マシンにネットワークインターフェイスがアタッチされます。
$ oc apply -f <filename>.yamlここでは、以下のようになります。
- <filename>
-
VirtualMachineマニフェスト YAML ファイルの名前を指定します。
検証
次のコマンドを使用して、仮想マシンのライブマイグレーションが成功したことを確認します。
$ 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 ステータスに表示されます。
10.11.3. CLI を使用したセカンダリーネットワークインターフェイスのホットアンプラグ リンクのコピーリンクがクリップボードにコピーされました!
実行中の仮想マシンから、セカンダリーネットワークインターフェイスを削除できます。
ホットアンプラグは、Single Root I/O Virtualization (SR-IOV) インターフェイスではサポートされていません。
前提条件
- 仮想マシンが実行している必要があります。
- 仮想マシンは、OpenShift Virtualization 4.14 以降を実行しているクラスター上に作成する必要があります。
- 仮想マシンにはブリッジネットワークインターフェイスが接続されている必要があります。
-
OpenShift CLI (
oc) がインストールされている。
手順
好みのテキストエディターを使用して、
VirtualMachineマニフェストファイルを編集し、インターフェイスの状態をabsentに設定します。インターフェイスの状態をabsentに設定すると、ネットワークインターフェイスがゲストから切り離されますが、そのインターフェイスは Pod 内にまだ存在しています。仮想マシン設定の例:
apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: vm-fedora template: spec: domain: devices: interfaces: - name: defaultnetwork masquerade: {} # set the interface state to absent - name: <secondary_nic> state: absent1 bridge: {} networks: - name: defaultnetwork pod: {} - name: <secondary_nic> multus: networkName: <nad_name> # ...- 1
- インターフェイスの状態を
absentに設定して、実行中の仮想マシンから切り離します。仮想マシン仕様からインターフェイスの詳細を削除しても、セカンダリーネットワークインターフェイスはホットアンプラグされません。
- 変更を保存し、エディターを終了します。
新しい設定を有効にするには、次のコマンドを実行して変更を適用します。変更を適用すると、自動仮想マシンライブマイグレーションがトリガーされ、Pod からインターフェイスが削除されます。
$ oc apply -f <filename>.yamlここでは、以下のようになります。
- <filename>
-
VirtualMachineマニフェスト YAML ファイルの名前を指定します。