기존 Red Hat Ceph Storage 클러스터와 오버클라우드 통합


Red Hat OpenStack Platform 17.0

독립형 Red Hat Ceph Storage를 사용하도록 오버클라우드 구성

OpenStack Documentation Team

초록

RHOSP(Red Hat OpenStack Platform) director를 사용하여 오버클라우드를 기존 독립 실행형 Red Hat Ceph Storage 클러스터와 통합할 수 있습니다.

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

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

Red Hat 문서에 관한 피드백 제공

문서 개선을 위한 의견을 보내 주십시오. Red Hat이 어떻게 더 나은지 알려주십시오.

직접 문서 피드백(DDF) 기능 사용

피드백 추가 DDF 기능을 사용하여 특정 문장, 단락 또는 코드 블록에 대한 직접 의견을 제출할 수 있습니다.

  1. 다중 페이지 HTML 형식으로 문서를 봅니다.
  2. 문서의 오른쪽 상단에 피드백 버튼이 표시되는지 확인합니다.
  3. 주석 처리하려는 텍스트 부분을 강조 표시합니다.
  4. 피드백 추가를 클릭합니다.
  5. 코멘트를 사용하여 피드백 추가 필드를 완료합니다.
  6. 선택 사항: 문서 팀이 문제에 대한 자세한 설명을 위해 연락을 드릴 수 있도록 이메일 주소를 추가합니다.
  7. Submit(제출)을 클릭합니다.

1장. 오버클라우드와 Ceph Storage 통합

Red Hat OpenStack Platform director는 오버클라우드라는 클라우드 환경을 생성합니다. director를 사용하여 Red Hat Ceph Storage와의 통합과 같은 오버클라우드의 추가 기능을 설정할 수 있습니다. 오버클라우드를 director 또는 기존 Ceph Storage 클러스터와 함께 생성된 Ceph Storage 클러스터와 통합할 수 있습니다. Ceph와 기본 통합에서는 이미지 서비스(glance), Block Storage 서비스(cinder) 및 Compute 서비스(nova)를 구성하여 Rados Block Device(RBD) 프로토콜을 통해 블록 스토리지를 사용합니다. 파일 및 오브젝트 스토리지의 추가 통합 옵션도 포함될 수 있습니다.

Red Hat Ceph Storage에 대한 자세한 내용은 Red Hat Ceph Storage Architecture Guide 를 참조하십시오.

1.1. 외부 CephFS를 사용하여 공유 파일 시스템 서비스 배포

RHOSP(Red Hat OpenStack Platform) director를 사용하여 CephFS와 함께 Shared File Systems 서비스(manila)를 배포할 수 있습니다. NFS 프로토콜 또는 기본 CephFS 프로토콜과 함께 공유 파일 시스템 서비스를 사용할 수 있습니다.

중요

CephFS 기본 드라이버와 함께 Shared File Systems 서비스를 Manila CSI를 통해 Red Hat OpenShift Container Platform에 공유를 제공할 수 없습니다. Red Hat은 이러한 유형의 배포를 지원하지 않습니다. 자세한 내용은 Red Hat 지원에 문의하십시오.

NFS를 통한 CephFS의 공유 파일 시스템 서비스는 Manila CSI를 통해 Red Hat OpenShift Container Platform에 공유 서비스를 완벽하게 지원합니다. 이 솔루션은 대규모 배포를 위한 것이 아닙니다. CSI 워크로드 권장 사항에 대한 자세한 내용은 https://access.redhat.com/articles/6667651 을 참조하십시오.

기본 CephFS 공유 파일 시스템을 사용하려면 클라이언트가 Ceph 공용 네트워크에 액세스해야 합니다. 오버클라우드를 기존 Ceph Storage 클러스터와 통합하면 director는 Ceph 공용 네트워크로 지정할 격리된 스토리지 네트워크를 생성하지 않습니다. 이 네트워크는 이미 존재하는 것으로 가정합니다. Ceph 공용 네트워크에 대한 직접 액세스 권한을 제공하지 마십시오. 대신 테넌트에서 Ceph 공용 네트워크에 연결할 라우터를 만들 수 있습니다.

nfs-Ganesha 게이트웨이

NFS 프로토콜을 통해 CephFS를 사용하는 경우 director는 Pacemaker(PCS)에서 관리하는 컨트롤러 노드에 NFS-Ganesha 게이트웨이를 배포합니다. PCS는 활성-수동 구성을 사용하여 클러스터 가용성을 관리합니다.

