Contents

OpenStack - 1

   May 3, 2023     11 min read

OpenStack 설치

사진첨부

  • VMWare 16점대로 업그레이드 하기.
  • Join, Check는 지우고 설치하기.

사진첨부

  • CentOS 8 설치 완료로 시작

- CentOS 8
root / 1234
user1 / 1

- OpenStack
admin / Test1234!



  • root로 접속이 안 되면 user1로 접속하기

사진첨부

사진첨부

  • Putty 접속하기

사진첨부

클라우드 컴퓨팅

  • 컴퓨팅은 인터넷(“클라우드”)을 통해 서버, 스토리지, 데이터베이스, 네트워킹, 소프트웨어, 분석, 인텔리전스 등의 컴퓨팅 서비스를 제공하는 것입니다. 클라우딩 컴퓨팅을 통해 더 빠른 혁신과 유연한 리소스를 제공하고 대규모 경영의 이익 효과를 누릴 수 있게 됩니다. 일반적으로 사용한 클라우드 서비스에 대해서만 요금을 지불하므로, 운영 비용을 낮추고 인프라를 보다 효율적으로 운영할 수 있습니다. 그뿐만 아니라, 비즈니스 요구 사항의 변화에 따라 규모를 조정할 수 있습니다.

클라우드 컴퓨팅의 최고 이점

  • 비용
    클라우드 컴퓨팅을 사용하면 하드웨어 및 소프트웨어를 구입하고 온사이트 데이터 센터를 설치 및 운영하면서 발생하는 지출을 줄일 수 있습니다. 서버 랙, 전원 및 냉각에 사용되는 상시 대기 전기세, 인프라 관리를 위한 IT 전문가 비용 등의 비용이 빠르게 절감됩니다. 비용이 빠르게 절감됩니다.

  • 뛰어난 확장성
    탄력적인 확장은 클라우드 컴퓨팅 서비스의 큰 이점 중 하나입니다. 클라우드 세계의 이러한 특성은 바로 필요한 때에 적절한 지리적 위치에서 대략적인 컴퓨팅 성능, 스토리지, 대역폭 등 적절한 양의 IT 리소스를 제공하는 것을 의미합니다.

  • 성능
    최대 규모의 클라우드 컴퓨팅 서비스가 전 세계에 위치한 보안 데이터 센터 네트워크에서 실행됩니다. 이러한 데이터 센터는 최신 세대의 빠르고 효율적인 컴퓨팅 하드웨어로 정기적으로 업그레이드됩니다. 따라서 일반 개별 기업이 보유한 데이터 센터와 비교하면 애플리케이션의 네트워크 대기 시간 단축과 더 큰 규모의 경제 등 몇 가지 이점이 제공됩니다.

  • 보안
    많은 클라우드 공급자가 전체적인 보안 태세를 강화하는 광범위한 정책 집합, 기술 및 컨트롤을 제공하여 데이터, 앱 및 인프라를 잠재적인 위협으로부터 보호합니다.

  • 속도
    대부분의 클라우드 컴퓨팅 서비스는 주문형 셀프 서비스로 제공됩니다. 따라서 많은 양의 컴퓨팅 리소스도 대부분 몇 번의 마우스 클릭으로 몇 분 만에 프로비전될 수 있어 기업에 많은 유연성이 제공되며 기업은 용량 계획 부담을 덜 수 있습니다.

  • 생산성
    일반적으로 온사이트 데이터 센터에는 하드웨어 설치, 소프트웨어 패치 및 기타 시간이 오래 걸리는 IT 관리 작업 등 많은 “래킹과 스태킹(racking and stacking)”이 필요합니다. 클라우드 컴퓨팅을 사용하면 이러한 작업의 상당수가 필요해지므로 IT 팀은 더 중요한 비즈니스 목표를 달성하는 데 시간을 투자할 수 있습니다.

  • 안정성
    클라우드 컴퓨팅을 사용하면 클라우드 공급자 네트워크의 여러 중복 사이트에 데이터를 미러할 수 있으므로 데이터 백업, 재해 복구 및 비즈니스 연속성을 더 쉽게 제공할 수 있으며 비용도 덜 듭니다

Cloud Service Models

사진첨부

글 첨부

