Skip to main content
NetApp Solutions
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

NetApp ONTAP용 AWS FSx의 성능 개요 및 검증

기여자

NetApp NFS에 스토리지 계층이 마운트된 Kafka 클러스터가 NetApp ONTAP용 AWS FSx의 성능을 벤치마킹했습니다. 벤치마킹 예는 다음 섹션에 설명되어 있습니다.

NetApp ONTAP용 AWS FSx의 Apache Kafka

NFS(Network File System)는 대량의 데이터를 저장하는 데 널리 사용되는 네트워크 파일 시스템입니다. 대부분의 조직에서 데이터는 Apache Kafka와 같은 스트리밍 애플리케이션에 의해 점점 더 많이 생성되고 있습니다. 이러한 워크로드는 최신 스토리지 기능을 갖춘 확장성, 짧은 지연 시간, 강력한 데이터 수집 아키텍처를 필요로 합니다. 실시간 분석을 지원하고 실행 가능한 통찰력을 제공하기 위해 우수한 설계 및 고성능 인프라가 필요합니다.

Kafka는 POSIX 호환 파일 시스템과 호환되며 파일 시스템에 의존하여 파일 작업을 처리하지만 NFSv3 파일 시스템에 데이터를 저장할 때 Kafka 브로커 NFS 클라이언트는 XFS 또는 ext4 같은 로컬 파일 시스템과 다르게 파일 작업을 해석할 수 있습니다. 일반적인 예로는 클러스터를 확장하고 파티션을 다시 할당할 때 Kafka 브로커가 실패하는 NFS의 이름이 있습니다. 이러한 문제를 해결하기 위해 NetApp은 RHEL8.7, RHEL9.1에서 일반적으로 사용할 수 있는 변경 사항으로 오픈 소스 Linux NFS 클라이언트를 업데이트했으며 현재 NetApp ONTAP용 FSx 릴리즈 ONTAP 9.12.1에서 지원합니다.

NetApp ONTAP용 Amazon FSx는 클라우드에서 완벽하게 관리되고 확장 가능하며 뛰어난 성능의 NFS 파일 시스템을 제공합니다. NetApp ONTAP용 FSx의 Kafka 데이터는 대량의 데이터를 처리하고 내결함성을 보장하기 위해 확장할 수 있습니다. NFS는 중요하거나 민감한 데이터 세트에 대해 중앙 집중식 스토리지 관리 및 데이터 보호를 제공합니다.

이러한 향상된 기능을 통해 AWS 고객은 AWS 컴퓨팅 서비스에서 Kafka 워크로드를 실행할 때 NetApp ONTAP용 FSx를 활용할 수 있습니다. 다음과 같은 이점을 제공합니다.
* CPU 활용률을 줄여 I/O 대기 시간을 줄입니다
* 더 빠른 Kafka 브로커 복구 시간.
* 안정성 및 효율성.
* 확장성 및 성능.
* 다중 가용성 영역 가용성.
* 데이터 보호.

NetApp ONTAP용 AWS FSx의 성능 개요 및 검증

NetApp NFS에 스토리지 계층이 마운트된 Kafka 클러스터가 AWS 클라우드의 성능을 벤치마킹했습니다. 벤치마킹 예는 다음 섹션에 설명되어 있습니다.

NetApp ONTAP용 AWS FSx의 Kafka

NetApp ONTAP용 AWS FSx가 있는 Kafka 클러스터는 AWS 클라우드에서 성능을 벤치마킹했습니다. 이 벤치마킹은 다음 섹션에서 설명합니다.

아키텍처 설정

다음 표에는 NetApp ONTAP용 AWS FSx를 사용하는 Kafka 클러스터의 환경 구성이 나와 있습니다.

플랫폼 구성 요소 환경 구성

Kafka 3.2.3

  • 3 x zookeers – T2.small

  • 브로커 서버 3대 – i3en.2xLarge

  • Grafana 1개 – c5n.2xLarge

  • 생산자/소비자 4대 — c5n.2xLarge *