NFS-Ganesha 게이트웨이는 Red Hat Ceph Storage 4.x(Ceph 패키지 14.x) 및 Red Hat Ceph Storage 5.x(Ceph 패키지 16.x)에서 지원됩니다. 시스템에 설치된 Ceph Storage 릴리스를 확인하는 방법에 대한 자세한 내용은 Red Hat Ceph Storage 릴리스 및 해당 Ceph 패키지 버전을 참조하십시오.

사전 요구 사항

외부 Ceph Storage 클러스터를 사용하여 공유 파일 시스템 서비스를 구성하기 전에 다음 사전 요구 사항을 완료합니다.

  • 외부 Ceph Storage 클러스터에 활성 메타데이터 서버(MDS)가 있는지 확인합니다.

    $ ceph -s
  • 외부 Ceph Storage 클러스터에는 CephFS 데이터 및 메타데이터 풀에서 지원하는 CephFS 파일 시스템이 있어야 합니다.

    • CephFS 파일 시스템에서 풀을 확인합니다.

      $ ceph fs ls
    • 이러한 풀의 이름을 참조하여 director 매개변수, ManilaCephFSDataPoolNameManilaCephMetadataPoolName 을 구성합니다. 이 구성에 대한 자세한 내용은 사용자 지정 환경 파일 만들기를 참조하십시오.
  • 외부 Ceph Storage 클러스터에는 Shared File Systems 서비스에 대한 stderr 클라이언트 이름과 키가 있어야 합니다.

    • 인증 키를 확인합니다.

      $ ceph auth get client.<client name>
      • & lt;client name& gt;을 cephx 클라이언트 이름으로 바꿉니다.

1.2. 외부 Ceph 개체 게이트웨이를 사용하도록 Ceph 오브젝트 저장소 구성

RHOSP(Red Hat OpenStack Platform) director는 외부 Ceph Object Gateway(RGW)를 오브젝트 저장소 서비스로 구성할 수 있습니다. 외부 RGW 서비스로 인증하려면 Identity 서비스(keystone)에서 사용자 및 해당 역할을 확인하도록 RGW를 구성해야 합니다.

외부 Ceph Object Gateway를 구성하는 방법에 대한 자세한 내용은 Ceph Object Gateway 구성하여 Ceph Object Gateway 사용에서 Keystone 인증을 사용하도록 Ceph Object Gateway 가이드를 참조하십시오.

2장. 오버클라우드 노드 준비

Red Hat Ceph Storage 클러스터와 통합하는 데 사용되는 오버클라우드 배포는 워크로드 호스팅을 위한 고가용성 및 컴퓨팅 노드가 있는 컨트롤러 노드로 구성됩니다. Red Hat Ceph Storage 클러스터에는 director가 아닌 Ceph 관리 툴을 사용하여 오버클라우드와 독립적으로 관리하는 자체 노드가 있습니다. Red Hat Ceph Storage에 대한 자세한 내용은 Red Hat Ceph Storage 의 제품 설명서를 참조하십시오.

2.1. 기존 Red Hat Ceph Storage 클러스터 구성

Red Hat Ceph Storage 클러스터를 구성하려면 OSD(오브젝트 스토리지 데몬) 풀을 생성하고, 기능을 정의하고, Ceph Storage 클러스터에서 직접 키와 ID를 생성합니다. Ceph Storage 클러스터에 연결할 수 있으며 Ceph 명령줄 클라이언트가 설치된 모든 시스템에서 명령을 실행할 수 있습니다.

