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. 내부 모드 스토리지 클러스터
내부 및 내부 연결 스토리지 클러스터 모두 다음과 같은 설정 프로세스를 갖습니다.
| 클러스터 애플리케이션이 Ceph 볼륨을 생성하는 데 사용하는 스토리지 클래스를 생성합니다. |
| 클러스터 애플리케이션이 Ceph 볼륨의 스냅샷을 생성하는 데 사용하는 볼륨 스냅샷 클래스를 생성합니다. |
Ceph RGW 구성 | Ceph RGW 오브젝트 스토리지 끝점을 활성화하고 제공하기 위해 다양한 Ceph 오브젝트 CR을 생성합니다. |
Ceph RBD 구성 |
|
CephFS 설정 |
|
Rook-Ceph 구성 |
기본 Ceph 클러스터의 전체 동작을 제어하는 |
|
|
|
|
작업 템플릿 |
|
빠른 시작 |
웹 콘솔에 빠른 시작 가이드를 표시하는 |
4.3.1.1. 클러스터 생성
ocs-operator
에서 CephCluster
CR을 생성한 후 rook-operator
는 원하는 구성에 따라 Ceph 클러스터를 생성합니다. rook-operator
는 다음 구성 요소를 구성합니다.
Ceph |
3개의 Ceph |
Ceph | 이 데몬은 시작되었으며 클러스터에 대한 지표를 수집하여 Prometheus에 보고합니다. |
Ceph OSD |
이러한 OSD는 |
CSI 프로비저너 |
이러한 프로비저너는 RBD 및 |
CSI 볼륨 플러그인 및 |
RBD 및 |
CephCluster
CR이 구성된 후 Rook은 나머지 Ceph CR을 조정하여 설정을 완료합니다.
|
|
|
|
|
|
|
|
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) 배포 |
|
Microsoft Azure 배포 |
|
GCP(Google Cloud Platform) 배포 |
|
온-프레미스 배포 |
RGW가 존재하는 경우 |
이전에 언급한 배포 중 어느 것도 적용할 수 없습니다. |
|
기본 BucketClass
기본 BackingStore
에 대한 배치 정책이 있는 BucketClass
가 생성됩니다.
NooBaa Pod
다음 NooBaa Pod가 생성되어 시작됩니다.
데이터베이스(DB) | 이는 Postgres DB의 메타데이터, 통계, 이벤트 등을 유지합니다. 그러나 저장된 실제 데이터는 보관하지 않습니다. |
코어 | 이는 구성, 백그라운드 프로세스, 메타데이터 관리, 통계 등을 처리하는 포드입니다. |
끝점 |
이러한 pod는 중복 제거 및 압축과 같은 실제 I/O 관련 작업을 수행하여 데이터를 작성하고 읽을 수 있는 다양한 서비스와 통신합니다. 엔드포인트는 |
경로
S3를 사용하는 애플리케이션에 대해 NooBaa S3 인터페이스의 경로가 생성됩니다.
서비스
NooBaa S3 인터페이스의 서비스는 S3를 사용하는 애플리케이션에 대해 생성됩니다.
4.3.2. 외부 모드 스토리지 클러스터
외부 스토리지 클러스터의 경우 ocs-operator
는 약간 다른 설정 프로세스를 따릅니다. ocs-operator
는 rook-ceph-external-cluster-details
ConfigMap
의 존재를 찾습니다. 이 ConfigMap은 다른 사람이 생성해야 합니다(관리자 또는 콘솔). ConfigMap
생성 방법에 대한 자세한 내용은 외부 모드를 위한 OpenShift Data Foundation 클러스터 생성을 참조하십시오. 그런 다음 ocs-operator
는 ConfigMap
에 지정된 대로 다음 리소스 중 일부 또는 모두를 생성합니다.
외부 Ceph 구성 |
외부 |
외부 Ceph 인증 정보 시크릿 | 외부 Ceph 인스턴스에 연결할 자격 증명이 포함된 시크릿입니다. |
외부 Ceph StorageClasses | RBD, CephFS 및/또는 RGW 볼륨 생성을 활성화하는 하나 이상의 StorageClasses. |
CephFS CSI 드라이버 활성화 |
|
Ceph RGW 구성 | RGW StorageClass가 지정된 경우 다양한 Ceph Object CR을 생성하여 Ceph RGW 오브젝트 스토리지 끝점에 대한 액세스를 활성화하고 제공합니다. |
ConfigMap
에 지정된 리소스를 생성하면 StorageCluster 생성 프로세스가 다음과 같이 진행됩니다.
|
|
|
애플리케이션이 Ceph 볼륨의 스냅샷을 생성하는 데 사용하는 |
|
noobaa-operator에서 조정을 트리거하도록 |
|
콘솔에 빠른 |
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) 배포 |
|
Microsoft Azure 배포 |
|
GCP(Google Cloud Platform) 배포 |
|
온-프레미스 배포 |
RGW가 존재하는 경우 |
이전에 언급한 배포 중 어느 것도 적용할 수 없습니다. |
|
기본 BucketClass
기본 BackingStore
에 대한 배치 정책이 있는 BucketClass
가 생성됩니다.
NooBaa Pod
다음 NooBaa Pod가 생성되어 시작됩니다.
데이터베이스(DB) | 이는 Postgres DB의 메타데이터, 통계, 이벤트 등을 유지합니다. 그러나 저장된 실제 데이터는 보관하지 않습니다. |
코어 | 이는 구성, 백그라운드 프로세스, 메타데이터 관리, 통계 등을 처리하는 포드입니다. |
끝점 |
이러한 pod는 중복 제거 및 압축과 같은 실제 I/O 관련 작업을 수행하여 데이터를 작성하고 읽을 수 있는 다양한 서비스와 통신합니다. 엔드포인트는 |
경로
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) 배포 |
|
Microsoft Azure 배포 |
|
GCP(Google Cloud Platform) 배포 |
|
온-프레미스 배포 |
RGW가 존재하는 경우 |
이전에 언급한 배포 중 어느 것도 적용할 수 없습니다. |
|
기본 BucketClass
기본 BackingStore
에 대한 배치 정책이 있는 BucketClass
가 생성됩니다.
NooBaa Pod
다음 NooBaa Pod가 생성되어 시작됩니다.
데이터베이스(DB) | 이는 Postgres DB의 메타데이터, 통계, 이벤트 등을 유지합니다. 그러나 저장된 실제 데이터는 보관하지 않습니다. |
코어 | 이는 구성, 백그라운드 프로세스, 메타데이터 관리, 통계 등을 처리하는 포드입니다. |
끝점 |
이러한 pod는 중복 제거 및 압축과 같은 실제 I/O 관련 작업을 수행하여 데이터를 작성하고 읽을 수 있는 다양한 서비스와 통신합니다. 엔드포인트는 |
경로
S3를 사용하는 애플리케이션에 대해 NooBaa S3 인터페이스의 경로가 생성됩니다.
서비스
NooBaa S3 인터페이스의 서비스는 S3를 사용하는 애플리케이션에 대해 생성됩니다.
4.3.3.2. 스토리지 시스템 생성
StorageCluster 생성의 일환으로 odf-operator
는 OpenShift Data Foundation에 StorageCluster를 노출하는 해당 StorageSystem
CR을 자동으로 생성합니다.