vSAN ESA over RDMA - (2) 성능 테스트

Juhwan Song·2025년 4월 6일
0

vSAN-ESA-over-RDMA

목록 보기
3/4
post-thumbnail

들어가며

기존 시스템의 구성이 vSAN ESA의 성능을 십분 활용할 수 없는 상태였기 때문에 추가적인 업그레이드 작업을 진행하였다.
이제 전체 클러스터 시스템이 Cascade Lake Xeon Gold를 가지고 있으며, 기존의 x8 PCI-E 라이저를 x16으로 변경하여 100GbE 단일 링크의 대역폭을 온전히 수용할 수 있게 되었다.

테스트를 위한 준비를 마쳤으니, 이제 본격적으로 vSAN ESA의 성능 테스트를 진행해 볼 것이다.

성능 테스트 준비

HCIBench 배포

성능 테스트는 VMware에서 제공하는 벤치마크 어플라이언스인 HCIBench를 이용할 것이다.
현 시점에서의 최신 버전은 2.8.3이며, 테스트를 진행할 클러스터에 OVF 형태로 배포하면 된다.

배포 시 주의할 점으로는, Select networks 탭에서의 VM Network는 HCIBench의 테스트 VM들이 배포될 포트 그룹을 의미한다.
Management Network는 HCIBench에 접속하기 위한 포트 그룹을, VM Network는 테스트 VM을 배포하기 위한 포트 그룹을 선택한 다음 배포를 진행한다.

다음으로, 초기 부트 후, vCenter와 연결하기 위해 DNS 서버를 수동으로 입력해 주어야 한다. Customize template 탭에서 DNS 서버를 입력하기는 하지만, 그 값은 실제 구성에 반영되지 않는다. 따라서 HCIBench의 콘솔에 직접 접근한 뒤,/etc/systemd/resolve.conf 에서 DNS 서버를 지정하고 systemd-resolved 서비스를 재시작한다.

이제 https://<HCIBenchIP\>:8443 으로 로그인하면 다음과 같은 화면을 볼 수 있을 것이다.

vSAN Perf Metric 수집 간격 단축

vSAN은 기본적으로 5분마다 성능 지표를 수집하여 저장한다. 하지만 벤치마크 환경에서 5분이라는 수집 간격은 너무 길기 때문에, 설정 가능한 최소값인 1분으로 수집 간격을 줄여야 한다.

아래의 명령어는 CMMDS Master 노드에서 실행되어야 하며, CMMDS Master는 vSAN Cluster Status의 sub-cluster node 목록에서 가장 첫번째에 위치한 노드이다.

# Execute on the CMMDS master node
esxcli vsan perf set --interval=60

이제 HCIBench를 이용하여 vSAN 성능 테스트를 진행할 준비가 되었다.

테스트 환경

ESA 클러스터 구성

현재 vSAN ESA 클러스터의 구성은 다음과 같다

  • vSphere 8.0 Update 3b
  • 총 8대의 클러스터
    • Xeon Gold 6230 x2 4대, Xeon Gold 6252 x2 2대, Xeon Gold 6240 x2 2대
    • 각 256GB 이상의 메모리
    • Micron 7300 MAX 3.2TB x 16EA, Intel P4610 3.2TB x 16EA (노드당 약 4개, 하나의 노드에서 백플레인 불량으로 인해 Micron SSD 하나 인식 불가)
    • ConnectX-4 100GbE Dual Port NIC (PCI-E 3.0, vSAN 테스트 시 단일 포트 사용)
    • RDMA Best Practice 구성 (ETS 제외)
  • vSAN ESA RAID-6 Policy
  • No dedup / compression

HCIBench 테스트 구성

테스트 케이스는 다음과 같다.

  • FIO 사용
  • 4 vCPU / 4 Disk / 8 Thread (2 Thread/VM) - 2:1 Oversubscription
  • R/W Ratio: 7:3
  • Rumtime: 600 sec (10분)
  • Random
    • 0%
    • 50%
    • 100%
  • VM 수
    • 16
    • 32
  • 블록 크기
    • 4KiB
    • 64KiB
    • 256KiB
    • 1MiB
  • RDMA 활성화 여부
    • ON
    • OFF
  • 전력 프로파일 구성
    • Performance
    • Balanced

