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

성능 벤치마크 팁

이 페이지는 "벤치마크 결과"에 설명된 NetApp AFX 성능 벤치마크 결과를 재현하기 위한 구성 지침을 제공합니다. 이는 완전한 테스트 절차가 아닌 일반적인 고려 사항 및 구성 지침입니다.

NFS 프로토콜 배경 및 권장 사례에 대해서는 "TR-4067: ONTAP의 NFS 모범 사례 및 구축 가이드""NFSv4.x 성능 향상"을 참조하십시오.

볼륨 생성, LIF 관리 및 클라이언트 튜닝을 위한 NAS 벤치마크 스크립트가 "벤치마킹/ONTAP" 저장소에서 제공됩니다.

성능 테스트 시 고려 사항

성능 테스트는 일반적으로 특정 워크로드 시나리오에서 시스템이 달성할 수 있는 최대 성능을 찾는 데 목적이 있습니다. 대부분의 경우 ONTAP 의 기본 설정은 대부분의 워크로드에서 우수한 성능을 발휘하기 위해 조정할 필요가 없지만, 경우에 따라 시스템을 최적화하기 위해 일부 구성을 조정해야 할 수도 있습니다.

NFS 엑스포트 정책 구성

ONTAP의 내보내기 정책은 NFS 내보내기에 대한 액세스를 제어하는 방법입니다. 모든 볼륨에는 내보내기 정책이 설정되어 있어야 하며, 해당 정책에는 규칙이 구성되어 있어야 합니다. 정책에 규칙이 구성되어 있지 않으면 "액세스 불가"로 간주됩니다. 자세한 내용은 "NFS 보안""ONTAP 엑스포트 정책 문서"을 참조하십시오.

성능 벤치마킹의 경우, 테스트에 사용되는 클라이언트의 권한보다는 권한 관련 오류를 방지하는 것이 더 중요합니다. 따라서 모든 내보내기 정책 규칙이 데이터 볼륨에 대해 전체 공개 액세스로 설정되어 있는지 확인하되, 데이터 세트에 액세스하는 데 사용되는 클라이언트에 한해 적용하는 것이 좋습니다. 또한 vsroot 정책은 경로 탐색을 위해 정책에서 읽기 액세스를 반드시 허용해야 합니다.

vsroot 정책("기본" 정책 사용)

export-policy rule create -policyname default -clientmatch 0/0 -rorule any -rwrule never

데이터 볼륨 정책

export-policy create -policyname [name] -vserver [SVM]
export-policy rule create -policyname [name] -clientmatch [client1],[client2],..[clientN] -rorule any -rwrule any -superuser any -anon 0 -chown-mode unrestricted -ntfs-unix-security-ops ignore

NFS 서버 구성

다음 NFS 서버 옵션은 내부 AFX 성능 벤치마크 실행에 사용되었습니다. 다른 NFS 서버 옵션(예: NFSv4 ACL 지원)도 활성화할 수 있지만, 이러한 옵션은 본 벤치마크 팁의 범위를 벗어납니다. AFX에서 NFSv4.1, pNFS 및 세션 트렁킹 성능에 대한 자세한 내용은 "NFSv4.x 성능 향상"을 참조하십시오.

옵션

v4.1

활성화됨

v4-id-domain

[도메인 이름]*

v4.1-pnfs

활성화됨

v4.1-트렁킹

활성화됨

tcp-max-transfer-size

262144

v3-64bit-identifiers

활성화됨

v4-64bit-identifiers

활성화됨

v3

활성화됨

v4.1-read-delegation

사용 안 함

v4.1-write-delegation

사용 안 함

rdma

활성화됨(선택 사항)

v4.0

사용 안 함

v3-hide-snapshot

활성화됨

mount-rootonly

사용 안 함

nfs-rootonly

사용 안 함

*NFSv4 ID 도메인은 NFS 클라이언트에 설정된 값과 일치하는 한 어떤 값이든 사용할 수 있습니다.

클라이언트에서 NFSv4 ID 도메인을 확인하려면:

# nfsidmap -d
user-domain.company.com
# cat /etc/idmapd.conf | grep Domain
Domain = user-domain.company.com
참고 위 명령어가 작동하지 않는 경우, NFSv4.x를 활용하기 위한 적절한 NFS 패키지가 설치되지 않았을 가능성이 높습니다. 예를 들어, Debian/Ubuntu 기반 시스템의 경우 nfs-common이 필요합니다.

