vSphere Distributed Switch를 통해 해당 스위치와 연결된 모든 호스트의 네트워킹 구성을 중앙에서 관리하고 모니터링할 수 있습니다. vCenter Server 시스템에 Distributed Switch를 설정하면 해당 설정이 스위치와 연결된 모든 호스트에 전파됩니다.

그림 1. vSphere Distributed Switch 아키텍처


vSphere Distributed Switch 아키텍처

vSphere의 네트워크 스위치는 데이터부 및 관리부가 있는 두 개의 논리 섹션으로 구성되어 있습니다. 데이터부는 패키지 전환, 필터링, 태그 지정 등을 구현합니다. 관리부는 데이터부 기능을 구성하기 위해 사용하는 제어 구조입니다. vSphere 표준 스위치에는 데이터부 및 관리부가 모두 포함되어 있으며 각 표준 스위치를 개별적으로 구성하고 유지 보수합니다.

vSphere Distributed Switch는 데이터부와 관리부를 구분합니다. Distributed Switch의 관리 기능은 데이터 센터 수준에서 환경의 네트워킹 구성을 관리할 수 있는 vCenter Server 시스템에 있습니다. 데이터부는 Distributed Switch와 연결된 모든 호스트에서 로컬로 유지됩니다. Distributed Switch의 데이터부 섹션은 호스트 프록시 스위치라고 합니다. vCenter Server(관리부)에서 생성하는 네트워킹 구성은 모든 호스트 프록시 스위치(데이터부)에 자동으로 푸시 다운됩니다.

vSphere Distributed Switch에는 물리적 NIC, 가상 시스템 및 VMkernel 서비스에 대해 일관된 네트워킹 구성을 생성하기 위해 사용하는 두 개의 추상화가 도입되었습니다.

업링크 포트 그룹

업링크 포트 그룹 또는 dvuplink 포트 그룹이 Distributed Switch를 생성하는 동안 정의되며 하나 이상의 업링크를 가질 수 있습니다. 업링크는 호스트의 물리적 연결뿐만 아니라 페일오버 및 로드 밸런싱 정책을 구성하기 위해 사용하는 템플릿입니다. 호스트의 물리적 NIC를 Distributed Switch의 업링크에 매핑합니다. 호스트 수준에서 각 물리적 NIC는 특정 ID를 사용하여 업링크 포트에 연결됩니다. 업링크에 대한 페일오버 및 로드 밸런싱 정책을 설정하면 정책이 호스트 프록시 스위치 또는 데이터부에 자동으로 전파됩니다. 이 방식으로 Distributed Switch와 연결된 모든 호스트의 물리적 NIC에 대해 일관된 페일오버 및 로드 밸런싱 구성을 적용할 수 있습니다.

분산 포트 그룹

분산 포트 그룹은 가상 시스템에 대한 네트워크 연결을 제공하고 VMkernel 트래픽을 수용합니다. 각 분산 포트 그룹은 네트워크 레이블을 사용하여 식별하며, 이 레이블은 현재 데이터 센터에서 고유해야 합니다. 분산 포트 그룹에서 NIC 팀 구성, 페일오버, 로드 밸런싱, VLAN, 보안, 트래픽 조절 및 기타 정책을 구성합니다. 분산 포트 그룹에 연결된 가상 포트는 분산 포트 그룹에 구성된 동일한 속성을 공유합니다. 업링크 포트 그룹과 마찬가지로 vCenter Server(관리부)의 분산 포트 그룹에 대해 설정하는 구성은 해당 호스트 프록시 스위치(데이터부)를 통해 Distributed Switch의 모든 호스트에 자동으로 전파됩니다. 이 방식으로 가상 시스템을 동일한 분산 포트 그룹에 연결하여 동일한 네트워킹 구성을 공유하도록 가상 시스템 그룹을 구성할 수 있습니다.