절차

  1. 외부 Ceph 관리자 노드에 로그인합니다.
  2. 대화형 쉘을 열어 Ceph 명령에 액세스합니다.

    [user@ceph ~]$ sudo cephadm shell
  3. 사용자와 관련된 Ceph Storage 클러스터에서 다음 RADOS 블록 장치(RBD) 풀을 생성합니다.

    • OpenStack Block Storage(cinder)용 스토리지:

      $ ceph osd pool create volumes <pgnum>
    • OpenStack Image Storage(glance):

      $ ceph osd pool create images <pgnum>
    • 인스턴스의 스토리지:

      $ ceph osd pool create vms <pgnum>
    • OpenStack Block Storage Backup(cinder-backup)용 스토리지:

      $ ceph osd pool create backups <pgnum>
  4. 오버클라우드에서 Red Hat Ceph 5(Ceph 패키지 16) 이상을 사용하여 Shared File Systems 서비스(manila)를 배포하는 경우 CephFS에 대한 데이터 및 메타데이터 풀을 생성할 필요가 없습니다. 파일 시스템 볼륨을 생성할 수 있습니다. 자세한 내용은 Red Hat Ceph Storage Operations Guide 의 Ceph Orchestrator를 사용하여 MDS 서비스 관리 를 참조하십시오.
  5. 다음과 같은 기능을 사용하여 Ceph Storage 클러스터에 client.openstack 사용자를 생성합니다.

    • cap_mgr: allow *
    • cap_mon: profile rbd
    • cap_osd: profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images, profile rbd pool=backups

      $ ceph auth add client.openstack mgr 'allow *' mon 'profile rbd' osd 'profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images, profile rbd pool=backups'
  6. client.openstack 사용자에 대해 생성된 Ceph 클라이언트 키를 기록해 둡니다.

    $ ceph auth list
    ...
    [client.openstack]
    	key = <AQC+vYNXgDAgAhAAc8UoYt+OTz5uhV7ItLdwUw==>
    	caps mgr = "allow *"
    	caps mon = "profile rbd"
    	caps osd = "profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images, profile rbd pool=backups"
    ...
    • 예제의 값은 AQC+vYNXgAhAhAhAhAhAhAhAhAhV7UoYt+OTz5uhV7ItLdww== Ceph 클라이언트 키입니다.
  7. 오버클라우드에서 CephFS를 사용하여 공유 파일 시스템 서비스를 배포하는 경우 Ceph Storage 클러스터에 client.manila 사용자를 생성합니다. client.manila 사용자에게 필요한 기능은 배포에서 기본 CephFS 프로토콜 또는 NFS 프로토콜을 통해 CephFS 공유를 노출하는지에 따라 달라집니다.

    • 기본 CephFS 프로토콜을 통해 CephFS 공유를 노출하는 경우 다음 기능이 필요합니다.

      • cap_mgr: allow rw
      • cap_mon: allow r

        $ ceph auth add client.manila mgr 'allow rw' mon 'allow r'
    • NFS 프로토콜을 통해 CephFS 공유를 노출하는 경우 다음 기능이 필요합니다.

      • cap_mgr: allow rw
      • cap_mon: allow r
      • cap_osd: allow rw pool=manila_data

        지정된 풀 이름은 ManilaCephFSDataPoolName 매개변수에 설정된 값이어야 하며, 기본값은 manila_data 입니다.

        $ ceph auth add client.manila  mgr 'allow rw' mon 'allow r' osd 'allow rw pool=manila_data'
  8. 오버클라우드 배포 템플릿에 사용할 manila 클라이언트 이름 및 키 값을 기록해 둡니다.

    $ ceph auth get-key client.manila
         <AQDQ991cAAAAABAA0aXFrTnjH9aO39P0iVvYyg==>
  9. Ceph Storage 클러스터의 파일 시스템 ID를 기록해 둡니다. 이 값은 클러스터 구성 파일의 [global] 섹션에 있는 fsid 필드에 지정됩니다.

    [global]
    fsid = 4b5c8c0a-ff60-454b-a1b4-9747aa737d19
    ...
참고

사용자 지정 환경 파일을 생성할 때 Ceph 클라이언트 키 및 파일 시스템 ID와 공유 파일 시스템 서비스 클라이언트 ID 및 키를 사용합니다.

3장. 기존 Red Hat Ceph Storage 클러스터와 통합

이 섹션의 절차 및 정보를 사용하여 RHOSP(Red Hat OpenStack Platform)와 기존 Red Hat Ceph Storage 클러스터를 통합합니다. 사용자 지정 환경 파일을 생성하여 OpenStack 구성 요소 내의 구성 옵션의 값을 재정의하고 제공할 수 있습니다.

3.1. 사용자 지정 환경 파일 생성

director는 환경 파일을 통해 외부 Red Hat Ceph Storage 클러스터와 통합하기 위해 tripleo-ansible 에 매개변수를 제공합니다.

  • /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml

