⫸VMware

VMware 네트워킹 - 표준 가상 스위치

OSMU-PIPELINE 2022. 10. 5. 14:55
반응형

표준 가상 스위치

 

표준 가상 스위치

가상 스위치 앞에 표준(Standard)을 붙인 이유는 분산 스위치와 구별하기 위함이며, 또한 실제로 VMware에서도 Standard Virtual Switch라 구별하여 부르고 있기 때문이다.

가상 스위치는 VMkernel 위에서 CPU 파워를 이용하여 소프트웨어 기반으로만 작동되는 OSI Layer 2 기반의 스위치이다. 물리적인 L2 스위치와 비교하자면 몇 가지 공통점과 차이점을 가지고 있다. 기본적으로 L2 스위치 본연의 임무로써 MAC 주소를 전달해 준다는 점과 표준 VLAN 구성 및 업링크 연결까지 지원해 준다는 점에서 공통점을 가지고 있다. 반면에, 차이점은 루프 구조가 형성되지 않기 때문에 스패닝 트리 프로토콜이 작동하지 않는데, 즉 가상 스위치와 가상 스위치끼리 직접 연결할 수 있는 방법이 존재하지 않는다는 것이다. 또한 별도의 외부 인터페이스를 가지고 있지 않기 때문에 가상 스위치 내부 구성 자체를 열어볼 수는 없다는 점도 차이점이라 할 수 있다. 다시 강조하건대, ESXi 서버에서의 가상 스위치는 OSI Layer 2에 기반하기 때문에 라우팅 기능이 전혀 포함되어 있지 않다.

가상 스위치를 생성하면서 ESX 서버가 설치된 호스트 시스템의 어떤 물리적인 NIC를 업링크로 사용할 것인지 선택할 수도 있지만, 그 반대로 선택하지 않을 수도 있다. 다시 말하자면 업링크가 존재하지 않는, 즉 물리적인 NIC와 연결되어 있지 않은 가상 스위치를 생성할 수 있다. 이 경우에는 대부분 가상 머신들이 외부 세계와 통신할 필요가 없고 내부 통신만을 이용하는 경우에 많이 사용하기도 하며, 가상 머신에 가상 NIC를 두 개 장착해서 일종의 라우팅(Routing) 소프트웨어 기능을 게스트 운영체제에 답재하여 외부 업링크와 연결할 필요가 없는 가상 스위치와 함께 다른 가상 머신들을 위한 라우터 역할을 하는 데 사용하기도 한다.

 

 

Port Group

 

포트 그룹은 이전에 설명한 바와 같이 가상 스위치에 생성해야 하는 논리적인 포트 단위별 그룹인데, 가상 스위치를 생성하게 되면 최소한 무조건 한 개 이상의 포트 그룹을 생성해야 한다. 실제 가상 머신이 가상 스위치와 연결하기 위해서는 가상 스위치 이름을 보고 연결하는 것이 아니라 각 가상 스위치에 생성된 포트 그룹명에 연결하는 것이기 때문에 포트 그룹의 이해가 선행되어야 한다. 그런데 처음 ESXi 서버를 접하는 일부 사람들은 포트 그룹의 정체에 대하여 조금 의아해하는데, 사실 솔직히 포트 그룹을 설명하기가 애매한 것이 사실이다. 왜냐하면 전통적인 물리적인 스위치 환경과 비교하자니 딱히 그 비교 대상이 모호하다. 포트 그룹은 VLAN과 같은 개념도 아니고, 그렇다고 눈에 보이지도 않는 가상 스위치의 포트를 특정해서 부르는 것도 아니기 때문이다. 포트 그룹은 보안과 트래픽 단위 조절, 그리고 네트워크 이중화와 같은 속성을 지정할 수 있는 일종의 템플릿 단위라고 이해하는 편이 편하다. 그러나, 사실 이러한 보안이나 트래픽 조절, 네트워크 이중화와 같은 속성은 가상 스위치 레벨에서 지정할 수 있으며, 포트 그룹별로 특별히 속성을 설정하지 않는 한 가상 스위치의 속성을 그대로 이어받는다.

포트 그룹은 다음과 같은 종류가 존재한다.

• 가상 머신 포트 그룹

• VMkernel 포트 그룹

 

각 포트 그룹의 종류가 의미하는 바와 같이 가상 머신이 통신하기 위해서는 가상 머신 포트 그룹과 연결되어야 하며, VMotion이나 iSCSI와 같이 VMkernel이 외부와 연결하기 위해서는 VMkernel 포트 그룹을 가지고 있는 가상 스위치가 필요하다. 어떤 포트 그룹 종류를 선택하든지 각 포트 그룹에는 Network Label이라는 이름을 정의해 주어야 하며, 이 이름은 구별하기 쉽고 이해하기 쉬운 이름으로 명명하는 것이 좋다. 예를 들어, 가상 머신이 실제 네트워크 통신을 하기 위해서는 미리 생성하여 지정해 놓은 가상 머신용 포트 그룹과 연결을 해야 한다. 하지만 가상 머신 포트 그룹의 label 명이  public이나 VM network와 같은 이름으로 명명되어 있다면 조그마한 규모의 환경이라면 별 문제는 없겠지만 대규모의 환경이라면 부적합한 이름이 아닐 수 없다. 가능하다면 네트워크의 성격이나, IP 범위 또는 VLAN ID명과 같은 식의 조합으로 명명하는 것이 바람직하다.

 

 

NIC Teaming

 

서버 네트워크의 장애를 대비하기 위해 두 개 이상의 물리적인 NIC를 하나의 그룹으로 묶어 장애 대비를 도모함과 동시에 네트워크 트래픽의 부하를 분산시키고 있다. 흔히 이러한 구성을 티밍(Teaming)이라고 부르며, 본딩(Bonding)이라고 부르기도 한다. 이러한 티밍 구성은 크게 부하 분산과 장애 대비를 위한 두 마리 토끼를 잡기 위한 방안이다. ESXi 서버 역시 티밍 구성을 지원하고 있다. 

 

 

Load Balancing

 

현재 물리적인 서버를 운영하는 사용자들 대부분은 물리적인 NIC의 트래픽 부하 분산을 위해 네트워크 드라이버 레벨에서 제공하는 로드 밸런싱 기능을 활용하고 있다. 마찬가지로, ESXi 서버에서도 이러한 로드 밸런싱 기능을 이용할 수 있다. 

이 기능을 설정하기에 앞서 반드시 기억해야 할  두 가지 사항이 있다. 

첫째로, 표준 가상 스위치에서 제공하는 모든 로드 밸런싱은 전부 Transmit 네트워크 트래픽, 즉 ESXi 서버에서 외부로 전달되는 네트워크 트래픽에 대해서만 관여하며, Receive 트래픽, 즉 외부에서 ESXi 서버로 들어오는 네트워크 트래픽에 대해서는 로드 밸런싱 기능이 작동되지 않는다는 점이다. 

둘째로, 이러한 로드 밸런싱의 범위는 가상 스위치와 연결된 ESXi 서버의 물리적 NIC와 상위 물리적 스위치 간의 업링크 레벨에서만 해당된다. 개별적인 가상 머신과 가상 스위치와의 네트워크 연결 레벨에서는 로드 밸런싱 기능을 별도록 적용시킬 수 없다.

 

반응형