Red Hat Ceph Storage for Overcloud
Red Hat Ceph Storage를 사용하도록 오버클라우드 구성
초록
1장. 소개 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform director는 Overcloud 라는 클라우드 환경을 생성합니다. director는 Overcloud에 대한 추가 기능을 설정하는 기능을 제공합니다. 이러한 추가 기능 중 하나로 Red Hat Ceph Storage와의 통합이 포함됩니다. 여기에는 director 또는 기존 Ceph Storage 클러스터로 생성된 Ceph Storage 클러스터가 모두 포함됩니다. 이 가이드에서는 director 및 설정 예제를 통해 Ceph Storage를 오버클라우드에 통합하는 데 필요한 정보를 제공합니다.
1.1. Ceph Storage 정의 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Ceph Storage는 우수한 성능, 안정성 및 확장성을 제공하도록 설계된 분산 데이터 오브젝트 저장소입니다. 분산 오브젝트 저장소는 구조화되지 않은 데이터를 수용하고 클라이언트가 최신 오브젝트 인터페이스와 레거시 인터페이스를 동시에 사용할 수 있기 때문에 스토리지의 미래입니다. 모든 Ceph 배포의 핵심은 두 가지 유형의 데몬으로 구성된 Ceph Storage 클러스터 입니다.
- Ceph OSD(오브젝트 스토리지 데몬)
- Ceph OSD는 Ceph 클라이언트를 대신하여 데이터를 저장합니다. 또한 Ceph OSD는 Ceph 노드의 CPU 및 메모리를 사용하여 데이터 복제, 재조정, 복구, 모니터링 및 보고 기능을 수행합니다.
- Ceph Monitor
- Ceph 모니터는 스토리지 클러스터의 현재 상태와 Ceph 스토리지 클러스터 맵의 마스터 사본을 유지 관리합니다.
Red Hat Ceph Storage에 대한 자세한 내용은 Red Hat Ceph Storage Architecture Guide 를 참조하십시오.
이 가이드에서는 Ceph Block 스토리지만 통합하고 Ceph Object(RGW) 또는 Ceph 파일(CephFS) 스토리지를 포함하지 않습니다.
1.2. Red Hat OpenStack Platform에서 Ceph Storage 사용 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform director는 Red Hat Ceph Storage를 Overcloud에 통합하는 두 가지 주요 방법을 제공합니다.
- 자체 Ceph Storage 클러스터를 사용하여 오버클라우드 생성
- director는 Overcloud를 생성하는 동안 Ceph Storage 클러스터를 생성할 수 있습니다. director는 Ceph OSD를 사용하여 데이터를 저장하는 Ceph Storage 노드 세트를 생성합니다. 또한 director는 Overcloud의 컨트롤러 노드에 Ceph Monitor 서비스를 설치합니다. 즉, 조직에서 고가용성 컨트롤러 노드 세 개로 Overcloud를 생성하면 Ceph 모니터도 고가용성 서비스가 됩니다.
- 기존 Ceph Storage를 Overcloud에 통합
- 기존 Ceph Storage 클러스터가 이미 있는 경우 Overcloud 배포 중에 이를 통합할 수 있습니다. 즉, Overcloud 구성 외부에서 클러스터를 관리하고 확장합니다.
1.3. 요구 사항 설정 링크 복사링크가 클립보드에 복사되었습니다!
이 안내서는 Red Hat OpenStack Platform 8 Director 설치 및 사용 가이드의 보조 정보 역할을 합니다. 즉, Chapter 2에 지정된 것과 동일한 요구 사항입니다. 요구 사항 은 이 가이드에도 적용됩니다. 필요에 따라 이러한 요구 사항을 구현합니다.
Red Hat OpenStack Platform director를 사용하여 Ceph Storage 노드를 생성하는 경우 다음 노드에 대한 요구 사항을 기록하십시오.
- 프로세서
- Intel 64 또는 AMD64 CPU 확장을 지원하는 64비트 x86 프로세서입니다.
- 메모리
- 메모리 요구 사항은 스토리지 공간의 크기에 따라 다릅니다. 가장 좋은 방법은 1TB의 하드 디스크 공간마다 최소 1GB의 메모리를 사용하는 것입니다.
- 디스크 공간
- 스토리지 요구 사항은 메모리 크기에 따라 다릅니다. 가장 좋은 방법은 1TB의 하드 디스크 공간마다 최소 1GB의 메모리를 사용하는 것입니다.
- 디스크 레이아웃
권장 Red Hat Ceph Storage 노드 구성에는 다음과 유사한 디스크 레이아웃이 필요합니다.
-
/dev/sda- root 디스크입니다. director는 주요 Overcloud 이미지를 디스크에 복사합니다. -
/dev/sdb- 저널 디스크입니다. 이 디스크는 Ceph OSD 저널용 파티션으로 나뉩니다. 예를 들면 /dev/sdb1, /dev/sdb2, /dev/sdb3 및 onward입니다. 저널 디스크는 일반적으로 시스템 성능을 지원하기 위한 SSD(솔리드 스테이트 드라이브)입니다. -
/dev/sdc이후 - OSD 디스크입니다. 스토리지 요구 사항에 따라 필요한 개수만큼 디스크를 사용합니다.
-
Overcloud를 배포하기 전에 저널링 및 OSD를 대상으로 하는 디스크의 기존 파티션을 모두 지웁니다. 또한 Ceph Storage OSD 및 저널 디스크에는 배포의 일부로 구성할 수 있는 GPT 디스크 레이블이 필요합니다. 자세한 내용은 2.8절. “GPT에 Ceph Storage 노드 디스크 포맷”를 참조하십시오.
- 네트워크 인터페이스 카드
- 최소 1개의 1Gbps 네트워크 인터페이스 카드가 필요합니다. 프로덕션 환경에서는 적어도 두 개 이상의 NIC를 사용하는 것이 좋습니다. 본딩된 인터페이스나 태그된 VLAN 트래픽 위임에는 추가 네트워크 인터페이스 카드를 사용하십시오. 특히 대량의 트래픽에 서비스를 제공하는 OpenStack Platform 환경을 생성하는 경우 스토리지 노드에 10Gbps 인터페이스를 사용하는 것이 좋습니다.
- IPMI(Intelligent Platform Management Interface)
- 각 Ceph 노드에는 서버의 마더보드에 IPMI 기능이 필요합니다.
이 가이드에서는 다음이 필요합니다.
- Red Hat OpenStack Platform director가 설치된 Undercloud 호스트. Chapter 3를 참조하십시오. Undercloud 설치.
- Red Hat Ceph Storage에 대한 추가 하드웨어 권장 사항입니다. 다음 권장 사항은 Red Hat Ceph Storage 하드웨어 가이드를 참조하십시오.
Ceph Monitor 서비스는 Overcloud의 컨트롤러 노드에 설치됩니다. 즉, 성능 문제를 완화하기 위해 적절한 리소스를 제공해야 합니다. 환경의 컨트롤러 노드에서 Ceph 모니터 데이터에 메모리 및 SSD(반도체 드라이브) 스토리지를 위해 최소 16GB의 RAM을 사용하는지 확인합니다.
1.4. 시나리오 정의 링크 복사링크가 클립보드에 복사되었습니다!
이 가이드에서는 다음 두 가지 시나리오를 사용합니다.
- 첫 번째 시나리오에서는 Ceph Storage 클러스터를 사용하여 Overcloud를 생성합니다. 즉, director가 Ceph Storage 클러스터를 배포합니다.
- 두 번째 시나리오는 기존 Ceph Storage 클러스터를 Overcloud와 통합합니다. 즉, Ceph Storage 클러스터를 Overcloud 관리와 별도로 관리합니다.
2장. Ceph Storage 노드를 사용하여 오버클라우드 생성 링크 복사링크가 클립보드에 복사되었습니다!
이 장에서는 director를 사용하여 자체 Ceph Storage 클러스터를 포함하는 오버클라우드를 생성하는 방법을 설명합니다. Overcloud를 생성하고 기존 Ceph Storage 클러스터와 통합하는 방법에 대한 자세한 내용은 3장. 오버클라우드에 기존 Ceph Storage 클러스터 통합 을 참조하십시오.
이 장에서 설명하는 시나리오는 Overcloud의 9개의 노드로 구성됩니다.
- 고가용성이 있는 컨트롤러 노드 3개 여기에는 각 노드의 Ceph Monitor 서비스가 포함됩니다.
- 클러스터에 있는 Red Hat Ceph Storage 노드 3개 이러한 노드에는 Ceph OSD 서비스가 포함되어 있으며 실제 스토리지 역할을 합니다.
- 컴퓨팅 노드 세 개
이 시나리오의 모든 머신은 전원 관리에 IPMI를 사용하는 베어 메탈 시스템입니다. director가 각 노드에 Red Hat Enterprise Linux 7 이미지를 복사하므로 이러한 노드에 운영 체제가 필요하지 않습니다.
director는 인트로스펙션 및 프로비저닝 프로세스 중에 프로비저닝 네트워크를 통해 각 노드에 통신합니다. 모든 노드는 기본 VLAN을 통해 이 네트워크에 연결됩니다. 이 예제에서는 다음 IP 주소 할당을 사용하여 Provisioning 서브넷으로 192.0.2.0/24를 사용합니다.
| 노드 이름 | IP 주소 | MAC 주소 | IPMI IP 주소 |
|---|---|---|---|
| director | 192.0.2.1 | AA:aa:aa:aa:aa:aa | |
| 컨트롤러 1 | DHCP 정의 | b1:b1:b1:b1:b1:b1 | 192.0.2.205 |
| 컨트롤러 2 | DHCP 정의 | b2:b2:b2:b2:b2:b2 | 192.0.2.206 |
| 컨트롤러 3 | DHCP 정의 | b3:b3:b3:b3:b3:b3 | 192.0.2.207 |
| Compute 1 | DHCP 정의 | c1:c1:c1:c1:c1:c1 | 192.0.2.208 |
| Compute 2 | DHCP 정의 | c2:c2:c2:c2:c2:c2 | 192.0.2.209 |
| 컴퓨팅 3 | DHCP 정의 | c3:c3:c3:c3:c3:c3 | 192.0.2.210 |
| Ceph 1 | DHCP 정의 | d1:d1:d1:d1:d1:d1 | 192.0.2.211 |
| Ceph 2 | DHCP 정의 | d2:d2:d2:d2:d2:d2 | 192.0.2.212 |
| Ceph 3 | DHCP 정의 | d3:d3:d3:d3:d3:d3 | 192.0.2.213 |
2.1. Stack 사용자 초기화 링크 복사링크가 클립보드에 복사되었습니다!
director 호스트에 stack 사용자로 로그인하고 다음 명령을 실행하여 director 설정을 초기화합니다.
source ~/stackrc
$ source ~/stackrc
이렇게 하면 director의 CLI 툴에 액세스하기 위해 인증 세부 정보가 포함된 환경 변수가 설정됩니다.
2.2. 노드 등록 링크 복사링크가 클립보드에 복사되었습니다!
노드 정의 템플릿(instackenv.json)은 JSON 형식 파일이며 노드 등록을 위한 하드웨어 및 전원 관리 세부 정보가 포함되어 있습니다. 예를 들면 다음과 같습니다.
템플릿을 생성한 후 stack 사용자의 홈 디렉터리(/home/stack/instackenv.json)에 저장한 다음 director로 가져옵니다. 이 작업을 수행하려면 다음 명령을 사용합니다.
openstack baremetal import --json ~/instackenv.json
$ openstack baremetal import --json ~/instackenv.json
템플릿을 가져오고 템플릿의 각 노드를 director에 등록합니다.
커널 및 램디스크 이미지를 모든 노드에 할당합니다.
openstack baremetal configure boot
$ openstack baremetal configure boot
이제 노드가 director에 등록 및 구성됩니다.
2.3. 노드의 하드웨어 검사 링크 복사링크가 클립보드에 복사되었습니다!
노드를 등록한 후 각 노드의 hardware 속성을 검사합니다. 다음 명령을 실행하여 각 노드의 하드웨어 속성을 확인합니다.
openstack baremetal introspection bulk start
$ openstack baremetal introspection bulk start
이 프로세스가 완료되었는지 확인합니다. 베어 메탈 노드의 경우 이 프로세스는 일반적으로 15분 정도 걸립니다.
2.4. 수동으로 노드 태그 지정 링크 복사링크가 클립보드에 복사되었습니다!
각 노드의 하드웨어를 등록하고 검사한 후 특정 프로필에 태그를 지정합니다. 이러한 프로필 태그는 노드와 일치하는 플레이버를 배포 역할에 할당합니다.
노드 목록을 검색하여 UUID를 확인합니다.
ironic node-list
$ ironic node-list
노드를 특정 프로필에 수동으로 태그하려면 profile 옵션을 각 노드의 properties/capabilities 매개변수에 추가합니다. 예를 들어 컨트롤러 프로필과 하나의 노드를 사용하도록 3개의 노드를 태그하여 compute 프로필을 사용하려면 다음 명령을 사용합니다.
profile 옵션을 추가하면 각 프로필에 노드에 태그를 지정합니다.
수동 태그 지정 대신 AHC(Automated Health Check) 툴을 사용하여 데이터 벤치마킹을 기반으로 더 많은 수의 노드를 자동으로 태그합니다.
2.5. Ceph Storage 노드의 루트 디스크 정의 링크 복사링크가 클립보드에 복사되었습니다!
대부분의 Ceph Storage 노드는 여러 디스크를 사용합니다. 즉, director가 Ceph Storage 노드를 프로비저닝할 때 root 디스크에 사용할 디스크를 식별해야 합니다. 루트 디스크를 식별하는 데 사용할 수 있는 몇 가지 속성이 있습니다.
-
model(문자열): 장치 식별자 -
vendor(문자열): 장치 벤더 -
serial(문자열): 디스크 일련번호 -
wwn(문자열): 고유한 스토리지 식별자 -
size(정수): 장치의 크기(GB 단위)
이 예에서는 루트 장치를 결정하기 위해 디스크의 일련 번호를 사용하여 Overcloud 이미지를 배포할 드라이브를 지정합니다.
먼저 director가 인트로스펙션에서 얻은 각 노드의 하드웨어 정보 사본을 수집합니다. 이 정보는 OpenStack Object Storage 서버(swift)에 저장됩니다. 이 정보를 새 디렉터리에 다운로드합니다.
mkdir swift-data
cd swift-data
export IRONIC_DISCOVERD_PASSWORD=`sudo grep admin_password /etc/ironic-inspector/inspector.conf | egrep -v '^#' | awk '{print $NF}'`
for node in $(ironic node-list | grep -v UUID| awk '{print $2}'); do swift -U service:ironic -K $IRONIC_DISCOVERD_PASSWORD download ironic-inspector inspector_data-$node; done
$ mkdir swift-data
$ cd swift-data
$ export IRONIC_DISCOVERD_PASSWORD=`sudo grep admin_password /etc/ironic-inspector/inspector.conf | egrep -v '^#' | awk '{print $NF}'`
$ for node in $(ironic node-list | grep -v UUID| awk '{print $2}'); do swift -U service:ironic -K $IRONIC_DISCOVERD_PASSWORD download ironic-inspector inspector_data-$node; done
이렇게 하면 인트로스펙션에서 각 inspector_data 오브젝트에서 데이터가 다운로드됩니다. 모든 오브젝트는 노드 UUID를 오브젝트 이름의 일부로 사용합니다.
각 노드의 디스크 정보를 확인합니다. 다음 명령은 각 노드 ID와 디스크 정보를 표시합니다.
for node in $(ironic node-list | grep -v UUID| awk '{print $2}'); do echo "NODE: $node" ; cat inspector_data-$node | jq '.inventory.disks' ; echo "-----" ; done
$ for node in $(ironic node-list | grep -v UUID| awk '{print $2}'); do echo "NODE: $node" ; cat inspector_data-$node | jq '.inventory.disks' ; echo "-----" ; done
예를 들어 한 노드의 데이터에 3개의 디스크가 표시될 수 있습니다.
이 예에서는 루트 장치를 WD-000000000002 가 일련 번호로 있는 disk 2로 설정합니다. 이를 위해서는 노드 정의의 root_device 매개변수를 변경해야 합니다.
ironic node-update 97e3f7b3-5629-473e-a187-2193ebe0b5c7 add properties/root_device='{"serial": "WD-000000000002"}'
$ ironic node-update 97e3f7b3-5629-473e-a187-2193ebe0b5c7 add properties/root_device='{"serial": "WD-000000000002"}'
그러면 director가 root 디스크로 사용할 특정 디스크를 식별하는 데 도움이 됩니다. Overcloud 생성을 시작하면 director가 이 노드를 프로비저닝하고 오버클라우드 이미지를 이 디스크에 씁니다. 다른 디스크는 Ceph Storage 노드를 매핑하는 데 사용됩니다.
노드를 부팅할 때 이 값이 변경될 수 있으므로 name 을 사용하여 root 디스크를 설정하지 마십시오.
2.6. 오버클라우드에서 Ceph Storage 활성화 링크 복사링크가 클립보드에 복사되었습니다!
Overcloud 이미지에는 컨트롤러 클러스터에서 Ceph OSD 노드와 Ceph 모니터를 자동으로 구성하는 데 필요한 Puppet 모듈과 Ceph 서비스가 이미 포함되어 있습니다. Overcloud의 Heat 템플릿 컬렉션에는 Ceph Storage 구성을 활성화하는 데 필요한 절차가 포함되어 있습니다. 그러나 director에는 Ceph Storage를 활성화하고 의도한 설정을 전달하기 위해 몇 가지 세부 정보가 필요합니다. 이 정보를 전달하려면 storage-environment.yaml 환경 파일을 stack 사용자의 templates 디렉터리에 복사합니다.
cp /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml ~/templates/.
$ cp /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml ~/templates/.
storage-environment.yaml 사본에서 다음 옵션을 수정합니다.
- CinderEnableIscsiBackend
-
iSCSI 백엔드를 활성화합니다.
false로 설정합니다. - CinderEnableRbdBackend
-
Ceph Storage 백엔드를 활성화합니다.
true로 설정합니다. - CinderEnableNfsBackend
-
NFS 백엔드를 활성화합니다.
false로 설정합니다. - NovaEnableRbdBackend
-
Nova 임시 스토리지용 Ceph 스토리지를 활성화합니다.
true로 설정합니다. - GlanceBackend
-
Glance에 사용할 백엔드를 정의합니다. 이미지에 Ceph Storage를 사용하려면
rbd로 설정합니다.
storage-environment.yaml 에는 Heat를 통해 직접 Ceph Storage를 구성하는 몇 가지 옵션도 포함되어 있습니다. 그러나 director가 이러한 노드를 생성하고 설정 값을 자동으로 정의하므로 이 시나리오에서는 이러한 옵션이 필요하지 않습니다.
2.7. Ceph Storage 노드 디스크 레이아웃 매핑 링크 복사링크가 클립보드에 복사되었습니다!
기본 매핑은 Ceph Storage에 root 디스크를 사용합니다. 그러나 대부분의 프로덕션 환경에서는 저널링을 위해 스토리지 및 파티션에 여러 개의 개별 디스크를 사용합니다. 이 경우 스토리지 맵을 이전에 복사한 storage-environment.yaml 파일의 일부로 정의합니다.
storage-environment.yaml 파일을 편집하고 다음 항목이 포함된 추가 섹션을 추가합니다.
parameter_defaults:
ExtraConfig:
ceph::profile::params::osds:
parameter_defaults:
ExtraConfig:
ceph::profile::params::osds:
그러면 Puppet에서 구성 중에 사용자 지정 매개 변수로 사용하는 추가 Hiera 데이터가 Overcloud에 추가됩니다. ceph::profile::params::osds 매개변수를 사용하여 관련 디스크 및 저널 파티션을 매핑합니다. 예를 들어 4개의 디스크가 있는 Ceph 노드에 다음과 같은 할당이 있을 수 있습니다.
-
/dev/sda- Overcloud 이미지가 포함된 루트 디스크 -
/dev/sdb- 저널 파티션이 포함된 디스크입니다. 이는 일반적으로 시스템 성능을 지원하기 위한 솔리드 스테이트 디스크(SSD)입니다. -
/dev/sdc및/dev/sdd- OSD 디스크
이 예에서는 매핑에 다음이 포함될 수 있습니다.
ceph::profile::params::osds:
'/dev/sdc':
journal: '/dev/sdb'
'/dev/sdd':
journal: '/dev/sdb'
ceph::profile::params::osds:
'/dev/sdc':
journal: '/dev/sdb'
'/dev/sdd':
journal: '/dev/sdb'
저널에 대해 별도의 디스크를 사용하지 않으려면 OSD 디스크에서 공동 배치된 저널을 사용합니다. journal 매개변수에 빈 값을 전달합니다.
ceph::profile::params::osds:
'/dev/sdb': {}
'/dev/sdc': {}
'/dev/sdd': {}
ceph::profile::params::osds:
'/dev/sdb': {}
'/dev/sdc': {}
'/dev/sdd': {}
이러한 수정을 완료한 후 Overcloud를 배포할 때 Ceph Storage 노드에서 디스크 매핑을 사용하도록 storage-environment.yaml 파일을 저장합니다. 스토리지 요구 사항을 시작하기 위해 이 파일을 배포에 포함합니다.
2.8. GPT에 Ceph Storage 노드 디스크 포맷 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Storage OSD 및 저널 파티션에는 GPT 디스크 레이블이 필요합니다. 즉, Ceph OSD를 설치하기 전에 Ceph Storage의 추가 디스크를 GPT 레이블로 변환해야 합니다. 이를 위해 노드는 처음 부팅할 때 이 작업을 수행하기 위해 스크립트를 실행해야 합니다. 이 스크립트를 오버클라우드 생성에 Heat 템플릿의 일부로 포함합니다. 예를 들어 다음 heat 템플릿(wipe-disks.yaml)은 Ceph Storage 노드의 모든 디스크를 확인하고 루트 파일 시스템을 포함하는 디스크를 GPT로 변환하는 스크립트를 실행합니다.
이 Heat 템플릿은 wipe-disk.sh 라는 Bash 스크립트를 참조합니다. 이 스크립트에는 루트가 아닌 디스크를 지우는 절차가 포함되어 있습니다. 다음 스크립트는 root 디스크를 제외한 모든 디스크를 지우는 wipe-disk.sh 의 예입니다.
환경에 Heat 템플릿을 포함하려면 storage-environment.yaml 파일에 NodeUserData 리소스로 등록합니다.
resource_registry: OS::TripleO::NodeUserData: /home/stack/templates/firstboot/wipe-disks.yaml
resource_registry:
OS::TripleO::NodeUserData: /home/stack/templates/firstboot/wipe-disks.yaml
2.9. 오버클라우드 생성 링크 복사링크가 클립보드에 복사되었습니다!
Overcloud를 생성하려면 openstack overcloud deploy 명령에 추가 인수가 필요합니다. 예를 들면 다음과 같습니다.
openstack overcloud deploy --templates -e /home/stack/templates/storage-environment.yaml --control-scale 3 --compute-scale 3 --ceph-storage-scale 3 --control-flavor control --compute-flavor compute --ceph-storage-flavor ceph-storage --neutron-network-type vxlan --ntp-server pool.ntp.org
$ openstack overcloud deploy --templates -e /home/stack/templates/storage-environment.yaml --control-scale 3 --compute-scale 3 --ceph-storage-scale 3 --control-flavor control --compute-flavor compute --ceph-storage-flavor ceph-storage --neutron-network-type vxlan --ntp-server pool.ntp.org
위의 명령은 다음 옵션을 사용합니다.
-
--templates- 기본 Heat 템플릿 컬렉션에서 Overcloud를 생성합니다. -
-e /home/stack/templates/storage-environment.yaml- Overcloud 배포에 추가 환경 파일을 추가합니다. 이 경우 Ceph Storage 구성이 포함된 스토리지 환경 파일입니다. -
--control-scale 3- 컨트롤러 노드를 3개로 확장합니다. -
--compute-scale 3- 컴퓨팅 노드를 3개로 확장합니다. -
--Ceph-storage-scale 3- Ceph Storage 노드를 3개로 확장합니다. -
--control-flavor control- 컨트롤러 노드에 특정 플레이버를 사용합니다. -
--compute-flavor compute- 컴퓨팅 노드에 특정 플레이버를 사용합니다. -
--Ceph-storage-flavor ceph-storage- 컴퓨팅 노드에 특정 플레이버를 사용합니다. -
--Neutron-network-type vxlan-neutron네트워킹 유형을 설정합니다. -
--ntp-server pool.ntp.org- NTP 서버를 설정합니다.
전체 옵션 목록은 다음을 실행합니다.
openstack help overcloud deploy
$ openstack help overcloud deploy
자세한 내용은 Director 설치 및 사용 가이드의 Overcloud Parameters 설정을 참조하십시오.
Overcloud 생성 프로세스가 시작되고 director가 노드를 프로비저닝합니다. 이 프로세스를 완료하는 데 시간이 다소 걸립니다. Overcloud 생성 상태를 보려면 stack 사용자로 별도의 터미널을 열고 다음을 실행합니다.
source ~/stackrc heat stack-list --show-nested
$ source ~/stackrc
$ heat stack-list --show-nested
2.10. 오버클라우드 액세스 링크 복사링크가 클립보드에 복사되었습니다!
director는 director 호스트에서 Overcloud와의 상호 작용을 구성하고 인증을 지원하는 스크립트를 생성합니다. director는 이 파일(overcloudrc)을 stack 사용자의 홈 디렉터리에 저장합니다. 이 파일을 사용하려면 다음 명령을 실행합니다.
source ~/overcloudrc
$ source ~/overcloudrc
이렇게 하면 director 호스트의 CLI에서 Overcloud와 상호 작용하는 데 필요한 환경 변수가 로드됩니다. director 호스트와의 상호 작용으로 돌아가려면 다음 명령을 실행합니다.
source ~/stackrc
$ source ~/stackrc
2.11. Ceph Storage 노드 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
Overcloud 생성을 완료한 후 Ceph Storage 클러스터의 상태를 확인하여 제대로 작동하는지 확인하는 것이 좋습니다. 이 작업을 수행하려면 director에서 heat-admin 사용자로 컨트롤러 노드에 로그인합니다.
nova list ssh heat-admin@192.168.0.25
$ nova list
$ ssh heat-admin@192.168.0.25
클러스터 상태를 확인합니다.
sudo ceph health
$ sudo ceph health
클러스터에 문제가 없는 경우 명령에서 HEALTH_OK 를 다시 보고합니다. 즉, 클러스터가 안전하게 사용할 수 있습니다.
Ceph Monitor 쿼럼의 상태를 확인합니다.
sudo ceph quorum_status
$ sudo ceph quorum_status
쿼럼에 참여하는 모니터와 리더인 모니터가 표시됩니다.
모든 Ceph OSD가 실행 중인지 확인합니다.
ceph osd stat
$ ceph osd stat
Ceph Storage 클러스터 모니터링에 대한 자세한 내용은 Chapter 3을 참조하십시오. Monitoring in the Red Hat Ceph Storage Administration Guide.
2.12. 환경 재부팅 링크 복사링크가 클립보드에 복사되었습니다!
환경을 재부팅해야 하는 상황이 발생할 수 있습니다. 예를 들어 물리적 서버를 수정해야 하거나 정전에서 복구해야 할 수 있습니다. 이 경우 Ceph Storage 노드가 올바르게 부팅되는지 확인하는 것이 중요합니다. 다음 순서로 노드를 부팅해야 합니다.
- 먼저 모든 컨트롤러 노드를 부팅 합니다. 그러면 고가용성 클러스터에서 Ceph Monitor 서비스가 활성화되어 있는지 확인합니다.
- 모든 Ceph Storage 노드 부팅 - Ceph OSD 클러스터가 컨트롤러 노드의 활성 Ceph 모니터 클러스터에 연결할 수 있습니다.
모든 Overcloud 노드가 동시에 부팅되는 경우 Ceph OSD 서비스가 Ceph Storage 노드에서 올바르게 시작되지 않을 수 있습니다. 이 경우 컨트롤러 노드의 Ceph Monitor 서비스에 연결할 수 있도록 Ceph Storage OSD를 재부팅합니다. 각 Ceph Storage 노드에서 다음 명령을 실행합니다.
sudo systemctl restart 'ceph*'
$ sudo systemctl restart 'ceph*'
다음 명령을 사용하여 Ceph Storage 노드 클러스터의 HEALTH_OK 상태를 확인합니다.
sudo ceph status
$ sudo ceph status
2.13. Ceph Storage 노드 교체 링크 복사링크가 클립보드에 복사되었습니다!
Ceph Storage 노드가 실패하면 상황이 발생할 수 있습니다. 이 경우 데이터가 손실되지 않도록 하려면 Overcloud에서 제거하기 전에 결함이 있는 노드를 비활성화하고 재조정해야 합니다. 다음 절차에서는 Ceph Storage 노드 교체 프로세스를 설명합니다.
이 절차에서는 Red Hat Ceph Storage 관리 가이드의 단계를 사용하여 Ceph Storage 노드를 수동으로 제거합니다. Ceph Storage 노드의 수동 제거에 대한 자세한 내용은 Red Hat Ceph Storage 관리 가이드에서 OSD 제거를 참조하십시오.
컨트롤러 노드 또는 Ceph Storage 노드에 heat-admin 사용자로 로그인합니다. director의 stack 사용자에게는 heat-admin 사용자에게 액세스할 수 있는 SSH 키가 있습니다.
OSD 트리를 나열하고 노드의 OSD를 찾습니다. 예를 들어 삭제할 노드에 다음 OSD가 포함될 수 있습니다.
-2 0.09998 호스트 overcloud-cephstorage-0 0 0.04999 osd.0 최대 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000 1.00000
Ceph Storage 노드에서 OSD를 비활성화합니다. 이 경우 OSD ID는 0과 1입니다.
sudo ceph osd out 0 sudo ceph osd out 1
[heat-admin@overcloud-controller-0 ~]$ sudo ceph osd out 0
[heat-admin@overcloud-controller-0 ~]$ sudo ceph osd out 1
Ceph Storage 클러스터가 재조정을 시작합니다. 이 프로세스가 완료될 때까지 기다립니다. 다음 명령을 사용하여 상태를 확인할 수 있습니다.
sudo ceph -w
[heat-admin@overcloud-controller-0 ~]$ sudo ceph -w
Ceph 클러스터가 재조정되면 결함이 있는 Ceph Storage 노드에 heat-admin 사용자로 로그인하여 노드를 중지합니다.
sudo /etc/init.d/ceph stop osd.0 sudo /etc/init.d/ceph stop osd.1
[heat-admin@overcloud-cephstorage-0 ~]$ sudo /etc/init.d/ceph stop osd.0
[heat-admin@overcloud-cephstorage-0 ~]$ sudo /etc/init.d/ceph stop osd.1
CRUSH 맵에서 Ceph Storage 노드를 제거하여 더 이상 데이터를 수신하지 않도록 합니다.
sudo ceph osd crush remove osd.0 sudo ceph osd crush remove osd.1
[heat-admin@overcloud-cephstorage-0 ~]$ sudo ceph osd crush remove osd.0
[heat-admin@overcloud-cephstorage-0 ~]$ sudo ceph osd crush remove osd.1
OSD 인증 키를 제거합니다.
sudo ceph auth del osd.0 sudo ceph auth del osd.1
[heat-admin@overcloud-cephstorage-0 ~]$ sudo ceph auth del osd.0
[heat-admin@overcloud-cephstorage-0 ~]$ sudo ceph auth del osd.1
클러스터에서 OSD를 제거합니다.
sudo ceph osd rm 0 sudo ceph osd rm 1
[heat-admin@overcloud-cephstorage-0 ~]$ sudo ceph osd rm 0
[heat-admin@overcloud-cephstorage-0 ~]$ sudo ceph osd rm 1
노드를 그대로 두고 stack 사용자로 director 호스트로 돌아갑니다.
exit
[heat-admin@overcloud-cephstorage-0 ~]$ exit
[stack@director ~]$
director가 다시 프로비저닝하지 않도록 Ceph Storage 노드를 비활성화합니다.
ironic node-list ironic node-set-maintenance [UUID] true
[stack@director ~]$ ironic node-list
[stack@director ~]$ ironic node-set-maintenance [UUID] true
Ceph Storage 노드를 삭제하려면 로컬 템플릿 파일을 사용하여 director의 오버클라우드 스택을 업데이트해야 합니다. 먼저 Overcloud 스택의 UUID를 식별합니다.
heat stack-list
$ heat stack-list
삭제할 Ceph Storage 노드의 UUID를 확인합니다.
nova list
$ nova list
다음 명령을 실행하여 스택에서 노드를 삭제하고 그에 따라 계획을 업데이트합니다.
openstack overcloud node delete --stack [STACK_UUID] --templates -e [ENVIRONMENT_FILE] [NODE_UUID]
$ openstack overcloud node delete --stack [STACK_UUID] --templates -e [ENVIRONMENT_FILE] [NODE_UUID]
Overcloud를 생성할 때 추가 환경 파일을 전달한 경우 -e 또는 --environment-file 옵션을 사용하여 여기에서 다시 전달하여 Overcloud를 원치 않는 변경을 방지합니다.
스택이 업데이트를 완료할 때까지 기다립니다. heat stack-list --show-nested 명령을 사용하여 스택 업데이트를 모니터링합니다.
director의 노드 풀에 새 노드를 추가하고 Ceph Storage 노드로 배포합니다. --ceph-storage-scale 옵션을 사용하여 Overcloud에서 총 Ceph Storage 노드 수를 정의합니다. 예를 들어 3 노드 클러스터에서 결함이 있는 노드를 제거하고 이를 교체하려면 --ceph-storage-scale 3 을 사용하여 Ceph Storage 노드 수를 원래 값으로 반환합니다.
openstack overcloud deploy --templates --ceph-storage-scale 3 -e [ENVIRONMENT_FILES]
$ openstack overcloud deploy --templates --ceph-storage-scale 3 -e [ENVIRONMENT_FILES]
Overcloud를 생성할 때 추가 환경 파일을 전달한 경우 -e 또는 --environment-file 옵션을 사용하여 여기에서 다시 전달하여 Overcloud를 원치 않는 변경을 방지합니다.
director가 새 노드를 프로비저닝하고 전체 스택을 새 노드의 세부 정보로 업데이트합니다.
heat-admin 사용자로 컨트롤러 노드에 로그인하고 Ceph Storage 노드의 상태를 확인합니다. 예를 들면 다음과 같습니다.
sudo ceph status
[heat-admin@overcloud-controller-0 ~]$ sudo ceph status
osdmap 섹션의 값이 클러스터의 원하는 노드 수와 일치하는지 확인합니다.
이제 실패한 Ceph Storage 노드가 새 노드로 교체되었습니다.
3장. 오버클라우드에 기존 Ceph Storage 클러스터 통합 링크 복사링크가 클립보드에 복사되었습니다!
이 장에서는 Overcloud를 생성하고 기존 Ceph Storage 클러스터와 통합하는 방법을 설명합니다. Overcloud 및 Ceph Storage 클러스터를 모두 생성하는 방법에 대한 자세한 내용은 2장. Ceph Storage 노드를 사용하여 오버클라우드 생성 을 참조하십시오.
이 장에서 설명하는 시나리오는 Overcloud의 6개의 노드로 구성됩니다.
- 고가용성이 있는 컨트롤러 노드 3개
- 컴퓨팅 노드 세 개
director는 별도의 Ceph Storage 클러스터와 자체 노드를 Overcloud에 통합합니다. 오버클라우드와 독립적으로 이 클러스터를 관리합니다. 예를 들어 OpenStack Platform director가 아닌 Ceph 관리 툴을 사용하여 Ceph Storage 클러스터를 확장합니다.
모든 OpenStack 시스템은 IPMI를 사용하여 전원 관리에 사용하는 베어 메탈 시스템입니다. director가 각 노드에 Red Hat Enterprise Linux 7 이미지를 복사하므로 이러한 노드에 운영 체제가 필요하지 않습니다.
director는 인트로스펙션 및 프로비저닝 프로세스 중에 프로비저닝 네트워크를 통해 컨트롤러 및 컴퓨팅 노드에 통신합니다. 모든 노드는 기본 VLAN을 통해 이 네트워크에 연결됩니다. 이 예제에서는 다음 IP 주소 할당을 사용하여 Provisioning 서브넷으로 192.0.2.0/24를 사용합니다.
| 노드 이름 | IP 주소 | MAC 주소 | IPMI IP 주소 | |
|---|---|---|---|---|
| director | 192.0.2.1 | AA:aa:aa:aa:aa:aa | ||
| 컨트롤러 1 | DHCP 정의 | b1:b1:b1:b1:b1:b1 | 192.0.2.205 | |
| 컨트롤러 2 | DHCP 정의 | b2:b2:b2:b2:b2:b2 | 192.0.2.206 | |
| 컨트롤러 3 | DHCP 정의 | b3:b3:b3:b3:b3:b3 | 192.0.2.207 | |
| Compute 1 | DHCP 정의 | c1:c1:c1:c1:c1:c1 | 192.0.2.208 | |
| Compute 2 | DHCP 정의 | c2:c2:c2:c2:c2:c2 | 192.0.2.209 | |
| 컴퓨팅 3 | DHCP 정의 | c3:c3:c3:c3:c3:c3 | 192.0.2.210 |
3.1. 기존 Ceph Storage 클러스터 구성 링크 복사링크가 클립보드에 복사되었습니다!
Ceph 클러스터에
volumes,images,vms의 세 개의 풀을 만듭니다. 다음 명령을 가이드로 사용하십시오.ceph osd pool create volumes PGNUM ceph osd pool create images PGNUM ceph osd pool create vms PGNUM
[root@ceph ~]# ceph osd pool create volumes PGNUM [root@ceph ~]# ceph osd pool create images PGNUM [root@ceph ~]# ceph osd pool create vms PGNUMCopy to Clipboard Copied! Toggle word wrap Toggle overflow PGNUM 을 배치 그룹 수로 바꿉니다. OSD당 약 100개를 권장합니다. 예를 들어 총 OSD 수는 100을 복제본 수로 나눕니다(
osd 풀 기본 크기). 풀 계산기당 Ceph PG(배치 그룹) 를 사용하여 적절한 값을 결정할 수도 있습니다.다음 기능을 사용하여 Ceph 클러스터에
client.openstack사용자를 생성합니다.-
cap_mon:
r 허용 cap_osd:
class-read object_prefix rbd_ children을 허용하고, rwx pool=volumes를 허용하고, rwx pool=vms를 허용하고 rwx pool=images를 허용합니다.다음 명령을 가이드로 사용합니다.
ceph auth add client.openstack mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rwx pool=images'
[root@ceph ~]# ceph auth add client.openstack mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rwx pool=images'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
cap_mon:
다음으로
client.openstack 사용자에 대해 생성된 Ceph 클라이언트 키를확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기에서
키값(AQDLOh1VgEp6FRAAFzT7Zw+Y9V6JJExQAsRQ===)은 Ceph 클라이언트 키입니다.마지막으로 Ceph Storage 클러스터의 파일 시스템 ID 를 확인합니다. 이 값은 클러스터의 구성 파일에 있는
fsid설정으로 지정됩니다([global]섹션 참조).[global] fsid = 4b5c8c0a-ff60-454b-a1b4-9747aa737d19 ...
[global] fsid = 4b5c8c0a-ff60-454b-a1b4-9747aa737d19 ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고Ceph Storage 클러스터 구성 파일에 대한 자세한 내용은 Configuration Reference ( Red Hat Ceph Storage 구성 가이드)를 참조하십시오.
Ceph 클라이언트 키와 파일 시스템 ID는 모두 3.6절. “기존 Ceph Storage 클러스터와 통합 활성화” 에서 나중에 사용됩니다.
3.2. Stack 사용자 초기화 링크 복사링크가 클립보드에 복사되었습니다!
director 호스트에 stack 사용자로 로그인하고 다음 명령을 실행하여 director 설정을 초기화합니다.
source ~/stackrc
$ source ~/stackrc
이렇게 하면 director의 CLI 툴에 액세스하기 위해 인증 세부 정보가 포함된 환경 변수가 설정됩니다.
3.3. 노드 등록 링크 복사링크가 클립보드에 복사되었습니다!
노드 정의 템플릿(instackenv.json)은 JSON 형식 파일이며 노드 등록을 위한 하드웨어 및 전원 관리 세부 정보가 포함되어 있습니다. 예를 들면 다음과 같습니다.
템플릿을 생성한 후 stack 사용자의 홈 디렉터리(/home/stack/instackenv.json)에 저장한 다음 director로 가져옵니다. 이 작업을 수행하려면 다음 명령을 사용합니다.
openstack baremetal import --json ~/instackenv.json
$ openstack baremetal import --json ~/instackenv.json
템플릿을 가져오고 템플릿의 각 노드를 director에 등록합니다.
커널 및 램디스크 이미지를 모든 노드에 할당합니다.
openstack baremetal configure boot
$ openstack baremetal configure boot
이제 노드가 director에 등록 및 구성됩니다.
3.4. 노드의 하드웨어 검사 링크 복사링크가 클립보드에 복사되었습니다!
노드를 등록한 후 각 노드의 hardware 속성을 검사합니다. 다음 명령을 실행하여 각 노드의 하드웨어 속성을 확인합니다.
openstack baremetal introspection bulk start
$ openstack baremetal introspection bulk start
이 프로세스가 완료되었는지 확인합니다. 베어 메탈 노드의 경우 이 프로세스는 일반적으로 15분 정도 걸립니다.
3.5. 수동으로 노드 태그 지정 링크 복사링크가 클립보드에 복사되었습니다!
각 노드의 하드웨어를 등록하고 검사한 후 특정 프로필에 태그를 지정합니다. 이러한 프로필 태그는 노드와 일치하는 플레이버를 배포 역할에 할당합니다.
노드 목록을 검색하여 UUID를 확인합니다.
ironic node-list
$ ironic node-list
노드를 특정 프로필에 수동으로 태그하려면 profile 옵션을 각 노드의 properties/capabilities 매개변수에 추가합니다. 예를 들어 컨트롤러 프로필과 하나의 노드를 사용하도록 3개의 노드를 태그하여 compute 프로필을 사용하려면 다음 명령을 사용합니다.
profile 옵션을 추가하면 각 프로필에 노드에 태그를 지정합니다.
수동 태그 지정 대신 AHC(Automated Health Check) 툴을 사용하여 데이터 벤치마킹을 기반으로 더 많은 수의 노드를 자동으로 태그합니다.
3.6. 기존 Ceph Storage 클러스터와 통합 활성화 링크 복사링크가 클립보드에 복사되었습니다!
stack 사용자의 홈 디렉터리에 /usr/share/openstack-tripleo-heat-templates/environments/puppet-ceph-external.yaml 의 사본을 생성합니다.
mkdir templates cp /usr/share/openstack-tripleo-heat-templates/environments/puppet-ceph-external.yaml ~/templates/.
[stack@director ~]# mkdir templates
[stack@director ~]# cp /usr/share/openstack-tripleo-heat-templates/environments/puppet-ceph-external.yaml ~/templates/.
파일을 편집하고 다음 매개변수를 설정합니다.
- 리소스 정의를 절대 경로로 설정합니다.
OS::TripleO::CephClusterConfig::SoftwareConfig: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/ceph/ceph-external-config.yaml
OS::TripleO::CephClusterConfig::SoftwareConfig: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/ceph/ceph-external-config.yaml
Ceph Storage 환경 세부 정보를 사용하여 다음 세 매개변수를 설정합니다.
-
CephClientKey: Ceph Storage 클러스터의 Ceph 클라이언트 키입니다. 3.1절. “기존 Ceph Storage 클러스터 구성” 에서 검색한키값입니다(예:AQDLOh1VgEp6FRAAFzT7Zw+Y9V6JJExQAsRQ==). -
CephExternalMonHost: Ceph Storage 클러스터에 있는 모든 MON 호스트의 쉼표로 구분된 목록입니다. -
CephClusterFSID: Ceph Storage 클러스터의 파일 시스템 ID입니다. 이는 이전에 3.1절. “기존 Ceph Storage 클러스터 구성” 에서 검색한 Ceph Storage 클러스터 구성 파일의fsid값입니다(예:4b5c8c0a-ff60-454b-a1b4-9747aa737d19).
-
필요한 경우 다음 매개변수 및 값을 사용하여 OpenStack 풀 및 클라이언트 사용자의 이름도 설정합니다.
-
CephClientUserName: openstack -
NovaRbdPoolName: vms -
CinderRbdPoolName: volumes -
GlanceRbdPoolName: images
-
3.7. 오버클라우드 생성 링크 복사링크가 클립보드에 복사되었습니다!
Overcloud를 생성하려면 openstack overcloud deploy 명령에 추가 인수가 필요합니다. 예를 들면 다음과 같습니다.
openstack overcloud deploy --templates -e /home/stack/templates/puppet-ceph-external.yaml --control-scale 3 --compute-scale 3 --ceph-storage-scale 0 --control-flavor control --compute-flavor compute --neutron-network-type vxlan --ntp-server pool.ntp.org
$ openstack overcloud deploy --templates -e /home/stack/templates/puppet-ceph-external.yaml --control-scale 3 --compute-scale 3 --ceph-storage-scale 0 --control-flavor control --compute-flavor compute --neutron-network-type vxlan --ntp-server pool.ntp.org
위의 명령은 다음 옵션을 사용합니다.
-
--templates- 기본 Heat 템플릿 컬렉션에서 Overcloud를 생성합니다. -
-e /home/stack/templates/puppet-ceph-external.yaml- 오버클라우드 배포에 추가 환경 파일을 추가합니다. 이 경우 기존 Ceph Storage 클러스터에 대한 구성이 포함된 스토리지 환경 파일입니다. -
--control-scale 3- 컨트롤러 노드를 3개로 확장합니다. -
--compute-scale 3- 컴퓨팅 노드를 3개로 확장합니다. -
--Ceph-storage-scale 0- Ceph Storage 노드를 0으로 확장합니다. 이렇게 하면 director에서 Ceph Storage 노드를 생성하지 않습니다. -
--control-flavor control- 컨트롤러 노드에 특정 플레이버를 사용합니다. -
--compute-flavor compute- 컴퓨팅 노드에 특정 플레이버를 사용합니다. -
--Neutron-network-type vxlan-neutron네트워킹 유형을 설정합니다. -
--ntp-server pool.ntp.org- NTP 서버를 설정합니다.
전체 옵션 목록은 다음을 실행합니다.
openstack help overcloud deploy
$ openstack help overcloud deploy
자세한 내용은 Director 설치 및 사용 가이드의 Overcloud Parameters 설정을 참조하십시오.
Overcloud 생성 프로세스가 시작되고 director가 노드를 프로비저닝합니다. 이 프로세스를 완료하는 데 시간이 다소 걸립니다. Overcloud 생성 상태를 보려면 stack 사용자로 별도의 터미널을 열고 다음을 실행합니다.
source ~/stackrc heat stack-list --show-nested
$ source ~/stackrc
$ heat stack-list --show-nested
이렇게 하면 외부 Ceph Storage 클러스터를 사용하도록 Overcloud가 구성됩니다. 이 클러스터를 Overcloud와 독립적으로 관리합니다. 예를 들어 OpenStack Platform director가 아닌 Ceph 관리 툴을 사용하여 Ceph Storage 클러스터를 확장합니다.
3.8. 오버클라우드 액세스 링크 복사링크가 클립보드에 복사되었습니다!
director는 director 호스트에서 Overcloud와의 상호 작용을 구성하고 인증을 지원하는 스크립트를 생성합니다. director는 이 파일(overcloudrc)을 stack 사용자의 홈 디렉터리에 저장합니다. 이 파일을 사용하려면 다음 명령을 실행합니다.
source ~/overcloudrc
$ source ~/overcloudrc
이렇게 하면 director 호스트의 CLI에서 Overcloud와 상호 작용하는 데 필요한 환경 변수가 로드됩니다. director 호스트와의 상호 작용으로 돌아가려면 다음 명령을 실행합니다.
source ~/stackrc
$ source ~/stackrc
4장. conclusion 링크 복사링크가 클립보드에 복사되었습니다!
이렇게 하면 Red Hat Ceph Storage를 사용한 Overcloud 생성 및 구성이 완료됩니다. 일반적인 오버클라우드 생성 후 기능에 대해서는 "Chapter 8"을 참조하십시오. Red Hat Enterprise Linux OpenStack Platform 8 Director 설치 및 사용 가이드에서 오버클라우드 생성 후 작업 수행".