Software as a Service (SaaS) -> end users

  • 클라우드 환경에서 운영 중인 서비스 제공자의 애플리케이션을 사용자가 사용할 수 있는 클라우드 모델.
  • 사용자는 네트워크, 서버, 운영체제, 스토리지와 같이 현재 기본적인 클라우드 환경을 구성하는 요소들을 관리하거나 통제할 수 없음.

Platform as a Service (PaaS) -> software developers

  • 서비스 공급자가 제공하는 프로그램 언어, 라이브러리, 서비스 그리고 툴을 사용해서 제작한 애플리케이션 또는 사용자가 직접 제작한 애플리케이션을 클라우드 환경에서 배포할 수 있도록 허용하는 클라우드 모델.
  • 사용자는 네트워크, 서버, 운영체제, 스토리지와 같이 현재 기본적인 클라우드 환경을 구성하는 요소들을 관리하거나 통제할 수 없음. 그러나 배포된 애플리케이션의 환경이나 설정 등을 통제할 수 있다. (데이터베이스, 웹 서버, Azure)

Infrastructure as a Service (IaaS) -> IT administrator

  • Infrastructure & Network Architects

  • Processing(통합 개발 환경), 스토리지, 네트워크, 그리고 다른 기본적인 컴퓨팅 자원들을 사용자에게 제공하는 클라우드 모델
  • 이러한 환경을 통해 사용자는 임의의 소프트웨어를 배포하거나 실행할 수 있으며 운영체제나 애플리케이션도 이러한 소프트웨어에 포함될 수 있음.
  • 사용자는 기본적인 클라우드 환경을 관리 또는 통제할 수 없으나 운영체제, 스토리지 그리고 배포된 애플리케이션에 대한 통제는 할 수 있음. (가상머신, 서버, 네트워크, 오픈스택)

OpenSource Cloud Computing platform

오픈스택 특징

  • 6개의 코어 서비스와 다수의 선택 서비스 및 인큐베이션 서비스를 통해서 IDC에 필요한 거의 모든 컴포넌트들, 버추얼 서버나 네트워크, 스토리지, 빌링, 보안, UI, 이미지, 오케스트레이션 등을 제공

  • 596개사가 참여하고 있고, 전세계 180개국에 사용자 그룹을 가지고 있으며, 수만 명의 개발자가 등록하여 활동 중에 있다. 강력한 리더십에 의해 1년에 두 번 메이저 업데이트

  • NASA, 페이팔, 시스코, CERN, Nectar, 인텔, IBM 시게이트, 소니 등 많은 레퍼런스를 가지고 있다. 오픈 스택의 기술적인 목표는 사용자나 일반 개발자가 필요로 하는 컴퓨팅 리소스를 무한하게 제공

  • 서버로부터 CPU, 메모리를, 스토리지로부터 디스크를, 네트워크 장비로부터 네트워크, 이 네가지 물리적인 요소로 구분해 놓고 사용자 요청이 있을 때마다 이 요소들을 결합해서 서버, 네트워크, 스토리지 같은 가상 컴퓨팅 리소스를 제공

구성 컴포넌트

사진첨부

DevStack을 이용한 설치

사진첨부

  • 일단 IP 공유기의 게이트웨이 IP가 192.168.1.2이고, 서브넷마스크는 255.255.255.0이라고 가정합니다. VirtualBox를 설치한 맥 PC의 IP는 192.168.1.12로 설정되어 있습니다.
  • VirtualBox를 이용해 생성한 우분투 가상 서버는 ens0s3와 ens0s8이라는 네트워크 디바이스가 두개입니다.
  • ens0s3는 인터넷과 외부에서 접속할 수 있는 Floating IP의 통로 역할을 하며, ens0s8은 관리용 네트워크로 데쉬보드와 API를 접속할 수 있습니다.
  • 따라서 ens0s3은 메뉴얼 IP로 설정하고 ens0s8은 버철박스의 호스트 네트워크를 사용합니다. 그렇게 하여 할당받은 IP가 192.168.56.101이 된다고 가정을 합니다.
  • Fixed IP Range의 IP 범위는 10.11.12.0/24을 사용하고 Floating IP Range는 IP 공유기의 IP 범위 중 일부인 192.168.1.0 을 사용합니다.

Fixed IP

