7.2. 오버클라우드 배포 시작
언더클라우드를 설치하는 동안 undercloud.conf
파일에 generate_service_certificate=false
를 설정합니다. 그렇지 않으면 Advanced Overcloud Customization 가이드의 Overcloud Public Endpoint에서 SSL/TLS 활성화에 설명된 대로 오버클라우드를 배포할 때 신뢰 앵커를 삽입해야 합니다.
- 참고
- 오버클라우드 배포 중에 Ceph 대시보드를 추가하려면 8장. 오버클라우드 배포에 Red Hat Ceph Storage 대시보드 추가 을 참조하십시오.
오버클라우드를 생성하려면 openstack overcloud deploy
명령에 추가 인수가 필요합니다. 예를 들면 다음과 같습니다.
$ openstack overcloud deploy --templates -r /home/stack/templates/roles_data_custom.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-rgw.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-mds.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml \ -e /home/stack/templates/storage-config.yaml \ -e /home/stack/templates/ceph-config.yaml \ --ntp-server pool.ntp.org
위의 명령은 다음 옵션을 사용합니다.
-
--templates
- 기본 Heat 템플릿 컬렉션(즉,/usr/share/openstack-tripleo-heat-templates/
)에서 Overcloud를 생성합니다. -
-r /home/stack/templates/roles_data_custom.yaml
- 3장. 전용 노드에 Ceph 서비스 배포 에서 사용자 지정 역할 정의 파일을 지정합니다. 이 파일은 Ceph MON 또는 Ceph MDS 서비스에 대한 사용자 지정 역할을 추가합니다. 이러한 역할을 통해 두 서비스를 전용 노드에 설치할 수 있습니다. -
-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml
- director를 설정하여 Ceph 클러스터를 생성합니다. 특히 이 환경 파일은 컨테이너화된 Ceph Storage 노드가 있는 Ceph 클러스터를 배포합니다. -
-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-rgw.yaml
- 4.2절. “Ceph Object Gateway 활성화” 에 설명된 대로 Ceph Object Gateway를 활성화합니다. -
-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-mds.yaml
-에 설명된 대로 Ceph 메타데이터 서버를 활성화합니다. 4.1절. “Ceph 메타데이터 서버 활성화”. -
-e /usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml
- 4.4절. “Ceph를 사용하도록 백업 서비스 구성” 에 설명된 대로 Block Storage Backup 서비스(cinder-backup
)를 활성화합니다. -
-e /home/stack/templates/storage-config.yaml
- 사용자 지정 Ceph Storage 구성이 포함된 환경 파일을 추가합니다. -
-e /home/stack/templates/ceph-config.yaml
- 5장. Ceph Storage 클러스터 사용자 지정 에 설명된 대로 사용자 지정 Ceph 클러스터 설정이 포함된 환경 파일을 추가합니다. -
--ntp-server pool.ntp.org
- NTP 서버를 설정합니다.
응답 파일을 사용하여 모든 템플릿과 환경 파일을 호출할 수도 있습니다. 예를 들어 다음 명령을 사용하여 동일한 오버클라우드를 배포할 수 있습니다.
$ openstack overcloud deploy -r /home/stack/templates/roles_data_custom.yaml \ --answers-file /home/stack/templates/answers.yaml --ntp-server pool.ntp.org
이 경우 /home/stack/templates/answers.yaml 응답 파일에는 다음이 포함됩니다.
templates: /usr/share/openstack-tripleo-heat-templates/ environments: - /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml - /usr/share/openstack-tripleo-heat-templates/environments/ceph-rgw.yaml - /usr/share/openstack-tripleo-heat-templates/environments/ceph-mds.yaml - /usr/share/openstack-tripleo-heat-templates/environments/cinder-backup.yaml - /home/stack/templates/storage-config.yaml - /home/stack/templates/ceph-config.yaml
자세 한 내용은 오버클라우드 배포에서 환경 파일 포함을 참조하십시오.
전체 옵션 목록은 다음을 입력합니다.
$ openstack help overcloud deploy
자세 한 내용은 Director 설치 및 사용 가이드의 CLI 툴을 사용하여 기본 오버클라우드 구성 을 참조하십시오.
오버클라우드 생성 프로세스가 시작되고 director가 노드를 프로비저닝합니다. 이 프로세스를 완료하는 데 다소 시간이 걸립니다. 오버클라우드 생성 상태를 보려면 stack
사용자로 별도의 터미널을 열고 다음 명령을 입력합니다.
$ source ~/stackrc $ openstack stack list --nested
7.2.1. ceph-anible
이 실행되는 노드 제한
ceph-anible
이 실행되는 노드를 제한하여 배포 업데이트 시간을 줄일 수 있습니다. RHOSP(Red Hat OpenStack Platform)에서 config-download
를 사용하여 Ceph를 구성하는 경우 전체 배포에서 config-download 및
을 실행하는 대신 ceph-
anible--limit
옵션을 사용하여 노드 목록을 지정할 수 있습니다. 이 기능은 예를 들어 오버클라우드를 확장하거나 실패한 디스크를 교체하는 데 유용합니다. 이러한 시나리오에서는 환경에 추가하는 새 노드에서만 배포를 실행할 수 있습니다.
실패한 디스크 교체에서 --limit
를 사용하는 시나리오의 예
다음 예제 절차에서 Ceph storage 노드 oc0-cephstorage-0
에는 디스크 오류가 있으므로 새 팩토리 클린 디스크를 받을 수 있습니다. 새 디스크를 OSD로 사용할 수 있도록 oc0-cephstorage-0
노드에서 Ansible을 실행해야 하지만 다른 모든 Ceph 스토리지 노드에서 실행할 필요는 없습니다. 환경 파일과 노드 이름을 환경에 적합한 이름으로 바꿉니다.
절차
stack 사용자로 언더클라우드 노드에 로그인하고 stack
rc
자격 증명 파일을 가져옵니다.# source stackrc
새 디스크를 사용하여 누락된 OSD를 시작하도록 다음 단계 중 하나를 완료합니다.
스택 업데이트를 실행하고
--limit
옵션을 포함하여ceph-ansible
을 실행할 노드를 지정합니다.$ openstack overcloud deploy --templates \ -r /home/stack/roles_data.yaml \ -n /usr/share/openstack-tripleo-heat-templates/network_data_dashboard.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \ -e ~/my-ceph-settings.yaml \ -e <other-environment_files> \ --limit oc0-controller-0:oc0-controller-2:oc0-controller-1:oc0-cephstorage-0:undercloud
이 예에서는 Ceph mons에서 OSD 정의를 변경하는 데 Ansible이 필요하므로 컨트롤러가 포함됩니다.
config-download
에서ansible-playbook-command.sh
스크립트를 생성한 경우--limit
옵션으로 스크립트를 실행하여 지정된 노드를ceph-ansible
에 전달할 수도 있습니다../ansible-playbook-command.sh --limit oc0-controller-0:oc0-controller-2:oc0-controller-1:oc0-cephstorage-0:undercloud
- 경고
-
항상 제한 목록에 언더클라우드를 포함해야 합니다. 그러지 않으면
--limit
를 사용하는 경우ceph-anible
을 실행할 수 없습니다. 이는ceph-ansible
실행이 언더클라우드에서만 실행되는external_deploy_steps_tasks
플레이북을 통해 발생하기 때문에 필요합니다.