8.8. 보조 네트워크 인터페이스 핫플러그
VM(가상 머신)을 중지하지 않고 보조 네트워크 인터페이스를 추가하거나 제거할 수 있습니다. OpenShift Virtualization은 VirtIO 장치 드라이버를 사용하는 Linux 브리지 인터페이스에 대한 핫 플러그 및 핫 플러그를 지원합니다.
브릿지 네트워크 인터페이스를 핫플러그 및 핫플러그 해제하는 기능은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
8.8.1. virtio 제한 사항
각 VirtIO 인터페이스는 VM의 제한된 PCI(Peripheral Connect Interface) 슬롯 중 하나를 사용합니다. 총 32개의 슬롯이 준비되어 있습니다. PCI 슬롯은 다른 장치에서도 사용되며 미리 예약해야 하므로 필요에 따라 슬롯을 사용할 수 없습니다. OpenShift Virtualization은 핫플러그 인터페이스를 위해 최대 4개의 슬롯을 예약합니다. 여기에는 기존의 플러그인 네트워크 인터페이스가 포함됩니다. 예를 들어 VM에 두 개의 기존 인터페이스가 있는 경우 두 개의 네트워크 인터페이스를 핫플러그할 수 있습니다.
핫 플러그에 사용할 수 있는 실제 슬롯 수는 머신 유형에 따라 다릅니다. 예를 들어 q35 시스템 유형의 기본 PCI 토폴로지는 핫 플러그를 하나의 추가 PCIe 장치를 지원합니다. PCI 토폴로지 및 핫 플러그 지원에 대한 자세한 내용은 libvirt 설명서 를 참조하십시오.
인터페이스를 핫플러그한 후 VM을 다시 시작하면 해당 인터페이스가 표준 네트워크 인터페이스의 일부가 됩니다.
8.8.2. CLI를 사용하여 브리지 네트워크 인터페이스 핫플러그
VM이 실행되는 동안 브리지 네트워크 인터페이스를 VM(가상 머신)에 핫플러그합니다.
사전 요구 사항
- 네트워크 연결 정의는 VM과 동일한 네임스페이스에 구성됩니다.
-
virtctl
툴을 설치했습니다.
프로세스
네트워크 인터페이스를 핫플러그할 VM이 실행되지 않는 경우 다음 명령을 사용하여 시작합니다.
$ virtctl start <vm_name> -n <namespace>
다음 명령을 사용하여 실행 중인 VM에 새 네트워크 인터페이스를 핫플러그합니다.
virtctl addinterface
명령은 새 네트워크 인터페이스를 VM 및 VMI(가상 머신 인스턴스) 사양에 추가하지만 실행 중인 VM에 연결하지 않습니다.$ virtctl addinterface <vm_name> --network-attachment-definition-name <net_attach_def_name> --name <interface_name>
다음과 같습니다.
- <vm_name>
-
VirtualMachine
오브젝트의 이름을 지정합니다. - <net_attach_def_name>
-
NetworkAttachmentDefinition
오브젝트의 이름을 지정합니다. - <interface_name>
- 새 네트워크 인터페이스의 이름을 지정합니다.
실행 중인 VM에 네트워크 인터페이스를 연결하려면 다음 명령을 사용하여 VM을 실시간 마이그레이션합니다.
$ virtctl migrate <vm_name>
검증
다음 명령을 사용하여 VM 실시간 마이그레이션이 성공했는지 확인합니다.
$ 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 상태를 확인하여 새 인터페이스가 VM에 추가되었는지 확인합니다.
$ 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를 사용하여 브리지 네트워크 인터페이스 핫플러그
실행 중인 VM(가상 머신)에서 브리지 네트워크 인터페이스를 제거할 수 있습니다.
사전 요구 사항
- VM이 실행 중이어야 합니다.
- OpenShift Virtualization 4.14 이상을 실행하는 클러스터에서 VM을 생성해야 합니다.
- VM에 브리지 네트워크 인터페이스가 연결되어 있어야 합니다.
프로세스
다음 명령을 실행하여 브리지 네트워크 인터페이스를 핫 플러그 해제합니다.
virtctl removeinterface
명령은 게스트에서 네트워크 인터페이스를 분리하지만 인터페이스는 여전히 Pod에 있습니다.$ virtctl removeinterface <vm_name> --name <interface_name>
VM을 마이그레이션하여 Pod에서 인터페이스를 제거합니다.
$ virtctl migrate <vm_name>