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

스토리지 구성

기여자 netapp-aruldeepa

NetApp 포트폴리오의 각 스토리지 플랫폼은 컨테이너화 여부와 관계없이 애플리케이션에 도움이 되는 고유한 기능을 갖추고 있습니다.

플랫폼 개요

Trident ONTAP 및 Element와 함께 작동합니다. 모든 애플리케이션과 시나리오에 더 적합한 플랫폼은 없습니다. 그러나 플랫폼을 선택할 때는 애플리케이션의 요구 사항과 장치를 관리하는 팀을 고려해야 합니다.

사용하는 프로토콜에 맞는 호스트 운영 체제의 기본 모범 사례를 따라야 합니다. 선택적으로, 특정 애플리케이션에 맞게 스토리지를 최적화하기 위해 백엔드, 스토리지 클래스 및 PVC 설정과 함께 애플리케이션 모범 사례를 통합하는 것을 고려할 수도 있습니다.

ONTAP 및 Cloud Volumes ONTAP 모범 사례

Trident 위한 ONTAP 및 Cloud Volumes ONTAP 구성에 대한 모범 사례를 알아보세요.

다음 권장 사항은 Trident 에서 동적으로 프로비저닝되는 볼륨을 사용하는 컨테이너화된 워크로드에 대해 ONTAP 구성하기 위한 지침입니다. 각 항목은 귀하의 환경에 적합한지 여부를 고려하여 평가해야 합니다.

Trident 에 전용된 SVM을 사용하세요

SVM(스토리지 가상 머신)은 ONTAP 시스템의 테넌트 간에 격리 및 관리적 분리를 제공합니다. SVM을 애플리케이션에 전용하면 권한을 위임하고 리소스 소비를 제한하는 모범 사례를 적용할 수 있습니다.

SVM 관리에는 여러 가지 옵션이 있습니다.

  • 백엔드 구성에서 클러스터 관리 인터페이스를 적절한 자격 증명과 함께 제공하고 SVM 이름을 지정합니다.

  • ONTAP 시스템 관리자나 CLI를 사용하여 SVM에 대한 전용 관리 인터페이스를 만듭니다.

  • NFS 데이터 인터페이스와 관리 역할을 공유합니다.

각각의 경우, 인터페이스는 DNS에 있어야 하며, Trident 구성할 때 DNS 이름을 사용해야 합니다. 이를 통해 네트워크 ID 보존을 사용하지 않고도 SVM-DR과 같은 일부 DR 시나리오를 원활하게 진행할 수 있습니다.

SVM에 대한 전용 관리 LIF와 공유 관리 LIF 중 어느 것을 선호하느냐는 없습니다. 그러나 선택한 접근 방식에 맞게 네트워크 보안 정책이 일치하는지 확인해야 합니다. 그럼에도 불구하고 관리 LIF는 최대 유연성을 촉진하기 위해 DNS를 통해 액세스할 수 있어야 합니다. "SVM-DR" Trident 와 함께 사용할 수 있습니다.

최대 볼륨 수 제한

ONTAP 스토리지 시스템에는 최대 볼륨 수가 있으며, 이는 소프트웨어 버전과 하드웨어 플랫폼에 따라 다릅니다. 참조하다 "NetApp Hardware Universe" 정확한 한도를 확인하려면 해당 플랫폼과 ONTAP 버전을 확인하세요. 볼륨 수가 소진되면 Trident 뿐만 아니라 모든 스토리지 요청에 대한 프로비저닝 작업이 실패합니다.

트라이던트의 ontap-nas 그리고 ontap-san 드라이버는 생성된 각 Kubernetes 영구 볼륨(PV)에 대해 FlexVolume을 프로비저닝합니다. 그만큼 ontap-nas-economy 드라이버는 200개의 PV마다 약 1개의 FlexVolume을 생성합니다(50~300 사이로 구성 가능). 그만큼 ontap-san-economy 드라이버는 100개의 PV마다 약 1개의 FlexVolume을 생성합니다(50~200 사이로 구성 가능). Trident 스토리지 시스템의 사용 가능한 모든 볼륨을 소모하지 못하도록 하려면 SVM에 제한을 설정해야 합니다. 명령줄에서 이 작업을 수행할 수 있습니다.

vserver modify -vserver <svm_name> -max-volumes <num_of_volumes>

에 대한 가치 max-volumes 사용자 환경에 따라 여러 가지 기준에 따라 다릅니다.

  • ONTAP 클러스터에 있는 기존 볼륨의 수

  • 다른 애플리케이션을 위해 Trident 외부에서 프로비저닝할 것으로 예상되는 볼륨 수

  • Kubernetes 애플리케이션에서 사용될 것으로 예상되는 영구 볼륨 수

