4.3. 스토리지 클러스터 생성


OpenShift Data Foundation 운영자는 스토리지 기능을 제공하지 않으며 원하는 스토리지 구성을 정의해야 합니다.

Operator를 설치한 후 OpenShift Container Platform 콘솔 마법사 또는 CLI 및 ocs-operator 를 사용하여 이 StorageCluster 를 조정하여 새 StorageCluster 를 생성합니다. OpenShift Data Foundation은 설치당 단일 StorageCluster 를 지원합니다. ocs-operator 조정에서 첫 번째 클러스터 CR을 무시한 후 생성된 모든 StorageCluster CR입니다.

OpenShift Data Foundation에서는 다음 StorageCluster 구성을 사용할 수 있습니다.

내부
Internal 모드에서 모든 구성 요소는 OpenShift Container Platform 클러스터 내에서 컨테이너화되고 설치 마법사의 관리자가 지정한 StorageClass 에 대해 동적으로 프로비저닝된 PV(영구 볼륨)를 사용합니다.
내부 연결
이 모드는 내부 모드와 유사하지만, Ceph에서 백업 스토리지에 사용하는 클러스터 노드에 직접 연결된 로컬 스토리지 장치를 정의하는 데 관리자가 필요합니다. 또한 관리자는 StorageClass 를 제공하기 위해 로컬 스토리지 Operator가 조정하는 CR을 생성해야 합니다. ocs-operator 는 이 StorageClass 를 Ceph의 백업 스토리지로 사용합니다.
외부
이 모드에서 Ceph 구성 요소는 OpenShift Container Platform 클러스터 내에서 실행되지 않고 애플리케이션에서 PV를 생성할 수 있는 외부 OpenShift Container Storage 설치에 제공됩니다. 필요에 따라 다른 구성 요소가 클러스터 내에서 실행됩니다.
MCG 독립 실행형
이 모드를 사용하면 CephCluster가 포함되지 않은 Multicloud Object Gateway 시스템을 쉽게 설치할 수 있습니다.

StorageCluster CR을 찾으면 ocs-operator 에서 해당 CR을 검증하고 스토리지 구성 요소를 정의하는 후속 리소스 생성을 시작합니다.

4.3.1. 내부 모드 스토리지 클러스터

내부 및 내부 연결 스토리지 클러스터 모두 다음과 같은 설정 프로세스를 갖습니다.

StorageClasses

클러스터 애플리케이션이 Ceph 볼륨을 생성하는 데 사용하는 스토리지 클래스를 생성합니다.

SnapshotClasses

클러스터 애플리케이션이 Ceph 볼륨의 스냅샷을 생성하는 데 사용하는 볼륨 스냅샷 클래스를 생성합니다.

Ceph RGW 구성

Ceph RGW 오브젝트 스토리지 끝점을 활성화하고 제공하기 위해 다양한 Ceph 오브젝트 CR을 생성합니다.

Ceph RBD 구성

CephBlockPool CR을 만들어 RBD 스토리지를 활성화합니다.

CephFS 설정

CephFilesystem CR을 생성하여 CephFS 스토리지를 활성화합니다.

Rook-Ceph 구성

기본 Ceph 클러스터의 전체 동작을 제어하는 rook-config-override ConfigMap 을 생성합니다.

CephCluster

CephCluster CR을 생성하여 rook-ceph-operator 에서 Ceph 조정을 트리거합니다. 자세한 내용은 Rook-Ceph operator 를 참조하십시오.

NoobaaSystem

NooBaa CR을 생성하여 mcg-operator 에서 조정을 트리거합니다. 자세한 내용은 MCG Operator 를 참조하십시오.

작업 템플릿

OpenShift Container Storage에 대한 관리 작업을 실행하도록 작업을 정의하는 OpenShift 템플릿 CR을 생성합니다.

빠른 시작

웹 콘솔에 빠른 시작 가이드를 표시하는 QuickStart CR을 생성합니다.

4.3.1.1. 클러스터 생성

ocs-operator 에서 CephCluster CR을 생성한 후 rook-operator 는 원하는 구성에 따라 Ceph 클러스터를 생성합니다. rook-operator 는 다음 구성 요소를 구성합니다.

Ceph mon 데몬

3개의 Ceph mon 데몬은 클러스터의 다른 노드에서 시작됩니다. Ceph 클러스터의 코어 메타데이터를 관리하고 대부분의 쿼럼을 형성해야 합니다. 각 mon 의 메타데이터는 클라우드 환경에 있는 경우 PV에 의해 백업되거나 로컬 호스트의 경로가 로컬 스토리지 장치 환경에 있는 경우 지원됩니다.

Ceph mgr 데몬

이 데몬은 시작되었으며 클러스터에 대한 지표를 수집하여 Prometheus에 보고합니다.