다음 CLI 명령은 내부 성능 벤치마크 실행에 사용되는 NFS 서버 구성을 적용합니다. SSH를 통해 클러스터에 연결하고 이 구성을 적용하는 스크립트는 "ONTAP/NAS/configure-nfs-server.sh"에서 확인할 수 있습니다.

참고 RDMA는 대부분의 워크로드에서 지연 시간을 줄이고 처리량을 약 10~30% 향상시킵니다. RDMA를 통한 NFS에 대한 자세한 내용은 "ONTAP NFS over RDMA 문서"을 참조하십시오.
set advanced; nfs modify -vserver [SVM] -v3 enabled -v4.1 enabled -v4.0 disabled -v4-id-domain [yourdomain.com] -v4.1-pnfs enabled -v4.1-trunking enabled -v4-64bit-identifiers enabled -v3-64bit-identifiers enabled -chown-mode unrestricted -tcp-max-xfer-size 262144 -mount-rootonly disabled -nfs-rootonly disabled -v3-hide-snapshot enabled -rdma [enabled optional]

볼륨 구성

다음 섹션에서는 볼륨 생성 및 구성 고려 사항을 다루고 초기 생성 시 사용해야 하는 옵션을 보여줍니다. AFX에서 FlexGroup 볼륨이 작동하는 방식에 대한 자세한 내용은 "FlexGroup 볼륨 관리 개선 사항", "볼륨 유형""TR-4571: NetApp ONTAP FlexGroup 볼륨 모범 사례 및 구현 가이드"을 참조하십시오.

설정

볼륨 유형

FlexGroup

생성 방법

CLI

set diag; vol create -vserver [SVM] -volume [name] -size [size] -junction-path [/path] -unix-permissions 777 -files-set-maximum true -maxdir-size 4G -is-large-size-enabled true -snapshot-policy none -autosize-mode grow_shrink -policy [data policy] -snapdir-access false

기본 설정이 변경되었습니다:

  • 스냅샷 정책 비활성화됨

  • Maxfiles가 증가되었습니다

  • Maxdirsize가 증가했습니다.

  • 대형 사이즈 사용 가능

  • 자동 크기 조정 기능 활성화됨

  • UNIX 권한 777

  • 파일 시스템 분석이 비활성화되었습니다

  • Snapdir 액세스 false

특별 고려 사항 — FlexGroup 볼륨

워크로드가 단일 폴더에 많은 대용량 파일(>1GB)을 생성하는 경우 볼륨의 워크플로를 데이터로 수정하십시오.

AFX::> set advanced; vol modify -vserver [SVM] -volume [FlexGroup name] -workflow data

워크로드가 FlexGroup 볼륨에 호스팅된 VMware 데이터스토어인 경우, -gdd(세분화된 데이터 분산) 옵션을 비활성화하십시오. GDD는 AFX의 가상화를 위한 NFS 복사 오프로드와 함께 지원되지 않습니다. "AFX에서 제거되었거나 지원되지 않는 ONTAP 기능"을 참조하십시오.

AFX::> set diag; vol modify -vserver [SVM] -volume [FlexGroup name] -granular-data disabled

스냅샷이 비활성화된 이유

일반적으로 ONTAP의 스냅샷은 전체 시스템 성능에 영향을 주지 않습니다. AFX에서 스냅샷 및 복제가 작동하는 방식에 대해서는 "스냅샷 및 데이터 보호"을 참조하십시오. 그러나 벤치마크 시에는 다음 두 가지 이유로 스냅샷을 비활성화합니다.

  • 환경에 대한 세부적인 제어 - 원하는 시점에 스냅샷을 생성하여 스냅샷 생성 시나리오를 더 효과적으로 제어하고 그 영향을 더 쉽게 측정할 수 있습니다.

  • 데이터 변동성 - 많은 벤치마크 테스트는 대량의 데이터를 생성한 후 해당 데이터를 삭제하는데, 이로 인해 볼륨에 있는 기존 스냅샷의 크기가 급격히 증가합니다. 공간 할당 문제를 방지하기 위해 스냅샷 기능을 비활성화했습니다.