외부 CephFS를 사용하여 Shared File Systems 서비스(manila)를 배포하면 별도의 환경 파일이 추가 매개 변수를 제공합니다.

  • 기본 CephFS의 경우 환경 파일은 /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml 입니다.
  • NFS를 통한 CephFS의 경우 환경 파일은 /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml 입니다.

기존 Ceph Storage 클러스터와 오버클라우드의 통합을 구성하려면 사용자 지정 환경 파일을 사용하여 Ceph Storage 클러스터의 세부 정보를 director에 제공해야 합니다. 배포 중에 director는 이러한 환경 파일을 호출합니다.

절차

  1. 사용자 정의 환경 파일을 생성합니다.

    /home/stack/templates/ceph-config.yaml

  2. parameter_defaults: 섹션을 파일에 추가합니다.

    parameter_defaults:
  3. parameter_defaults 를 사용하여 /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml 에서 재정의할 모든 매개변수를 설정합니다. 최소한 다음 매개변수를 설정해야 합니다.

    • CephClientKey: Ceph Storage 클러스터의 client.openstack 사용자의 Ceph 클라이언트 키입니다. 기존 Ceph Storage 클러스터 구성에서 검색한 값입니다. 예를 들어 AQDLOh1VgE6FRAAFzT7Zw+Y9V6JJQAsRnRQ==.
    • CephClusterFSID: Ceph Storage 클러스터의 파일 시스템 ID입니다. Ceph Storage 클러스터 구성 파일에서 fsid 의 값으로, 기존 Ceph Storage 클러스터 구성에서 검색했습니다. 예: 4b5c8c0a-ff60-454b-a1b4-9747a737d19.
    • CephExternalMonHost: Ceph Storage 클러스터에 있는 모든 MON 호스트의 IP(예: 172.16.1.7, 172.16.1.8 )의 쉼표로 구분된 목록입니다.

      예를 들면 다음과 같습니다.

      parameter_defaults:
        CephClientKey: <AQDLOh1VgEp6FRAAFzT7Zw+Y9V6JJExQAsRnRQ==>
        CephClusterFSID: <4b5c8c0a-ff60-454b-a1b4-9747aa737d19>
        CephExternalMonHost: <172.16.1.7, 172.16.1.8, 172.16.1.9>
  4. 선택 사항: RHOSP(Red Hat OpenStack Platform) 클라이언트 사용자 이름과 다음 기본 풀 이름을 Ceph Storage 클러스터와 일치하도록 덮어쓸 수 있습니다.

    • CephClientUserName: <openstack>
    • NovaRbdPoolName: <vms>
    • CinderRbdPoolName: <volumes>
    • GlanceRbdPoolName: <images>
    • CinderBackupRbdPoolName: <backups>
  5. 선택 사항: CephFS를 사용하여 공유 파일 시스템 서비스를 배포하는 경우 다음 기본 데이터 및 메타데이터 풀 이름을 재정의할 수 있습니다.

      ManilaCephFSDataPoolName: <manila_data>
      ManilaCephFSMetadataPoolName: <manila_metadata>
    참고

    이러한 이름이 생성한 풀의 이름과 일치하는지 확인합니다.

  6. 공유 파일 시스템 서비스에 대해 생성한 클라이언트 키를 설정합니다. 해당 키의 기본 Ceph 클라이언트 사용자 이름을 덮어쓸 수 있습니다.

      ManilaCephFSCephFSAuthId: <manila>
      CephManilaClientKey: <AQDQ991cAAAAABAA0aXFrTnjH9aO39P0iVvYyg==>
    참고

    기본 클라이언트 사용자 이름 ManilaCephFSCephFSAuthIdmanila 입니다. CephMansouthClientKey 는 항상 필요합니다.

사용자 지정 환경 파일을 생성한 후 오버클라우드를 배포할 때 포함해야 합니다.

추가 리소스

3.2. Red Hat Ceph Storage를 사용한 Red Hat OpenStack Platform용 Ceph 컨테이너

NFS Ganesha와 함께 Red Hat Ceph Storage를 사용하도록 RHOSP(Red Hat Openstack Platform)를 구성하려면 Ceph Storage 컨테이너가 있어야 합니다. 외부 Ceph Storage 클러스터에서는 Block( RBD), 오브젝트(RGW를 통해) 또는 파일(기본 CephFS를 통해) 스토리지만 제공하는 경우 Ceph Storage 컨테이너가 필요하지 않습니다.

