답변:
빨리 일어나서 달리고 싶다면 여기로 가십시오.
이 답변은 Juju를 OpenStack과 함께 사용하는 방법에 대한 자세한 내용입니다.
OpenStack 플랫폼은 강력하고 다양합니다. 이 문서 섹션은 주로 MAAS, Juju 및 Ubuntu와 같은 정식 구성 요소를 사용하여 OpenStack 시스템을 실행하는 "표준"배포와 관련이 있습니다. 적절한 다른 방법과 소프트웨어가 언급 될 것입니다.
서비스를 배포하기 전에 사용 가능한 리소스와 사용 방법을 파악하는 것이 매우 유용합니다. OpenStack은 호스트 측면에서 요구 사항이 서로 다른 여러 관련 서비스 (Nova, Swift 등)로 구성됩니다. 예를 들어, 오브젝트 스토리지를 제공하는 Swift 서비스는 계산 자원을 제공하는 Nova 서비스와는 다른 요구 사항이 있습니다.
각 서비스 및 권장 사항에 대한 최소 요구 사항은 공식 OpenStack 운영 가이드에 나와 있습니다.
MAAS 및 주주와 OpenStack은 배포를위한 노드의 권장 구성은 시스템의 모든 노드가 실행 할 수 있어야한다는 것입니다 모든 서비스의. 이는 물리적 노드가 실패해야하기 때문에 다른 노드가 대신 사용될 수 있기 때문에 시스템의 견고성을위한 최선의 방법입니다. 이것은 추가 네트워크 인터페이스와 같은 모든 하드웨어 요구 사항으로 확장됩니다.
경제적 인 이유로 또는 다른 방식의 하드웨어 구성을 사용하기로 선택한 경우, 하드웨어 오류를 극복하는 능력이 줄어 듭니다. 또한 특정 노드에 대한 배포를 대상으로해야 합니다 . 태그 에 대한 MAAS 설명서 의 섹션을 참조하십시오 .
Juju 참을 사용하여 OpenStack의 구성 요소 부분을 배포합니다. 각 매력은 특정 서비스를 설정하는 데 필요한 모든 것을 캡슐화합니다. 그러나 개별 서비스에는 많은 구성 옵션이 있으며 그 중 일부는 변경하고자합니다.
이 작업을보다 쉽고 재현 가능하게하기 위해 모든 서비스에 대한 관련 옵션이있는 별도의 구성 파일을 만듭니다. 이것은 표준 YAML 형식으로 작성되었습니다 (이에 익숙하지 않은 경우 www.yaml.org 참조 ).
다음은 openstack-config.yaml의 예입니다.
keystone:
admin-password: openstack
debug: 'true'
log-level: DEBUG
nova-cloud-controller:
network-manager: 'Neutron'
quantum-security-groups: 'yes'
neutron-external-network: Public_Network
nova-compute:
enable-live-migration: 'True'
migration-auth-type: "none"
virt-type: kvm
#virt-type: lxc
enable-resize: 'True'
quantum-gateway:
ext-port: 'eth1'
plugin: ovs
glance:
ceph-osd-replication-count: 3
cinder:
block-device: None
ceph-osd-replication-count: 3
overwrite: "true"
glance-api-version: 2
ceph:
fsid: a51ce9ea-35cd-4639-9b5e-668625d3c1d8
monitor-secret: AQCk5+dR6NRDMRAAKUd3B8SdAD7jLJ5nbzxXXA==
osd-devices: /dev/sdb
osd-reformat: 'True'
모든 서비스 openstack-origin
에 대해 설치 소스를 가리 키도록 구성 할 수 있습니다 . 이 경우 기본값을 사용하며 Ubuntu 14.04 LTS Trusty 릴리스의 관련 소스를 가리 킵니다. 각 서비스에 대한 추가 구성은 이 문서 에서 설명 합니다 .
OpenStack 서비스 배포를위한 다른 설정 및 구성 옵션이 가능합니다. 자세한 내용은 Juju에서 사용하는 개별 참에 대한 설명서를 참조하십시오. 온라인 Juju Charm Store 를 방문 하여 페이지 왼쪽 상단의 검색 상자를 사용하여 참을 검색 하여 검사 할 수 있습니다 . 구성 설정은 다음과 같이 기본 페이지의 "구성"에 자세히 설명되어 있습니다.
구성이 정의되었으므로 Juju를 사용하여 서비스를 배포하고 관련시킬 수 있습니다.
Juju는 최소한의 설정 만 필요합니다. 여기서는 MAAS 클러스터와 작동하도록 이미 구성된 것으로 가정합니다 (자세한 내용은 [Juju 설치 안내서] [juju_install] 참조).
먼저 Juju가 사용할 이미지와 도구를 가져와야합니다.
juju sync-tools --debug
그런 다음 부트 스트랩 인스턴스를 만들 수 있습니다.
juju bootstrap --upload-tools --debug
우리는 upload-tools 스위치를 사용하여 방금 가져온 로컬 버전의 도구를 사용합니다. 디버그 스위치는 유용한 자세한 출력을 제공합니다. Juju가 인스턴스를 작성하고 도구를 설치하므로이 프로세스는 몇 분이 걸릴 수 있습니다. 완료되면 다음 명령으로 시스템 상태를 확인할 수 있습니다.
juju status
이것은 다음과 같은 것을 반환해야합니다 :
environment: maas
machines:
"0":
agent-state: started
agent-version: 1.18.1.1
dns-name: localhost
instance-id: localhost
series: trusty
Juju 부트 스트랩 노드가 시작되어 실행 중이므로 OpenStack 설치에 필요한 서비스를 배포 할 수 있습니다. 이러한 서비스가 배포 될 때 올바르게 구성하기 위해 --config
각 deploy 명령 과 함께 스위치와 함께 전달하여 앞에서 정의한 구성 파일을 사용합니다 . 다른 경우 구성 파일의 이름과 경로로 대체하십시오.
아래 순서대로 서비스를 배포하는 것이 유용하지만 필수는 아닙니다. 추가 터미널 창을 열고 명령을 실행하는 것이 juju debug-log
좋습니다. 이렇게하면 모든 서비스가 실행될 때 로그가 출력되며 문제 해결에 유용 할 수 있습니다.
juju status
각 서비스가 설치되어 있고 제대로 실행되고 있는지 확인하려면 명령을 정기적으로 실행하는 것이 좋습니다 . Juju는 온라인 Charm Store에서 가능한 최고의 매력 버전을 자동으로 가져 오려고 시도합니다. 제한된 네트워크 나 폐쇄 된 네트워크에서 설치하는 경우 필요한 참을 미리 가져올 수 있습니다. [오프라인 참에 대한 설명서] [charms-offline]을 참조하십시오.
juju deploy --to=0 juju-gui
juju deploy rabbitmq-server
juju deploy mysql
juju deploy --config openstack-config.yaml openstack-dashboard
juju deploy --config openstack-config.yaml keystone
juju deploy --config openstack-config.yaml ceph -n 3
juju deploy --config openstack-config.yaml nova-compute -n 3
juju deploy --config openstack-config.yaml quantum-gateway
juju deploy --config openstack-config.yaml cinder
juju deploy --config openstack-config.yaml nova-cloud-controller
juju deploy --config openstack-config.yaml glance
juju deploy --config openstack-config.yaml ceph-radosgw
이제 서비스가 배포되었지만 아직 서로 연결되지 않았습니다. 각 서비스는 현재 독립적으로 존재합니다. 우리는이 juju add-relation
명령을 사용하여 서로를 인식하고 관련 연결 및 프로토콜을 설정합니다. 이 추가 구성은 개별 참 자체에 의해 처리됩니다.
Keystone 인증 서비스와 데이터베이스를 설정하여 매력 사이에 관계를 추가해야합니다.
juju add-relation keystone mysql
관계가 설정 될 때까지 기다립니다. 완료 후 juju 상태로 확인하십시오.
juju status mysql
juju status keystone
이 서비스가 정착 되려면 약간의 시간이 걸릴 수 있습니다. 관계를 계속 추가하는 것은 확실히 가능하지만 (Juju는 보류중인 작업의 큐를 관리합니다) 많은 관계가 동일한 서비스를 참조하므로 전체 소요 시간 측면에서 비생산적 일 수 있습니다.
다음과 같은 관계도 만들어야합니다.
juju add-relation nova-cloud-controller mysql
juju add-relation nova-cloud-controller rabbitmq-server
juju add-relation nova-cloud-controller glance
juju add-relation nova-cloud-controller keystone
juju add-relation nova-compute mysql
juju add-relation nova-compute rabbitmq-server
juju add-relation nova-compute glance
juju add-relation nova-compute nova-cloud-controller
juju add-relation glance mysql
juju add-relation glance keystone
juju add-relation cinder keystone
juju add-relation cinder mysql
juju add-relation cinder rabbitmq-server
juju add-relation cinder nova-cloud-controller
juju add-relation openstack-dashboard keystone
juju add-relation swift-proxy swift-storage
juju add-relation swift-proxy keystone
마지막으로, juju 상태의 출력은 모든 관계가 완료된 것으로 표시해야합니다. OpenStack 클라우드가 현재 실행 중이지만 사용할 준비가되기 전에 일부 추가 구성 요소로 채워 져야합니다.
Ken Pepple은 OpenStack 배포에 관한 책을 가지고 있습니다 : http://shop.oreilly.com/product/0636920021674.do
Ken의 회사 (Internap)는 최초의 상용 OpenStack 클라우드 컴퓨팅 서비스를 보유하고 있습니다.
http://www.theregister.co.uk/2011/10/28/internap_openstack_cloud/
Internap의 클라우드는 하이퍼 바이저 인 XCP (Xen Cloud Platform)를 기반으로합니다.
RDO 배포는 빠르고 쉬운 프로세스입니다. OpenStack 클라우드 설정에는 약 15 분이 소요되며 3 단계로 짧을 수 있습니다. http://openstack.redhat.com/Quickstart