모든 노드의 운영 체제

RHEL8.6

NetApp ONTAP용 AWS FSx

4GB/sec의 처리량과 160000 IOPS의 Multi-AZ

NetApp ONTAP 설정용 NetApp FSx

  1. 초기 테스트를 위해 2TB 용량과 40000 IOPS로 2GB/sec 처리량의 NetApp ONTAP 파일 시스템에 대한 FSx를 만들었습니다.

    [root@ip-172-31-33-69 ~]# aws fsx create-file-system --region us-east-2  --storage-capacity 2048 --subnet-ids <desired subnet 1> subnet-<desired subnet 2> --file-system-type ONTAP --ontap-configuration DeploymentType=MULTI_AZ_HA_1,ThroughputCapacity=2048,PreferredSubnetId=<desired primary subnet>,FsxAdminPassword=<new password>,DiskIopsConfiguration="{Mode=USER_PROVISIONED,Iops=40000"}

    이 예에서는 AWS CLI를 통해 NetApp ONTAP용 FSx를 구축하고 있습니다. 필요에 따라 사용자 환경에서 명령을 추가로 사용자 지정해야 합니다. NetApp ONTAP용 FSX는 AWS 콘솔을 통해 추가로 구축 및 관리할 수 있어 명령줄 입력 작업을 줄이고 더욱 쉽고 능률적인 배포 환경을 제공합니다.

    FSx for NetApp ONTAP에 대한 설명서이며, 테스트 영역(US-East-1)의 2GB/sec 처리 파일 시스템에 대해 달성 가능한 최대 IOPS는 80,000 IOPS입니다. NetApp ONTAP 파일 시스템용 FSx의 총 최대 IOPS는 160,000 IOPS이며, 이를 위해서는 4GB/sec의 처리량 구축이 필요하며, 이 문서의 후반부에 이 내용이 설명되어 있습니다.

    NetApp ONTAP 성능 사양에 대한 FSx에 대한 자세한 내용은 여기 에서 AWS FSx for NetApp ONTAP 설명서를 참조하십시오. https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/performance.html .

    FSx "create-file-system"에 대한 자세한 명령줄 구문은 여기에서 찾을 수 있습니다. https://docs.aws.amazon.com/cli/latest/reference/fsx/create-file-system.html

    예를 들어 KMS 키를 지정하지 않을 때 사용되는 기본 AWS FSx 마스터 키가 아니라 특정 KMS 키를 지정할 수 있습니다.

  2. NetApp ONTAP 파일 시스템에 대한 FSx를 생성하는 동안 다음과 같이 파일 시스템을 설명한 후 JSON 반환에서 "lifeCycle" 상태가 "Available"으로 변경될 때까지 기다립니다.

    [root@ip-172-31-33-69 ~]# aws fsx describe-file-systems  --region us-east-1 --file-system-ids fs-02ff04bab5ce01c7c
  3. fsxadmin 사용자로 NetApp ONTAP SSH용 FSX에 로그인하여 자격 증명을 검증합니다.
    Fsxadmin은 생성 시 NetApp ONTAP 파일 시스템용 FSx의 기본 관리자 계정입니다. fsxadmin의 암호는 1단계에서 완료한 대로 AWS 콘솔 또는 AWS CLI에서 파일 시스템을 처음 생성할 때 구성된 암호입니다.

    [root@ip-172-31-33-69 ~]# ssh fsxadmin@198.19.250.244
    The authenticity of host '198.19.250.244 (198.19.250.244)' can't be established.
    ED25519 key fingerprint is SHA256:mgCyRXJfWRc2d/jOjFbMBsUcYOWjxoIky0ltHvVDL/Y.
    This key is not known by any other names
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '198.19.250.244' (ED25519) to the list of known hosts.
    (fsxadmin@198.19.250.244) Password:
    
    This is your first recorded login.
  4. 자격 증명이 확인되면 NetApp ONTAP 파일 시스템용 FSx에 스토리지 가상 머신을 생성합니다

    [root@ip-172-31-33-69 ~]# aws fsx --region us-east-1 create-storage-virtual-machine --name svmkafkatest --file-system-id fs-02ff04bab5ce01c7c

    SVM(스토리지 가상 시스템)은 NetApp ONTAP 볼륨용 FSx의 데이터를 관리 및 액세스하기 위한 자체 관리 자격 증명과 엔드포인트를 갖춘 격리된 파일 서버이며 NetApp ONTAP 멀티 테넌시를 위한 FSx를 제공합니다.

  5. 기본 스토리지 가상 머신을 구성한 후에는 새로 생성된 NetApp ONTAP 파일 시스템용 FSx에 SSH를 사용하여 스토리지 가상 머신에 볼륨을 생성하고, 이와 유사하게 이 검증을 위해 6개의 볼륨을 생성합니다. 당사의 검증을 기반으로 Kafka에 더 나은 성능을 제공할 수 있는 기본 구성 요소(8) 이하를 유지합니다.

    FsxId02ff04bab5ce01c7c::*> volume create -volume kafkafsxN1 -state online -policy default -unix-permissions ---rwxr-xr-x -junction-active true -type RW -snapshot-policy none  -junction-path /kafkafsxN1 -aggr-list aggr1
  6. 테스트를 위해 볼륨에 추가 용량이 필요합니다. 볼륨의 크기를 2TB로 확장하고 접합 경로에 마운트합니다.

    FsxId02ff04bab5ce01c7c::*> volume size -volume kafkafsxN1 -new-size +2TB
    vol size: Volume "svmkafkatest:kafkafsxN1" size set to 2.10t.
    
    FsxId02ff04bab5ce01c7c::*> volume size -volume kafkafsxN2 -new-size +2TB
    vol size: Volume "svmkafkatest:kafkafsxN2" size set to 2.10t.
    
    FsxId02ff04bab5ce01c7c::*> volume size -volume kafkafsxN3 -new-size +2TB
    vol size: Volume "svmkafkatest:kafkafsxN3" size set to 2.10t.
    
    FsxId02ff04bab5ce01c7c::*> volume size -volume kafkafsxN4 -new-size +2TB
    vol size: Volume "svmkafkatest:kafkafsxN4" size set to 2.10t.
    
    FsxId02ff04bab5ce01c7c::*> volume size -volume kafkafsxN5 -new-size +2TB
    vol size: Volume "svmkafkatest:kafkafsxN5" size set to 2.10t.
    
    FsxId02ff04bab5ce01c7c::*> volume size -volume kafkafsxN6 -new-size +2TB
    vol size: Volume "svmkafkatest:kafkafsxN6" size set to 2.10t.
    
    FsxId02ff04bab5ce01c7c::*> volume show -vserver svmkafkatest -volume *
    Vserver   Volume       Aggregate    State      Type       Size  Available Used%
    --------- ------------ ------------ ---------- ---- ---------- ---------- -----
    svmkafkatest
              kafkafsxN1   -            online     RW       2.10TB     1.99TB    0%
    svmkafkatest
              kafkafsxN2   -            online     RW       2.10TB     1.99TB    0%
    svmkafkatest
              kafkafsxN3   -            online     RW       2.10TB     1.99TB    0%
    svmkafkatest
              kafkafsxN4   -            online     RW       2.10TB     1.99TB    0%
    svmkafkatest
              kafkafsxN5   -            online     RW       2.10TB     1.99TB    0%
    svmkafkatest
              kafkafsxN6   -            online     RW       2.10TB     1.99TB    0%
    svmkafkatest
              svmkafkatest_root
                           aggr1        online     RW          1GB    968.1MB    0%
    7 entries were displayed.
    
    FsxId02ff04bab5ce01c7c::*> volume mount -volume kafkafsxN1 -junction-path /kafkafsxN1
    
    FsxId02ff04bab5ce01c7c::*> volume mount -volume kafkafsxN2 -junction-path /kafkafsxN2
    
    FsxId02ff04bab5ce01c7c::*> volume mount -volume kafkafsxN3 -junction-path /kafkafsxN3
    
    FsxId02ff04bab5ce01c7c::*> volume mount -volume kafkafsxN4 -junction-path /kafkafsxN4
    
    FsxId02ff04bab5ce01c7c::*> volume mount -volume kafkafsxN5 -junction-path /kafkafsxN5
    
    FsxId02ff04bab5ce01c7c::*> volume mount -volume kafkafsxN6 -junction-path /kafkafsxN6

    NetApp ONTAP용 FSx에서는 볼륨을 씬 프로비저닝할 수 있습니다. 이 예에서는 총 확장 볼륨 용량이 총 파일 시스템 용량을 초과하므로 다음 단계에서 보여 드릴 추가 프로비저닝 볼륨 용량을 잠금 해제하려면 전체 파일 시스템 용량을 확장해야 합니다.

  7. 다음으로 성능 및 용량을 늘리기 위해 NetApp ONTAP용 FSx 처리량 용량을 2GB/sec에서 4GB/sec로, IOPS는 160000으로, 용량은 5TB로 확장합니다

    [root@ip-172-31-33-69 ~]# aws fsx update-file-system --region us-east-1  --storage-capacity 5120 --ontap-configuration 'ThroughputCapacity=4096,DiskIopsConfiguration={Mode=USER_PROVISIONED,Iops=160000}' --file-system-id fs-02ff04bab5ce01c7c

    FSx "update-file-system"에 대한 자세한 명령줄 구문은 여기에서 찾을 수 있습니다.
    https://docs.aws.amazon.com/cli/latest/reference/fsx/update-file-system.html

  8. NetApp ONTAP 볼륨용 FSx는 Kafka 브로커에서 nconnect 및 기본 opions로 마운트됩니다

    다음 그림은 NetApp ONTAP 기반 Kafka 클러스터용 FSx의 최종 아키텍처를 보여줍니다.

    이 이미지는 FSxN 기반 Kafka 클러스터의 아키텍처를 보여줍니다.

    • 컴퓨팅. 3노드 Kafka 클러스터를 전용 서버에서 실행되는 3노드 zookeeper 앙상블과 함께 사용했습니다. 각 브로커는 NetApp ONTAP 인스턴스의 FSx에 있는 6개의 볼륨에 6개의 NFS 마운트 지점을 가지고 있었습니다.

    • 모니터링. 두 개의 노드를 사용하여 Prometheus-Grafana 조합을 사용했습니다. 워크로드를 생성하는데 이 Kafka 클러스터를 생성하고 사용할 수 있는 별도의 3노드 클러스터를 사용했습니다.

    • 스토리지. 2TB 볼륨 6개가 마운트된 NetApp ONTAP용 FSx를 사용했습니다. 그런 다음 NFS 마운트를 사용하여 Kafka 브로커로 볼륨을 내보냅니다. NetApp ONTAP 볼륨의 FSx는 Kafka 브로커에서 16개의 nconnect 세션과 기본 옵션으로 마운트됩니다.