RHOSP 17.0에는 Red Hat Ceph Storage 5.x(Ceph 패키지 16.x) 이상이 Red Hat Enterprise Linux 9와 호환되어야 합니다. Ceph Storage 5.x 컨테이너는 인증이 필요한 레지스트리인 registry.redhat.io 에서 호스팅됩니다. 자세한 내용은 컨테이너 이미지 준비 매개변수를 참조하십시오.

3.3. 오버클라우드 배포

생성한 환경 파일을 사용하여 오버클라우드를 배포합니다.

절차

  • 오버클라우드 생성에는 openstack overcloud deploy 명령에 대한 추가 인수가 필요합니다.

    $ openstack overcloud deploy --templates \
      -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml \
      -e /home/stack/templates/ceph-config.yaml \
      -e --ntp-server pool.ntp.org \
      ...

    이 예제 명령에서는 다음 옵션을 사용합니다.

  • --templates - 기본 heat 템플릿 컬렉션 /usr/share/openstack-tripleo-heat-templates/ 에서 오버클라우드를 생성합니다.

    • -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml - 기존 Ceph Storage 클러스터를 오버클라우드에 통합하도록 director를 설정합니다.
    • -e /home/stack/templates/ceph-config.yaml - -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml 에서 설정한 기본값을 덮어쓰도록 사용자 지정 환경 파일을 추가합니다.
    • --NTP-server pool.ntp.org - NTP 서버를 설정합니다.

3.3.1. CephFS를 사용하여 공유 파일 시스템 서비스의 환경 파일 추가

CephFS에서 Shared File Systems 서비스(manila)를 사용하는 오버클라우드를 배포하는 경우 추가 환경 파일을 추가해야 합니다.

절차

  1. 추가 환경 파일을 생성하고 추가합니다.

    • 기본 CephFS 백엔드 드라이버를 사용하는 오버클라우드를 배포하는 경우 /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml 을 추가합니다.
    • NFS를 통해 CephFS를 사용하는 오버클라우드를 배포하는 경우 /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml 을 추가합니다.

      공유를 내보내는 격리된 StorageNFS 네트워크를 사용하여 Ceph-through-NFS 드라이버를 배포하는 것이 좋습니다. 오버클라우드 컨트롤러 노드에 격리된 네트워크를 배포해야 합니다. 이 배포를 활성화하려면 director에 다음 파일 및 역할이 포함됩니다.

      • StorageNFS 네트워크(/usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml)가 포함된 사용자 지정 네트워크 구성 파일의 예입니다. 필요에 따라 이 파일을 검토하고 사용자 지정합니다.
      • ControllerStorageNFS 역할.
  2. 사용하는 CephFS 백엔드에 따라 openstack overcloud deploy 명령을 수정합니다.

    • 기본 CephFS의 경우:

       $ openstack overcloud deploy --templates \
         -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml \
         -e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsnative-config.yaml \
         -e /home/stack/templates/ceph-config.yaml \
         -e --ntp-server pool.ntp.org
         ...
    • NFS를 통한 CephFS의 경우:

       $ openstack overcloud deploy --templates \
           -n /usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml \
           -r /home/stack/custom_roles.yaml \
           -e /usr/share/openstack-tripleo-heat-templates/environments/external-ceph.yaml \
           -e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml \
           -e /home/stack/templates/ceph-config.yaml \
           -e --ntp-server pool.ntp.org
           ...
      참고

      사용자 지정 ceph-config.yaml 환경 파일은 external-ceph.yaml 파일 및 manila-cephfsnative-config.yaml 파일 또는 manila-cephfsganesha-config.yaml 파일의 매개변수를 재정의합니다. 따라서 external-ceph.yaml 후 배포 명령에 사용자 지정 ceph-config.yaml 환경 파일을 포함하고 manila-cephfsnative-config.yaml 또는 manila-cephfsganesha-config.yaml.yaml을 포함합니다.

      환경 파일 예

      parameter_defaults:
          CinderEnableIscsiBackend: false
          CinderEnableRbdBackend: true
          CinderEnableNfsBackend: false
          NovaEnableRbdBackend: true
          GlanceBackend: rbd
          CinderRbdPoolName: "volumes"
          NovaRbdPoolName: "vms"
          GlanceRbdPoolName: "images"
          CinderBackupRbdPoolName: "backups"
          CephClusterFSID: <cluster_ID>
          CephExternalMonHost: <IP_address>,<IP_address>,<IP_address>
          CephClientKey: "<client_key>"
          CephClientUserName: "openstack"
          ManilaCephFSDataPoolName: manila_data
          ManilaCephFSMetadataPoolName: manila_metadata
          ManilaCephFSCephFSAuthId: 'manila'
          CephManilaClientKey: '<client_key>'
          ExtraConfig:

      • < cluster_ID > , < IP_address > 및 < client_key >를 환경에 적합한 값으로 바꿉니다.