그만큼 max-volumes 값은 개별 ONTAP 노드가 아닌 ONTAP 클러스터의 모든 노드에 프로비저닝된 총 볼륨입니다. 결과적으로 ONTAP 클러스터 노드가 다른 노드보다 훨씬 더 많거나 적은 Trident 프로비저닝 볼륨을 갖는 경우가 발생할 수 있습니다.

예를 들어, 2노드 ONTAP 클러스터는 최대 2000개의 FlexVol 볼륨을 호스팅할 수 있습니다. 최대 볼륨 수를 1250으로 설정하는 것은 매우 타당한 것으로 보입니다. 그러나 만약에만 "집계" 한 노드에서 SVM에 할당되거나 한 노드에서 할당된 집계를 프로비저닝할 수 없는 경우(예: 용량 문제로 인해), 다른 노드가 모든 Trident 프로비저닝 볼륨의 대상이 됩니다. 이는 해당 노드의 볼륨 제한에 도달했을 수 있음을 의미합니다. max-volumes 값에 도달하면 Trident 와 해당 노드를 사용하는 다른 볼륨 작업에 영향을 미칩니다. 클러스터의 각 노드에서 집계된 데이터가 Trident 에서 사용하는 SVM에 동일한 개수로 할당되도록 하면 이러한 상황을 피할 수 있습니다.

볼륨 복제

NetApp Trident 다음을 사용할 때 볼륨 복제를 지원합니다. ontap-nas , ontap-san , solidfire-san , 그리고 gcp-cvs 스토리지 드라이버. 사용 시 ontap-nas-flexgroup 또는 ontap-nas-economy 드라이버, 복제가 지원되지 않습니다. 기존 볼륨에서 새 볼륨을 생성하면 새로운 스냅샷이 생성됩니다.

경고 다른 StorageClass와 연결된 PVC를 복제하지 마세요. 호환성을 보장하고 예상치 못한 동작을 방지하려면 동일한 StorageClass 내에서 복제 작업을 수행합니다.

Trident 에서 생성된 볼륨의 최대 크기 제한

Trident 에서 생성할 수 있는 볼륨의 최대 크기를 구성하려면 다음을 사용하십시오. limitVolumeSize 귀하의 매개변수 backend.json 정의.

스토리지 어레이에서 볼륨 크기를 제어하는 것 외에도 Kubernetes 기능도 활용해야 합니다.

Trident 에서 생성된 FlexVol의 최대 크기 제한

ontap-san-economy 및 ontap-nas-economy 드라이버의 풀로 사용되는 FlexVol의 최대 크기를 구성하려면 다음을 사용하세요. limitVolumePoolSize 귀하의 매개변수 backend.json 정의.

양방향 CHAP를 사용하도록 Trident 구성

백엔드 정의에서 CHAP 초기자 및 대상 사용자 이름과 비밀번호를 지정하고 Trident SVM에서 CHAP를 활성화하도록 할 수 있습니다. 를 사용하여 useCHAP 백엔드 구성의 매개변수를 통해 Trident CHAP를 사용하여 ONTAP 백엔드에 대한 iSCSI 연결을 인증합니다.

SVM QoS 정책 생성 및 사용

SVM에 적용된 ONTAP QoS 정책을 활용하면 Trident 프로비저닝 볼륨에서 사용할 수 있는 IOPS 수가 제한됩니다. 이것은 도움이 됩니다 "괴롭힘을 예방하다" 또는 Trident SVM 외부의 작업 부하에 영향을 미치는 제어 불가능한 컨테이너입니다.

몇 단계만으로 SVM에 대한 QoS 정책을 만들 수 있습니다. 가장 정확한 정보는 해당 ONTAP 버전의 설명서를 참조하세요. 아래 예에서는 SVM에서 사용할 수 있는 총 IOPS를 5000으로 제한하는 QoS 정책을 만듭니다.

# create the policy group for the SVM
qos policy-group create -policy-group <policy_name> -vserver <svm_name> -max-throughput 5000iops

# assign the policy group to the SVM, note this will not work
# if volumes or files in the SVM have existing QoS policies
vserver modify -vserver <svm_name> -qos-policy-group <policy_name>

또한 ONTAP 버전에서 지원하는 경우 컨테이너화된 워크로드에 대한 처리량을 보장하기 위해 QoS 최소값을 사용하는 것을 고려할 수 있습니다. 적응형 QoS는 SVM 수준 정책과 호환되지 않습니다.

