4.8. Ceph Object Gateway의 고가용성
스토리지 관리자는 Ceph Object Gateway의 많은 인스턴스를 단일 영역에 할당할 수 있습니다. 이를 통해 부하, 즉 동일한 영역 그룹 및 영역이 증가함에 따라 확장할 수 있지만 고가용성 프록시를 사용하기 위해 페더레이션 아키텍처가 필요하지 않습니다. 각 Ceph Object Gateway 데몬에는 자체 IP 주소가 있으므로 ingress
서비스를 사용하여 여러 Ceph Object Gateway 데몬 또는 노드에서 부하를 분산할 수 있습니다. 수신
서비스는 Ceph Object Gateway 환경의 HAProxy 및 keepalived
데몬을 관리합니다. HAProxy 서버에서 HTTPS 트래픽을 종료하고 Ceph Object Gateway의 HAProxy 서버와 Beast 프런트 엔드 웹 서버 인스턴스 간에 HTTP를 사용할 수도 있습니다.
사전 요구 사항
- 다른 호스트에서 실행 중인 두 개 이상의 Ceph Object Gateway 데몬.
-
다른 호스트에서 실행되는
수신
서비스의 두 개 이상의 인스턴스 용량.
4.8.1. 고가용성 서비스
수신
서비스는 Ceph Object Gateway에 고가용성 엔드포인트를 제공합니다. 수신
서비스는 필요에 따라 원하는 수의 호스트에 배포할 수 있습니다. Red Hat은 각 서버가 수신
서비스로 구성된 Red Hat Enterprise Linux 서버를 두 개 이상 지원하는 것이 좋습니다. 최소 구성 옵션 세트로 HA(고가용성) 서비스를 실행할 수 있습니다. Ceph 오케스트레이터는 유동 가상 IP 주소로 로드 밸런싱을 제공하여 haproxy
및 keepalived
데몬을 관리하는 수신
서비스를 배포합니다. 활성 haproxy
는 모든 Ceph Object Gateway 요청을 사용 가능한 모든 Ceph Object Gateway 데몬에 배포합니다.
가상 IP 주소는 기본 호스트라고 하는 수신
호스트 중 하나에 자동으로 구성됩니다. Ceph 오케스트레이터는 동일한 서브넷의 일부로 구성된 기존 IP 주소를 기반으로 첫 번째 네트워크 인터페이스를 선택합니다. 가상 IP 주소가 동일한 서브넷에 속하지 않는 경우 기존 IP 주소와 일치하도록 Ceph 오케스트레이터의 서브넷 목록을 정의할 수 있습니다. keepalived
데몬과 활성 haproxy
가 기본 호스트에 응답하지 않으면 가상 IP 주소가 백업 호스트로 이동합니다. 이 백업 호스트가 새 기본 호스트가 됩니다.
현재 구성된 IP 주소가 없는 네트워크 인터페이스에서 가상 IP 주소를 구성할 수 없습니다.
SSL(보안 소켓 계층)을 사용하려면 Ceph Object Gateway가 아닌 Ingress
서비스에서 SSL을 종료해야 합니다.
4.8.2. Ceph Object Gateway의 고가용성 구성
Ceph Object Gateway에 대한 HA(고가용성)를 구성하려면 YAML 구성 파일을 작성하고 Ceph 오케스트레이터는 인그레스
서비스의 설치, configuraton 및 관리를 수행합니다. 수신
서비스는 haproxy
및 keepalived
데몬을 사용하여 Ceph Object Gateway의 고가용성을 제공합니다.
Ceph 8.0 릴리스에서는 RGW를 사용하여 백엔드로 수신 서비스를 배포할 수 있습니다. 여기서 Ingress 사양의 "spec" 섹션에서 "use_tcp_mode_over_rgw" 옵션이 true로 설정됩니다.
사전 요구 사항
-
수신
서비스를 설치하기 위해 Red Hat Enterprise Linux 9 이상을 실행하는 최소 두 개의 호스트. - 정상 실행 Red Hat Ceph Storage 클러스터.
- 다른 호스트에서 실행되는 최소 두 개의 Ceph Object Gateway 데몬입니다.
-
Ingress
서비스를 실행하는 호스트에 대한 루트 수준 액세스. - 방화벽을 사용하는 경우 HTTP 및 HTTPS 트래픽의 경우 포트 443에 대해 포트 80을 엽니다.
프로세스
새
ingress.yaml
파일을 생성합니다.예
[root@host01 ~] touch ingress.yaml
편집할
ingress.yaml
파일을 엽니다. 다음 옵션을 추가하고 환경에 적용할 수 있는 값을 추가합니다.구문
service_type: ingress 1 service_id: SERVICE_ID 2 placement: 3 hosts: - HOST1 - HOST2 - HOST3 spec: backend_service: SERVICE_ID virtual_ip: IP_ADDRESS/CIDR 4 frontend_port: INTEGER 5 monitor_port: INTEGER 6 virtual_interface_networks: 7 - IP_ADDRESS/CIDR ssl_cert: | 8
SSL 인증서 제공 예
service_type: ingress service_id: rgw.foo placement: hosts: - host01.example.com - host02.example.com - host03.example.com spec: backend_service: rgw.foo virtual_ip: 192.168.1.2/24 frontend_port: 8080 monitor_port: 1967 virtual_interface_networks: - 10.10.0.0/16 ssl_cert: | -----BEGIN CERTIFICATE----- MIIEpAIBAAKCAQEA+Cf4l9OagD6x67HhdCy4Asqw89Zz9ZuGbH50/7ltIMQpJJU0 gu9ObNtIoC0zabJ7n1jujueYgIpOqGnhRSvsGJiEkgN81NLQ9rqAVaGpadjrNLcM bpgqJCZj0vzzmtFBCtenpb5l/EccMFcAydGtGeLP33SaWiZ4Rne56GBInk6SATI/ JSKweGD1y5GiAWipBR4C74HiAW9q6hCOuSdp/2WQxWT3T1j2sjlqxkHdtInUtwOm j5Ism276IndeQ9hR3reFR8PJnKIPx73oTBQ7p9CMR1J4ucq9Ny0J12wQYT00fmJp -----END CERTIFICATE----- -----BEGIN PRIVATE KEY----- MIIEBTCCAu2gAwIBAgIUGfYFsj8HyA9Zv2l600hxzT8+gG4wDQYJKoZIhvcNAQEL BQAwgYkxCzAJBgNVBAYTAklOMQwwCgYDVQQIDANLQVIxDDAKBgNVBAcMA0JMUjEM MAoGA1UECgwDUkhUMQswCQYDVQQLDAJCVTEkMCIGA1UEAwwbY2VwaC1zc2wtcmhj czUtOGRjeHY2LW5vZGU1MR0wGwYJKoZIhvcNAQkBFg5hYmNAcmVkaGF0LmNvbTAe -----END PRIVATE KEY-----
SSL 인증서를 제공하지 않는 예
service_type: ingress service_id: rgw.ssl # adjust to match your existing RGW service placement: hosts: - hostname1 - hostname2 spec: backend_service: rgw.rgw.ssl.ceph13 # adjust to match your existing RGW service virtual_ip: IP_ADDRESS/CIDR # ex: 192.168.20.1/24 frontend_port: INTEGER # ex: 443 monitor_port: INTEGER # ex: 1969 use_tcp_mode_over_rgw: True
Cephadm 쉘을 시작합니다.
예
[root@host01 ~]# cephadm shell --mount ingress.yaml:/var/lib/ceph/radosgw/ingress.yaml
최신
haproxy
및keepalived
이미지를 구성합니다.구문
ceph config set mgr mgr/cephadm/container_image_haproxy HAPROXY_IMAGE_ID ceph config set mgr mgr/cephadm/container_image_keepalived KEEPALIVED_IMAGE_ID
Red Hat Enterprise Linux 9
[ceph: root@host01 /]# ceph config set mgr mgr/cephadm/container_image_haproxy registry.redhat.io/rhceph/rhceph-haproxy-rhel9:latest [ceph: root@host01 /]# ceph config set mgr mgr/cephadm/container_image_keepalived registry.redhat.io/rhceph/keepalived-rhel9:latest
Ceph 오케스트레이터를 사용하여 새
수신
서비스를 설치하고 구성합니다.[ceph: root@host01 /]# ceph orch apply -i /var/lib/ceph/radosgw/ingress.yaml
Ceph 오케스트레이터가 완료되면 HA 구성을 확인합니다.
수신
서비스를 실행하는 호스트에서 가상 IP 주소가 표시되는지 확인합니다.예
[root@host01 ~]# ip addr show
Ceph 클라이언트에서 Ceph Object Gateway에 연결을 시도합니다.
구문
wget HOST_NAME
예
[root@client ~]# wget host01.example.com
아래 예제에서와 유사한 콘텐츠가 있는
index.html
이 반환되면 Ceph Object Gateway의 HA 구성이 제대로 작동합니다.예
<?xml version="1.0" encoding="UTF-8"?> <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Owner> <ID>anonymous</ID> <DisplayName></DisplayName> </Owner> <Buckets> </Buckets> </ListAllMyBucketsResult>
추가 리소스
- 자세한 내용은 표준 RHEL 설치 수행 가이드를 참조하십시오.
- 자세한 내용은 Red Hat Ceph Storage Object Gateway 가이드 의 고가용성 서비스 섹션을 참조하십시오.