Ceph OSD

이러한 OSD는 storageClassDeviceSets 구성에 따라 생성됩니다. 각 OSD는 사용자 데이터를 저장하는 PV를 사용합니다. 기본적으로 Ceph는 CRUSH 알고리즘을 사용하여 높은 내구성 및 가용성을 위해 서로 다른 OSD에서 애플리케이션 데이터 복제본 3개를 유지 관리합니다.

CSI 프로비저너

이러한 프로비저너는 RBD 및 CephFS 용으로 시작됩니다. OpenShift Container Storage의 스토리지 클래스에 대해 볼륨이 요청되면 요청은 Ceph에서 볼륨을 프로비저닝하기 위해 Ceph-CSI 드라이버로 이동합니다.

CSI 볼륨 플러그인 및 CephFS

RBD 및 CephFS 의 CSI 볼륨 플러그인은 클러스터의 각 노드에서 시작됩니다. 애플리케이션에서 Ceph 볼륨을 마운트하는 데 필요한 모든 위치에서 볼륨 플러그인을 실행해야 합니다.

CephCluster CR이 구성된 후 Rook은 나머지 Ceph CR을 조정하여 설정을 완료합니다.

CephBlockPool

CephBlockPool CR은 Rook Operator가 RWO 볼륨에 대한 Ceph 풀을 생성하는 구성을 제공합니다.

CephFilesystem

CephFilesystem CR은 Rook Operator에 일반적으로 RWX 볼륨에 대해 CephFS를 사용하여 공유 파일 시스템을 구성하도록 지시합니다. 공유 볼륨을 관리하기 위해 CephFS 메타데이터 서버(MDS)가 시작됩니다.

CephObjectStore

CephObjectStore CR은 Rook 연산자에 RGW 서비스로 오브젝트 저장소를 구성하도록 지시합니다.

CephObjectStoreUser CR

CephObjectStoreUser CR은 Rook Operator에 NooBaa의 오브젝트 저장소 사용자를 구성하고, access/private 키를 게시하고, CephObjectStore 엔드포인트를 게시하도록 지시합니다.

Operator는 Ceph 상태를 모니터링하여 스토리지 플랫폼이 정상으로 유지되도록 합니다. mon 데몬이 오랜 기간 동안 다운되면 Rook은 해당 위치에서 새로운 mon 을 시작하여 전체 쿼럼을 완전히 복원할 수 있습니다.

ocs-operator 에서 CephCluster CR을 업데이트할 때 Rook은 요청된 변경 사항에 즉시 대응하여 클러스터 구성을 업데이트합니다.

4.3.1.2. NooBaa 시스템 생성

NooBaa 시스템이 생성되면 mcg-operator 는 다음을 조정합니다.

기본 BackingStore

OpenShift Container Platform 및 OpenShift Data Foundation이 배포된 플랫폼에 따라 버킷이 배치 정책에 사용할 수 있도록 기본 백업 저장소 리소스가 생성됩니다. 다양한 옵션은 다음과 같습니다.

AWS(Amazon Web Services) 배포

mcg-operator 는 CCO( CloudCredentialsOperator )를 사용하여 새 AWS::S3 버킷을 생성하고 해당 버킷 상단에 BackingStore 를 생성합니다.

Microsoft Azure 배포

mcg-operator 는 CCO를 사용하여 새 Azure Blob을 생성하고 해당 버킷 상단에 BackingStore 를 생성합니다.

GCP(Google Cloud Platform) 배포

mcg-operator 는 CCO를 사용하여 새 GCP 버킷을 생성하고 해당 버킷 상단에 BackingStore를 생성합니다.

온-프레미스 배포

RGW가 존재하는 경우 mcg-operator 는 RGW 상단에 새 CephUser 및 새 버킷을 생성하고 해당 버킷 상단에 BackingStore 를 생성합니다.

이전에 언급한 배포 중 어느 것도 적용할 수 없습니다.

mcg-operator 는 기본 스토리지 클래스를 기반으로 pv-pool 을 생성하고 해당 버킷 상단에 BackingStore 를 생성합니다.

기본 BucketClass

기본 BackingStore 에 대한 배치 정책이 있는 BucketClass 가 생성됩니다.

NooBaa Pod

다음 NooBaa Pod가 생성되어 시작됩니다.

데이터베이스(DB)

이는 Postgres DB의 메타데이터, 통계, 이벤트 등을 유지합니다. 그러나 저장된 실제 데이터는 보관하지 않습니다.

코어

이는 구성, 백그라운드 프로세스, 메타데이터 관리, 통계 등을 처리하는 포드입니다.

끝점

