2.2. 외부 Ceph 스토리지 시스템을 위한 OpenShift Data Foundation Cluster 생성
VMware vSphere에 배포하거나 사용자가 프로비저닝한 베어 메탈 인프라에 배포된 OpenShift Container Platform에 OpenShift Data Foundation Operator를 설치한 후 새 OpenShift Data Foundation 클러스터를 생성해야 합니다.
사전 요구 사항
- 유효한 Red Hat OpenShift Data Foundation Advanced 서브스크립션. OpenShift Data Foundation의 서브스크립션이 작동하는 방식을 알아보려면 OpenShift Data Foundation 서브스크립션에 대한 기술 자료 문서 를 참조하십시오.
- OpenShift Data Foundation 4.11을 배포하기 전에 OpenShift Container Platform 버전이 4.11 이상인지 확인합니다.
- OpenShift Data Foundation Operator가 설치되어 있어야 합니다. 자세한 내용은 Operator Hub를 사용하여 OpenShift Data Foundation Operator 설치를 참조하십시오.
Red Hat Ceph Storage(RHCS)의 외부 모드에서 Red Hat OpenShift Data Foundation의 지원 가능성 및 상호 운용성을 확인하려면 Red Hat OpenShift Data Foundation 지원 및 상호 운용성 검사 랩으로 이동하십시오.
-
자체 관리 서비스로 ODF로 서비스 유형을
선택합니다. - 드롭다운 에서 적절한 버전을 선택합니다.
- 버전 탭에서 지원되는 RHCS 호환성 탭을 클릭합니다.
-
4.1.1보다 낮은 버전에서 Red Hat Ceph Storage 클러스터를 최신 릴리스로 업데이트하고 새로 배포된 클러스터가 아닌 경우 외부 모드에서 CephFS PVC 생성을 활성화하려면 Red Hat Ceph Storage 클러스터에서 CephFS 풀의 애플리케이션 유형을 수동으로 설정해야 합니다.
자세한 내용은 외부 모드에서 CephFS PVC 생성 문제 해결을 참조하십시오.
- Red Hat Ceph Storage에는 Ceph 대시보드가 설치 및 구성되어 있어야 합니다. 자세한 내용은 Ceph 대시보드 설치 및 액세스를 참조하십시오.
- 외부 Red Hat Ceph Storage 클러스터에 PG Autoscaler가 활성화되어 있는 것이 좋습니다. 자세한 내용은 Red Hat Ceph Storage 문서의 배치 그룹 자동 스케일러 섹션을 참조하십시오.
- 외부 Ceph 클러스터에 사용하기 위해 사전 구성된 기존 RBD 풀이 있어야 합니다. 존재하지 않는 경우 OpenShift Data Foundation 배포를 진행하기 전에 Red Hat Ceph Storage 관리자에게 문의하십시오. Red Hat은 각 OpenShift Data Foundation 클러스터에 별도의 풀을 사용하는 것이 좋습니다.
-
선택 사항: 기본 zonegroup과 별도로 생성된 zonegroup이 있는 경우 이 호스트 이름과 함께 RADOS Object Gateways(RGW)에 S3 요청을 보낸 후 호스트 이름
rook-ceph-rgw-ocs-external-storagecluster-cephobjectstore.openshift-storage.svc
를 zonegroup에 추가해야 합니다. 자세한 내용은 Red Hat Knowledgebase 솔루션 Ceph - RGW 영역 그룹에 호스트 이름을 추가하는 방법을 참조하십시오.
절차
Operators
설치된 Operator 를 클릭하여 설치된 모든 Operator를 확인합니다. 선택한 프로젝트가
openshift-storage
인지 확인합니다.- OpenShift Data Foundation 을 클릭한 다음 Create StorageSystem 을 클릭합니다.
스토리지 백업 페이지에서 다음 옵션을 선택합니다.
- Deployment type (배포 유형) 옵션에 대해 Full deployment 를 선택합니다.
- 사용 가능한 옵션에서 외부 스토리지 플랫폼 연결을 선택합니다.
- Red Hat Ceph Storage for Storage 플랫폼을 선택합니다.
- 다음을 클릭합니다.
연결 세부 정보 페이지에서 필요한 정보를 제공합니다.
- 스크립트 다운로드 링크를 클릭하여 Ceph 클러스터 세부 정보를 추출하기 위해 python 스크립트를 다운로드합니다.
RHCS(Red Hat Ceph Storage) 클러스터 세부 정보를 추출하려면 RHCS 관리자에게 문의하여
admin 키를
사용하여 Red Hat Ceph Storage 노드에서 다운로드한 python 스크립트를 실행합니다.RHCS 노드에서 다음 명령을 실행하여 사용 가능한 인수 목록을 확인합니다.
# python3 ceph-external-cluster-details-exporter.py --help
중요Red Hat Ceph Storage 4.x 클러스터가 RHEL 7.x(RHEL 7.x) 클러스터에 배포된 경우
python
3 대신python3
을 사용합니다.MON 컨테이너(컨테이너 배포) 또는 MON 노드(RPM 배포) 내부에서 스크립트를 실행할 수도 있습니다.
참고yum install cephadm
명령을 사용한 다음cephadm
명령을 사용하여 컨테이너를 사용하여 RHCS 클러스터를 배포합니다. Ceph 패키지를 노드에 설치하기 위해yum
을 사용하는 대신cephadm
명령을 사용하여 RHCS 컨테이너 이미지를 가져와야 합니다. 자세한 내용은 RHCS 제품 설명서를 참조하십시오.RHCS 클러스터에서 외부 클러스터 세부 정보를 검색하려면 다음 명령을 실행합니다.
# python3 ceph-external-cluster-details-exporter.py \ --rbd-data-pool-name <rbd block pool name> [optional arguments]
예를 들어 다음과 같습니다.
# python3 ceph-external-cluster-details-exporter.py --rbd-data-pool-name ceph-rbd --monitoring-endpoint xxx.xxx.xxx.xxx --monitoring-endpoint-port xxxx --rgw-endpoint xxx.xxx.xxx.xxx:xxxx --run-as-user client.ocs
이 예에서, In this example,
rbd-data-pool-name
OpenShift Data Foundation에서 블록 스토리지를 제공하는 데 사용되는 필수 매개변수입니다.
rgw-endpoint
(선택 사항) 이 매개변수는 OpenShift Data Foundation용 Ceph Rados Gateway를 통해 오브젝트 스토리지를 프로비저닝하는 경우에만 필요합니다. 끝점을 다음 형식으로 제공합니다. <
ip_address>:<port>
참고FQDN(정규화된 도메인 이름)도 <FQDN>
:<PORT> 형식으로 지원됩니다
.monitoring-endpoint
(선택 사항) 이 매개변수는 OpenShift Container Platform 클러스터에서 연결할 수 있는 활성 및 Wait
mgrs
의 IP 주소 목록을 쉼표로 구분하여 사용할 수 있습니다. 제공하지 않으면 값이 자동으로 채워집니다.monitoring-endpoint-port
(선택 사항)
--monitoring-endpoint
에서 지정한ceph-mgr
Prometheus exporter와 연결된 포트입니다. 제공하지 않으면 값이 자동으로 채워집니다.run-as-user
(선택 사항) 이 매개변수는 스크립트에서 생성한 Ceph 사용자에 이름을 제공하는 데 사용됩니다. 이 매개변수를 지정하지 않으면 기본 사용자 이름
client.healthchecker
가 생성됩니다. 새 사용자에 대한 권한은 다음과 같이 설정됩니다.- caps: [mgr] allow 명령 구성
- caps: [mon] allow r, allow command quorum_status, allow command version
-
caps: [osd] allow rwx pool=
RGW_POOL_PREFIX.rgw.meta
, allow r pool= .rgw.root.rgw.root
, allow r pool=RGW_POOL_PREFIX.rgw.control
, allow r pool= RGW_POOL_PREFIX.rgw.control , allow r pool=RGW_POOL_PREFIX.rgw
x pool=RGW_POOL_PREFIX.rgw.buckets.index
를 허용합니다.
추가 플래그:
rgw-pool-prefix
(선택 사항) RGW 풀의 접두사입니다. 지정하지 않는 경우 기본 접두사는
기본
입니다.rgw-tls-cert-path
(선택 사항) RADOS Gateway 엔드포인트 TLS 인증서의 파일 경로입니다.
rgw-skip-tls
(선택 사항) 이 매개변수는 자체 서명된 인증서가 제공될 때 TLS 인증 검증을 무시합니다(NOT RECOMMENDED).
ceph-conf
(선택 사항) Ceph 구성 파일의 이름입니다.
cluster-name
(선택 사항) Ceph 클러스터 이름입니다.
출력 결과
(선택 사항) 출력을 저장해야 하는 파일입니다.
cephfs-metadata-pool-name
(선택 사항) CephFS 메타 데이터 풀의 이름입니다.
cephfs-data-pool-name
(선택 사항) CephFS 데이터 풀의 이름입니다.
cephfs-filesystem-name
(선택 사항) CephFS 파일 시스템의 이름입니다.
rbd-metadata-ec-pool-name
(선택 사항) 코딩된 RBD 메타데이터 풀의 이름.
dry-run
(선택 사항) 이 매개 변수는 실행된 명령을 실행하지 않고 출력하는 데 도움이 됩니다.
restricted-auth-permission
(선택 사항) 이 매개변수는
cephCSIKeyrings
인증 권한을 특정 풀 및 클러스터로 제한합니다. 이 값을 사용하여 설정해야 하는 필수 플래그는rbd-data-pool-name
및cluster-name
입니다. 권한이 특정 CephFS 파일 시스템으로 제한되도록 CephFS 사용자 제한이 있는 경우cephfs-filesystem-name
플래그를 전달할 수도 있습니다.참고이 매개변수는 새 배포에만 적용해야 합니다. 풀당
csi-users
csi-users
및 새 시크릿을 생성해야 합니다.제한된 인증 권한이 있는 예:
# python3 /etc/ceph/create-external-cluster-resources.py --cephfs-filesystem-name myfs --rbd-data-pool-name replicapool --cluster-name rookStorage --restricted-auth-permission true
python 스크립트를 사용하여 생성된 JSON 출력 예:
[{"name": "rook-ceph-mon-endpoints", "kind": "ConfigMap", "data": {"data": "xxx.xxx.xxx.xxx:xxxx", "maxMonId": "0", "mapping": "{}"}}, {"name": "rook-ceph-mon", "kind": "Secret", "data": {"admin-secret": "admin-secret", "fsid": "<fs-id>", "mon-secret": "mon-secret"}}, {"name": "rook-ceph-operator-creds", "kind": "Secret", "data": {"userID": "<user-id>", "userKey": "<user-key>"}}, {"name": "rook-csi-rbd-node", "kind": "Secret", "data": {"userID": "csi-rbd-node", "userKey": "<user-key>"}}, {"name": "ceph-rbd", "kind": "StorageClass", "data": {"pool": "<pool>"}}, {"name": "monitoring-endpoint", "kind": "CephCluster", "data": {"MonitoringEndpoint": "xxx.xxx.xxx.xxx", "MonitoringPort": "xxxx"}}, {"name": "rook-ceph-dashboard-link", "kind": "Secret", "data": {"userID": "ceph-dashboard-link", "userKey": "<user-key>"}}, {"name": "rook-csi-rbd-provisioner", "kind": "Secret", "data": {"userID": "csi-rbd-provisioner", "userKey": "<user-key>"}}, {"name": "rook-csi-cephfs-provisioner", "kind": "Secret", "data": {"adminID": "csi-cephfs-provisioner", "adminKey": "<admin-key>"}}, {"name": "rook-csi-cephfs-node", "kind": "Secret", "data": {"adminID": "csi-cephfs-node", "adminKey": "<admin-key>"}}, {"name": "cephfs", "kind": "StorageClass", "data": {"fsName": "cephfs", "pool": "cephfs_data"}}, {"name": "ceph-rgw", "kind": "StorageClass", "data": {"endpoint": "xxx.xxx.xxx.xxx:xxxx", "poolPrefix": "default"}}, {"name": "rgw-admin-ops-user", "kind": "Secret", "data": {"accessKey": "<access-key>", "secretKey": "<secret-key>"}}]
확장자가 있는 파일에 JSON 출력을
저장합니다.
참고OpenShift Data Foundation이 원활하게 작동하려면 JSON 파일을 사용하여 업로드할 매개변수(RGW 끝점, CephFS 세부 정보, RBD 풀 등)가 스토리지 클러스터를 생성한 후 RHCS 외부 클러스터에서 변경되지 않도록 합니다.
RHCS 클러스터가 이미 더 낮은 버전의 OpenShift Data Foundation 배포에 연결된 멀티 테넌트 배포가 있는 경우 명령을 실행합니다.
# python3 ceph-external-cluster-details-exporter.py --upgrade
찾아보기 를 클릭하여 JSON 파일을 선택하고 업로드합니다.
JSON 파일의 콘텐츠가 채워지고 텍스트 상자에 표시됩니다.
다음을클릭합니다.
다음 버튼은
.json
파일을 업로드한 후에만 활성화됩니다.
검토 및 생성 페이지에서 모든 세부 정보가 올바른지 확인합니다.
- 구성 설정을 수정하려면 뒤로 이동하여 이전 구성 페이지로 돌아갑니다.
- 스토리지 시스템 생성을 클릭합니다.
검증 단계
설치된 스토리지 클러스터의 최종 상태를 확인하려면 다음을 수행합니다.
-
OpenShift 웹 콘솔에서 설치된 Operator
OpenShift Data Foundation Storage System ocs-external-storagecluster-storagesystem Resources 로 이동합니다. -
StorageCluster
의Status
가Ready
이고 녹색 눈금이 있는지 확인합니다. - OpenShift Data Foundation, Pod 및 StorageClass가 성공적으로 설치 되었는지 확인하려면 외부 Ceph 스토리지 시스템의 외부 모드 OpenShift Data Foundation 설치 확인을 참조하십시오.