Hyper-V 호스트 또는 각 VM 내에서 NIC 팀 구성?

Hyper-V 호스트 또는 각 VM 내에서 NIC 팀 구성?

Dell T620에 Windows Server 2016 Datacenter를 설치한 다음 Hyper-V 역할을 설치했습니다. 다음으로 물리적 1Gbps 네트워크 어댑터 2개로 구성된 NIC 팀을 만들었습니다. 팀 이름은 LANTeam입니다. 설정은 다음과 같습니다: 팀 구성 모드 - 스위치 독립적, 로드 밸런싱 모드 - 동적, 대기 어댑터 - 없음(모든 어댑터 활성)

이 서버의 네트워크 연결 제어판에는 모든 물리적 NIC가 표시되며 이제 'LANTeam'이라는 연결도 하나 더 표시됩니다. 이는 연결 이름이지만 장치 이름은 'Microsoft Network Adapter Multiplexor Driver'입니다.

이 네트워크 연결을 두 번 클릭하면 2.0Gbps의 속도가 표시됩니다. 이는 2 x 1Gbps 연결이 함께 팀으로 구성되어 있기 때문입니다.

상황이 약간 흐려지는 부분은 다음과 같습니다.

Hyper-V 관리자를 열고 가상 스위치 관리자를 클릭합니다. 새 가상 스위치(외부)를 만들고 드롭다운 목록에서 'Microsoft 네트워크 어댑터 멀티플렉서 드라이버'를 선택합니다.

저는 이 스위치의 이름을 'LAN vSwitch'로 지정합니다.

다음으로 첫 번째 VM을 만듭니다. 속성 창의 드롭다운에서 'LAN vSwitch'를 선택합니다.

이 VM을 시작할 때(Windows 2016 Server 설치) 네트워크 연결로 이동하여 유일한 네트워크 어댑터('이더넷'이라고 함)를 두 번 클릭하면 속도가 1.0Gbps에 불과한 것으로 표시됩니다.

왜 2.0Gbps가 아닌가? 내 목표는 모두 2.0Gbps 이더넷 연결을 갖춘 몇 개의 VM을 만드는 것입니다.

답변1

보고 있는 불일치는 보고된 NIC 속도에만 있습니다. 먼저 몇 가지 배경 지식:

Windows에서는 팀 구성 NIC가 2Gbps에서 실행된다고 말할 때 약간 거짓말을 하고 있습니다. 이는 실제로 팀 구성이나 본딩이 작동하는 방식이 아니기 때문입니다. 팀 구성을 사용하면 두 NIC에 걸쳐 개별 연결의 로드 밸런싱을 수행할 수 있습니다. 단일 연결은 단일 NIC만 포화시킬 수 있습니다. 팀 구성은 여러 네트워크 끝점을 처리할 때만 효과적이므로 일반적으로 VM 호스트에 설정하는 데 좋은 옵션입니다. 호스트가 아닌 VM 내에서 유대나 팀을 설정하면 다양한 플랫폼에서 이상한 결과를 초래할 수 있으므로 가능하다면 그렇게 하지 않는 것이 좋습니다. 일반적으로 가장 많은 양의 연결을 얻을 수 있는 위치에 본드를 배치하는 것이 가장 좋으며 일반적으로 가능한 한 네트워크 트렁크에 가깝습니다.

VM 내 속도 보고 문제로 돌아가 보겠습니다. 이는 거짓말이 아닙니다. 호스트에 1Gbps NIC가 연결되어 있고 인스턴스에 네트워킹을 제공하는 vswitch에 연결되어 있습니다. 이로 인해 전체 vswitch의 속도가 1Gbps로 감소하며 이는 HyperV의 알려진 흐름 제어 제한 사항입니다. vswitch는 보고된 본드 용량을 무시합니다. 이는 흐름 제어에 중요하지 않기 때문입니다. 하나의 VM이 아닌 호스트에서 총 2Gbps를 푸시할 수 있습니다.

VM 간에 호스트 시스템 버스 속도 네트워킹을 원하는 경우 어떤 종류의 물리적 NIC에도 연결되지 않고 각 VM과 호스트에만 연결되는 "빈" vswitch를 만들 수 있습니다. 이는 VM 간 East-West 트래픽이 많은 경우 유용할 수 있습니다.

위의 예를 토대로 하이퍼바이저에서 계층 2를 종료하면 이 문제를 거의 완전히 해결할 수 있습니다. 모든 VM을 빈 vswitch에 연결하여 버스 속도 통신을 활성화할 수 있습니다. 이것이 설정된 후에는 Hyperv 호스트를 게이트웨이로 사용하여 완전 가상 vswitch의 계층 3 트래픽을 호스트의 계층 3 주소 팀으로 라우팅할 수 있습니다. 이로 인해 포트 전달 및 NAT 사용과 같은 몇 가지 네트워크 복잡성이 발생합니다. 그러나 hyperv에는 이에 대한 매우 친숙한 제어 기능이 있습니다.

관련 정보