이러한 pod는 중복 제거 및 압축과 같은 실제 I/O 관련 작업을 수행하여 데이터를 작성하고 읽을 수 있는 다양한 서비스와 통신합니다. 엔드포인트는 HorizonalPodAutoscaler 와 통합되며 기존 끝점 Pod에서 관찰되는 CPU 사용량에 따라 해당 수가 증가 및 감소합니다.

경로

S3를 사용하는 애플리케이션에 대해 NooBaa S3 인터페이스의 경로가 생성됩니다.

서비스

NooBaa S3 인터페이스의 서비스는 S3를 사용하는 애플리케이션에 대해 생성됩니다.

4.3.2. 외부 모드 스토리지 클러스터

외부 스토리지 클러스터의 경우 ocs-operator 는 약간 다른 설정 프로세스를 따릅니다. ocs-operatorrook-ceph-external-cluster-details ConfigMap 의 존재를 찾습니다. 이 ConfigMap은 다른 사람이 생성해야 합니다(관리자 또는 콘솔). ConfigMap 생성 방법에 대한 자세한 내용은 외부 모드를 위한 OpenShift Data Foundation 클러스터 생성을 참조하십시오. 그런 다음 ocs-operatorConfigMap 에 지정된 대로 다음 리소스 중 일부 또는 모두를 생성합니다.

외부 Ceph 구성

외부 mons 의 끝점을 지정하는 ConfigMap입니다.

외부 Ceph 인증 정보 시크릿

외부 Ceph 인스턴스에 연결할 자격 증명이 포함된 시크릿입니다.

외부 Ceph StorageClasses

RBD, CephFS 및/또는 RGW 볼륨 생성을 활성화하는 하나 이상의 StorageClasses.

CephFS CSI 드라이버 활성화

CephFS StorageClass가 지정된 경우 CephFS CSI Pod를 배포하도록 rook-ceph-operator 를 구성합니다.

Ceph RGW 구성

RGW StorageClass가 지정된 경우 다양한 Ceph Object CR을 생성하여 Ceph RGW 오브젝트 스토리지 끝점에 대한 액세스를 활성화하고 제공합니다.

ConfigMap 에 지정된 리소스를 생성하면 StorageCluster 생성 프로세스가 다음과 같이 진행됩니다.

CephCluster

CephCluster CR을 생성하여 rook-ceph-operator 에서 Ceph 조정을 트리거합니다(다음 섹션 참조).

SnapshotClasses

애플리케이션이 Ceph 볼륨의 스냅샷을 생성하는 데 사용하는 SnapshotClasses 를 만듭니다.

NoobaaSystem

noobaa-operator에서 조정을 트리거하도록 NooBaa CR을 생성합니다(다음 섹션 참조).

QuickStarts

콘솔에 빠른 시작 가이드를 표시하는 빠른 시작 CR을 만듭니다.

4.3.2.1. 클러스터 생성

Rook Operator는 CephCluster CR이 외부 모드로 생성될 때 다음 작업을 수행합니다.

  • Operator는 원격 Ceph 클러스터에서 연결을 사용할 수 있는지 확인합니다. 연결에는 로컬 클러스터로 mon 끝점과 시크릿을 가져와야 합니다.
  • CSI 드라이버는 Ceph에 대한 원격 연결로 구성됩니다. RBD 및 CephFS 프로비저너 및 볼륨 플러그인은 내부 모드로 구성된 CSI 드라이버와 유사하게 시작되며 Ceph와의 연결은 OpenShift 클러스터 외부에 연결됩니다.
  • 주기적으로 주소 변경 사항을 모니터링하고 그에 따라 Ceph-CSI 구성을 업데이트합니다.

4.3.2.2. NooBaa 시스템 생성

NooBaa 시스템이 생성되면 mcg-operator 는 다음을 조정합니다.

기본 BackingStore

OpenShift Container Platform 및 OpenShift Data Foundation이 배포된 플랫폼에 따라 버킷이 배치 정책에 사용할 수 있도록 기본 백업 저장소 리소스가 생성됩니다. 다양한 옵션은 다음과 같습니다.

AWS(Amazon Web Services) 배포

mcg-operator 는 CCO( CloudCredentialsOperator )를 사용하여 새 AWS::S3 버킷을 생성하고 해당 버킷 상단에 BackingStore 를 생성합니다.

Microsoft Azure 배포

mcg-operator 는 CCO를 사용하여 새 Azure Blob을 생성하고 해당 버킷 상단에 BackingStore 를 생성합니다.

GCP(Google Cloud Platform) 배포

mcg-operator 는 CCO를 사용하여 새 GCP 버킷을 생성하고 해당 버킷 상단에 BackingStore를 생성합니다.

온-프레미스 배포