예를 들어 데이터 센터에서 vSphere Distributed Switch를 생성하고 여기에 두 개의 호스트를 연결한다고 가정합니다. 세 개의 업링크를 업링크 포트 그룹에 구성하고 각 호스트의 물리적 NIC를 업링크에 연결합니다. 이 방식으로 각 업링크에는 각 호스트의 물리적 NIC 두 개가 매핑됩니다. 예를 들어 업링크 1은 호스트 1 및 호스트 2의 vmnic0으로 구성됩니다. 그 다음 가상 시스템 네트워킹 및 VMkernel 서비스에 대해 운영 및 VMkernel 네트워크 분산 포트 그룹을 생성합니다. 또한 운영 및 VMkernel 네트워크 포트 그룹의 표현도 호스트 1 및 호스트 2에서 생성됩니다. 운영 및 VMkernel 네트워크 포트 그룹에 설정한 모든 정책이 호스트 1 및 호스트 2의 해당 표현으로 전파됩니다.

ESXi 5.5 이상을 실행하는 호스트에서는 호스트 리소스를 효과적으로 사용할 수 있도록 프록시 스위치의 분산 포트 수가 동적으로 증가하거나 감소합니다. 이러한 호스트의 프록시 스위치는 호스트에서 지원되는 최대 포트 수까지 확장할 수 있습니다. 포트 수 제한은 호스트에서 처리할 수 있는 최대 가상 시스템 수에 따라 달라집니다.

vSphere Distributed Switch 데이터 흐름

가상 시스템 및 VMkernel 어댑터에서 물리적 네트워크까지의 데이터 흐름은 분산 포트 그룹에 설정된 NIC 팀 구성과 로드 밸런싱에 따라 다릅니다. 또한 데이터 흐름은 Distributed Switch의 포트 할당에 따라 다릅니다.

그림 2. vSphere Distributed Switch의 NIC 팀 구성 및 포트 할당
가상 시스템 및 VMkernel 네트워킹의 vSphere Distributed Switch 포트

예를 들어 각각 3개 및 2개의 분산 포트를 가진 VM 네트워크 및 VMkernel 네트워크 분산 포트 그룹을 생성한다고 가정합니다. Distributed Switch는 분산 포트 그룹을 생성하는 순서대로 0에서 4까지의 ID를 포트에 할당합니다. 그 다음 호스트 1 및 호스트 2를 Distributed Switch와 연결합니다. Distributed Switch는 호스트의 모든 물리적 NIC에 포트를 할당하고, 이때 호스트를 추가하는 순서대로 5부터 포트 번호를 계속 지정합니다. 각 호스트에서 네트워크 연결을 제공하기 위해 vmnic0을 업링크 1에, vmnic1을 업링크 2에, vmnic2를 업링크 3에 매핑합니다.

가상 시스템에 대한 연결을 제공하고 VMkernel 트래픽을 수용하려면 VM 네트워크 및 VMkernel 네트워크 포트 그룹에 팀 구성 및 페일오버를 구성합니다. 업링크 1 및 업링크 2는 VM 네트워크 포트 그룹의 트래픽을 처리하고 업링크 3은 VMkernel 네트워크 포트 그룹의 트래픽을 처리합니다.

그림 3. 호스트 프록시 스위치에서의 패킷 흐름
호스트 프록시 스위치에서의 NIC 팀 구성 및 포트 분산

호스트 측에서 가상 시스템 및 VMkernel 서비스의 패킷 흐름이 특정 포트를 통과해 물리적 네트워크에 도달합니다. 예를 들어 호스트 1의 VM1에서 보낸 패킷이 먼저 VM 네트워크 분산 포트 그룹의 포트 0에 도달합니다. 업링크 1 및 업링크 2가 VM 네트워크 포트 그룹의 트래픽을 처리하기 때문에 패킷은 업링크 포트 5 또는 업링크 포트 6에서 계속될 수 있습니다. 패킷이 업링크 포트 5를 통과하면 vmnic0으로 계속되고 패킷이 업링크 포트 6으로 이동하면 vmnic1로 계속됩니다.