OLC 온라인 강좌 중 DevStack에 대한 두 번째 자료입니다.
( URL: http://olc.kr/course/course_online_view.jsp?id=480&cid=523 )
DevStack은 OpenStack을 실제 구성하는 대신, 개발 및 테스트 용도로 쉽게 설치 가능한 스크립트입니다.
2부에서는 Multi-nodes 모드 설치 과정을 설명하며, Icehouse Release 기반의 실습 내용을 포함하였습니다.
OpenStack Korea Community
Index
What is DevStack? (1편 All-in-one 참고)
Installation Type: Multi-nodes
Controller & Compute nodes
Configuration file: localrc / local.conf
Installation (Demo)
3.
OpenStack Korea Community
DevStackInstallation Type – (1)
• All-in-one (Single-node)
리눅스 서버 1대에 OpenStack 모든 구성 요소
들을 설치
장점: Multi-node보다 손쉬운 설치 과정
단점: OpenStack 각 구성 요소에 대한 구조 파
악의 어려움
• Multi-nodes
리눅스 서버 여러 대에 OpenStack 구성 요소들
을 나누어 설치
장점: 여러 대에 설치하여 기능 분산,
OpenStack 구성 요소에 대한 구조 이해 용이
단점: All-in-one보다 복잡한 설치 과정
4.
OpenStack Korea Community
DevStackInstallation Type – (2)
• All-in-one (Single-node)
Compute
API request
Nova API
Other
components
• Multi-nodes
Compute
API request
Nova API
Other
components
Compute
Compute
…
5.
OpenStack Korea Community
•Controller 노드
모든 OpenStack 서비스들을 실행합니다.
Compute 노드(들)을 관리합니다.
• Compute 노드(들)
작업 위주의 OpenStack 서비스들만을 실행합
니다. (예: 가상 머신 서비스 - Nova)
Controller & Compute nodes
Compute
API request
Nova API
Other
components
Compute
Compute
…
VM VM VM…
VM VM VM…
6.
OpenStack Korea Community
•localrc / local.conf
DevStack 설치를 위한 환경 설정 파일입니다.
초창기 DevStack에서부터 localrc를 설정 파
일로 사용하였으며, 최근에는 local.conf 파일
사용을 권장하고 있습니다.
All-in-one 설치시 미리 정의된 localrc 파일을
다운로드하여 사용하였습니다.
설정 내용
설치 구성 요소
암호
네트워크 구성
…
Configuration file: localrc / local.conf
HOST_IP=192.168.56.101
PUBLIC_INTERFACE=eth0
# Logging
DEST=/opt/stack
LOGFILE=$DEST/logs/stack.sh.log
SCREEN_LOGDIR=$DEST/logs/screen
# Credentials
ADMIN_PASSWORD=openstack
MYSQL_PASSWORD=openstack
RABBIT_PASSWORD=openstack
SERVICE_PASSWORD=openstack
SERVICE_TOKEN=tokentoken
# Neutron - Networking Service
DISABLED_SERVICES=n-net
ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,q-metering,neutron
localrc (All-in-one에서 사용):
7.
OpenStack Korea Community
Installation– (1)
• 데모: 설치 환경
가상 환경: VirtualBox 4.3.12 in Windows 8
Linux: “Ubuntu 14.04 LTS Desktop” x 2
OpenStack Release 버전: Icehouse
설치 방식: Multi-nodes (nova-network)
설치 구성 요소: Nova, Glance, Keystone, Horizon
참고: http://devstack.org/guides/multinode-lab.html
Compute
API request
Nova API
Other
components
Compute
Compute
…
8.
OpenStack Korea Community
(OS)
(VirtualBox)
[로컬영역 연결1]
(인터넷 연결)
[로컬 영역 연결2]
호스트 네트워크
(인터넷)
Compute
API request
Nova API
Other
components
Compute
Compute
…
VM VM VM…
VM VM VM…
eth0
br100
eth0
br100
eth0
br100
eth1
eth1
eth1
192.168.56.0/24
Installation – (2)
(참고: 는 NAT 입니다.)
9.
OpenStack Korea Community
Installation– (3)
• 설치 과정
1) VirtualBox 및 Linux 설치
2) Linux 기본 환경 설정 (업데이트 포함)
3) 가상 머신 복제를 통한 추가 노드 생성 + 설정
4) DevStack을 다운로드하기 위한 ‘git’ 설치
5) DevStack 스크립트 다운로드
6) Controller 노드 설정 구성 및 설치
7) Compute 노드 설정 구성 및 설치
8) 테스트
$ sudo pico /etc/hosts # 호스트 이름 변경 필요 (1)
$ sudo pico /etc/hostname # 호스트 이름 변경 필요 (2)
$ sudo service hostname start # 호스트명 변경 적용 명령어
10.
OpenStack Korea Community
Installation– (3)
• 설치 과정
1) VirtualBox 및 Linux 설치
2) Linux 기본 환경 설정 (업데이트 포함)
3) 가상 머신 복제를 통한 추가 노드 생성 + 설정
4) DevStack을 다운로드하기 위한 ‘git’ 설치
5) DevStack 스크립트 다운로드
6) Controller 노드 설정 구성 및 설치
7) Compute 노드 설정 구성 및 설치
8) 테스트
$ sudo -i
# groupadd stack
# useradd -g stack -s /bin/bash -d /opt/stack -m stack
# passwd stack
‘stack’ 사용자 추가 & 암호 지정
# echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
‘sudo’ 명령어 실행시 암호 묻지 않도록 설정
11.
OpenStack Korea Community
Installation– (3)
• 설치 과정
1) VirtualBox 및 Linux 설치
2) Linux 기본 환경 설정 (업데이트 포함)
3) 가상 머신 복제를 통한 추가 노드 생성 + 설정
4) DevStack을 다운로드하기 위한 ‘git’ 설치
5) DevStack 스크립트 다운로드
6) Controller 노드 설정 구성 및 설치
7) Compute 노드 설정 구성 및 설치
8) 테스트
$ sudo apt-get install git
$ git clone –b stable/icehouse git://github.com/openstack-
dev/devstack.git
Git 설치
DevStack 스크립트 다운로드
$ wget –O local.conf http://goo.gl/4c6AEW
$ wget –O local.sh http://goo.gl/aLMYsc && chmod +x local.sh
설치 구성 파일 다운로드 (Controller 노드)
$ wget –O local.conf http://goo.gl/67Mocp
설치 구성 파일 다운로드 (Compute 노드)
12.
OpenStack Korea Community
Installation– (3)
• 설치 과정
1) VirtualBox 및 Linux 설치
2) Linux 기본 환경 설정 (업데이트 포함)
3) 가상 머신 복제를 통한 추가 노드 생성 + 설정
4) DevStack을 다운로드하기 위한 ‘git’ 설치
5) DevStack 스크립트 다운로드
6) Controller 노드 설정 구성 및 설치
7) Compute 노드 설정 구성 및 설치
8) 테스트
[[local|localrc]]
HOST_IP=192.168.56.111
FIXED_RANGE=10.4.128.0/20
FIXED_NETWORK_SIZE=4096
FLOATING_RANGE=192.168.42.128/25
MULTI_HOST=1
LOGFILE=/opt/stack/logs/stack.sh.log
ADMIN_PASSWORD=openstack
MYSQL_PASSWORD=supersecret
RABBIT_PASSWORD=supersecrete
SERVICE_PASSWORD=supersecrete
SERVICE_TOKEN=xyzpdqlazydog
local.conf (Controller 노드):
#!/usr/bin/env bash
for i in `seq 2 20`; do nova-manage fixed reserve 10.4.128.$i; done
local.sh (Controller 노드):
13.
OpenStack Korea Community
Installation– (3)
• 설치 과정
1) VirtualBox 및 Linux 설치
2) Linux 기본 환경 설정 (업데이트 포함)
3) 가상 머신 복제를 통한 추가 노드 생성 + 설정
4) DevStack을 다운로드하기 위한 ‘git’ 설치
5) DevStack 스크립트 다운로드
6) Controller 노드 설정 구성 및 설치
7) Compute 노드 설정 구성 및 설치
8) 테스트
[[local|localrc]]]
HOST_IP=192.168.56.112
FIXED_RANGE=10.4.128.0/20
FIXED_NETWORK_SIZE=4096
FLOATING_RANGE=192.168.42.128/25
MULTI_HOST=1
DEST=/opt/stack
LOGFILE=$DEST/logs/stack.sh.log
SCREEN_LOGDIR=$DEST/logs/screen
ADMIN_PASSWORD=openstack
MYSQL_PASSWORD=supersecret
RABBIT_PASSWORD=supersecrete
SERVICE_PASSWORD=supersecrete
SERVICE_TOKEN=xyzpdqlazydog
DATABASE_TYPE=mysql
SERVICE_HOST=192.168.56.111
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
GLANCE_HOSTPORT=$SERVICE_HOST:9292
ENABLED_SERVICES=n-cpu,n-net,n-api,c-sch,c-api,c-vol,n-novnc
VNCSERVER_LISTEN=0.0.0.0
VNCSERVER_PROXYCLIENT_ADDRESS=$HOST_IP
local.conf (Compute 노드):
14.
OpenStack Korea Community
DevStackReview: Multi-nodes
DevStack을
Multi-nodes 모드로 여러 Linux 가상 머신에 설치해 보았습니다.
Controller 노드에서는
모든 OpenStack 서비스들을 실행합니다.
Compute 노드에서는
실제 작업을 주로 실행하는 OpenStack 서비스들을 실행합니다.
15.
OpenStack Korea Community
Tips!
screen–x stack
DevStack를 통해 구동된 여러 서비스들 상황을 확인합니다. (이동: Ctrl+p/n, 종료: Ctrl+a,d)
./unstack.sh
“./stack.sh”를 통해 실행되었던 OpenStack 서비스들을 중지합니다. (설정 파일 미제거)
./clean.sh
“./stack.sh”를 통해 설치되었던 OpenStack 서비스들을 제거합니다. (설정 파일 제거)