Openmessage 벤치마킹 구성.

NetApp Cloud Volumes ONTAP에 사용된 것과 동일한 구성을 사용했으며 세부 정보는 다음과 같습니다.
https://docs.netapp.com/us-en/netapp-solutions/data-analytics/kafka-nfs-performance-overview-and-validation-in-aws.html#architectural-setup

테스트 방법

  1. Kafka 클러스터는 Terraform 및 Ansible을 사용하여 위에서 설명한 사양에 따라 프로비저닝되었습니다. Terraform은 Kafka 클러스터용 AWS 인스턴스를 사용하여 인프라를 구축하는 데 사용되며, Ansible은 Kafka 클러스터를 기반으로 합니다.

  2. 위에 설명된 워크로드 구성과 동기화 드라이버로 OMB 워크로드가 트리거되었습니다.

    sudo bin/benchmark –drivers driver-kafka/kafka-sync.yaml workloads/1-topic-100-partitions-1kb.yaml
  3. 동일한 워크로드 구성의 처리량 드라이버에서 또 다른 워크로드가 트리거되었습니다.

    sudo bin/benchmark –drivers driver-kafka/kafka-throughput.yaml workloads/1-topic-100-partitions-1kb.yaml

관찰

NFS에서 실행되는 Kafka 인스턴스의 성능을 벤치마크하는 워크로드를 생성하는 데 두 가지 유형의 드라이버가 사용되었습니다. 드라이버의 차이점은 로그 플러시 속성입니다.