추가 리소스

3.3.2. 오브젝트 스토리지를 위한 외부 Ceph Object Gateway(RGW)용 추가 환경 파일 추가

오브젝트 스토리지에 이미 기존 RGW 서비스를 사용하는 오버클라우드를 배포하는 경우 추가 환경 파일을 추가해야 합니다.

절차

  1. 사용자 지정 환경 파일(예: swift-external-params.yaml )에 다음 parameter_defaults 를 추가하고 배포에 맞게 값을 조정합니다.

    parameter_defaults:
       ExternalSwiftPublicUrl: 'http://<Public RGW endpoint or loadbalancer>:8080/swift/v1/AUTH_%(project_id)s'
       ExternalSwiftInternalUrl: 'http://<Internal RGW endpoint>:8080/swift/v1/AUTH_%(project_id)s'
       ExternalSwiftAdminUrl: 'http://<Admin RGW endpoint>:8080/swift/v1/AUTH_%(project_id)s'
       ExternalSwiftUserTenant: 'service'
       SwiftPassword: 'choose_a_random_password'
    참고

    예제 코드 조각에는 사용자 환경에서 사용하는 값과 다를 수 있는 매개변수 값이 포함되어 있습니다.

    • 원격 RGW 인스턴스가 수신 대기하는 기본 포트는 8080 입니다. 외부 RGW 구성 방법에 따라 포트가 다를 수 있습니다.
    • 오버클라우드에서 생성된 swift 사용자는 SwiftPassword 매개 변수에서 정의한 암호를 사용합니다. rgw_keystone_admin_password 를 사용하여 ID 서비스로 동일한 암호를 사용하도록 외부 RGW 인스턴스를 구성해야 합니다.
  2. 다음 코드를 Ceph 구성 파일에 추가하여 ID 서비스를 사용하도록 RGW를 구성합니다. 환경에 맞게 변수 값을 변경합니다.

        rgw_keystone_api_version = 3
        rgw_keystone_url = http://<public Keystone endpoint>:5000/
        rgw_keystone_accepted_roles = member, Member, admin
        rgw_keystone_accepted_admin_roles = ResellerAdmin, swiftoperator
        rgw_keystone_admin_domain = default
        rgw_keystone_admin_project = service
        rgw_keystone_admin_user = swift
        rgw_keystone_admin_password = <password_as_defined_in_the_environment_parameters>
        rgw_keystone_implicit_tenants = true
        rgw_keystone_revocation_interval = 0
        rgw_s3_auth_use_keystone = true
        rgw_swift_versioning_enabled = true
        rgw_swift_account_in_url = true
        rgw_max_attr_name_len = 128
        rgw_max_attrs_num_in_req = 90
        rgw_max_attr_size = 256
        rgw_keystone_verify_ssl = false
    참고

    director는 기본적으로 ID 서비스에 다음 역할 및 사용자를 생성합니다.

    • rgw_keystone_accepted_admin_roles: ResellerAdmin, swiftoperator
    • rgw_keystone_admin_domain: default
    • rgw_keystone_admin_project: service
    • rgw_keystone_admin_user: swift
  3. 배포와 관련된 기타 환경 파일과 함께 추가 환경 파일을 사용하여 오버클라우드를 배포합니다.

    openstack overcloud deploy --templates \
    -e <your_environment_files>
    -e /usr/share/openstack-tripleo-heat-templates/environments/swift-external.yaml
    -e swift-external-params.yaml

4장. 외부 Ceph Storage 클러스터 통합 확인

오버클라우드를 배포한 후 RHOSP(Red Hat OpenStack Platform) 서비스가 Red Hat Ceph Storage 클러스터에 쓸 수 있는지 확인합니다.

4.1. ID 수집

