vSAN ESA 구성 및 성능 테스트 - RAID-1 (FTT=1/non-erasure coding)

송주환·2023년 4월 29일
0

들어가며

2023년 4월 18일, vSphere 8.0 U1이 IA (Initial Availibity) 되었다.

여러 변경사항이 있었지만, 그 중에서 나의 관심을 가장 많이 끌었던 것은 vSAN 8.0 U1에서의 ESA 성능 향상이었다.

Erasure Coding write 성능 개선 및 워크로드에 따라 최대 25%의 성능 향상.

vSAN 8.0 U1 부터는 ESA를 랩에 적용해도 될 것 같다는 확신이 들었고 개인 랩 서버를 스카이레이크 플랫폼으로 업그레이드 하면서 NVMe 디스크를 장착할 수 있는 모델을 구매하였다.

[그림 1. 후면 NVMe 백플레인이 장착된 서버]

이 글을 쓰는 현 시점에서 ESA 테스트 클러스터의 사양은 다음과 같다.

  • CPU: Intel Xeon Gold 6140 (2 CPU)
  • RAM: DDR4 2666 16GB * 16EA (Total 256GB)
  • NVMe Disk: Intel P4610 3.2TB * 4EA
  • Boot Disk: HGST 1600MM SAS SSD 800GB * 1EA
  • NIC 1: Mellanox ConnectX-4 100GbE Dual Port (MCX456A-ECAT)
  • NIC 2: Mellanox ConnectX-4 Lx 25GbE Dual Port (MCX4121A-ACAT)

총 4대의 서버가 ESA 테스트 클러스터를 구성하며, 상단 스위치는 Arista DCS-7050QX-32S를 사용하여 PFC/DCBx 기반의 RDMA 구성을 사용할 수 있게 하였다.

다만 스위치의 한계로 NIC의 최대 대역폭은 100Gb가 아닌 40Gb이다.

ESA 구성

가장 먼저, vSAN ESA를 사용하려면 다음과 같이 클러스터를 생성할 때 ESA를 활성화 해 주어야 한다.

[그림 2. vSAN ESA 클러스터 생성]

현재 ESA는 완제품 형태의 ESA 지원 vSAN Ready Node만 공식적인 지원을 받을 수 있으나, 공식적으로 지원하지 않는 하드웨어의 경우에도 구성 및 사용에는 문제가 없다. 단, 문제가 생겼을 경우 VMware의 서포트를 받을 수 없기 때문에 프로덕션 환경에 사용해서는 안 된다.

[그림 3. vSAN ESA 서비스 활성화]

vSAN ESA 기능의 활성화 이후 vSAN 클러스터의 구성-vSAN-서비스 탭에서 vSAN ESA가 활성화 된 것을 확인한다. 이제 이 클러스터는 NVMe 디스크를 사용하여 ESA 클러스터를 구성할 수 있다.

다음으로 구성-vSAN-디스크 관리 탭에서 NVMe 디스크를 할당한다.

[그림 4. vSAN ESA 디스크 할당]

호환성이 검증되지 않은 디스크의 경우 비호환 경고가 뜨나, 무시하고 구성할 수 있다.
할당이 완료되면 vSAN Datastore가 생성되고, 다음과 같은 화면을 볼 수 있을 것이다.

[그림 5. vSAN ESA 디스크 할당 완료]

마지막으로, vSAN 클러스터의 모니터-vSAN-능동 테스트에서 vSAN 클러스터의 구성을 검증한다.

[그림 6. vSAN ESA 클러스터 구성 검증]

이제 BMT를 실제로 수행할 준비가 되었다.


HCIBench 벤치마크

벤치마크를 위한 툴로는 VMware Flings에서 다운로드 할 수 있는 HCIBench를 사용하였다. HCIBench는 vCenter를 타겟으로 테스트 VM을 자동으로 배포하며, 벤치마크 결과 모니터링 (Grafana) 및 Report 작성 기능을 제공한다.
VMware Platform 위에서 스토리지 성능을 테스트 하기에 가장 좋은 벤치마크 툴이라고 생각한다.

테스트 백엔드로는 VDBench와 FIO를 사용 가능하나, VM 성능 테스트를 위해서는 주로 VDBench가 사용된다.
단, 라이센스 문제로 VDBench 바이너리를 HCIBench 이미지에 포함하여 함께 배포할 수 없기 때문에, 사용자가 별도로 다운로드 한 뒤 압축 파일을 HCIBench에 업로드 해 주어야 한다.

현재 HCIBench의 최신 버전은 2.8.1이며, OVA 배포 이후에 콘솔에서 DNS 구성을 변경해 주어야 정상적으로 테스트를 수행할 수 있다.


블록 사이즈 별 vSAN ESA RAID-1 벤치마크

별도의 언급이 없을 경우 테스트 워크로드의 구성은 다음과 같다.

  • VM: 8
  • VMDK: 4/VM
  • I/O Thread: 8/VMDK
  • 70% Read / 30% Write
  • 100% Random I/O
  • 80% Working set

4KiB 테스트

16KiB 테스트

(번외) 1MiB 테스트

테스트 클러스터의 vSAN 네트워크 대역폭 한계를 측정하기 위한 테스트이다.
실제로 vSAN 클러스터가 대역폭 한계에 근접한 성능을 낼 수 있는지 가늠해보려면 여러 메트릭들을 함께 고려해야 한다.
일련의 테스트를 통해, 나는 테스트를 수행하는 운영자의 입장에서 테스트 디자인을 설계할 때 참고할 만한 가이드라인을 세울 수 있었다.

  1. 디스크의 갯수가 늘어나면, 단일 디스크의 스루풋은 크게 줄어든다
  2. vSAN 스루풋은 노드간 I/O와 메타데이터 I/O의 영향을 받는다. 만약 디스크 성능이 충분하더라도 CPU/네트워크 스루풋이 병목을 일으킬 수 있다
  3. 노드의 스케일 아웃이 항상 스루풋 증가로 이어지는 것은 아니다. 클러스터의 규모가 커질 경우, regression이 일어날 수 있음을 명심해야 한다
  4. VM I/O와 백엔드 I/O의 관계는 복잡하다. on-the-fly compression 때문에 VM 스루풋이 Backend 스루풋보다 더 높게 나올 수도 있다

실제 테스트 결과는 백엔드 트래픽을 포함하여 도합 약 17GB/s가 나왔다.
이것은 내가 기대한 80% 정도에 해당하는 수치이며, 병목 지점을 확인하기 위해서는 추가 테스트가 필요하다.

결론

vSAN ESA는 NVMe의 특성을 십분 활용해 훌륭한 성능을 제공한다. 이 점은 특히 레이턴시 성능에서 두드러진다.
테스트 클러스터가 RDMA를 사용한 점을 감안하더라도, 분산 파일시스템이라고는 생각되지 않는 응답속도를 제공하는 ESA는 I/O Intensive 환경에서 충분한 고려 대상이 될 수 있을 것으로 보인다.

앞으로 진행할 테스트에서는 RDMA on/off 시의 차이와, RAID5 (FTT=1/Erasure Coding) 적용 시 성능 하락 정도를 알아볼 것이다.

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

0개의 댓글