Kafka 복제 계수 1 및 NetApp ONTAP용 FSx의 경우:

  • Sync 드라이버에서 일관되게 생성된 총 처리량: ~3218Mbps 및 최대 성능: ~3652Mbps.

  • 처리량 드라이버에서 일관되게 생성된 총 처리량: ~3679Mbps 및 최대 성능: ~3908Mbps.

복제 계수가 3인 Kafka 및 NetApp ONTAP용 FSx의 경우:

  • Sync 드라이버에서 일관되게 생성된 총 처리량: ~1252Mbps 및 최대 성능: ~1382Mbps.

  • 처리량 드라이버에서 일관되게 생성된 총 처리량: ~1218Mbps 및 최대 성능: ~1328Mbps.

Kafka 복제 계수 3에서 읽기 및 쓰기 작업은 FSx for NetApp ONTAP에서 세 번, Kafka 복제 계수 1에서 NetApp ONTAP용 FSx에서 읽기 및 쓰기 작업이 한 번 수행되므로 두 검증 모두에서 최대 4GB/sec 처리량에 도달할 수 있습니다.

Sync 드라이버는 로그가 디스크에 즉시 플러시될 때 일관된 처리량을 생성할 수 있는 반면, 처리량 드라이버는 로그가 대량으로 디스크에 커밋될 때 처리량 버스트를 생성합니다.

