다음을 통해 공유


VPort(가상 포트)

VPort(가상 포트)는 단일 루트 I/O 가상화(SR-IOV)를 지원하는 네트워크 어댑터의 NIC 스위치에 있는 내부 포트를 나타내는 데이터 개체입니다. 각 NIC 스위치에는 네트워크 연결을 위한 다음 포트가 있습니다.

  • 외부 물리적 네트워크에 연결하기 위한 하나의 외부 물리적 포트입니다.

  • PCI EXPRESS 물리적 함수(PF) 또는 가상 함수(VF)에 연결된 하나 이상의 내부 VPort입니다.

    • PF Hyper-V 부모 파티션에 연결되고 해당 파티션에서 실행되는 관리 운영 체제의 가상 네트워크 어댑터로 노출됩니다.
    • VF이 Hyper-V 자식 파티션에 연결되고, 해당 파티션에서 실행되는 게스트 운영 체제에 가상 네트워크 어댑터 형태로 제공됩니다.

NIC 스위치는 네트워크 트래픽을 실제 포트에서 하나 이상의 VPort로 연결합니다. 이렇게 하면 기본 물리적 네트워크 인터페이스에 대한 가상화된 액세스가 제공됩니다.

각 VPort에는 네트워크 어댑터의 NIC 스위치에 대해 고유한 고유 식별자(VPortId)가 있습니다. 기본 VPort는 항상 기본 NIC 스위치에 존재하며 삭제할 수 없습니다. 기본 VPort에는 NDIS_DEFAULT_VPORT_IDVPortId가 있습니다.

PF 미니포트 드라이버가 OID_NIC_SWITCH_CREATE_SWITCH개체 식별자(OID) 메서드 요청을 처리할 때, NIC 스위치와 해당 스위치의 기본 VPort를 생성합니다. 기본 VPort는 항상 PF에 연결되며 항상 작동 상태입니다.

비기본 VPort는 OID_NIC_SWITCH_CREATE_VPORTOID 메서드 요청으로 생성됩니다. 기본이 아닌 VPort 하나만 VF에 연결할 수 있습니다. 연결되면 기본값은 작동 상태입니다. 하나 이상의 기본이 아닌 VPort를 만들어 PF에 연결할 수도 있습니다. 이러한 VPort는 생성 시 비작동 상태지만, OID_NIC_SWITCH_VPORT_PARAMETERSOID 설정 요청을 통해 작동 상태로 전환될 수 있습니다.

메모

VPort가 운영을 시작하면 OID_NIC_SWITCH_DELETE_VPORTOID 요청을 통해 삭제될 때만 비운영 가능 상태가 될 수 있습니다.

각 VPort에는 패킷 수신 및 전송을 위해 하나 이상의 하드웨어 큐 쌍이 연결되어 있습니다. 네트워크 어댑터의 기본 큐 쌍은 기본 VPort에서 사용하도록 예약되어 있습니다. 기본이 아닌 VPort에 대한 큐 쌍은 OID_NIC_SWITCH_CREATE_VPORT 요청을 통해 VPort가 생성될 때 할당 및 지정됩니다.