컨테이너화된 워크로드에 전담된 IOPS 수는 여러 측면에 따라 달라집니다. 여기에는 다음이 포함됩니다.

  • 스토리지 어레이를 사용하는 다른 워크로드. Kubernetes 배포와 관련이 없는 다른 워크로드가 스토리지 리소스를 활용하는 경우, 해당 워크로드가 실수로 부정적인 영향을 받지 않도록 주의해야 합니다.

  • 컨테이너에서 실행되는 예상 작업 부하. 높은 IOPS 요구 사항이 있는 워크로드가 컨테이너에서 실행되는 경우, 낮은 QoS 정책은 나쁜 사용자 경험을 초래합니다.

SVM 수준에서 할당된 QoS 정책은 SVM에 프로비저닝된 모든 볼륨이 동일한 IOPS 풀을 공유하게 된다는 점을 기억하는 것이 중요합니다. 컨테이너화된 애플리케이션 중 하나 또는 소수가 높은 IOPS 요구 사항을 갖는 경우 다른 컨테이너화된 워크로드에 방해가 될 수 있습니다. 이 경우 외부 자동화를 사용하여 볼륨별 QoS 정책을 할당하는 것을 고려해 볼 수 있습니다.

중요함 ONTAP 버전이 9.8 이전인 경우에만 QoS 정책 그룹을 SVM에 할당해야 합니다.

Trident 에 대한 QoS 정책 그룹 생성

서비스 품질(QoS)은 중요한 작업 부하의 성능이 경쟁 작업 부하로 인해 저하되지 않도록 보장합니다. ONTAP QoS 정책 그룹은 볼륨에 대한 QoS 옵션을 제공하고 사용자가 하나 이상의 작업 부하에 대한 처리량 상한을 정의할 수 있도록 합니다. QoS에 대한 자세한 내용은 다음을 참조하세요. "QoS로 처리량 보장" . 백엔드나 스토리지 풀에서 QoS 정책 그룹을 지정할 수 있으며, 해당 정책 그룹은 해당 풀이나 백엔드에서 생성된 각 볼륨에 적용됩니다.

ONTAP 에는 기존 QoS 정책 그룹과 적응형 QoS 정책 그룹 두 가지가 있습니다. 기존 정책 그룹은 IOPS에서 일정한 최대(또는 이후 버전에서는 최소) 처리량을 제공합니다. 적응형 QoS는 작업 부하 크기에 맞게 처리량을 자동으로 조정하여 작업 부하 크기가 변해도 IOPS 대 TB|GB 비율을 유지합니다. 이는 대규모 배포에서 수백 또는 수천 개의 작업 부하를 관리할 때 상당한 이점을 제공합니다.

QoS 정책 그룹을 생성할 때 다음 사항을 고려하세요.

  • 당신은 설정해야합니다 qosPolicy 키에 defaults 백엔드 구성의 블록. 다음 백엔드 구성 예를 참조하세요.

---
version: 1
storageDriverName: ontap-nas
managementLIF: 0.0.0.0
dataLIF: 0.0.0.0
svm: svm0
username: user
password: pass
defaults:
  qosPolicy: standard-pg
storage:
  - labels:
      performance: extreme
    defaults:
      adaptiveQosPolicy: extremely-adaptive-pg
  - labels:
      performance: premium
    defaults:
      qosPolicy: premium-pg
  • 정책 그룹에서 지정한 대로 각 볼륨이 전체 처리량을 얻도록 볼륨별로 정책 그룹을 적용해야 합니다. 공유 정책 그룹은 지원되지 않습니다.

QoS 정책 그룹에 대한 자세한 내용은 다음을 참조하세요. "ONTAP 명령 참조" .

Kubernetes 클러스터 멤버에 대한 스토리지 리소스 액세스 제한

Trident 가 생성한 NFS 볼륨, iSCSI LUN 및 FC LUN에 대한 액세스를 제한하는 것은 Kubernetes 배포에 대한 보안 태세의 중요한 구성 요소입니다. 이렇게 하면 Kubernetes 클러스터에 속하지 않은 호스트가 볼륨에 액세스하여 예기치 않게 데이터를 수정할 가능성이 방지됩니다.

네임스페이스가 Kubernetes 리소스의 논리적 경계라는 것을 이해하는 것이 중요합니다. 동일한 네임스페이스에 있는 리소스는 공유할 수 있다고 가정하지만, 중요한 점은 네임스페이스 간 기능이 없다는 것입니다. 즉, PV는 글로벌 객체이지만 PVC에 바인딩되면 동일한 네임스페이스에 있는 Pod에서만 액세스할 수 있습니다. 적절한 경우 네임스페이스를 사용하여 분리하는 것이 중요합니다.

