검색

8.8. 보조 네트워크 인터페이스 핫플러그

download PDF

VM(가상 머신)을 중지하지 않고 보조 네트워크 인터페이스를 추가하거나 제거할 수 있습니다. OpenShift Virtualization에서는 VirtIO 장치 드라이버를 사용하는 보조 인터페이스에 대한 핫 플러그를 지원합니다.

참고

SR-IOV(Single Root I/O Virtualization) 인터페이스에 핫 연결 해제는 지원되지 않습니다.

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 툴을 설치했습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  1. 네트워크 인터페이스를 핫플러그할 VM이 실행되지 않는 경우 다음 명령을 사용하여 시작합니다.

    $ virtctl start <vm_name> -n <namespace>
  2. 다음 명령을 사용하여 실행 중인 VM에 새 네트워크 인터페이스를 추가합니다. VM 사양을 편집하면 새 네트워크 인터페이스가 VM 및 VMI(가상 머신 인스턴스) 구성에 추가되지만 실행 중인 VM에 연결되지는 않습니다.

    $ oc edit vm <vm_name>

    VM 구성 예

    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
    # ...

    1
    새 네트워크 인터페이스의 이름을 지정합니다.
    2
    네트워크의 이름을 지정합니다. template.spec.domain.devices.interfaces 목록에 정의된 새 네트워크 인터페이스의 이름과 동일해야 합니다.
    3
    NetworkAttachmentDefinition 오브젝트의 이름을 지정합니다.
  3. 실행 중인 VM에 네트워크 인터페이스를 연결하려면 다음 명령을 실행하여 VM을 실시간 마이그레이션합니다.

    $ virtctl migrate <vm_name>

검증

  1. 다음 명령을 사용하여 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

  2. 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(가상 머신)에서 보조 네트워크 인터페이스를 제거할 수 있습니다.

참고

SR-IOV(Single Root I/O Virtualization) 인터페이스에 핫 연결 해제는 지원되지 않습니다.

사전 요구 사항

  • VM이 실행 중이어야 합니다.
  • OpenShift Virtualization 4.14 이상을 실행하는 클러스터에서 VM을 생성해야 합니다.
  • VM에 브리지 네트워크 인터페이스가 연결되어 있어야 합니다.

프로세스

  1. VM 사양을 편집하여 보조 네트워크 인터페이스를 핫플러그합니다. 인터페이스 상태를 absent 로 설정하면 게스트에서 네트워크 인터페이스를 분리하지만 인터페이스는 여전히 Pod에 있습니다.

    $ oc edit vm <vm_name>

    VM 구성 예

    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: absent 1
                bridge: {}
        networks:
          - name: defaultnetwork
            pod: {}
          - name: <secondary_nic>
            multus:
              networkName: <nad_name>
    # ...

    1
    인터페이스 상태를 absent 로 설정하여 실행 중인 VM에서 분리합니다. VM 사양에서 인터페이스 세부 정보를 제거해도 보조 네트워크 인터페이스를 핫플러그하지 않습니다.
  2. VM을 마이그레이션하여 Pod에서 인터페이스를 제거합니다.

    $ virtctl migrate <vm_name>

8.8.4. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.