Red Hat Ceph Storage 클러스터를 통합했는지 확인하려면 먼저 이미지, Compute 인스턴스, 블록 스토리지 볼륨, 파일 공유를 생성하고 해당 ID를 수집해야 합니다.

절차

  1. Image 서비스(glance)를 사용하여 이미지를 생성합니다. 이미지 생성 방법에 대한 자세한 내용은 이미지 생성 및 관리에서 이미지 가져오기를 참조하십시오.
  2. 나중에 사용할 수 있도록 이미지 ID를 기록합니다.
  3. Compute(nova) 인스턴스를 만듭니다. 인스턴스를 만드는 방법에 대한 자세한 내용은 인스턴스 생성 및 관리 가이드의 인스턴스 생성을 참조하십시오.
  4. 나중에 사용할 수 있도록 인스턴스 ID를 기록합니다.
  5. Block Storage(cinder) 볼륨을 만듭니다. 블록 스토리지 볼륨을 생성하는 방법에 대한 자세한 내용은 스토리지 가이드에서 블록 스토리지 볼륨 생성 을 참조하십시오.
  6. 나중에 사용할 수 있도록 볼륨 ID를 기록합니다.
  7. Shared File Systems 서비스(manila)를 사용하여 파일 공유를 생성합니다.
  8. 공유의 내보내기 경로를 나열하고 나중에 사용할 접미사에 UUID를 기록합니다.

파일 공유를 생성하고 공유 내보내기 경로를 나열하는 방법에 대한 자세한 내용은 스토리지 가이드Shared File Systems 서비스(manila)를 사용하여 작업 수행을 참조하십시오.

4.2. Red Hat Ceph Storage 클러스터 확인

외부 Red Hat Ceph Storage 클러스터를 구성하면 풀과 client.openstack 사용자를 생성하여 해당 풀에 액세스합니다. 오버클라우드를 배포한 후 client.openstack 사용자의 인증 정보가 포함된 파일을 사용하여 RHOSP(Red Hat OpenStack Platform) 풀의 콘텐츠를 나열할 수 있습니다.

풀 콘텐츠를 나열하고 Image 서비스(glance) 이미지 ID, Compute(nova) 인스턴스, Block Storage(cinder) 볼륨, Shared File Systems 서비스(manila) 파일 공유가 Ceph Storage 클러스터에 존재하는지 확인합니다.

