Red Hat Training
A Red Hat training course is available for Red Hat Ceph Storage
3.6. Ceph Object Gateway 설치
RADOS 게이트웨이라고도 하는 Ceph Object Gateway는 librados API 상단에 구축된 오브젝트 스토리지 인터페이스로, Ceph 스토리지 클러스터에 RESTful 게이트웨이를 제공합니다.
사전 요구 사항
-
실행 중인 Red Hat Ceph Storage 클러스터, 바람직하게는
활성 + 클린상태입니다. - Ceph Object Gateway 노드에서 2장. Red Hat Ceph Storage 설치 요구사항 에 나열된 작업을 수행합니다.
절차
Ansible 관리 노드에서 다음 작업을 수행합니다.
게이트웨이 호스트를
[rgws]섹션 아래의/etc/ansible/hosts파일에 추가하여 Ansible에 대한 역할을 확인합니다. 호스트에 순차적 이름 지정이 있는 경우 범위를 사용합니다. 예를 들면 다음과 같습니다.[rgws] <rgw_host_name_1> <rgw_host_name_2> <rgw_host_name[3..10]>
Ansible 구성 디렉터리로 이동합니다.
[root@ansible ~]# cd /usr/share/ceph-ansible
샘플 파일에서
rgws.yml파일을 생성합니다.[root@ansible ~]# cp group_vars/rgws.yml.sample group_vars/rgws.yml
group_vars/rgws.yml파일을 열고 편집합니다. 관리자 키를 Ceph Object Gateway 노드에 복사하려면copy_admin_key옵션의 주석을 제거합니다.copy_admin_key: true
rgws.yml파일은 기본 포트7480과 다른 기본 포트를 지정할 수 있습니다. 예를 들면 다음과 같습니다.ceph_rgw_civetweb_port: 80
all.yml파일은radosgw_interface 를 지정해야 합니다. 예를 들면 다음과 같습니다.radosgw_interface: eth0
인터페이스를 지정하면 Civetweb이 동일한 호스트에서 여러 인스턴스를 실행할 때 다른 Civetweb 인스턴스와 동일한 IP 주소에 바인딩되지 않습니다.
일반적으로 기본 설정을 변경하려면
rgw.yml파일의 설정 주석 처리를 해제하고 적절하게 변경합니다.rgw.yml파일에 없는 설정을 추가로 변경하려면all.yml파일에서ceph_conf_overrides:를 사용합니다. 예를 들어 DNS 서버의 호스트를 사용하여rgw_dns_name:을 설정하고 와일드카드가 S3 하위 도메인을 사용하도록 클러스터의 DNS 서버를 구성해야 합니다.ceph_conf_overrides: client.rgw.rgw1: rgw_dns_name: <host_name> rgw_override_bucket_index_max_shards: 16 rgw_bucket_default_quota_max_objects: 1638400고급 구성 정보는 Red Hat Ceph Storage 3 Ceph Object Gateway for Production 가이드를 참조하십시오. 고급 주제는 다음과 같습니다.
- Ansible 그룹 구성
스토리지 전략 개발. 풀을 생성하고 구성하는 방법에 대한 자세한 내용은 루트풀 생성, 시스템 풀 생성, 데이터 배치 전략 생성 섹션을 참조하십시오.
버킷 샤딩에 대한 구성 정보는 Bucket Sharding 을 참조하십시오.
group_vars/all.yml파일의radosgw_interface매개변수의 주석을 제거합니다.radosgw_interface: <interface>
교체:
-
Ceph Object Gateway 노드가 수신하는 인터페이스를 사용하여
<interface>
자세한 내용은
all.yml파일을 참조하십시오.-
Ceph Object Gateway 노드가 수신하는 인터페이스를 사용하여
Ansible Playbook을 실행합니다.
[user@admin ceph-ansible]$ ansible-playbook site.yml --limit rgws
Ansible은 각 Ceph Object Gateway가 실행 중인지 확인합니다.
단일 사이트 구성의 경우 Ansible 구성에 Ceph Object Gateway를 추가합니다.
다중 사이트 배포의 경우 각 영역에 대한 Ansible 구성이 있어야 합니다. 즉, Ansible은 Ceph 스토리지 클러스터 및 해당 영역의 게이트웨이 인스턴스를 만듭니다.
다중 사이트 클러스터에 대한 설치가 완료되면 Red Hat Enterprise Linux의 오브젝트 게이트웨이 가이드에 있는 다중 사이트 장으로 이동하여 다중 사이트용 클러스터를 구성하는 방법에 대해 자세히 알아보십시오.
추가 리소스
3.6.1. 다중 사이트 Ceph Object Gateway 구성
Ansible은 다중 사이트 환경에서 Ceph Object Gateway의 마스터 및 보조 영역과 함께 영역 zonegroup을 구성합니다.
사전 요구 사항
- Red Hat Ceph Storage 클러스터를 실행하는 두 개.
- Ceph Object Gateway 노드에서 Red Hat Ceph Storage 설치 가이드에 있는 Red Hat Ceph Storage 설치 요구 사항에 나열된 작업을 수행합니다.
- 스토리지 클러스터당 하나의 Ceph Object Gateway를 설치하고 구성합니다.
절차
기본 스토리지 클러스터에 대해 Ansible 노드에서 다음 단계를 수행합니다.
시스템 키를 생성하고
다중 사이트-keys.txt 파일에서 출력을 캡처합니다.[root@ansible ~]# echo system_access_key: $(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 20 | head -n 1) > multi-site-keys.txt [root@ansible ~]# echo system_secret_key: $(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 40 | head -n 1) >> multi-site-keys.txt
Ansible 구성 디렉터리
/usr/share/ceph-ansible로 이동합니다.[root@ansible ~]# cd /usr/share/ceph-ansible
group_vars/all.yml파일을 열고 편집합니다.$ZONE_NAME,$ZONE_GROUP_NAME,$REALM_NAME,$ACCESS_KEY, 및$SECRET_KEY값을 업데이트하는 것과 함께 다음 옵션을 추가하여 다중 사이트 지원을 활성화합니다.Ceph Object Gateway가 두 개 이상 마스터 영역에 있는 경우
rgw_multisite_endpoints옵션을 설정해야 합니다.rgw_multisite_endpoints옵션의 값은 공백 없이 쉼표로 구분된 목록입니다.예제
rgw_multisite: true rgw_zone: $ZONE_NAME rgw_zonemaster: true rgw_zonesecondary: false rgw_multisite_endpoint_addr: "{{ ansible_fqdn }}" rgw_multisite_endpoints: http://foo.example.com:8080,http://bar.example.com:8080,http://baz.example.com:8080 rgw_zonegroup: $ZONE_GROUP_NAME rgw_zone_user: zone.user rgw_realm: $REALM_NAME system_access_key: $ACCESS_KEY system_secret_key: $SECRET_KEY참고ansible_fqdn도메인 이름은 보조 스토리지 클러스터에서 확인할 수 있어야 합니다.참고새 오브젝트 게이트웨이를 추가할 때 Ansible 플레이북을 실행하기 전에 새 오브젝트 게이트웨이의 엔드포인트 URL을 사용하여
rgw_multisite_endpoints목록 끝에 추가합니다.Ansible Playbook을 실행합니다.
[user@ansible ceph-ansible]$ ansible-playbook site.yml --limit rgws
Ceph Object Gateway 데몬을 다시 시작합니다.
[root@rgw ~]# systemctl restart ceph-radosgw@rgw.`hostname -s`
보조 스토리지 클러스터에 대해 Ansible 노드에서 다음 단계를 수행합니다.
Ansible 구성 디렉터리
/usr/share/ceph-ansible로 이동합니다.[root@ansible ~]# cd /usr/share/ceph-ansible
group_vars/all.yml파일을 열고 편집합니다.$ZONE_NAME,$ZONE_GROUP_NAME,$REALM_NAME,$ACCESS_KEY, 및$SECRET_KEY값을 업데이트하는 것과 함께 다음 옵션을 추가하여 다중 사이트 지원을 활성화합니다.rgw_zone_user,system_access_key,system_secret_key는 마스터 영역 구성에 사용된 것과 동일한 값이어야 합니다.rgw_pullhost옵션은 마스터 영역의 Ceph Object Gateway여야 합니다.Ceph Object Gateway가 보조 영역에 있는 경우
rgw_multisite_endpoints옵션을 설정해야 합니다.rgw_multisite_endpoints옵션의 값은 공백 없이 쉼표로 구분된 목록입니다.예제
rgw_multisite: true rgw_zone: $ZONE_NAME rgw_zonemaster: false rgw_zonesecondary: true rgw_multisite_endpoint_addr: "{{ ansible_fqdn }}" rgw_multisite_endpoints: http://foo.example.com:8080,http://bar.example.com:8080,http://baz.example.com:8080 rgw_zonegroup: $ZONE_GROUP_NAME rgw_zone_user: zone.user rgw_realm: $REALM_NAME system_access_key: $ACCESS_KEY system_secret_key: $SECRET_KEY rgw_pull_proto: http rgw_pull_port: 8080 rgw_pullhost: $MASTER_RGW_NODE_NAME참고ansible_fqdn도메인 이름은 기본 스토리지 클러스터에서 확인할 수 있어야 합니다.참고새 오브젝트 게이트웨이를 추가할 때 Ansible 플레이북을 실행하기 전에 새 오브젝트 게이트웨이의 엔드포인트 URL을 사용하여
rgw_multisite_endpoints목록 끝에 추가합니다.Ansible Playbook을 실행합니다.
[user@ansible ceph-ansible]$ ansible-playbook site.yml --limit rgws
Ceph Object Gateway 데몬을 다시 시작합니다.
[root@rgw ~]# systemctl restart ceph-radosgw@rgw.`hostname -s`
- 마스터 및 보조 스토리지 클러스터에서 Ansible 플레이북을 실행하면 활성-활성 Ceph Object Gateway 구성이 실행됩니다.
다중 사이트 Ceph Object Gateway 구성을 확인합니다.
-
각 사이트의 Ceph Monitor 및 Object Gateway 노드에서 기본 및 보조 사이트를 컬링할
수있어야 합니다. -
두 사이트 모두에서
radosgw-admin 동기화 status명령을 실행합니다.
-
각 사이트의 Ceph Monitor 및 Object Gateway 노드에서 기본 및 보조 사이트를 컬링할