10.4. Ceph Orchestrator를 사용하여 다중 사이트 Ceph Object Gateway 배포
Ceph Orchestrator는 Ceph Object Gateway에 대한 다중 사이트 구성 옵션을 지원합니다.
기본이 아닌 영역에 쓰기를 허용하는 활성-활성 영역 구성에서 작동하도록 각 오브젝트 게이트웨이를 구성할 수 있습니다. 다중 사이트 구성은 영역이라는 컨테이너 내에 저장됩니다.
영역은 영역 그룹, 영역, 및 기간을 저장합니다. rgw
데몬은 동기화를 처리하여 별도의 동기화 에이전트의 필요성을 제거하여 활성-활성 구성으로 작동합니다.
CLI(명령줄 인터페이스)를 사용하여 다중 사이트 영역을 배포할 수도 있습니다.
다음 구성에서는 두 개 이상의 Red Hat Ceph Storage 클러스터가 지리적으로 분리된 위치에 있다고 가정합니다. 그러나 구성은 동일한 사이트에서도 작동합니다.
사전 요구 사항
- Red Hat Ceph Storage 클러스터를 두 개 이상 실행합니다.
- 각 Red Hat Ceph Storage 클러스터에 대해 각각 하나씩 두 개 이상의 Ceph Object Gateway 인스턴스.
- 모든 노드에 대한 루트 수준의 액세스.
- 노드 또는 컨테이너가 스토리지 클러스터에 추가됩니다.
- 모든 Ceph Manager, 모니터 및 OSD 데몬이 배포됩니다.
절차
cephadm
쉘에서 기본 영역을 구성합니다.영역을 생성합니다.
구문
radosgw-admin realm create --rgw-realm=REALM_NAME --default
예제
[ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=test_realm --default
스토리지 클러스터에 단일 영역이 있는 경우
--default
플래그를 지정합니다.기본 영역 그룹을 생성합니다.
구문
radosgw-admin zonegroup create --rgw-zonegroup=ZONE_GROUP_NAME --endpoints=http://RGW_PRIMARY_HOSTNAME:RGW_PRIMARY_PORT_NUMBER_1 --master --default
예제
[ceph: root@host01 /]# radosgw-admin zonegroup create --rgw-zonegroup=us --endpoints=http://rgw1:80 --master --default
기본 영역을 생성합니다.
구문
radosgw-admin zone create --rgw-zonegroup=PRIMARY_ZONE_GROUP_NAME --rgw-zone=PRIMARY_ZONE_NAME --endpoints=http://RGW_PRIMARY_HOSTNAME:RGW_PRIMARY_PORT_NUMBER_1 --access-key=SYSTEM_ACCESS_KEY --secret=SYSTEM_SECRET_KEY
예제
[ceph: root@host01 /]# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east-1 --endpoints=http://rgw1:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ
선택 사항: 기본 영역, 영역 그룹 및 관련 풀을 삭제합니다.
중요데이터를 저장하기 위해 기본 영역 및 영역 그룹을 사용하는 경우 기본 영역과 해당 풀을 삭제하지 마십시오. 또한 기본 영역 그룹을 제거하면 시스템 사용자가 삭제됩니다.
기본
영역 및 영역 그룹의 이전 데이터에 액세스하려면radosgw-admin
명령에서--rgw-zone default
및--rgw-zonegroup default
를 사용합니다.예제
[ceph: root@host01 /]# radosgw-admin zonegroup delete --rgw-zonegroup=default [ceph: root@host01 /]# ceph osd pool rm default.rgw.log default.rgw.log --yes-i-really-really-mean-it [ceph: root@host01 /]# ceph osd pool rm default.rgw.meta default.rgw.meta --yes-i-really-really-mean-it [ceph: root@host01 /]# ceph osd pool rm default.rgw.control default.rgw.control --yes-i-really-really-mean-it [ceph: root@host01 /]# ceph osd pool rm default.rgw.data.root default.rgw.data.root --yes-i-really-really-mean-it [ceph: root@host01 /]# ceph osd pool rm default.rgw.gc default.rgw.gc --yes-i-really-really-mean-it
시스템 사용자를 생성합니다.
구문
radosgw-admin user create --uid=USER_NAME --display-name="USER_NAME" --access-key=SYSTEM_ACCESS_KEY --secret=SYSTEM_SECRET_KEY --system
예제
[ceph: root@host01 /]# radosgw-admin user create --uid=zone.user --display-name="Zone user" --system
access_key
및secret_key
를 기록해 둡니다.기본 영역에 액세스 키와 시스템 키를 추가합니다.
구문
radosgw-admin zone modify --rgw-zone=PRIMARY_ZONE_NAME --access-key=ACCESS_KEY --secret=SECRET_KEY
예제
[ceph: root@host01 /]# radosgw-admin zone modify --rgw-zone=us-east-1 --access-key=NE48APYCAODEPLKBCZVQ --secret=u24GHQWRE3yxxNBnFBzjM4jn14mFIckQ4EKL6LoW
변경 사항을 커밋합니다.
구문
radosgw-admin period update --commit
예제
[ceph: root@host01 /]# radosgw-admin period update --commit
cephadm
쉘 외부에서 스토리지 클러스터 및 프로세스의FSID
를 가져옵니다.예제
[root@host01 ~]# systemctl list-units | grep ceph
Ceph Object Gateway 데몬을 시작합니다.
구문
systemctl start ceph-FSID@DAEMON_NAME systemctl enable ceph-FSID@DAEMON_NAME
예제
[root@host01 ~]# systemctl start ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-1.host01.ahdtsw.service [root@host01 ~]# systemctl enable ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-1.host01.ahdtsw.service
Cephadm 쉘에서 보조 영역을 구성합니다.
호스트에서 기본 영역 구성을 가져옵니다.
구문
radosgw-admin realm pull --rgw-realm=PRIMARY_REALM --url=URL_TO_PRIMARY_ZONE_GATEWAY --access-key=ACCESS_KEY --secret-key=SECRET_KEY --default
예제
[ceph: root@host04 /]# radosgw-admin realm pull --rgw-realm=test_realm --url=http://10.74.249.26:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ --default
호스트에서 기본 기간 구성을 가져옵니다.
구문
radosgw-admin period pull --url=URL_TO_PRIMARY_ZONE_GATEWAY --access-key=ACCESS_KEY --secret-key=SECRET_KEY
예제
[ceph: root@host04 /]# radosgw-admin period pull --url=http://10.74.249.26:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ
보조 영역을 구성합니다.
구문
radosgw-admin zone create --rgw-zonegroup=ZONE_GROUP_NAME \ --rgw-zone=SECONDARY_ZONE_NAME --endpoints=http://RGW_SECONDARY_HOSTNAME:RGW_PRIMARY_PORT_NUMBER_1 \ --access-key=SYSTEM_ACCESS_KEY --secret=SYSTEM_SECRET_KEY \ --endpoints=http://FQDN:80 \ [--read-only]
예제
[ceph: root@host04 /]# radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east-2 --endpoints=http://rgw2:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ
선택 사항: 기본 영역을 삭제합니다.
중요데이터를 저장하기 위해 기본 영역 및 영역 그룹을 사용하는 경우 기본 영역과 해당 풀을 삭제하지 마십시오.
기본
영역 및 영역 그룹의 이전 데이터에 액세스하려면radosgw-admin
명령에서--rgw-zone default
및--rgw-zonegroup default
를 사용합니다.예제
[ceph: root@host04 /]# radosgw-admin zone rm --rgw-zone=default [ceph: root@host04 /]# ceph osd pool rm default.rgw.log default.rgw.log --yes-i-really-really-mean-it [ceph: root@host04 /]# ceph osd pool rm default.rgw.meta default.rgw.meta --yes-i-really-really-mean-it [ceph: root@host04 /]# ceph osd pool rm default.rgw.control default.rgw.control --yes-i-really-really-mean-it [ceph: root@host04 /]# ceph osd pool rm default.rgw.data.root default.rgw.data.root --yes-i-really-really-mean-it [ceph: root@host04 /]# ceph osd pool rm default.rgw.gc default.rgw.gc --yes-i-really-really-mean-it
Ceph 구성 데이터베이스를 업데이트합니다.
구문
ceph config set SERVICE_NAME rgw_zone SECONDARY_ZONE_NAME
예제
[ceph: root@host04 /]# ceph config set rgw rgw_zone us-east-2
변경 사항을 커밋합니다.
구문
radosgw-admin period update --commit
예제
[ceph: root@host04 /]# radosgw-admin period update --commit
Cephadm 쉘 외부에서 스토리지 클러스터 및 프로세스의 FSID를 가져옵니다.
예제
[root@host04 ~]# systemctl list-units | grep ceph
Ceph Object Gateway 데몬을 시작합니다.
구문
systemctl start ceph-FSID@DAEMON_NAME systemctl enable ceph-FSID@DAEMON_NAME
예제
[root@host04 ~]# systemctl start ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-2.host04.ahdtsw.service [root@host04 ~]# systemctl enable ceph-62a081a6-88aa-11eb-a367-001a4a000672@rgw.test_realm.us-east-2.host04.ahdtsw.service
선택 사항: 배치 사양을 사용하여 다중 사이트 Ceph 오브젝트 게이트웨이를 배포합니다.
구문
ceph orch apply rgw NAME --realm=REALM_NAME --zone=PRIMARY_ZONE_NAME --placement="NUMBER_OF_DAEMONS HOST_NAME_1 HOST_NAME_2"
예제
[ceph: root@host04 /]# ceph orch apply rgw east --realm=test_realm --zone=us-east-1 --placement="2 host01 host02"
검증
동기화 상태를 확인하여 배포를 확인합니다.
예제
[ceph: root@host04 /]# radosgw-admin sync status