절차

  1. stack 사용자로 언더클라우드에 로그인하고 stackrc 인증 정보 파일을 가져옵니다.

    $ source ~/stackrc
  2. 사용 가능한 서버를 나열하여 시스템에서 노드의 IP 주소를 검색합니다.

    $ metalsmith list
    
    +---------------+----------------+---------------+
    | ID | Name | Status | Networks | Image | Flavor |
    +---------------+----------------+---------------+
    | d5a621bd-d109-41ae-a381-a42414397802 | compute-0 | ACTIVE | ctlplane=192.168.24.31 | overcloud-full | compute |
    | 496ab196-d6cb-447d-a118-5bafc5166cf2 | controller-0 | ACTIVE | ctlplane=192.168.24.37 | overcloud-full | controller |
    | c01e730d-62f2-426a-a964-b31448f250b3 | controller-2 | ACTIVE | ctlplane=192.168.24.55 | overcloud-full | controller |
    | 36df59b3-66f3-452e-9aec-b7e7f7c54b86 | controller-1 | ACTIVE | ctlplane=192.168.24.39 | overcloud-full | controller |
    | f8f00497-246d-4e40-8a6a-b5a60fa66483 | compute-1 | ACTIVE | ctlplane=192.168.24.10 | overcloud-full | compute |
  3. SSH를 사용하여 컴퓨팅 노드에 로그인합니다.

    $ ssh tripleo-admin@192.168.24.31
  4. director에서 제공하는 CephConfigPathceph.conf/ceph.client.openstack.keyring 파일이 존재하는지 확인합니다. 이 경로는 기본적으로 /var/lib/tripleo-config/ceph 이지만 재정의가 있을 수 있습니다.

    [tripleo-admin@compute-0 ~]$ sudo ls -l /var/lib/tripleo-config/ceph/ceph.conf
    
    -rw-r--r--. 1 root root 1170 Sep 29 23:25 /var/lib/tripleo-config/ceph/ceph.conf
    
    [tripleo-admin@compute-0 ~]$ sudo ls -l /var/lib/tripleo-config/ceph/ceph.client.openstack.keyring
    
    -rw-------. 1 ceph ceph 253 Sep 29 23:25 /var/lib/tripleo-config/ceph/ceph.client.openstack.keyring
  5. 다음 명령을 입력하여 nova_compute 컨테이너에서 rbd 명령을 사용하여 적절한 풀의 콘텐츠를 나열하도록 강제 적용합니다.

    $ sudo podman exec nova_compute /usr/bin/rbd --conf /etc/ceph/ceph.conf --keyring /etc/ceph/ceph.client.openstack.keyring --cluster ceph --id openstack ls vms

    풀 이름은 Ceph Storage 클러스터를 구성할 때 생성한 이미지, VM, 볼륨 및 공유의 풀 이름과 일치해야 합니다. 이미지, Compute 인스턴스, 볼륨 및 공유의 ID는 Gathering ID에 기록된 ID와 일치해야 합니다.

    참고

    ceph-common 패키지에서 제공하는 /usr/bin/rbd 가 기본적으로 오버클라우드 노드에 설치되지 않으므로 example 명령 앞에는 podman exec nova_compute 가 접두사가 있습니다. 그러나 nova_compute 컨테이너에서 사용할 수 있습니다. 명령은 블록 장치 이미지를 나열합니다. 블록 장치 이미지 목록에 대한 자세한 내용은 Red Hat Ceph Storage 블록 장치 가이드의 블록 장치 이미지 나열 을 참조하십시오.

    다음 예제에서는 Gathering ID의 ID를 사용하여 각 풀에 대한 ID가 있는지 확인하는 방법을 보여줍니다.

    $ sudo podman exec nova_compute /usr/bin/rbd --conf /etc/ceph/ceph.conf --keyring /etc/ceph/ceph.client.openstack.keyring --cluster ceph --id openstack ls images | grep 4485d4c0-24c3-42ec-a158-4d3950fa020b
    $ sudo podman exec nova_compute /usr/bin/rbd --conf /etc/ceph/ceph.conf --keyring /etc/ceph/ceph.client.openstack.keyring --cluster ceph --id openstack ls vms | grep 64bcb731-e7a4-4dd5-a807-ee26c669482f
    $ sudo podman exec nova_compute /usr/bin/rbd --conf /etc/ceph/ceph.conf --keyring /etc/ceph/ceph.client.openstack.keyring --cluster ceph --id openstack ls volumes | grep aeac15e8-b67f-454f-9486-46b3d75daff4
  6. 공유 파일 시스템 서비스 공유가 있는지 확인하려면 컨트롤러 노드에 로그인해야 합니다.

    $ sudo podman exec openstack-manila-share-podman-0 ceph -n client.manila fs subvolume ls cephfs | grep ec99db3c-0077-40b7-b09e-8a110e3f73c1

4.3. 실패한 확인 문제 해결

확인 절차가 실패하면 openstack.client 사용자 및 Red Hat Ceph Storage 모니터 IP 또는 호스트 이름의 Ceph 키를 함께 사용하여 RHOSP(Red Hat OpenStack Platform)용으로 생성한 Ceph Storage 풀에서 읽고 쓰고 삭제할 수 있는지 확인합니다.

절차

  1. 이 절차에서 수행해야 하는 입력 양을 단축하려면 컴퓨팅 노드에 로그인하고 rbd 명령의 별칭을 만듭니다.

    $ alias rbd="podman exec nova_compute /usr/bin/rbd --conf /etc/ceph/ceph.conf --keyring /etc/ceph/ceph.client.openstack.keyring --cluster ceph --id openstack"
  2. 테스트 데이터를 새 오브젝트로 풀에 작성할 수 있는지 확인합니다.

    $ rbd create --size 1024 vms/foo
  3. 테스트 데이터가 표시되는지 확인합니다.

    $ rbd ls vms | grep foo
  4. 테스트 데이터를 삭제합니다.

    $ rbd rm vms/foo
참고

이 절차가 실패하면 Ceph Storage 관리자에게 문의하십시오. 이 절차에 성공하면 Compute(nova) 인스턴스, Image 서비스(glance) 이미지, Block Storage(cinder) 볼륨 또는 Shared File Systems 서비스(manila) 공유를 생성할 수 없는 경우 Red Hat 지원에 문의하십시오.

법적 공지

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.