3.5. Ceph Manager rgw 모듈 사용
스토리지 관리자는 rgw 모듈을 사용하여 Ceph Object Gateway, 단일 사이트 및 다중 사이트를 배포할 수 있습니다. Ceph Object 영역, zonegroup 및 다양한 관련 엔티티를 부트 스트랩하고 구성하는 데 도움이 됩니다.
새로 생성된 또는 기존 영역에 사용 가능한 토큰을 사용할 수 있습니다. 이 토큰은 영역 정보 및 해당 마스터 영역 끝점 인증 데이터를 캡슐화하는 base64 문자열입니다.
다중 사이트 구성에서 이러한 토큰을 사용하여 rgw zone create 명령을 사용하여 기본 클러스터의 마스터 영역과 동기화하는 다른 클러스터에 보조 영역을 생성하는 데 사용할 수 있습니다.
3.5.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 - barYAML 파일을 컨테이너의 디렉터리에 마운트합니다.
예
[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.5.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: pass:q[REALM_NAME] rgw_zonegroup: pass:q[ZONEGROUP_NAME] rgw_zone: pass:q[ZONE_NAME] placement: hosts: - pass:q[HOSTNAME_1] - pass:q[HOSTNAME_2] spec: rgw_frontend_port: pass:q[PORT_NUMBER] zone_endpoints:pass:q[ http://RGW_HOSTNAME_1]:pass:q[RGW_PORT_NUMBER_1], pass:q[http://RGW_HOSTNAME_2]:pass:q[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>-
선택 사항: 해당 클라이언트 rgw의 경우 Ceph Object Gateway 사양 파일의 spec 섹션에서
disable_multisite_sync_traffic:true를 설정합니다. 그런 다음 cephadm 은 RGW 데몬에 대해rgw_run_sync_thread구성을 false로 설정하여 동기화 작업에 참여하지 않도록 합니다. 이 자동화로 인해 해당 RGW 사용자에 대해 rgw_run_sync_thread를 수동으로 구성할 필요가 없습니다.
-
선택 사항: 해당 클라이언트 rgw의 경우 Ceph Object Gateway 사양 파일의 spec 섹션에서
구문
ceph config set <client_rgw_daemon> rgw_run_sync_thread false+
다음 예에서 RGW 서비스 io.rgw는 disable_multisite_sync_traffic: true로 구성되므로 클라이언트 IO만 처리합니다. 기본적으로 RGW 서비스 sync.rgw는 disable_multisite_sync_traffic가 false이므로 다중 사이트 동기화 작업에 참여하도록 구성됩니다.
+ .example
[root@host01 ~]# cat rgw.yaml service_id: io.rgw service_name: rgw.io.rgw rgw_realm: myrealm rgw_zonegroup: myzonegroup rgw_zone: myzone placement: hosts: - rgw_host1 - rgw_host2 spec: rgw_frontend_port: <rgw_port> disable_multisite_sync_traffic: true service_id: sync.rgw service_name: rgw.sync.rgw rgw_realm: myrealm rgw_zonegroup: myzonegroup rgw_zone: myzone placement: hosts: - rgw_host3 - rgw_host4 spec: rgw_frontend_port: <rgw_port> zone_endpoints: http://<rgw_host3>:<rgw_port>, http://<rgw_host4>:<rgw_port>+
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배포 중에 특정 RGW 서비스에 대한 다중 사이트 동기화 트래픽 매개변수를 비활성화하려면 3(b 선택 사항) 단계를 따르십시오. 이 설정은 배포 중에 특정 RGW 서비스에 대한 다중 사이트 동기화 트래픽을 비활성화하므로 클라이언트 IO만 처리합니다.
컨테이너의 디렉터리에
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" ] }