이러한 처리량 수치는 지정된 AWS 구성에 대해 생성됩니다. 더 높은 성능 요구 사항을 위해 더 나은 처리량 수치를 위해 인스턴스 유형을 확장하고 조정할 수 있습니다. 총 처리량 또는 총 속도는 생산자와 소비자 속도의 조합입니다.

이 이미지는 RF1 및 RF3을 사용한 Kafka의 성능을 보여줍니다

아래 차트는 NetApp ONTAP의 경우 2GB/sec FSx, Kafka 복제 계수 3의 경우 4GB/sec 성능을 보여 줍니다. 복제 계수 3은 NetApp ONTAP 스토리지용 FSx에서 읽기 및 쓰기 작업을 세 번 수행합니다. 처리량 드라이버의 총 속도는 881MB/sec이며, Kafka는 NetApp ONTAP 파일 시스템용 2GB/sec FSx에서 약 2.64GB/sec의 읽기 및 쓰기 작업을 수행하고 처리량 드라이버의 총 속도는 1328MB/sec이며, Kafka 작업은 약 3.98GB/sec입니다. 또한 Kafka 성능은 NetApp ONTAP 처리량을 위한 FSx를 기반으로 하는 선형적이고 확장성이 뛰어납니다.

이 이미지는 2GB/sec 및 4GB/sec의 스케일아웃 성능을 보여줍니다.

아래 차트는 NetApp ONTAP용 EC2 인스턴스와 FSx 간의 성능을 보여줍니다(Kafka 복제 계수: 3).

이 이미지는 RF3에서 EC2와 FSxN의 성능을 비교한 것입니다.