Kubernetes 컨텍스트에서 데이터 보안과 관련하여 대부분 조직이 가장 우려하는 점은 컨테이너의 프로세스가 호스트에 마운트된 저장소에 액세스할 수 있지만 해당 저장소가 컨테이너용으로 의도되지 않았다는 것입니다. "네임스페이스" 이러한 유형의 손상을 방지하기 위해 설계되었습니다. 하지만 예외가 하나 있습니다. 특권 컨테이너입니다.

특권 컨테이너는 일반적인 컨테이너보다 훨씬 더 많은 호스트 수준 권한으로 실행되는 컨테이너입니다. 이러한 기능은 기본적으로 거부되지 않으므로 다음을 사용하여 기능을 비활성화해야 합니다. "포드 보안 정책" .

Kubernetes와 외부 호스트 모두에서 액세스가 필요한 볼륨의 경우, PV는 관리자가 도입하고 Trident 가 관리하지 않는 기존 방식으로 스토리지를 관리해야 합니다. 이렇게 하면 Kubernetes와 외부 호스트가 모두 연결이 끊기고 더 이상 볼륨을 사용하지 않을 때만 스토리지 볼륨이 파기됩니다. 또한 사용자 정의 내보내기 정책을 적용하면 Kubernetes 클러스터 노드와 Kubernetes 클러스터 외부의 대상 서버에서 액세스할 수 있습니다.

전용 인프라 노드(예: OpenShift)나 사용자 애플리케이션을 예약할 수 없는 다른 노드가 있는 배포의 경우, 별도의 내보내기 정책을 사용하여 스토리지 리소스에 대한 액세스를 추가로 제한해야 합니다. 여기에는 인프라 노드에 배포된 서비스(예: OpenShift Metrics 및 Logging 서비스)와 비인프라 노드에 배포된 표준 애플리케이션에 대한 내보내기 정책을 만드는 작업이 포함됩니다.

전담 수출 정책을 사용하세요

Kubernetes 클러스터에 있는 노드에만 액세스를 허용하는 각 백엔드에 대한 내보내기 정책이 있는지 확인해야 합니다. Trident 자동으로 수출 정책을 만들고 관리할 수 있습니다. 이런 방식으로 Trident Kubernetes 클러스터의 노드에 프로비저닝하는 볼륨에 대한 액세스를 제한하고 노드 추가/삭제를 간소화합니다.

또는 수동으로 내보내기 정책을 만들고 각 노드 액세스 요청을 처리하는 하나 이상의 내보내기 규칙으로 채울 수도 있습니다.

  • 사용하다 vserver export-policy create ONTAP CLI 명령을 사용하여 내보내기 정책을 생성합니다.

  • 다음을 사용하여 내보내기 정책에 규칙을 추가합니다. vserver export-policy rule create ONTAP CLI 명령.

이러한 명령을 실행하면 어떤 Kubernetes 노드가 데이터에 액세스할 수 있는지 제한할 수 있습니다.

장애를 입히다 showmount SVM 응용 프로그램을 위해

그만큼 showmount 이 기능을 사용하면 NFS 클라이언트가 SVM에 사용 가능한 NFS 내보내기 목록을 쿼리할 수 있습니다. Kubernetes 클러스터에 배포된 Pod는 다음을 발행할 수 있습니다. showmount -e 명령을 내리고, 접근할 수 없는 탈것을 포함하여 사용 가능한 탈것의 목록을 받습니다. 이것 자체는 보안을 위협하는 것은 아니지만 불필요한 정보를 제공하여 권한이 없는 사용자가 NFS 내보내기에 연결하는 데 도움이 될 수 있습니다.

비활성화해야 합니다 showmount SVM 수준 ONTAP CLI 명령을 사용하여:

vserver nfs modify -vserver <svm_name> -showmount disabled

SolidFire 모범 사례

Trident 위한 SolidFire 스토리지 구성에 대한 모범 사례를 알아보세요.

Solidfire 계정 생성

각 SolidFire 계정은 고유한 볼륨 소유자를 나타내며 고유한 CHAP(Challenge-Handshake 인증 프로토콜) 자격 증명 세트를 받습니다. 계정 이름과 관련 CHAP 자격 증명을 사용하거나 볼륨 액세스 그룹을 통해 계정에 할당된 볼륨에 액세스할 수 있습니다. 한 계정에는 최대 2,000개의 볼륨이 할당될 수 있지만, 볼륨은 한 계정에만 속할 수 있습니다.