사진첨부

  • 클라우드 플랫폼에서 Fixed IP는 인터넷과 같은 외부망에 연결하기 위한 IP가 아니다. 클라우드 플랫폼 내에서 생성한 가상머신 (OpenStack의 경우 Instance)에 할당되는 내부 IP를 의미한다. 할당된 Fixed IP를 통해서는 인터넷과 같은 외부망에서 접근하는 것은 불가능하다. 마찬가지로 가상머신에서 외부 인터넷을 이용하는 것도 불가능하다. 하지만 클라우드 플랫폼 내에 생성된 여러 가상머신들 사이에서는 할당된 Fixed IP를 통해 접근할 수 있다.

Floating IP

  • 공용 IP

사진첨부

  • Floating IP는 클라우드 플랫폼의 등장으로 생긴 개념이다. 앞의 Fixed IP가 클라우드 플랫폼 내에서 할당되는 내부 IP라면 클라우드 내에서 가상머신이 인터넷과 외부망에 접근하기 위해 배정 받는 IP가 바로 Floating IP이다. Floating IP를 통해 사용자는 외부망에서 클라우드 플랫폼의 가상머신에 접근할 수도 있고, 반대로 가상머신에서 외부망으로 접근할 수 있다. 즉, 가상머신에서 인터넷을 할 수 있다는 의미이다. 여기서 이름이 Floating IP인 이유는 Floating의 의미처럼 IP를 자신이 원하는 가상 머신에 할당했다가 다시 취소할 수도 있고 다른 Floating IP로 자유롭게 재할당도 가능하기 때문이다. 반면에 Fixed IP는 가상머신이 생성될 때 자동으로 배정되기 때문에 IP를 사용자 마음대로 설정/해제 할 수 없다.

OpenStack Packages 설치(CentOS8)

  • vi 편집기 진입 후 ggdG로 모두 지운 후 그대로 복사, 붙여넣기 후 저장.

# vi /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
BOOTPROTO=none // IP수동 부여
NAME=ens160
DEVICE=ens160
ONBOOT=yes
IPADDR=192.168.1.128
NETMASK=255.255.255.0
GATEWAY=192.168.1.2
DNS1=192.168.1.2
DNS2=8.8.4.4

# vi /etc/selinux/config
SELINUX=disabled



  • //powertools 이용 설정 및 openstack 관련 설정
# dnf install network-scripts -y
# systemctl disable firewalld // 다른 보안도구 활용 위해
# systemctl disable NetworkManager // network 이용하기 위해서 겹치는 서비스 때문에 비활성화.
# systemctl enable network
# systemctl start network
# reboot

# dnf update -y //centOS 업데이트
# dnf config-manager --enable powertools
# dnf install -y centos-release-openstack-yoga
# dnf update -y // openstack 설치 환경(openstack-yoga)에 대한 업데이트
# dnf install -y openstack-packstack //pakcstack 설치
# packstack --gen-answer-file /root/answers.txt

# vi /root/answers.txt (:/하면 검색됨)
CONFIG_DEFAULT_PASSWORD=Test1234! //webUIpassword
CONFIG_KEYSTONE_ADMIN_PW=Test1234! //CLIpassword
CONFIG_CINDER_VOLUMES_SIZE=90G
CONFIG_NTP_SERVERS=0.kr.pool.ntp.org
CONFIG_AODH_INSTALL=n
CONFIG_HEAT_INSTALL=y
CONFIG_CEILOMETER_INSTALL=n
CONFIG_NEUTRON_L2_AGENT=openvswitch //L2 스위치 설정 openvswitch가 가장 무난하다.
CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan,flat 
//flat; 외부네트워크 설정 드라이버. vxlan; 내부네트워크 설정소프트웨어
CONFIG_NEUTRON_ML2_TENANT_NETWORK_TYPES=vxlan //project = tenant 임차인.
CONFIG_NEUTRON_ML2_MECHANISM_DRIVERS=openvswitch
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=extnet:br-ex
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:ens160
CONFIG_PROVISION_DEMO=n

# packstack --answer-file /root/answers.txt
//testing 메시가 사라질때까지 기다려야 합니다.



  • 설치 끝나면 인스턴스 생성 시 에러 발생하기 때문에 아래 구성으로 수정하기
# vi /etc/nova/nova.conf

block_device_allocate_retries = 300
block_device_allocate_retries_interval = 10