참고 스냅샷 전반에 걸친 원치 않는 파일 시스템 탐색을 방지하기 위해 Snapdir 접근도 비활성화되어 있습니다.

마운트 옵션

일반적으로 마운트 옵션은 사용 사례에 따라 달라집니다. 이 섹션에서는 내부 성능 테스트에 사용된 일반적인 사용 사례 마운트 옵션 목록을 보여줍니다. NFS 서버가 NFS 서버 구성에 표시된 대로 올바르게 구성된 경우 NFS 버전이나 wsize/rsize 옵션을 지정할 필요가 없습니다.

기본 옵션(모든 클라이언트/시나리오에 적용):

-o tcp,hard,intr

세션 트렁킹(운영체제별)

세션 트렁킹은 "벤치마크 결과" 구성 (trunkdiscovery)에도 나열되어 있습니다. NFSv4.x 다중 경로 IO 컨텍스트에 대해서는 "NFSv4.x 성능 향상"을 참조하십시오.

RHEL: trunkdiscovery
Ubuntu (depends on version): trunkdiscovery (newer releases)
                             max_connect=4 (older releases)

RDMA 관련 옵션

RDMA를 통한 NFS에 대해서는 "ONTAP NFS over RDMA 문서"을 참조하십시오.

rdma,write=eager

기타 마운트 옵션

일부 워크로드는 벤치마크 테스트 중 특수 마운트 옵션을 사용하면 이점을 얻을 수 있습니다. 다음 표는 이러한 옵션 중 일부와 성능 향상을 기대할 수 있는 사용 사례를 보여줍니다.

대체 NFS 마운트 옵션 및 사용 사례

NFS 마운트 옵션 설명 사용 사례

nocto

"닫힘-열림" 캐시 일관성 유지 기능을 비활성화합니다. 클라이언트는 파일을 열 때 캐시된 파일 속성을 다시 검증하지 않고, 캐시된 데이터가 오래되었더라도 그대로 사용합니다.

정적 웹 콘텐츠, 소프트웨어 라이브러리, 읽기 전용 미디어 아카이브 등 파일 변경 빈도가 낮은 읽기 중심의 단일 클라이언트 워크로드에 적합합니다. 여러 클라이언트가 참여하는 쓰기 작업에는 적합하지 않습니다.

cto

닫힘-열림 캐시 일관성을 활성화합니다(기본값). 파일을 열 때 클라이언트는 서버에 캐시된 복사본이 여전히 유효한지 확인합니다. 한 클라이언트에서 닫은 파일이 다른 클라이언트에서 열릴 때 최신 상태로 표시되도록 보장합니다.

공유 홈 디렉터리, 협업 개발 환경 등 데이터 일관성이 중요한 다중 클라이언트 공유 액세스 워크로드.

actimeo

모든 속성 캐시 시간 초과(acregmin, acregmax, acdirmin, acdirmax)를 초 단위의 단일 값으로 설정합니다. 클라이언트가 서버와 재검증하기 전에 캐시된 파일/디렉터리 메타데이터를 신뢰하는 시간을 제어합니다.

균일한 캐싱 정책을 원할 때 튜닝을 간소화합니다. 높은 값은 읽기 작업이 많거나 정적인 워크로드에 적합하며, 낮은 값(예: actimeo=0)은 거의 실시간 일관성이 필요한 빠르게 변화하는 데이터에 적합합니다.

acregmin

클라이언트가 일반 파일의 속성을 캐시한 후 재검증하기까지의 최소 시간(초)을 설정합니다. 기본값은 일반적으로 3초입니다.

로그 수집, 설정 파일 폴링 등 자주 업데이트되는 소규모 파일을 처리하는 워크로드에서 최신성과 성능 간의 균형을 세밀하게 조정하고자 할 때 유용합니다.

acregmax

클라이언트가 일반 파일의 속성을 캐시하는 최대 시간(초)을 설정합니다. 기본값은 일반적으로 60초입니다.

대규모 읽기 전용 데이터 세트, 패키지 저장소 등 파일 크기가 대부분 정적인 작업 부하에서 최대 크기를 늘리면 메타데이터 간섭이 줄어듭니다.

acdirmin

클라이언트가 디렉터리의 속성을 캐시한 후 재검증하기까지의 최소 시간(초)을 설정합니다. 기본값은 일반적으로 30초입니다.