QoS 정책 생성

여러 볼륨에 적용할 수 있는 표준화된 서비스 품질 설정을 만들고 저장하려면 SolidFire 서비스 품질(QoS) 정책을 사용하세요.

볼륨별로 QoS 매개변수를 설정할 수 있습니다. 각 볼륨의 성능은 QoS를 정의하는 세 가지 구성 가능한 매개변수(최소 IOPS, 최대 IOPS, 버스트 IOPS)를 설정하여 보장할 수 있습니다.

4Kb 블록 크기에 대한 최소, 최대 및 버스트 IOPS 값은 다음과 같습니다.

IOPS 매개변수 정의 최소값 기본값 최대값(4Kb)

최소 IOPS

볼륨에 대해 보장된 성능 수준입니다.

50

50

15000

최대 IOPS

성능은 이 한도를 초과하지 않습니다.

50

15000

200,000

버스트 IOPS

짧은 버스트 시나리오에서 허용되는 최대 IOPS입니다.

50

15000

200,000

참고 최대 IOPS와 버스트 IOPS는 최대 200,000까지 설정할 수 있지만, 볼륨의 실제 최대 성능은 클러스터 사용량과 노드당 성능에 따라 제한됩니다.

블록 크기와 대역폭은 IOPS 수에 직접적인 영향을 미칩니다. 블록 크기가 증가함에 따라 시스템은 더 큰 블록 크기를 처리하는 데 필요한 수준으로 대역폭을 늘립니다. 대역폭이 증가함에 따라 시스템이 달성할 수 있는 IOPS 수는 감소합니다. 참조하다 "SolidFire 서비스 품질" QoS 및 성능에 대한 자세한 내용은 다음을 참조하세요.

SolidFire 인증

Element는 CHAP 및 VAG(볼륨 액세스 그룹)라는 두 가지 인증 방법을 지원합니다. CHAP는 CHAP 프로토콜을 사용하여 백엔드에 호스트를 인증합니다. 볼륨 액세스 그룹은 프로비저닝하는 볼륨에 대한 액세스를 제어합니다. NetApp 인증에 CHAP를 사용할 것을 권장합니다. CHAP는 더 간단하고 확장 제한이 없기 때문입니다.

참고 향상된 CSI 프로비저너가 탑재된 Trident CHAP 인증 사용을 지원합니다. VAG는 기존의 비 CSI 작동 모드에서만 사용해야 합니다.

CHAP 인증(개시자가 의도된 볼륨 사용자인지 확인하는 것)은 계정 기반 액세스 제어를 통해서만 지원됩니다. 인증에 CHAP를 사용하는 경우 단방향 CHAP와 양방향 CHAP의 두 가지 옵션을 사용할 수 있습니다. 단방향 CHAP는 SolidFire 계정 이름과 개시자 비밀번호를 사용하여 볼륨 액세스를 인증합니다. 양방향 CHAP 옵션은 볼륨이 계정 이름과 개시자 비밀번호를 통해 호스트를 인증하고, 그런 다음 호스트가 계정 이름과 대상 비밀번호를 통해 볼륨을 인증하기 때문에 볼륨을 인증하는 가장 안전한 방법을 제공합니다.

하지만 CHAP를 활성화할 수 없고 VAG가 필요한 경우 액세스 그룹을 만들고 호스트 이니시에이터와 볼륨을 액세스 그룹에 추가합니다. 액세스 그룹에 추가하는 각 IQN은 CHAP 인증 여부와 관계없이 그룹의 각 볼륨에 액세스할 수 있습니다. iSCSI 이니시에이터가 CHAP 인증을 사용하도록 구성된 경우 계정 기반 액세스 제어가 사용됩니다. iSCSI 이니시에이터가 CHAP 인증을 사용하도록 구성되지 않은 경우 볼륨 액세스 그룹 액세스 제어가 사용됩니다.

더 많은 정보는 어디에서 찾을 수 있나요?

다음은 모범 사례 문서 중 일부입니다. 검색 "NetApp 라이브러리" 최신 버전을 보려면 여기를 클릭하세요.

엘리먼트 소프트웨어

응용 프로그램 모범 사례 정보

모든 애플리케이션에 특정 지침이 있는 것은 아니므로 NetApp 팀과 협력하여 사용하는 것이 중요합니다. "NetApp 라이브러리" 가장 최신 문서를 찾으려면.