검색

4.8. Ceph Object Gateway의 고가용성

download PDF

스토리지 관리자는 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 주소로 로드 밸런싱을 제공하여 haproxykeepalived 데몬을 관리하는 수신 서비스를 배포합니다. 활성 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 및 관리를 수행합니다. 수신 서비스는 haproxykeepalived 데몬을 사용하여 Ceph Object Gateway의 고가용성을 제공합니다.

사전 요구 사항

  • 수신 서비스를 설치하기 위해 Red Hat Enterprise Linux 9 이상을 실행하는 최소 두 개의 호스트.
  • 정상 실행 Red Hat Ceph Storage 클러스터.
  • 다른 호스트에서 실행되는 최소 두 개의 Ceph Object Gateway 데몬입니다.
  • Ingress 서비스를 실행하는 호스트에 대한 루트 수준 액세스.
  • 방화벽을 사용하는 경우 HTTP 및 HTTPS 트래픽의 경우 포트 443에 대해 포트 80을 엽니다.

프로세스

  1. ingress.yaml 파일을 생성합니다.

    예제

    [root@host01 ~] touch ingress.yaml

  2. 편집할 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

    1
    ingress 로 설정해야 합니다.
    2
    기존 Ceph Object Gateway 서비스 이름과 일치해야 합니다.
    3
    haproxykeepalived 컨테이너를 배포할 위치.
    4
    수신 서비스를 사용할 수 있는 가상 IP 주소입니다.
    5
    Ingress 서비스에 액세스할 포트입니다.
    6
    haproxy 로드 밸런서 상태에 액세스할 포트입니다.
    7
    사용 가능한 서브넷의 선택적 목록입니다.
    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-----

  3. Cephadm 쉘을 시작합니다.

    예제

    [root@host01 ~]# cephadm shell --mount ingress.yaml:/var/lib/ceph/radosgw/ingress.yaml

  4. 최신 haproxykeepalived 이미지를 구성합니다.

    구문

    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

  5. Ceph 오케스트레이터를 사용하여 새 수신 서비스를 설치하고 구성합니다.

    [ceph: root@host01 /]# ceph orch apply -i /var/lib/ceph/radosgw/ingress.yaml
  6. Ceph 오케스트레이터가 완료되면 HA 구성을 확인합니다.

    1. 수신 서비스를 실행하는 호스트에서 가상 IP 주소가 표시되는지 확인합니다.

      예제

      [root@host01 ~]# ip addr show

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

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.