SD-WAN Gateway는 표준 하이퍼바이저(KVM 또는 VMware ESXi)에서 실행됩니다.
최소 서버 요구 사항
하이퍼바이저를 실행하려면 다음을 수행합니다.
- CPU: 최대 성능을 달성하려면 최소 클럭 속도가 2.0Ghz인 Intel XEON(단일 8코어 게이트웨이 VM을 실행하기 위한 최소 10코어)이 필요합니다.
- ESXi vmxnet3 네트워크 스케줄링 기능에는 게이트웨이에 할당된 코어 수에 관계없이 게이트웨이 VM(가상 시스템)당 2개의 코어가 예약되어 있어야 합니다.
- 예: ESXi+vmxnet3을 실행하는 24코어 서버가 있다고 가정합니다. 게이트웨이 2개(8코어)를 배포할 수 있습니다. 즉, 2개의 게이트웨이에 8개의 코어를 곱하면 게이트웨이 애플리케이션용으로 예약된 16개의 코어가 필요하며 8개의 사용 가능한 코어가 남습니다. 위의 수식을 사용하면 ESXi/vmxnet3 시스템에 최대 성능 규모로 실행되는 이러한 두 게이트웨이를 지원하기 위해 추가로 4개의 코어가 필요합니다(배포된 2개의 게이트웨이 각각에 대한 2개의 코어). 24개 코어 시스템에서 2개의 게이트웨이를 실행하는 데 필요한 총 20개 코어입니다.
참고: SR-IOV를 사용하는 경우 더 높은 성능을 달성하기 위해 네트워크 스케줄링 기능이 pNIC로 오프로드됩니다. 또한 하이퍼바이저는 CPU, 메모리, NUMA 할당 관리와 같은 다른 스케줄링 기능을 계속 수행해야 합니다. 하이퍼바이저 사용을 위해 사용 가능한 코어 2개를 항상 유지해야 합니다.
- 예: ESXi+vmxnet3을 실행하는 24코어 서버가 있다고 가정합니다. 게이트웨이 2개(8코어)를 배포할 수 있습니다. 즉, 2개의 게이트웨이에 8개의 코어를 곱하면 게이트웨이 애플리케이션용으로 예약된 16개의 코어가 필요하며 8개의 사용 가능한 코어가 남습니다. 위의 수식을 사용하면 ESXi/vmxnet3 시스템에 최대 성능 규모로 실행되는 이러한 두 게이트웨이를 지원하기 위해 추가로 4개의 코어가 필요합니다(배포된 2개의 게이트웨이 각각에 대한 2개의 코어). 24개 코어 시스템에서 2개의 게이트웨이를 실행하는 데 필요한 총 20개 코어입니다.
- ESXi vmxnet3 네트워크 스케줄링 기능에는 게이트웨이에 할당된 코어 수에 관계없이 게이트웨이 VM(가상 시스템)당 2개의 코어가 예약되어 있어야 합니다.
- CPU는 AES-NI, SSSE3, SSE4, RDTSC, RDSEED, RDRAND, AVX/AVX2/AVX512 명령 집합을 지원하고 사용하도록 설정해야 합니다.
- 서버 시스템에는 PGW VM에 할당된 메모리 외에 최소 4GB의 사용 가능한 RAM이 있어야 합니다. 인증서 기반 인증을 사용하도록 설정한 경우 하나의 게이트웨이 VM에 16GB RAM 또는 32GB RAM이 필요합니다.
- 최소 150GB의 자기 또는 SSD 기반 영구 디스크 볼륨(인증서 기반 인증을 사용하도록 설정한 경우, 하나의 게이트웨이 VM에 64GB 또는 96GB 디스크 볼륨이 필요함)
- 필요한 최소 IOPS 성능: 200 IOPS.
- 게이트웨이 파트너 전달 인터페이스를 사용하도록 설정할 경우 최소 1x10Ge 네트워크 인터페이스 포트와 2개의 포트가 선호됩니다(1Ge NIC는 지원되지만 성능에 병목 현상이 발생함). SR-IOV를 지원하는 물리적 NIC 카드는 Intel 82599/82599ES 및 Intel X710/XL710 칩셋입니다. ('SR-IOV 사용' 가이드 참조)
참고: SR-IOV는 NIC 결합을 지원하지 않습니다. 중복 업링크의 경우 ESXi vSwitch를 사용합니다.
- VMware SD-WAN Gateway는 최적의 성능과 안정성을 보장하기 위해 전용 CPU 주기가 필요한 데이터부 집중 워크로드입니다. 게이트웨이 VM이 기본 하드웨어를 초과 구독하고 게이트웨이 서비스를 불안정하게 할 수 있는 작업(예: NUMA 경계 교차, 메모리 및/또는 vCPU 초과 구독)을 유발하지 않도록 하려면 이러한 정의된 설정을 충족해야 합니다.
- SD-WAN 파트너 게이트웨이 VM 및 이를 지원하는 데 사용되는 리소스가 NUMA 노드에 적합한지 확인합니다.
- 가능하면 네트워크 인터페이스, 메모리, 물리적 CPU 및 가상 시스템을 단일 NUMA 노드에 완전히 수직으로 정렬합니다.
-
참고: 호스트 BIOS 설정을 다음과 같이 구성합니다.
- 하이퍼스레딩(Hyper-threading) - 해제
- 전원 절약(Power Savings) - 해제
- CPU Turbo - 사용(Enabled)
- AES-NI - 사용(Enabled)
- NUMA 노드 인터리빙(NUMA Node Interleaving) - 해제
예제 서버 규격
NIC 칩셋 | 하드웨어 | 규격 |
---|---|---|
Intel 82599/82599ES | HP DL380G9 | http://www.hp.com/hpinfo/newsroom/press_kits/2014/ComputeEra/HP_ProLiantDL380_DataSheet.pdf |
Intel X710/XL710 | Dell PowerEdge R640 | https://www.dell.com/en-us/work/shop/povw/poweredge-r640
|
Intel X710/XL710 | 슈퍼마이크로 SYS-6018U-TRTP+ | https://www.supermicro.com/en/products/system/1U/6018/SYS-6018U-TRTP_.cfm
|
SR-IOV 지원을 위한 필수 NIC 규격
하드웨어 제조업체 | 펌웨어 버전 | Ubuntu 18.04용 호스트 드라이버 | ESXi 6.7용 호스트 드라이버 |
---|---|---|---|
40GbE QSFP+용 이중 포트 Intel Corporation 이더넷 컨트롤러 XL710 | 7.0 | 2.10.19.30 | 1.8.6 및 1.10.9.0 |
10GbE SFP+용 이중 포트 Intel Corporation 이더넷 컨트롤러 X710 | 7.0 | 2.10.19.30 | 1.8.6 및 1.10.9.0 |
10GbE SFP+용 쿼드 포트 Intel Corporation 이더넷 컨트롤러 X710 | 7.0 | 2.10.19.30 | 1.8.6 및 1.10.9.0 |
Dell rNDC X710/350 카드 | nvm 7.10 및 FW 19.0.12 | 2.10.19.30 | 1.8.6 및 1.10.9.0 |
지원되는 하이퍼바이저 버전
하이퍼바이저 | 지원되는 버전 |
---|---|
VMware |
|
KVM |
|
중요: Ubuntu 18.04 LTS 서버에 Intel i40e 호스트 드라이버 버전 2.10.19.30을 설치하면 컴파일 오류가 발생할 수 있습니다. 이 문제가 발생하면 호스트 드라이버에 패치를 적용하는 것이 좋습니다.
SD-WAN Gateway VM(가상 시스템) 규격
VMware의 경우 OVA에서 미리 최소 가상 하드웨어 규격을 지정합니다. KVM의 경우 XML 파일 예제가 제공됩니다. 최소 가상 하드웨어 규격은 다음과 같습니다.
- VMware ESXi를 사용하는 경우:
- 지연 시간 감도(Latency Sensitivity)를 '높음(High)’으로 설정해야 합니다.
- 절차(지연 시간 감도 조정)
- vSphere Client에서 가상 시스템을 찾습니다.
- 가상 시스템을 찾으려면 데이터 센터, 폴더, 클러스터, 리소스 풀 또는 호스트를 선택합니다.
- VM(VMs) 탭을 클릭합니다.
- 가상 시스템을 마우스 오른쪽 버튼으로 클릭한 후 설정 편집(Edit Settings)을 클릭합니다.
- VM 옵션(VM Options)을 클릭하고 고급(Advanced)을 클릭합니다.
- 지연 시간 감도(Latency Sensitivity) 드롭다운 메뉴에서 설정을 선택합니다.
- 확인(OK)을 클릭합니다.
- vSphere Client에서 가상 시스템을 찾습니다.
- CPU 예약이 100%로 설정됩니다.
- CPU 공유가 높음(high)으로 설정됩니다.
- CPU 제한을 제한 없음(Unlimited)으로 설정해야 합니다.
- vCPU 8개(vCPU 4개도 지원되지만 성능 저하가 예상됨)
중요: 모든 vCPU 코어는 소켓당 코어 수 매개 변수가 vCPU 8개가 있는 8 또는 vCPU 4개가 사용되는 4로 설정된 동일한 소켓에 매핑되어야 합니다.참고: 성능을 극대화하려면 하이퍼스레딩(Hyper-threading)을 비활성화해야 합니다.
- CPU 리소스 할당 절차:
- VMware Host Client 인벤토리에서 가상 시스템(Virtual Machines)을 클릭합니다.
- 목록에서 가상 시스템을 마우스 오른쪽 버튼으로 클릭하고 팝업 메뉴에서 편집(Edit) 설정을 선택합니다.
- 가상 하드웨어(Virtual Hardware) 탭에서 CPU를 확장하고 가상 시스템의 CPU 용량을 할당합니다.
옵션 설명 예약(Reservation) 이 가상 시스템에 대해 보장된 CPU 할당입니다. 제한 이 가상 시스템의 CPU 할당에 대한 상한입니다. 상한을 지정하지 않으려면 [제한 없음(Unlimited)]을 선택합니다. 공유(Shares) 부모 항목의 합계와 관련된 이 가상 시스템의 CPU 할당률입니다. 형제 가상 시스템은 예약 및 한도에 의해 제한되는 상대적 공유 값에 따라 리소스를 공유합니다. 1:2:4 비율로 공유 값을 지정하는 [낮음(Low)], [보통(Normal)] 또는 [높음(High)]을 선택합니다. 각 가상 시스템에 비례 가중치를 나타내는 특정 공유 수를 지정하려면 [사용자 지정(Custom)]을 선택합니다.
- 절차(지연 시간 감도 조정)
- CPU 선호도를 사용하도록 설정해야 합니다. 아래 단계를 따르십시오.
- vSphere Web Client에서 VM 설정(VM Settings) 탭으로 이동합니다.
- 옵션(Options) 탭을 선택하고 고급 일반(Advanced General) > 구성 매개 변수(Configuration Parameters)를 클릭합니다.
- numa.nodeAffinity=0, 1, ...에 대한 항목을 추가합니다. 여기서 0과 1은 프로세서 소켓 번호입니다.
- vNIC은 'vmxnet3' 유형이어야 합니다(또는 SR-IOV, 지원 세부 정보는 SR-IOV 섹션 참조).
- 다음 vNIC 중 하나 이상:
- 첫 번째 vNIC는 태그 없는 인터페이스여야 하는 공용(외부) 인터페이스입니다.
- 두 번째 vNIC는 선택 사항이며 VLAN 태깅 dot1q 및 Q-in-Q를 지원할 수 있는 개인(내부) 인터페이스 역할을 합니다. 이 인터페이스는 일반적으로 PE 라우터 또는 L3 스위치와 만납니다.
- 선택적 vNIC(별도의 관리/OAM 인터페이스가 필요한 경우).
- 메모리 예약이 '최대(maximum)'로 설정됩니다.
- 16GB 메모리(인증서 기반 인증을 사용하도록 설정하는 경우 RAM 32GB 필요)
- 가상 디스크 64GB(인증서 기반 인증을 사용하도록 설정하는 경우 디스크 96GB 필요)
참고: VMware는 위에 정의된 설정을 사용하여 확장 및 성능 수치를 가져옵니다. 위의 요구 사항에 맞지 않는 설정은 VMware에서 테스트되지 않으며 예측할 수 없는 성능 및 확장 결과를 생성할 수 있습니다.
- 지연 시간 감도(Latency Sensitivity)를 '높음(High)’으로 설정해야 합니다.
- KVM을 사용하는 경우:
- vNIC는 'Linux 브리지(Linux Bridge)' 유형이어야 합니다. (고성능을 위해서는 SR-IOV가 필요합니다. 지원 세부 정보는 SR-IOV 섹션을 참조하십시오.)
- vCPU 8개(vCPU 4개도 지원되지만 성능 저하가 예상됨)
중요: 모든 vCPU 코어는 소켓당 코어 수 매개 변수가 vCPU 8개가 있는 8 또는 vCPU 4개가 사용되는 4로 설정된 동일한 소켓에 매핑되어야 합니다.참고: 성능을 극대화하려면 하이퍼스레딩(Hyper-threading)을 비활성화해야 합니다.
- 메모리 16GB(인증서 기반 인증을 사용하도록 설정하는 경우 RAM 32GB 필요)
- 다음 vNIC 중 하나 이상:
- 첫 번째 vNIC는 태그 없는 인터페이스여야 하는 공용(외부) 인터페이스입니다.
- 두 번째 vNIC는 선택 사항이며 VLAN 태깅 dot1q 및 Q-in-Q를 지원할 수 있는 개인(내부) 인터페이스 역할을 합니다. 이 인터페이스는 일반적으로 PE 라우터 또는 L3 스위치와 만납니다.
- 선택적 vNIC(별도의 관리/OAM 인터페이스가 필요한 경우).
- 가상 디스크 64GB(인증서 기반 인증을 사용하도록 설정하는 경우 디스크 96GB 필요)
방화벽/NAT 요구 사항
참고: 이러한 요구 사항은
SD-WAN Gateway가 방화벽 및/또는 NAT 디바이스 뒤에 배포된 경우에 적용됩니다.
- 방화벽은 SD-WAN Gateway에서 TCP/443으로의 아웃바운드 트래픽을 허용해야 합니다(SASE Orchestrator와 통신하는 경우).
- 방화벽은 인터넷에서 UDP/2426(VCMP), UDP/4500 및 UDP/500으로의 인바운드 트래픽을 허용해야 합니다. NAT가 사용되지 않는 경우 방화벽은 IP/50(ESP)도 허용해야 합니다.
- NAT를 사용하는 경우 위의 포트를 외부에서 연결할 수 있는 IP 주소로 변환해야 합니다. 1:1 NAT 및 포트 변환이 모두 지원됩니다.
템플릿 및 샘플이 포함된 Git 저장소
다음 Git 저장소에는 템플릿과 샘플이 포함되어 있습니다.
git clone https://gitlab.eng.vmware.com/velocloud/velocloud.src.git
참고: 자세한 내용은 Partner Connect Portal에 게시된
VMware SD-WAN 성능 및 확장 데이터 시트를 참조하십시오. 데이터 시트에 액세스하려면 파트너 자격 증명(사용자 이름 및 암호)을 사용하여 Partner Connect Portal에 로그인해야 합니다.
SD-WAN Gateways에서 DPDK 사용
패킷 처리량 성능을 향상시키기 위해 SD-WAN Gateways는 DPDK(데이터부 개발 키트) 기술을 활용합니다. DPDK는 운영 체제 커널에서 TCP 패킷 처리를 사용자 공간에서 실행되는 프로세스로 오프로드하여 패킷 처리량을 높이기 위해 Intel에서 제공하는 데이터부 라이브러리 및 드라이버 집합입니다. 자세한 내용은 https://www.dpdk.org/를 참조하십시오.
VMware 호스팅 게이트웨이 및 파트너 게이트웨이에서 DPDK는 데이터부 트래픽을 관리하는 인터페이스에서 사용되며 관리부 트래픽용으로 예약된 인터페이스에서는 사용되지 않습니다. 예를 들어 일반적인 VMware 호스팅 게이트웨이에서 eth0은 관리부 트래픽에 사용되며 DPDK를 사용하지 않습니다. 반대로 eth1, eth2 및 eth3은 데이터부 트래픽에 사용되고 DPDK를 사용합니다.