기존 Red Hat Ceph Storage 클러스터와 오버클라우드 통합
독립형 Red Hat Ceph Storage를 사용하도록 오버클라우드 구성
초록
보다 포괄적 수용을 위한 오픈 소스 용어 교체
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
Red Hat 문서에 관한 피드백 제공
문서 개선을 위한 의견을 보내 주십시오. Red Hat이 어떻게 더 나은지 알려주십시오.
직접 문서 피드백(DDF) 기능 사용
피드백 추가 DDF 기능을 사용하여 특정 문장, 단락 또는 코드 블록에 대한 직접 의견을 제출할 수 있습니다.
- 다중 페이지 HTML 형식으로 문서를 봅니다.
- 문서의 오른쪽 상단에 피드백 버튼이 표시되는지 확인합니다.
- 주석 처리하려는 텍스트 부분을 강조 표시합니다.
- 피드백 추가를 클릭합니다.
- 코멘트를 사용하여 피드백 추가 필드를 완료합니다.
- 선택 사항: 문서 팀이 문제에 대한 자세한 설명을 위해 연락을 드릴 수 있도록 이메일 주소를 추가합니다.
- 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 매개변수,
ManilaCephFSDataPoolName
및ManilaCephMetadataPoolName
을 구성합니다. 이 구성에 대한 자세한 내용은 사용자 지정 환경 파일 만들기를 참조하십시오.
외부 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 명령줄 클라이언트가 설치된 모든 시스템에서 명령을 실행할 수 있습니다.
절차
- 외부 Ceph 관리자 노드에 로그인합니다.
대화형 쉘을 열어 Ceph 명령에 액세스합니다.
[user@ceph ~]$ sudo cephadm shell
사용자와 관련된 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>
- 오버클라우드에서 Red Hat Ceph 5(Ceph 패키지 16) 이상을 사용하여 Shared File Systems 서비스(manila)를 배포하는 경우 CephFS에 대한 데이터 및 메타데이터 풀을 생성할 필요가 없습니다. 파일 시스템 볼륨을 생성할 수 있습니다. 자세한 내용은 Red Hat Ceph Storage Operations Guide 의 Ceph Orchestrator를 사용하여 MDS 서비스 관리 를 참조하십시오.
다음과 같은 기능을 사용하여 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'
-
cap_mgr:
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 클라이언트 키입니다.
-
예제의
오버클라우드에서 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'
-
cap_mgr:
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'
-
cap_mgr:
오버클라우드 배포 템플릿에 사용할 manila 클라이언트 이름 및 키 값을 기록해 둡니다.
$ ceph auth get-key client.manila <AQDQ991cAAAAABAA0aXFrTnjH9aO39P0iVvYyg==>
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는 이러한 환경 파일을 호출합니다.
절차
사용자 정의 환경 파일을 생성합니다.
/home/stack/templates/ceph-config.yaml
parameter_defaults:
섹션을 파일에 추가합니다.parameter_defaults:
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>
-
선택 사항: RHOSP(Red Hat OpenStack Platform) 클라이언트 사용자 이름과 다음 기본 풀 이름을 Ceph Storage 클러스터와 일치하도록 덮어쓸 수 있습니다.
-
CephClientUserName: <openstack>
-
NovaRbdPoolName: <vms>
-
CinderRbdPoolName: <volumes>
-
GlanceRbdPoolName: <images>
-
CinderBackupRbdPoolName: <backups>
-
선택 사항: CephFS를 사용하여 공유 파일 시스템 서비스를 배포하는 경우 다음 기본 데이터 및 메타데이터 풀 이름을 재정의할 수 있습니다.
ManilaCephFSDataPoolName: <manila_data> ManilaCephFSMetadataPoolName: <manila_metadata>
참고이러한 이름이 생성한 풀의 이름과 일치하는지 확인합니다.
공유 파일 시스템 서비스에 대해 생성한 클라이언트 키를 설정합니다. 해당 키의 기본 Ceph 클라이언트 사용자 이름을 덮어쓸 수 있습니다.
ManilaCephFSCephFSAuthId: <manila> CephManilaClientKey: <AQDQ991cAAAAABAA0aXFrTnjH9aO39P0iVvYyg==>
참고기본 클라이언트 사용자 이름
ManilaCephFSCephFSAuthId
는manila
입니다.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)를 사용하는 오버클라우드를 배포하는 경우 추가 환경 파일을 추가해야 합니다.
절차
추가 환경 파일을 생성하고 추가합니다.
-
기본 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 역할.
-
기본 CephFS 백엔드 드라이버를 사용하는 오버클라우드를 배포하는 경우
사용하는 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
>를 환경에 적합한 값으로 바꿉니다.
-
<
추가 리소스
- 사용자 지정 역할 파일을 생성하는 방법에 대한 자세한 내용은 NFS를 통해 CephFS를 사용하여 공유 파일 시스템 서비스 배포를 참조하십시오.
3.3.2. 오브젝트 스토리지를 위한 외부 Ceph Object Gateway(RGW)용 추가 환경 파일 추가
오브젝트 스토리지에 이미 기존 RGW 서비스를 사용하는 오버클라우드를 배포하는 경우 추가 환경 파일을 추가해야 합니다.
절차
사용자 지정 환경 파일(예:
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 인스턴스를 구성해야 합니다.
-
원격 RGW 인스턴스가 수신 대기하는 기본 포트는
다음 코드를 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
배포와 관련된 기타 환경 파일과 함께 추가 환경 파일을 사용하여 오버클라우드를 배포합니다.
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를 수집해야 합니다.
절차
- Image 서비스(glance)를 사용하여 이미지를 생성합니다. 이미지 생성 방법에 대한 자세한 내용은 이미지 생성 및 관리에서 이미지 가져오기를 참조하십시오.
- 나중에 사용할 수 있도록 이미지 ID를 기록합니다.
- Compute(nova) 인스턴스를 만듭니다. 인스턴스를 만드는 방법에 대한 자세한 내용은 인스턴스 생성 및 관리 가이드의 인스턴스 생성을 참조하십시오.
- 나중에 사용할 수 있도록 인스턴스 ID를 기록합니다.
- Block Storage(cinder) 볼륨을 만듭니다. 블록 스토리지 볼륨을 생성하는 방법에 대한 자세한 내용은 스토리지 가이드에서 블록 스토리지 볼륨 생성 을 참조하십시오.
- 나중에 사용할 수 있도록 볼륨 ID를 기록합니다.
- Shared File Systems 서비스(manila)를 사용하여 파일 공유를 생성합니다.
- 공유의 내보내기 경로를 나열하고 나중에 사용할 접미사에 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 클러스터에 존재하는지 확인합니다.
절차
stack
사용자로 언더클라우드에 로그인하고stackrc
인증 정보 파일을 가져옵니다.$ source ~/stackrc
사용 가능한 서버를 나열하여 시스템에서 노드의 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 |
SSH를 사용하여 컴퓨팅 노드에 로그인합니다.
$ ssh tripleo-admin@192.168.24.31
director에서 제공하는
CephConfigPath
에ceph.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
다음 명령을 입력하여
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
공유 파일 시스템 서비스 공유가 있는지 확인하려면 컨트롤러 노드에 로그인해야 합니다.
$ 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 풀에서 읽고 쓰고 삭제할 수 있는지 확인합니다.
절차
이 절차에서 수행해야 하는 입력 양을 단축하려면 컴퓨팅 노드에 로그인하고
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"
테스트 데이터를 새 오브젝트로 풀에 작성할 수 있는지 확인합니다.
$ rbd create --size 1024 vms/foo
테스트 데이터가 표시되는지 확인합니다.
$ rbd ls vms | grep foo
테스트 데이터를 삭제합니다.
$ rbd rm vms/foo
이 절차가 실패하면 Ceph Storage 관리자에게 문의하십시오. 이 절차에 성공하면 Compute(nova) 인스턴스, Image 서비스(glance) 이미지, Block Storage(cinder) 볼륨 또는 Shared File Systems 서비스(manila) 공유를 생성할 수 없는 경우 Red Hat 지원에 문의하십시오.