디렉터리 목록을 자주 나열하거나 생성하는 워크로드(예: 빌드 시스템, Maildir 형식의 메일 스풀) 등 디렉터리 최신 상태가 중요한 경우.

acdirmax

클라이언트가 디렉터리의 속성을 캐시하는 최대 시간(초)을 설정합니다. 기본값은 일반적으로 60초입니다.

변경이 거의 없는 안정적인 디렉토리 구조의 경우 이 값을 높이면 GETATTR 호출 횟수가 줄어듭니다(예: 대규모 정적 디렉토리 트리, 아카이브 저장소).

clientaddr

콜백 통신(NFSv4/v4.1 이상)을 위해 NFS 서버에 알릴 클라이언트 IP 주소를 지정합니다. 서버는 이 주소를 사용하여 위임 회수 및 기타 콜백을 전송합니다.

멀티홈 클라이언트 또는 복잡한 네트워킹 환경(예: 여러 NIC를 가진 클라이언트, VPN/오버레이 네트워크 또는 NAT)에서는 자동 감지된 주소가 정확하지 않을 수 있습니다.

nconnect

NFS 서버 단일 마운트에 대해 NFS 서버에 여러 개의 TCP 연결(지정된 개수까지)을 생성하여 별도의 연결을 통해 병렬 I/O를 허용합니다.

단일 TCP 스트림에 의해 병목 현상이 발생하는 높은 처리량과 I/O 집약적인 워크로드(예: 대용량 파일 전송, HPC/과학 컴퓨팅, 비디오 편집, 데이터베이스 백업, 빅데이터 분석)에 적합합니다. 고대역폭 네트워크(10GbE+)에서 특히 유용합니다.

krb5,krb5i,krb5p

마운트에 사용할 Kerberos 보안 유형을 지정합니다. 제대로 작동하려면 Kerberos 구성이 필요합니다. 자세한 내용은 "TR-4616: Active Directory를 사용하는 ONTAP에서 NFS Kerberos"을 참조하십시오.

NFS 마운트 보안 설정은 성능에 부정적인 영향을 미칩니다.

클라이언트 구성

내부 벤치마킹에 사용되는 클라이언트 구성(NIC 및 OS 튜닝 스크립트 포함)은 "벤치마크/클라이언트" 저장소에 설명되어 있습니다. 다음은 몇 가지 추가 구성 고려 사항입니다. 이 목록은 모든 고려 사항을 포함하는 것은 아니며, 향후 추가 사용 사례/시나리오를 수용하기 위해 수정될 예정입니다.

NFS readahead

클라이언트 NFS 미리 읽기(아래 참조)는 Linux 마운트 지점 설정입니다. 이는 AFX의 ONTAP 볼륨 수준 "공격적인 사전 읽기"(교차 파일 순차 읽기) 설정과는 별개입니다.

NFS 읽기 미리 읽기(read-ahead)는 애플리케이션의 I/O 요청보다 앞서 파일에서 블록을 미리 요청하는 기능입니다. 이는 클라이언트의 순차 읽기 처리량을 향상시키도록 설계되었습니다. 최근까지 모든 최신 Linux 배포판은 읽기 미리 읽기 값을 마운트된 파일 시스템의 rsize의 15배로 설정했습니다.

RHEL 8.3 및 Ubuntu 18.04에는 클라이언트 순차 읽기 성능에 부정적인 영향을 미칠 수 있는 변경 사항이 도입되었습니다. 이전 릴리스와 달리 이러한 배포판에서는 rsize 마운트 옵션 사용 여부와 관계없이 읽기 미리 읽기(read-ahead) 값을 기본값인 128KiB로 설정했습니다. 읽기 미리 읽기 값이 더 큰 릴리스에서 기본값이 128KiB인 릴리스로 업그레이드하면 순차 읽기 성능이 저하되었습니다. 그러나 읽기 미리 읽기 값은 동적으로 또는 영구적으로 상향 조정할 수 있습니다. 예를 들어 SAS GRID를 사용한 테스트 결과, 3,840KiB, 960KiB, 128KiB에 비해 15,360KiB의 읽기 값이 최적임을 확인했습니다. 15,360KiB를 초과하는 값에 대해서는 긍정적 또는 부정적 영향을 판단하기에 충분한 테스트가 진행되지 않았습니다.