RGW가 존재하는 경우 mcg-operator 는 RGW 상단에 새 CephUser 및 새 버킷을 생성하고 해당 버킷 상단에 BackingStore 를 생성합니다.

이전에 언급한 배포 중 어느 것도 적용할 수 없습니다.

mcg-operator 는 기본 스토리지 클래스를 기반으로 pv-pool 을 생성하고 해당 버킷 상단에 BackingStore 를 생성합니다.

기본 BucketClass

기본 BackingStore 에 대한 배치 정책이 있는 BucketClass 가 생성됩니다.

NooBaa Pod

다음 NooBaa Pod가 생성되어 시작됩니다.

데이터베이스(DB)

이는 Postgres DB의 메타데이터, 통계, 이벤트 등을 유지합니다. 그러나 저장된 실제 데이터는 보관하지 않습니다.

코어

이는 구성, 백그라운드 프로세스, 메타데이터 관리, 통계 등을 처리하는 포드입니다.

끝점

이러한 pod는 중복 제거 및 압축과 같은 실제 I/O 관련 작업을 수행하여 데이터를 작성하고 읽을 수 있는 다양한 서비스와 통신합니다. 엔드포인트는 HorizonalPodAutoscaler 와 통합되며 기존 끝점 Pod에서 관찰되는 CPU 사용량에 따라 해당 수가 증가 및 감소합니다.

경로

S3를 사용하는 애플리케이션에 대해 NooBaa S3 인터페이스의 경로가 생성됩니다.

서비스

NooBaa S3 인터페이스의 서비스는 S3를 사용하는 애플리케이션에 대해 생성됩니다.

4.3.3. MCG Standalone StorageCluster

이 모드에서는 CephCluster가 생성되지 않습니다. 대신 OpenShift Container Platform의 기존 StorageClass를 활용하는 기본값을 사용하여 NooBaa 시스템 CR을 생성합니다.

4.3.3.1. NooBaa 시스템 생성

NooBaa 시스템이 생성되면 mcg-operator 는 다음을 조정합니다.

기본 BackingStore

OpenShift Container Platform 및 OpenShift Data Foundation이 배포된 플랫폼에 따라 버킷이 배치 정책에 사용할 수 있도록 기본 백업 저장소 리소스가 생성됩니다. 다양한 옵션은 다음과 같습니다.

AWS(Amazon Web Services) 배포

mcg-operator 는 CCO( CloudCredentialsOperator )를 사용하여 새 AWS::S3 버킷을 생성하고 해당 버킷 상단에 BackingStore 를 생성합니다.

Microsoft Azure 배포

mcg-operator 는 CCO를 사용하여 새 Azure Blob을 생성하고 해당 버킷 상단에 BackingStore 를 생성합니다.

GCP(Google Cloud Platform) 배포

mcg-operator 는 CCO를 사용하여 새 GCP 버킷을 생성하고 해당 버킷 상단에 BackingStore를 생성합니다.

온-프레미스 배포

RGW가 존재하는 경우 mcg-operator 는 RGW 상단에 새 CephUser 및 새 버킷을 생성하고 해당 버킷 상단에 BackingStore 를 생성합니다.

이전에 언급한 배포 중 어느 것도 적용할 수 없습니다.

mcg-operator 는 기본 스토리지 클래스를 기반으로 pv-pool 을 생성하고 해당 버킷 상단에 BackingStore 를 생성합니다.

기본 BucketClass

기본 BackingStore 에 대한 배치 정책이 있는 BucketClass 가 생성됩니다.

NooBaa Pod

다음 NooBaa Pod가 생성되어 시작됩니다.

데이터베이스(DB)

이는 Postgres DB의 메타데이터, 통계, 이벤트 등을 유지합니다. 그러나 저장된 실제 데이터는 보관하지 않습니다.

코어

이는 구성, 백그라운드 프로세스, 메타데이터 관리, 통계 등을 처리하는 포드입니다.

끝점

이러한 pod는 중복 제거 및 압축과 같은 실제 I/O 관련 작업을 수행하여 데이터를 작성하고 읽을 수 있는 다양한 서비스와 통신합니다. 엔드포인트는 HorizonalPodAutoscaler 와 통합되며 기존 끝점 Pod에서 관찰되는 CPU 사용량에 따라 해당 수가 증가 및 감소합니다.

경로

S3를 사용하는 애플리케이션에 대해 NooBaa S3 인터페이스의 경로가 생성됩니다.

서비스

NooBaa S3 인터페이스의 서비스는 S3를 사용하는 애플리케이션에 대해 생성됩니다.

4.3.3.2. 스토리지 시스템 생성

StorageCluster 생성의 일환으로 odf-operator 는 OpenShift Data Foundation에 StorageCluster를 노출하는 해당 StorageSystem CR을 자동으로 생성합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.