일반적인 사용례를 대변할 수 있는 환경에서 vSAN ESA의 최대 성능을 보여주는 것이 첫번째 목표이며, 다음으로는 세부 파라미터의 변화에 따른 성능 편차가 얼마나 발생하는지를 확인해 볼 것이다.

테스트 결과

최대 IOPS 테스트

  • 32 VM (4 VM / Host)
    • 4 vCPU / 4 VMDK / 8 Thread (QD=8)
  • 4KiB Block Size
    • R/W Ratio: 7:3
    • Random 50%
  • RDMA ON
  • Performance Power Profile

[Fig 1. FIO Grafana Dashboard]

[Fig 2. VM IOPS Graph]

[Fig 3. Backend IOPS Graph]

[Fig 4. Resource Consumption Data]

최대 스루풋 테스트

  • 32 VM (4 VM / Host)
    • 4 vCPU / 4 VMDK / 8 Thread (QD=8)
  • 1MiB Block Size
    • R/W Ratio: 7:3
    • Random 50%
  • RDMA ON
  • Performance Power Profile

[Fig 5. FIO Grafana Dashboard]

[Fig 6. VM Throughput Graph]

[Fig 7. Backend Throughput Graph]

[Fig 8. Resource Consumption Data]

최대 랜덤 IOPS 테스트

  • 32 VM (4 VM / Host)
    • 4 vCPU / 4 VMDK / 8 Thread (QD=8)
  • 4KiB Block Size
    • R/W Ratio: 7:3
    • Random 100%
  • RDMA ON
  • Performance Power Profile

[Fig 9. FIO Grafana Dashboard]

[Fig 10. VM IOPS Graph]

[Fig 11. Backend IOPS Graph]

[Fig 12. Resource Consumption Data]

최대 시퀀셜 스루풋 테스트

  • 32 VM (4 VM / Host)
    • 4 vCPU / 4 VMDK / 8 Thread (QD=8)
  • 1MiB Block Size
    • R/W Ratio: 10:0
    • Random 0%
  • RDMA ON
  • Performance Power Profile

[Fig 13. FIO Grafana Dashboard]

[Fig 14. VM Throughput Graph]

[Fig 15. Backend Throughput Graph]

[Fig 16. Resource Consumption Data]

RDMA ON/OFF 성능 비교

최대 IOPS 테스트

  • 32 VM (4 VM / Host)
    • 4 vCPU / 4 VMDK / 8 Thread (QD=8)
  • 4KiB Block Size
    • R/W Ratio: 7:3
    • Random 50%
  • RDMA OFF
  • Performance Power Profile

[Fig 17. FIO Grafana Dashboard]

[Fig 18. VM Metric Graph]

[Fig 19. Backend Metric Graph]

[Fig 20. Resource Consumption Data]

최대 스루풋 테스트

  • 32 VM (4 VM / Host)
    • 4 vCPU / 4 VMDK / 8 Thread (QD=8)
  • 1MiB Block Size
    • R/W Ratio: 7:3
    • Random 50%
  • RDMA OFF
  • Performance Power Profile

[Fig 21. FIO Grafana Dashboard]

[Fig 22. VM Throughput Graph]

[Fig 23. Backend Throughput Graph]

[Fig 24. Resource Consumption Data]

Power Profile 성능 비교

최대 IOPS 테스트

  • 32 VM (4 VM / Host)
    • 4 vCPU / 4 VMDK / 8 Thread (QD=8)
  • 4KiB Block Size
    • R/W Ratio: 7:3
    • Random 50%
  • RDMA ON
  • Balanced Power Profile

[Fig 25. FIO Grafana Dashboard]

[Fig 26. VM Metrics Graph]

[Fig 27. Backend Metrics Graph]

[Fig 28. Resource Consumption Data]

최대 스루풋 테스트

  • 32 VM (4 VM / Host)
    • 4 vCPU / 4 VMDK / 8 Thread (QD=8)
  • 1MiB Block Size
    • R/W Ratio: 7:3
    • Random 50%
  • RDMA ON
  • Balanced Power Profile

[Fig 29. FIO Grafana Dashboard]

[Fig 30. VM Metrics Graph]

[Fig 31. Backend Metrics Graph]

[Fig 32. Resource Consumption Data]

결과 정리

VM/백엔드 메트릭과 함의점

