본문 바로가기 대메뉴 바로가기

테크니컬 스토리

아이티마야의 새로운 기술 뉴스를 만나보세요.
오픈소스로 비용 없이 쉽게 클라우드 환경을 구현할 수 있는 Openstack을 알아보자.
등록일
2023.10.19
첨부파일
가상머신 기반인 클라우드 환경을 구현하는 MultiNode Openstack을 구현해 보자.
오픈소스로 비용 없이 쉽게 클라우드 환경을 구현할 수 있는 Openstack을 알아보자.


  • *전에, SingleNode로 구성했던 Openstack을 이번에는 MultiNode로 구성해 보았습니다.
    • Openstack란
    가상머신 기반으로 클라우드 환경을 구현하는 기술입니다. 이 오픈소스는 lass를 쉽게 구축할 수 있도록 플랫폼 지원과, 대시보드를 통해 스토리지, 프로세싱, 네트워킹 등 대시보드를 통해 자원들을 제어할 수 있게 해줍니다.
    • Openstack 사용 이유
    Openstack을 사용하는 가장 큰 이유는 시스템 사용에 대한 비용이 전혀 들지 않는다는 것입니다.
    • Openstack의 특징
    Openstack의 장점으로는 우선 확장성과, 모듈성, 오픈소스이므로 비용이 들지 않는다는 점과 많은 사람들이 사용하며, 개발하기 때문에 안정화와, 버전 릴리즈가 빠릅니다. 하지만 단점으로는 버전 릴리즈가 빠를수록 잦은 업데이트가 이루어진다는 것이 단점이 될 수도 있습니다.
    • 아래는 저의 구성 환경입니다.
    [멀티노드] 노드 3대 같은 사양으로 진행했습니다.
    • | OS : (VM)Ubuntu20.04 CLI

    • | CPU : 4core

    • | RAM : 16GB

    • | Disk : 50GB

    [호스트 네임은 꼭 별도로 다르게 설정해 주셔야 합니다.]
    • gpuadmin1 192.168.0.32 *hostname=gpusystem  Controller Node

    • gpuadmin2 192.168.0.34 *hostname=node1    Computing Node 1

    • gpuadmin3 192.168.0.37 *hostname=node2    Computing Node 2

    (1) 멀티노드 오픈스택을 구성해 보겠습니다.

    (1-1) stack 계정을 만들어줍니다.

    stack 계정 생성하기.

    • #sudo useradd -s /bin/bash -d /opt/stack -m stack

    stack 계정에 sudo 권한 주기.

    • #sudo echo "stack ALL=(ALL) NOPASSWD: ALL" |sudo tee /etc/sudoers.d/stack
    • #sudo chown -R stack:stack /opt/stack

    stack 계정에 로그인.

    • #sudo su - stack

    (1-2) devstack 설치와, local.conf 값 주기.

    devstack 다운로드

    • #git clone https://opendev.org/openstack/devstack

    local.conf 설정.

    • #cp devstack/samples/local.conf devstack/local.conf
    • #vi devstack/local.conf

    (1-3) 아래는 local.conf 값입니다.

    • [local.conf] Controller Node *gpuadmin1


    • HOST_IP=192.168.0.32
      FIXED_RANGE=10.4.128.0/20 #임의의 IP를 넣어줍니다.
      FLOATING_RANGE=192.168.0.240/25 #어디까지 IP를 사용할지 지정해 줍니다.
      LOGFILE=/opt/stack/logs/stack.sh.log
      ADMIN_PASSWORD=Itmaya #원하시는 패스워드를 넣으시면 됩니다.
      DATABASE_PASSWORD=supersecret
      RABBIT_PASSWORD=supersecret
      SERVICE_PASSWORD=supersecret

    • [local.conf] Compute Node *gpuadmin2,gpuadmin3 (두 대다 해당 아이피 넣어주기.)


    • HOST_IP=192.168.0.34,37 #Compute Node의 IP를 넣어줍니다.
      FIXED_RANGE=10.4.128.0/20
      FLOATING_RANGE=192.168.0.240/25
      LOGFILE=/opt/stack/logs/stack.sh.log
      ADMIN_PASSWORD=Itmaya
      DATABASE_PASSWORD=supersecret
      RABBIT_PASSWORD=supersecret
      SERVICE_PASSWORD=supersecret
      DATABASE_TYPE=mysql
      SERVICE_HOST=192.168.0.32
      MYSQL_HOST=$SERVICE_HOST
      RABBIT_HOST=$SERVICE_HOST
      GLANCE_HOSTPORT=$SERVICE_HOST:9292
      ENABLED_SERVICES=n-cpu,c-vol,placement-client,ovn-controller,ovs-vswitchd,ovsdb-server,q-ovn-metadata-agent
      NOVA_VNC_ENABLED=True
      NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_lite.html"
      VNCSERVER_LISTEN=$HOST_IP
      VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN

    (1-4) openstack 설치하기.

    • #./stack.sh

    (1-5) 아래 이미지는 설치가 완료된 이미지입니다.

    controller Node


    compute Node1


    compute Node2


    (1-6) 아래는 웹으로 오픈스택을 들어간 사진입니다.


    (TIP) 그 외, 에러가 나왔을 때 대처 방법입니다.

    *compute code error


    • #sudo /usr/share/openvswitch/scripts/ovs-ctl start
    • #sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-client bridge-utils virt-manager

    안될 시..

    • #sudo ovs-vsctl --no-wait init

    • #sudo ovs-vswitchd --pidfile --detach


    • local.conf에서 q-agt를 삭제 후, ./unstack 한번해 주시고 ./stack.sh 해주세요.
    PLEASE WAIT WHILE LOADING...