NFS 읽기 미리 읽기(read-ahead)는 NFS 파일 시스템의 마운트 지점에서 정의됩니다. 현재 값을 표시하려면 `/proc/self/mountinfo`에서 마운트 경로를 grep하고 장치 번호를 사용하여 `/sys/class/bdi/<device>/read_ahead_kb`를 확인하십시오.

# grep /mountpath/ /proc/self/mountinfo | awk '{ print $3 }'
# cat /sys/class/bdi/<device>/read_ahead_kb

미리 읽기 기능을 확인하거나 동적으로 설정하기 위한 편리한 스크립트가 "Azure NetApp Files용 Linux NFS 미리 읽기 모범 사례"에 제공됩니다.

네트워크 구성

다음 섹션에서는 클라이언트 및 스토리지 네트워킹에 대한 일반적인 네트워킹 지침을 다룹니다. 이는 당사에서 수행한 내부 벤치마크 테스트를 기반으로 합니다. AFX 네트워킹의 차이점에 대해서는 "네트워킹""하드웨어: 스위치"을 참조하십시오.

스토리지 네트워크 고려 사항

  • 노드당, SVM당 최소 하나의 데이터 IP 주소(노드당 더 많을수록 좋음)

  • 노드당, SVM당 최대 16개의 IP 주소

  • 모든 데이터 인터페이스는 모든 클라이언트로 라우팅 가능합니다.

  • LACP를 사용하여 노드별로 결합/팀화된 포트

  • MTU 크기 9000(종단 간)

  • RDMA 사용 시 우선순위 흐름 제어(PFC 우선순위 3)가 활성화됩니다.

  • 모든 데이터 인터페이스 IP 주소를 포함하도록 구성된 DNS 라운드 로빈/로드 밸런싱

클라이언트 네트워크 고려 사항

  • RoCE(LACP)를 위한 듀얼 NIC 본딩

  • RX/TX 링 버퍼가 8192로 설정됨

  • NIC별로 구성된 PFC 및 DSCP(RDMA 사용 시)

  • RoCE 트래픽 클래스가 cma_roce_tos를 사용하여 설정됨(RDMA 사용 시)

  • sunrpc.rdma_slot_table_entries가 200으로 설정됨

추가 ONTAP 기능 고려 사항

다음은 NFS 엑스포트 정책 구성, 볼륨 구성, 마운트 옵션, 클라이언트 구성 또는 네트워크 구성에 포함되지 않은 특정 ONTAP 기능 구성 수정 사항을 다룹니다.

스토리지 효율성 비활성화

일반적으로 스토리지 효율성은 다양한 워크로드에서 상당한 공간 절약을 가져올 수 있으므로 프로덕션 워크로드의 주요 장점 중 하나입니다. 그러나 성능 벤치마킹에서는 스토리지 효율성의 가치가 떨어집니다(시뮬레이션된 워크로드 중 상당수가 압축 불가능하거나 0바이트 워크로드이며 항상 중복 제거를 수행하기 때문입니다). 따라서 벤치마크 테스트를 수행하는 동안에는 모든 스토리지 효율성 기능을 비활성화하는 것이 좋습니다.

전역 중복 제거를 포함하여 AFX에서 스토리지 효율성이 어떻게 작동하는지에 대한 자세한 내용은 "중복 제거 도메인", "ONTAP 스토리지 효율성 기술 보고서""ONTAP 9.19.1의 동적 스토리지 효율성"을 참조하십시오.

vol efficiency off -volume [name] -vserver [SVM]

aggr efficiency modify -aggregate data* -cross-volume-background-dedupe false -cross-volume-inline-dedupe false

aggr efficiency wise-tsse modify -aggregate data* -enable-workload-informed-tsse false

공격적인 사전 읽기

적극적인 미리 읽기 기능은 순차적으로 이름이 지정된 파일 등 특정 워크로드의 읽기 성능을 향상시키는 데 도움이 될 수 있습니다. 기능 구성, 주의 사항 및 통계는 "적극적인 사전 읽기"에서 다룹니다. 다음도 참조하십시오. "AFX SVM 관리에서 파일 간 순차 읽기"

"이전"

"다음: 관리"