vSAN 성능 메트릭에는 VM과 백엔드가 구분된다. VM 메트릭은 VM 관점에서 바라본 성능이고, 백엔드 메트릭은 vSAN 관점에서 바라본 성능이다.
VM 메트릭은 애플리케이션 (여기서는 FIO)에서 측정되는 값과 거의 일치하며, 백엔드 메트릭은 워크로드 패턴에 따라 크게 달라질 수 있다.
아마도 가장 큰 차이가 발생하는 부분은 Backend Write일 것인데, 이는 vSAN이 고가용성을 보장하기 위해 하나의 쓰기를 여러 개의 호스트로 보내기 때문에 발생하는 현상이다.

RDMA ON / Performance Power Profile 에서 각 케이스 별 Write Amplification Ratio는 다음과 같다.

  • 최대 IOPS 테스트: 약 2.7x
  • 최대 스루풋 테스트: 약 2x
  • 최대 랜덤 IOPS 테스트: 약 2.6x

만약 클러스터 스루풋 관점에서의 목표 성능이 있다면, 이러한 Write Amplification을 고려하여 전체 클러스터를 설계할 필요가 있다.

그리고, vSAN은 큰 블록 I/O를 약 28KiB 크기의 청크로 쪼개서 백엔드 디바이스로 내려 보낸다.
vSAN ESA용 NVMe 디스크의 성능을 평가할 때는, 4KiB와 32KiB I/O 성능을 보는 것이 좋으며, vSAN ESA가 QLC를 공식적으로 지원하게 되면 IU (Indirection Unit) 고려사항에 이러한 특성이 포함될 것으로 보인다.

RDMA 사용에 따른 성능 편차

4KiB 테스트에서 약 20%의 스루풋 감소와, 120us의 읽기/쓰기 레이턴시 증가를 관찰할 수 있었다.
1MiB 테스트에서는 약 56%의 스루풋 감소와, 6ms의 읽기 레이턴시, 15ms의 쓰기 레이턴시 증가를 관찰할 수 있었다.

1MiB 테스트에서는 1.785MIOPS에 달한 백엔드 I/O가 병목 지점이 된 것으로 보이며, 이로 인해 전반적인 VM 레이턴시 증가가 관찰되었다.

CPU 사용률의 경우, 일관성 있게 RDMA를 사용하지 않은 케이스에서 10% 정도 더 낮은 사용률을 보였으나, 이는 상대적으로 낮아진 스루풋으로 인해 vSAN의 부하가 줄어들었기 때문이다.

결론적으로, RDMA 사용 시 더 높은 CPU 사용률 대비 성능과 함께, 훨씬 높은 백엔드 I/O 캡을 가져갈 수 있다. 따라서 vSAN ESA를 도입할 때는 RDMA 사용을 적극적으로 고려할 필요가 있다

전원 프로파일에 따른 성능 편차

4KiB 테스트에서는 오차 범위 이내의 스루풋 감소와 레이턴시 증가를 확인할 수 있었다.
반면, 1MiB 테스트에서는 약 28%의 스루풋 감소와, 4ms의 읽기 레이턴시 증가를 관찰할 수 있었다.

고부하의 대역폭 집약적인 워크로드가 아닌, 일반적인 워크로드 환경에서 Balanced와 Performance 사이의 성능 차이는 거의 없으나, 만약 대역폭 집약적인 워크로드를 수행한다면 전원 프로파일을 Performance로 설정하는 것을 고려해 봐야 할 것이다.

마치며

이번 포스팅에서는 노드당 4개의 NVMe SSD를 사용한, 8노드 구성에서 vSAN ESA의 성능을 평가해 보았다. 1MiB / Non-RDMA 케이스를 제외한 다른 모든 테스트 케이스에서 성능 병목 현상이 나타나지 않았으므로, VM의 스케일 아웃에 따른 최대 성능은 더 높아질 가능성이 충분하다.

vSAN ESA는 최소 구성에 가까운 환경에서도 높은 성능을 뽑아낼 수 있으며, 특히 큰 블록 사이즈에서 RDMA 유무와 Power profile 구성에 따른 성능 편차가 크게 나타났다.

vSAN ESA 도입을 검토 중이라면, 최대한의 포텐셜을 뽑아내기 위해 100GbE의 RoCEv2 지원 네트워크 환경을 구축하는 것을 고려해 볼 만 하다.

profile
Virtualization / Network / Storage / Server Hardware and.. Linux

0개의 댓글