DevStack kilo 기반 DVR
OpenStack을 설치하면서 고생고생 한 사람들은 DevStack의 위대함을 새삼 느끼게 된다!!!
사실 OpenStack Kilo 버전이 나오면서 OpenStack 설치 및 설정이 매우 간편해지고 안정적으로 설치되는 편이지만 처음 접하는 사람들은 쉽지않을 것이다.
대부분의 OpenStack 입문자들이 만나게 되는 솔루션이 바로 DevStack인데 매우 간단하게 OpenStack이 설치된다.
본 포스팅에서는 DevStack을 사용한 OpenStack Kilo Install을 알아보고자 한다.
DevStack Kilo Install
사실 DevStack이라고 하는 것은 쉽게 말하면 OpenStack을 구성하는 각 Node에 각각 모듈을 다운 받고 DB 테이블을 생성하고 Keystone 사용자를 추가하고 각 서비스별 설정 과정을 프로그래밍화 하여 local.conf 또는 localrc 파일에 정보를 입력하면 이 파일을 가지고 OpenStack 설치를 자동화(?)하는 편리한 툴이다.
즉, 사용자는 local.conf 또는 localrc 파일만 적절하게 만들면 그 뒤는 알아서 설치 및 설정하게 되는 것이다.
본 포스팅에서는 VirtualBox를 활용하여 DevStack을 인스톨하고자 한다.
1. 준비 및 기본
1-1. VirtualBox
- 사용 이미지
- Ubuntu 14.04.3 Desktop 또는 이에 준하는 이미지 (예: Lubuntu 14.04.3 Desktop)
- VirtualBox 네트워크 구성
- 어댑터1: NAT
- 어댑터2: Host-Only
- 생성 VM
- controlnode
- networknode
- computenode
1-2. VM 기본 설정
- 네트워크 구성
- eth0: VirtualBox의 NAT
- eth1: VirtualBox의 VM 사이의 통신을 위한 인터페이스 (OpenStack의 Management Network)
- 사용자
- devstack 관련한 기본 사용자는 stack으로 되어 있기 때문에 될 수 있으면 VM 설치시 user 이름을 stack으로 한다.
1-3. controlnode 네트워크 기본 설정
1-4. networknode 네트워크 기본 설정
1-5. computenode 네트워크 기본 설정
- 기본 설정
$ sudo su
$ apt-get update
$ apt-get upgrade
$ apt-get dist-upgrade
$ reboot
- DevStack 다운로드
- DevStack 디렉토리 확인
다음과 같이 파일을 확인할 수 있으면 정상적으로 다운로드 받은 것 이다.
위 그림에서 보는 것 처럼 devstack 디렉토리에 위치한 파일들이 내가 설정한 OpenStack을 구성하게 된다.
devstack 디렉토리 파일 중 유심히 보아야 할 파일은 stack.sh 파일이다.
local.conf 또는 localrc 파일의 설정값을 읽어서 실제 OpenStack 구성을 하는 스크립트인데 ./stack.sh 명령으로 실행된다.
2. DevStack 인스톨
DevStack은 서두에서 설명한 것 처럼 local.conf 또는 localrc 파일을 활용하여 설치한다.
DevStack은 local.conf/localrc 파일에 따라서 다음과 같이 설치된다.
- All-in-one 설치 : VirtualBox에서 생성한 하나의 VM에 OpenStack의 Control/Network/Compute 모두 설치
- Milti-node 설치 : VirtualBox에 각각의 Node에 해당하는 VM을 생성하고 Node별 설치
본 포스팅에서는 DVR을 활용하는 DevStack을 구성하고자 한다.
- Control Node (VirtualBox VM) : OpenStack의 Control Node 설치
- Network Node (VirtualBox VM) : OpenStack의 Network Node 설치
- Compute Node (VirtualBox VM) : OpenStack의 Compute Node 설치
2-1. local.conf 파일 생성 (Control Node)
본 파일은 http://assafmuller.com/2015/04/06/multinode-dvr-devstack/ 에서 참조함
$ cd devstack
$ vi local.conf
------------------------------------------------------------------------------------
[[local|localrc]]
DEST=/opt/stack
DATA_DIR=$DEST/data
LOGFILE=$DATA_DIR/logs/stack.log
SCREEN_LOGDIR=$DATA_DIR/logs
VERBOSE=True
MYSQL_PASSWORD=openstack
RABBIT_PASSWORD=openstack
SERVICE_TOKEN=openstack
SERVICE_PASSWORD=openstack
ADMIN_PASSWORD=openstack
disable_service n-net
enable_service neutron
enable_service q-svc
enable_service q-meta
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
# TODO: Set this host's IP
HOST_IP=192.168.56.100
[[post-config|$NEUTRON_CONF]]
[DEFAULT]
router_distributed=True
[[post-config|/$Q_PLUGIN_CONF_FILE]]
[ml2]
type_drivers=flat,vlan,vxlan
tenant_network_types=vxlan
mechanism_drivers=openvswitch,l2population
[ml2_type_vxlan]
vni_ranges=1001:2000
[ovs]
local_ip=$HOST_IP
[agent]
tunnel_types=vxlan
l2_population=True
enable_distributed_routing=True
[[post-config|$Q_L3_CONF_FILE]]
[DEFAULT]
agent_mode=dvr
router_delete_namespaces=True
[[post-config|$Q_DHCP_CONF_FILE]]
[DEFAULT]
dhcp_delete_namespaces=True
------------------------------------------------------------------------------------------
2-2. Control Node DevStack 실행
$ ./stack.sh
2-3. local.conf 파일 생성 (Network Node)
본 파일은 http://assafmuller.com/2015/04/06/multinode-dvr-devstack/ 에서 참조함
$ cd devstack
$ vi local.conf
------------------------------------------------------------------------------------
[[local|localrc]]
DEST=/opt/stack
DATA_DIR=$DEST/data
LOGFILE=$DATA_DIR/logs/stack.log
SCREEN_LOGDIR=$DATA_DIR/logs
VERBOSE=True
MYSQL_PASSWORD=openstack
RABBIT_PASSWORD=openstack
SERVICE_TOKEN=openstack
SERVICE_PASSWORD=openstack
ADMIN_PASSWORD=openstack
ENABLED_SERVICES=neutron,q-agt,q-l3,q-meta
# TODO: Set this host's IP
HOST_IP=192.168.56.101
# TODO: Set the controller's IP
SERVICE_HOST=192.168.56.100
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
GLANCE_HOSTPORT=$SERVICE_HOST:9292
[[post-config|/$Q_PLUGIN_CONF_FILE]]
[ovs]
local_ip=$HOST_IP
[agent]
tunnel_types=vxlan
l2_population=True
enable_distributed_routing=True
[[post-config|$Q_L3_CONF_FILE]]
[DEFAULT]
agent_mode=dvr_snat
router_delete_namespaces=True
------------------------------------------------------------------------------------
2-4. Network Node DevStack 실행
$ ./stack.sh
2-5. local.conf 파일 생성 (Compute Node)
본 파일은 http://assafmuller.com/2015/04/06/multinode-dvr-devstack/ 에서 참조함
$ cd devstack
$ vi local.conf
------------------------------------------------------------------------------------
[[local|localrc]]
DEST=/opt/stack
DATA_DIR=$DEST/data
LOGFILE=$DATA_DIR/logs/stack.log
SCREEN_LOGDIR=$DATA_DIR/logs
VERBOSE=True
MYSQL_PASSWORD=openstack
RABBIT_PASSWORD=openstack
SERVICE_TOKEN=openstack
SERVICE_PASSWORD=openstack
ADMIN_PASSWORD=openstack
ENABLED_SERVICES=n-cpu,neutron,n-novnc,q-agt,q-l3,q-meta
# TODO: Set this host's IP
HOST_IP=192.168.56.102
# TODO: Set the controller's IP
SERVICE_HOST=192.168.56.100
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
Q_HOST=$SERVICE_HOST
GLANCE_HOSTPORT=$SERVICE_HOST:9292
VNCSERVER_PROXYCLIENT_ADDRESS=$HOST_IP
VNCSERVER_LISTEN=0.0.0.0
[[post-config|/$Q_PLUGIN_CONF_FILE]]
[ovs]
local_ip=$HOST_IP
[agent]
tunnel_types=vxlan
l2_population=True
enable_distributed_routing=True
[[post-config|$Q_L3_CONF_FILE]]
[DEFAULT]
agent_mode=dvr
router_delete_namespaces=True
------------------------------------------------------------------------------------
2-6. Compute Node DevStack 실행
$ ./stack.sh
3. Horizon 확인
devstack 설치가 완료되면 horizon을 통하여 확인 가능하다.
contronnode의 devstack 설치 완료 메시지를 보면 horizon 주소 및 계정이 보인다.
4. DevStack 종료
devstack 실행 후 VM을 종료하기 위해서는 devstack 환경을 종료하여야 한다.
만일 그대로 VM을 종료한다면 문제가 발생할 수 있다.
각 노드에 다음과 같이 명령을 내린다.
$ cd devstack
$ ./unstack.sh
'Cloud Native > Install_OpenStack' 카테고리의 다른 글
OpenStack Kilo Single Node install (45) | 2015.10.13 |
---|---|
OpenStack Kilo Install - Dashboard (10) | 2015.10.01 |
OpenStack Kilo Install - Network Service (20) | 2015.10.01 |
OpenStack Kilo Install - Compute Service (6) | 2015.10.01 |
OpenStack Kilo Install - Image Service (0) | 2015.10.01 |