3.6. Ceph Manager rgw 모듈 사용
스토리지 관리자는 rgw
모듈을 사용하여 Ceph Object Gateway, 단일 사이트 및 다중 사이트를 배포할 수 있습니다. Ceph Object 영역, zonegroup 및 다양한 관련 엔티티를 부트 스트랩하고 구성하는 데 도움이 됩니다.
새로 생성된 또는 기존 영역에 사용 가능한 토큰을 사용할 수 있습니다. 이 토큰은 영역 정보 및 해당 마스터 영역 끝점 인증 데이터를 캡슐화하는 base64 문자열입니다.
다중 사이트 구성에서 이러한 토큰을 사용하여 rgw zone create
명령을 사용하여 기본 클러스터의 마스터 영역과 동기화하는 다른 클러스터에 보조 영역을 생성하는 데 사용할 수 있습니다.
3.6.1. rgw
모듈을 사용하여 Ceph Object Gateway 배포
Ceph Object Gateway 영역을 부트 스트랩하면 새 영역 엔티티, 새 영역 그룹, 새 영역이 생성됩니다. rgw
모듈은 해당 Ceph Object Gateway 데몬을 생성하고 배포하도록 오케스트레이터에 지시합니다.
ceph mgr 모듈 enable
. rgw
명령을 사용하여 rgw 모듈을 활성화합니다rgw
모듈을 활성화한 후 명령줄에서 인수를 전달하거나 yaml
사양 파일을 사용하여 영역을 부트스트랩합니다.
사전 요구 사항
- 하나 이상의 OSD가 배포된 실행 중인 Red Hat Ceph Storage 클러스터
프로세스
Cephadm 쉘에 로그인합니다.
예
[root@host01 ~]# cephadm shell
'rgw'module을 활성화합니다.
예
[ceph: root@host01 /]# ceph mgr module enable rgw
명령줄 또는 yaml 사양 파일을 사용하여 Ceph Object Gateway 영역을 부트스트랩합니다.
옵션 1: 명령줄 인터페이스를 사용합니다.
구문
ceph rgw realm bootstrap [--realm name REALM_NAME] [--zonegroup-name ZONEGROUP_NAME] [--zone-name ZONE_NAME] [--port PORT_NUMBER] [--placement HOSTNAME] [--start-radosgw]
예
[ceph: root@host01 /]# ceph rgw realm bootstrap --realm-name myrealm --zonegroup-name myzonegroup --zone-name myzone --port 5500 --placement="host01 host02" --start-radosgw Realm(s) created correctly. Please, use 'ceph rgw realm tokens' to get the token.
옵션 2: yaml 사양 파일을 사용합니다.
root 사용자로 yaml 파일을 생성합니다.
구문
rgw_realm: REALM_NAME rgw_zonegroup: ZONEGROUP_NAME rgw_zone: ZONE_NAME placement: hosts: - _HOSTNAME_1_ - _HOSTNAME_2_
예
[root@host01 ~]# cat rgw.yaml rgw_realm: myrealm rgw_zonegroup: myzonegroup rgw_zone: myzone placement: hosts: - host01 - host02
선택 사항: 영역 부트스트랩 중에
hostnames
매개변수를 zonegroup에 추가할 수 있습니다.구문
service_type: rgw placement: hosts: - _host1_ - _host2_ spec: rgw_realm: my_realm rgw_zonegroup: my_zonegroup rgw_zone: my_zone zonegroup_hostnames: - _hostname1_ - _hostname2_
예
service_type: rgw placement: hosts: - _host1_ - _host2_ spec: rgw_realm: my_realm rgw_zonegroup: my_zonegroup rgw_zone: my_zone zonegroup_hostnames: - foo - bar
YAML 파일을 컨테이너의 디렉터리에 마운트합니다.
예
[root@host01 ~]# cephadm shell --mount rgw.yaml:/var/lib/ceph/rgw/rgw.yaml
영역을 부트스트랩합니다.
예
[ceph: root@host01 /]# ceph rgw realm bootstrap -i /var/lib/ceph/rgw/rgw.yaml
참고rgw
모듈에서 사용하는 사양 파일은 오케스트레이터에서 사용하는 형식과 동일합니다. 따라서 SSL 인증서와 같은 고급 구성 기능을 포함하여 지원되는 모든 오케스트레이션 Ceph Object Gateway 매개변수를 제공할 수 있습니다.
사용 가능한 토큰을 나열합니다.
예
[ceph: root@host01 /]# ceph rgw realm tokens | jq [ { "realm": "myrealm", "token": "ewogICAgInJlYWxtX25hbWUiOiAibXlyZWFsbSIsCiAgICAicmVhbG1faWQiOiAiZDA3YzAwZWYtOTA0MS00ZjZlLTg4MDQtN2Q0MDI0MDU1NmFlIiwKICAgICJlbmRwb2ludCI6ICJodHRwOi8vdm0tMDA6NDMyMSIsCiAgICAiYWNjZXNzX2tleSI6ICI5NTY1VFZSMVFWTExFRzdVNFIxRCIsCiAgICAic2VjcmV0IjogImQ3b0FJQXZrNEdYeXpyd3Q2QVZ6bEZNQmNnRG53RVdMMHFDenE3cjUiCn1=" } ]
참고Ceph Object Gateway 데몬이 배포되기 전에 위의 명령을 실행하면 엔드포인트가 없으므로 토큰이 없다는 메시지가 표시됩니다.
검증
오브젝트 게이트웨이 배포를 확인합니다.
예
[ceph: root@host01 /]# ceph orch list --daemon-type=rgw NAME HOST PORTS STATUS REFRESHED AGE MEM USE MEM LIM VERSION IMAGE ID CONTAINER ID rgw.myrealm.myzonegroup.ceph-saya-6-osd-host01.eburst ceph-saya-6-osd-host01 *:80 running (111m) 9m ago 111m 82.3M - 17.2.6-22.el9cp 2d5b080de0b0 2f3eaca7e88e
영역 부트스트랩을
통해 호스트
이름이 추가되었는지 확인합니다.구문
radosgw-admin zonegroup get --rgw-zonegroup _zone_group_name_
예
[ceph: root@host01 /]# radosgw-admin zonegroup get --rgw-zonegroup my_zonegroup { "id": "02a175e2-7f23-4882-8651-6fbb15d25046", "name": "my_zonegroup_ck", "api_name": "my_zonegroup_ck", "is_master": true, "endpoints": [ "http://vm-00:80" ], "hostnames": [ "foo" "bar" ], "hostnames_s3website": [], "master_zone": "f42fea84-a89e-4995-996e-61b7223fb0b0", "zones": [ { "id": "f42fea84-a89e-4995-996e-61b7223fb0b0", "name": "my_zone_ck", "endpoints": [ "http://vm-00:80" ], "log_meta": false, "log_data": false, "bucket_index_max_shards": 11, "read_only": false, "tier_type": "", "sync_from_all": true, "sync_from": [], "redirect_zone": "", "supported_features": [ "compress-encrypted", "resharding" ] } ], "placement_targets": [ { "name": "default-placement", "tags": [], "storage_classes": [ "STANDARD" ] } ], "default_placement": "default-placement", "realm_id": "439e9c37-4ddc-43a3-99e9-ea1f3825bb51", "sync_policy": { "groups": [] }, "enabled_features": [ "resharding" ] }
Ceph Object Gateway 사양 파일의
zonegroup_hostnames
에 지정된 호스트 이름 목록은 zonegroups의hostnames
섹션을 참조하십시오.
3.6.2. rgw
모듈을 사용하여 Ceph Object Gateway 다중 사이트 배포
Ceph Object Gateway 영역을 부트 스트랩하면 새 영역 엔티티, 새 영역 그룹, 새 영역이 생성됩니다. 다중 사이트 동기화 작업에 사용할 수 있는 새 시스템 사용자를 구성합니다. rgw
모듈은 해당 Ceph Object Gateway 데몬을 생성하고 배포하도록 오케스트레이터에 지시합니다.
ceph mgr 모듈 enable
. rgw
명령을 사용하여 rgw 모듈을 활성화합니다rgw
모듈을 활성화한 후 명령줄에서 인수를 전달하거나 yaml
사양 파일을 사용하여 영역을 부트스트랩합니다.
사전 요구 사항
- 하나 이상의 OSD가 배포된 실행 중인 Red Hat Ceph Storage 클러스터
프로세스
Cephadm 쉘에 로그인합니다.
예
[root@host01 ~]# cephadm shell
'rgw'module을 활성화합니다.
예
[ceph: root@host01 /]# ceph mgr module enable rgw
명령줄 또는 yaml 사양 파일을 사용하여 Ceph Object Gateway 영역을 부트스트랩합니다.
옵션 1: 명령줄 인터페이스를 사용합니다.
구문
ceph rgw realm bootstrap [--realm name REALM_NAME] [--zonegroup-name ZONEGROUP_NAME] [--zone-name ZONE_NAME] [--port PORT_NUMBER] [--placement HOSTNAME] [--start-radosgw]
예
[ceph: root@host01 /]# ceph rgw realm bootstrap --realm-name myrealm --zonegroup-name myzonegroup --zone-name myzone --port 5500 --placement="host01 host02" --start-radosgw Realm(s) created correctly. Please, use 'ceph rgw realm tokens' to get the token.
옵션 2: yaml 사양 파일을 사용합니다.
root 사용자로 yaml 파일을 생성합니다.
구문
rgw_realm: REALM_NAME rgw_zonegroup: ZONEGROUP_NAME rgw_zone: ZONE_NAME placement: hosts: - HOSTNAME_1 - HOSTNAME_2 spec: rgw_frontend_port: PORT_NUMBER zone_endpoints: http://RGW_HOSTNAME_1:RGW_PORT_NUMBER_1, http://RGW_HOSTNAME_2:RGW_PORT_NUMBER_2
예
[root@host01 ~]# cat rgw.yaml rgw_realm: myrealm rgw_zonegroup: myzonegroup rgw_zone: myzone placement: hosts: - host01 - host02 spec: rgw_frontend_port: 5500 zone_endpoints: http://<rgw_host1>:<rgw_port1>, http://<rgw_host2>:<rgw_port2>
YAML 파일을 컨테이너의 디렉터리에 마운트합니다.
예
[root@host01 ~]# cephadm shell --mount rgw.yaml:/var/lib/ceph/rgw/rgw.yaml
영역을 부트스트랩합니다.
예
[ceph: root@host01 /]# ceph rgw realm bootstrap -i /var/lib/ceph/rgw/rgw.yaml
참고rgw
모듈에서 사용하는 사양 파일은 오케스트레이터에서 사용하는 형식과 동일합니다. 따라서 SSL 인증서와 같은 고급 구성 기능을 포함하여 지원되는 모든 오케스트레이션 Ceph Object Gateway 매개변수를 제공할 수 있습니다.
사용 가능한 토큰을 나열합니다.
예
[ceph: root@host01 /]# ceph rgw realm tokens | jq [ { "realm": "myrealm", "token": "ewogICAgInJlYWxtX25hbWUiOiAibXlyZWFsbSIsCiAgICAicmVhbG1faWQiOiAiZDA3YzAwZWYtOTA0MS00ZjZlLTg4MDQtN2Q0MDI0MDU1NmFlIiwKICAgICJlbmRwb2ludCI6ICJodHRwOi8vdm0tMDA6NDMyMSIsCiAgICAiYWNjZXNzX2tleSI6ICI5NTY1VFZSMVFWTExFRzdVNFIxRCIsCiAgICAic2VjcmV0IjogImQ3b0FJQXZrNEdYeXpyd3Q2QVZ6bEZNQmNnRG53RVdMMHFDenE3cjUiCn1=" } ]
참고Ceph Object Gateway 데몬이 배포되기 전에 위의 명령을 실행하면 엔드포인트가 없으므로 토큰이 없다는 메시지가 표시됩니다.
이러한 토큰을 사용하여 보조 영역을 생성하고 기존 영역에 결합합니다.
root 사용자로 yaml 파일을 생성합니다.
예
[root@host01 ~]# cat zone-spec.yaml rgw_zone: my-secondary-zone rgw_realm_token: <token> placement: hosts: - ceph-node-1 - ceph-node-2 spec: rgw_frontend_port: 5500
컨테이너의 디렉터리에
zone-spec.yaml
파일을 마운트합니다.예
[root@host01 ~]# cephadm shell --mount zone-spec.yaml:/var/lib/ceph/radosgw/zone-spec.yaml
보조 영역에서 rgw'module을 활성화합니다.
예
[ceph: root@host01 /]# ceph mgr module enable rgw
보조 영역을 생성합니다.
예
[ceph: root@host01 /]# ceph rgw zone create -i /var/lib/ceph/radosgw/zone-spec.yaml
검증
Object Gateway 다중 사이트 배포를 확인합니다.
예
[ceph: root@host01 /]# radosgw-admin realm list { "default_info": "d07c00ef-9041-4f6e-8804-7d40240556ae", "realms": [ "myrealm" ] }