사진첨부
오픈 스택이 잘 열렸다.

  • admin / Test1234! 로 로그인하기

사진첨부

오픈스택 웹 서버

Step 01.

  • Identity > Users > admin > Actions -> 아래 화살표 : Change Password

사진첨부

사진첨부

사진첨부

Step 02.

  • Identity > Projects > Create Project > name : project1

사진첨부

사진첨부

  • domain : 프로젝트, 그룹, 사용자의 집합을 가리키는 개념, 도메인 단위로 오픈스택의 Identity entity를 관리하게 됨.
  • quota : 프로젝트마다 할당되는 리소스를 제한하기 위한 설정

Step 03.

  • Identity > Users > Create user

사진첨부

사진첨부

Step 04.

  • Identity > Projects > project1 > Manage Members

사진첨부

사진첨부

Step 05.

  • Admin > Compute > Images > Create Image

사진첨부

사진첨부

사진첨부

  • sharing은 admin에서만 보임
  • protected는 프로젝트 내의 다른 사용자가 삭제 불가능하도록 하는 옵션
  • saving 또는 queue라고 나오는 건 오픈 스택 버그임. 새로 고침.

Step 06.

  • Admin > Compute > Flavor> Create Flavor

사진첨부

  • Flavor = 본체

사진첨부

사진첨부

  • admin 탭이 아닌 일반 project 탭에는 flavor가 없다. 그래서 admin 권한이 없는 멤버 사용자는 어떤 flavor가 있는지 대시보드에서 확인 불가능하고, 인스턴스 만들 때만 잠깐 확인이 가능하다.

Step 07.

  • Admin > Network > Networks > Create Network

사진첨부

사진첨부

사진첨부

사진첨부

사진첨부

  • network는 admin 계정에서 보이는 network 탭과 일반계정에서도 보이는 project - network가 다르다.
  • admin 계정에서는 public network(외부망) 만든다.

Step 08.

  • 로그아웃하고 user1로 로그인

사진첨부

사진첨부

  • identity 탭에 가면 현재 계정이 어떤 프로젝트에 속해 있는지 볼 수 있다. users 탭에는 본인 밖에 보이지 않고, 별다른 할 수 있는 동작이 없어 보인다.
  • project 탭에서 set as active project로 프로젝트 간 전환이 가능하며, 이는 좌측 상단에서도 가능하다.

Step 09.

  • Project > Network > Networks > Create Network

사진첨부

  • 내부망 생성

사진첨부

사진첨부

사진첨부

사진첨부

  • 사설망을 셋텅하는 것이기 때문에 게이트웨이는 내 맘대로 줄 수 있음.
  • 알아보기 쉽게 1번으로 부여하려고 했는데 dhcp 옵션에 체크 하게 되면 어차피 알아서 셋팅 되기 때문에 비워두었음.

  • 이제 network topology에서 네트워크 구성을 확인해보면 외부망과 내부망 사이에 connection이 없는 상태임을 확인할 수 있다.
  • public과 network1을 이어줄 라우터 만들어서 연결한다.

Step 10.

  • Project > Network > Networks > Routers > Create Router

사진첨부

사진첨부

사진첨부

Step 11.

  • Project > Network > Networks > router1 > Interface > Add Interface

사진첨부

사진첨부

사진첨부

Step 12.

  • Project > Network > Security Group > Manage Rules

사진첨부

사진첨부

사진첨부

사진첨부

사진첨부

사진첨부

Step 13.

  • Project > Network > Security Group > Create Security Group

Step 14.

  • Project > Network > Floating IPs > Allocate IP To Project

사진첨부

사진첨부

사진첨부

Step 15.

  • Project > Compute > Key Pairs > Create Key Pair

사진첨부

사진첨부

사진첨부

Step 16.

  • Project > Compute > Instances > Launch Instance

사진첨부

사진첨부

사진첨부

사진첨부

사진첨부

사진첨부

사진첨부

Step 17.

  • Project > Network > Floating IPs > Actions : Associate

사진첨부

사진첨부

Step 18.

  • Project > Network > Floating IPs > Actions : Associate

사진첨부

  • 부팅 중
  • centos / (enter)

사진첨부

사진첨부

사진첨부

사진첨부

사진첨부

사진첨부

오류 발생

사진첨부

사진첨부

해결

사진첨부