비기본 VPort는 OID_NIC_SWITCH_CREATE_VPORTOID 메서드 요청으로 생성되고 구성됩니다. 기본 VPort와 비기본 VPort는 OID_NIC_SWITCH_VPORT_PARAMETERSOID 설정 요청을 통해 다시 구성됩니다. 각 OID 요청에는 다음 구성 매개 변수를 지정하는 NDIS_NIC_SWITCH_VPORT_PARAMETERS 구조체가 포함되어 있습니다.

  • VPort가 연결된 PCIe 함수입니다.

    각 VPort는 언제든지 PF 또는 VF에 연결할 수 있습니다. VPort를 만들고 PCIe 함수에 연결한 후에는 첨부 파일을 다른 PCIe 함수로 동적으로 변경할 수 없습니다.

    메모

    기본 VPort는 항상 네트워크 어댑터의 PF에 연결됩니다.

    Windows Server 2012의 NDIS 6.30부터는 기본이 아닌 VPort 하나만 VF에 연결할 수 있습니다. 그러나 기본 VPort와 함께 여러 개의 비기본 VPort를 PF에 연결할 수 있습니다.

  • VPort에 할당된 하드웨어 큐 쌍의 수입니다.

    각 VPort에는 그것에 할당된 하드웨어 큐 쌍의 집합이 있습니다. 각 큐 쌍은 네트워크 어댑터에서 별도의 전송 및 수신 큐로 구성됩니다.

    큐 쌍은 네트워크 어댑터에서 제한된 리소스입니다. 기본 VPort와 기본값이 아닌 VPort에 사용하기 위해 예약된 큐 쌍의 총 수는 NIC 스위치를 생성할 때 지정됩니다. 이렇게 하면 기본 VPort에 할당된 큐 쌍 수가 기본 VPort가 아닌 VPort와 다를 수 있습니다.

    기본이 아닌 각 VPort는 서로 다른 수의 큐 쌍을 갖도록 구성할 수 있습니다. 이를 큐 쌍의 비대칭 할당이라고 합니다. NIC에서 이러한 비대칭 할당을 허용하지 않는 경우 각 비대칭 VPort는 동일한 수의 큐 쌍을 갖도록 구성됩니다. 이를 큐 쌍의 대칭 할당이라고 합니다. 자세한 내용은 큐 쌍의 대칭 및 비대칭 할당을 참조하세요.

    메모

    PF 미니포트 드라이버는 MiniportInitializeEx동안 큐 쌍의 비대칭 할당을 지원하는지 여부를 보고합니다. 자세한 내용은 PF 미니포트 드라이버 초기화을 참조하세요.

    각 VPort에 할당된 큐 쌍 수는 동적으로 변경되지 않습니다. VPort를 만든 후에는 VPort에 할당된 큐 쌍 수를 변경할 수 없습니다.

    메모

    비기본 VPort에 할당된 하나 이상의 큐 쌍은 게스트 운영 체제의 VF 미니포트 드라이버가 RSS(수신측 크기 조정)에 사용할 수 있습니다.

  • VPort에 대한 인터럽트 조절 매개변수입니다.

    다른 VPort에 대해 서로 다른 인터럽트 조정 유형을 지정할 수 있습니다. 이렇게 하면 가상화 스택이 특정 VPort에서 생성된 인터럽트 수를 제어할 수 있습니다.

구성 매개 변수 외에도 상위 드라이버는 OID_RECEIVE_FILTER_SET_FILTEROID 메서드 요청을 실행하여 각 VPort에 대한 수신 필터를 구성할 수 있습니다. NIC 스위치는 VPort 기준으로 지정된 수신 필터링을 수행합니다.

VPort에 대한 수신 필터 매개 변수에는 MAC(미디어 액세스 제어) 주소 목록 및 VLAN(가상 LAN) 식별자 목록과 같은 패킷 필터링 조건이 포함됩니다. MAC 주소 및 VLAN 식별자에 대한 필터는 항상 OID_RECEIVE_FILTER_SET_FILTER 요청과 함께 연결된 NDIS_RECEIVE_FILTER_PARAMETERS에 함께 지정해야 합니다. NIC 스위치는 들어오는 패킷을 대상 MAC 주소 및 VLAN 식별자가 VPort에 설정된 수신 필터 조건과 일치하는 스위치로 필터링해야 합니다. NIC 스위치는 다른 VPort 또는 외부 물리적 포트에서 받은 패킷을 필터링합니다. 패킷이 필터와 일치하는 경우 NIC 스위치는 이를 VPort로 전달해야 합니다.

VPort에서 여러 MAC 주소 및 VLAN 식별자 쌍을 설정할 수 있습니다. MAC 주소만 설정된 경우 수신 필터는 VPort가 다음 조건과 일치하는 패킷을 수신하도록 지정합니다.

  • 패킷의 대상 MAC 주소는 필터의 MAC 주소와 일치합니다.

  • 패킷에는 VLAN 태그가 있거나(VLAN 태그가 있는 경우) VLAN 식별자가 0입니다.

기본이 아닌 VPort는 OID_NIC_SWITCH_DELETE_VPORTOID 집합 요청을 통해 삭제됩니다. 기본 VPort는 NIC 스위치가 OID_NIC_SWITCH_DELETE_SWITCHOID 설정 요청을 통해 삭제될 때만 삭제됩니다.