본문 바로가기
Study

[Openstack] DevStack을 이용한 Openstack 설치

by wwns 2024. 10. 9.
반응형

이번 주차에서는 오픈스택 구성요소들을 이해한 후 직접 Devstack을 이용하여 Openstack을 설치해보고자 한다.

 

 

오픈스택 가이드문서에서 제공해주는 스펙을 기반으로 AWS 인스턴스를 활용하여 직접 구축해보려고 했으나 Devstack을 통한 구축을 먼저 시도해서 단일 노드로 구축한 후 차후에 도전해보기로..

 

위와 같은 스펙과 유사하게 해당 인스턴스들을 생성.. 하지만 설치에서 복잡함에 실패했다.

  • compute node
    • 2 CPU, 8 RAM, 100G Disk 1 NIC
  • controller node
    • 2 CPU, 4 RAM, 30G Disk 1 Nic
  • network node
    • 2 CPU, 4 RAM, 30G Disk, 1 Nic
  • object storage node
    • 2 CPU, 4 RAM, 100G Disk, 1 Nic
  • block storage node
    • 2 CPU, 4 RAM, 100G Disk, 1 Nic

Devstack으로 단일 호스트에 Openstack 설치하기

EC2

  • 2 CPU, 8 RAM, 100G Disk 1 NIC

 

해당 방법에 따라 EC2에 DevStack을 설치한다.

 

stable/2024.2 브랜치로 최신버전을 선택했다.

 

설치 및 config 설정

#git checkout stable/2024.2
#[/opt/stack/devstack]vi local.conf

[[local|localrc]]
HOST_IP=$HOST_IP
FORCE=yes
ADMIN_PASSWORD=$ADMIN_PASSWORD
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

# Neutron options
FLOATING_RANGE="192.168.0.0/24"
IPV4_ADDRS_SAFE_TO_USE="10.0.0.0/22"
Q_FLOATING_ALLOCATION_POOL=start=192.168.0.50,end=192.168.0.250
PUBLIC_NETWORK_GATEWAY="192.168.0.1"
PUBLIC_INTERFACE=mybr0

# Open vSwitch provider networking configuration
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex


#[/opt/stack/devstack]./stack.sh    # openstack 설치

 


TroubleShooting

 

PowerDNS 서비스 Faield

pdns_server

pdns-server를 실행하면서 발생한 에러이다.

해당 서비스를 띄우지 못하는 에러가 발생했다.

해당 원인은 EC2에서 기본적으로 사용하는 DNS 데몬 서비스가 있는데, 해당 서비스와 충돌이 발생하는 것이다.

https://stackframe.tistory.com/8

 

systemd-resolved 사용하기

전통적으로 리눅스에서 도메인을 IP 주소로 변환 할 때는 먼저 /etc/hosts에 등록되어 있는지 확인하고 만약 없다면 /etc/resolv.conf 에 등록되어 있는 네임서버에 DNS Query를 합니다. 하지만 세월이 지

stackframe.tistory.com

따라서 해당 서비스를 stop 시킨 후 다시 stack 설치를 진행한다.

 

  • Openstack의 Designate라는 서비스가 리눅스 DNS 서비스데몬 대신  pdns 서비스를 띄운다.

https://cloudlab.tistory.com/entry/OpenStack-DesignateDNSaaS-%ED%99%9C%EC%9A%A9

 

OpenStack Designate(DNSaaS) 이해 및 활용

DNS란? DNS(Domain Name System)는 네트워크에 연결된 리소스의 이름을 지정하는 시스템으로 도메인 이름과 연결된 IP 주소와 같은 다양한 유형의 레코드를 저장하여 작동하는 도메인 네임 시스템입니

cloudlab.tistory.com


Subnet Pool 에러

 

Provider Network 구성 중 Subnetpool에서 할당받을 수 있는 network가 없다는식으로 나옴

 

1) subnetpool 확인

#openstack subnet pool list
+--------------------------------------+------------------------------+--------------------+
| ID                                                                      | Name                                               | Prefixes           |
+--------------------------------------+------------------------------+--------------------+
| 01816a96-894d-4dc7-ace5-f0fa5836ca45 | shared-default-subnetpool-v6 | fd33:3057:687::/56 |
| 6516be41-5fcb-46cc-b7ba-cdfc8e7f0fef | shared-default-subnetpool-v4 | 10.0.0.0/22        |
+--------------------------------------+------------------------------+--------------------+

subnetpool을 local.conf로 지정했으나 IPv6의 설정은 건드리지 않았고, IPv4의 Pool이 부족하다는 것이 아니었기에 해당 문제가 아니라고 생각함.

 

에러 수정 후 반복 재 설치를 통해 설정이 클렌징되지 않은 에러일 수 있다고 함.

https://bugs.launchpad.net/devstack/+bug/1904155

 

Bug #1904155 “Failure creating NET_ID for private” : Bugs : devstack

Trying to install devstack on a Virtual Box VM with a fresh installed Ubuntu 18.04.5 Server. VM with 32 GB HDD, 8 GB RAM and 4 vCPUs Switched to OpenStack Release victoria: git checkout stable/vistoria local.conf: [[local|localrc]] # Password for KeyStone,

bugs.launchpad.net

 

2) ./unstack.sh, ./clean.sh 후 다시 재 설치

- 해당 방법으로 해결됨


브릿지 명 중복

neutron 설치 중 내부 브릿지를 생성하는 부분을 보니 br-int, br-ex로 add한다.

 

EC2에서 Openstack 내부 네트워크에서 외부로 연결하기 위한 브릿지를 생성하였는데 br-int로 생성했다가 충돌이 나서 neutron이 제대로 올라오지 않았다.


openstack 명령어 사용 시 auth 문제

 

/opt/stack/devstack 해당 위치에 openrc라는 환경변수 설정 파일이 있으며 해당 명령어로 admin 권한 환경변수 적용

source openrc admin

[설치]

 

설치하고나면 대시보드 url 및 계정 정보가 아래에 출력된다.

 

[로그인 -> 대시보드 화면]

[명령어]


References

 

https://docs.openstack.org/ko_KR/install-guide/

 

OpenStack 설치 가이드 — Installation Guide 문서

this page last updated: 2024-10-02 12:16:21

docs.openstack.org

 

devstack quick start

https://docs.openstack.org/devstack/latest/

 

DevStack — DevStack documentation

DevStack DevStack is a series of extensible scripts used to quickly bring up a complete OpenStack environment based on the latest versions of everything from git master. It is used interactively as a development environment and as the basis for much of the

docs.openstack.org

 

config

https://docs.openstack.org/devstack/latest/configuration.html#local-conf

 

Configuration — DevStack documentation

KVM on s390x (IBM z Systems) is supported since the Kilo release. For an all-in-one setup, these minimal settings in the local.conf file are needed: Note To run Tempest against this Devstack all-in-one, you’ll need to use a guest image which is smaller t

docs.openstack.org

 

반응형