3.4. Ceph Orchestrator를 사용하여 다중 사이트 Ceph Object Gateway 배포

Ceph 오케스트레이션에서는 Ceph Object Gateway에 대한 다중 사이트 구성 옵션을 지원합니다.

각 오브젝트 게이트웨이가 액티브-액티브 영역 구성에서 작동하도록 구성하여 기본이 아닌 영역에 쓸 수 있습니다. 다중 사이트 구성은 영역이라는 컨테이너 내에 저장됩니다.

이 영역에서는 영역 그룹, 영역 및 기간을 저장합니다. rgw 데몬은 별도의 동기화 에이전트가 필요하지 않은 동기화를 처리하므로 액티브-액티브 구성으로 작동합니다.

CLI(명령줄 인터페이스)를 사용하여 다중 사이트 영역을 배포할 수도 있습니다.

참고

다음 구성에서는 두 개 이상의 Red Hat Ceph Storage 클러스터가 지리적으로 분리된 위치에 있다고 가정합니다. 그러나 이 구성은 동일한 사이트에서도 작동합니다.

사전 요구 사항

  • Red Hat Ceph Storage 클러스터 2개 이상 실행 중
  • Ceph Object Gateway 인스턴스 2개 이상(Red Hat Ceph Storage 클러스터당 하나씩).
  • 모든 노드에 대한 루트 수준 액세스.
  • 스토리지 클러스터에 노드 또는 컨테이너가 추가됩니다.
  • 모든 Ceph Manager, Monitor 및 OSD 데몬이 배포됩니다.

절차

  1. cephadm 쉘에서 기본 영역을 구성합니다.

    1. 영역을 생성합니다.

      구문

      radosgw-admin realm create --rgw-realm=REALM_NAME --default

      예제

      [ceph: root@host01 /]# radosgw-admin realm create --rgw-realm=test_realm --default

      스토리지 클러스터에 단일 영역이 있는 경우 --default 플래그를 지정합니다.

    2. 기본 영역 그룹을 생성합니다.

      구문

      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

    3. 기본 영역을 생성합니다.

      구문

      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

    4. 선택 사항: 기본 영역, 영역 그룹 및 관련 풀을 삭제합니다.

      중요

      기본 영역 및 영역 그룹을 사용하여 데이터를 저장하는 경우 기본 영역과 해당 풀을 삭제하지 마십시오. 또한 기본 영역 그룹을 제거하면 시스템 사용자를 삭제합니다.

      예제

      [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

    5. 시스템 사용자를 생성합니다.

      구문

      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 를 기록합니다.

    6. 기본 영역에 액세스 키와 시스템 키를 추가합니다.

      구문

      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

    7. 변경 사항을 커밋합니다.

      구문

      radosgw-admin period update --commit

      예제

      [ceph: root@host01 /]# radosgw-admin period update --commit

    8. cephadm 쉘 외부에서 스토리지 클러스터 및 프로세스의 FSID 를 가져옵니다.

      예제

      [root@host01 ~]#  systemctl list-units | grep ceph

    9. 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

  2. Cephadm 쉘에서 보조 영역을 구성합니다.

    1. 호스트에서 기본 영역 구성을 가져옵니다.

      구문

      radosgw-admin realm pull --url=URL_TO_PRIMARY_ZONE_GATEWAY --access-key=ACCESS_KEY --secret-key=SECRET_KEY

      예제

      [ceph: root@host04 /]# radosgw-admin realm pull --url=http://10.74.249.26:80 --access-key=LIPEYZJLTWXRKXS9LPJC --secret-key=IsAje0AVDNXNw48LjMAimpCpI7VaxJYSnfD0FFKQ

    2. 호스트에서 기본 기간 구성을 가져옵니다.

      구문

      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

    3. 보조 영역을 구성합니다.

      구문

      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

    4. 선택 사항: 기본 영역을 삭제합니다.

      중요

      기본 영역 및 영역 그룹을 사용하여 데이터를 저장하는 경우 기본 영역과 해당 풀을 삭제하지 마십시오.

      예제

      [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

    5. Ceph 구성 데이터베이스를 업데이트합니다.

      구문

      ceph config set _SERVICE_NAME_ rgw_zone _SECONDARY_ZONE_NAME_

      예제

      [ceph: root@host04 /]# ceph config set rgw rgw_zone us-east-2

    6. 변경 사항을 커밋합니다.

      구문

      radosgw-admin period update --commit

      예제

      [ceph: root@host04 /]# radosgw-admin period update --commit

    7. Cephadm 쉘 외부에서 스토리지 클러스터의 FSID와 프로세스를 가져옵니다.

      예제

      [root@host04 ~]#  systemctl list-units | grep ceph

    8. 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

  3. 선택 사항: 배치 사양을 사용하여 다중 사이트 Ceph Object Gateway를 배포합니다.

    구문

    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