
이전 글에서는 OpenStack이 여러 서버의 컴퓨팅, 네트워크, 스토리지 자원을 통합하여 클라우드 환경을 구축하고 관리할 수 있도록 도와주는 오픈소스 플랫폼이라는 점을 알아보았다.
OpenStack의 개념을 이해하는 것도 중요하지만,
각 서비스가 실제로 어떻게 구성되고 동작하는지를 이해하려면
직접 환경을 구축하고 사용해보는 과정이 필요하다.
따라서 이번 글부터는 OpenStack 실습 환경을 구성하고, 주요 기능을 하나씩 직접 사용해보려고 한다.
이번 실습에서는 설치된 VirtualBox를 이용해 Ubuntu Server 가상머신을 생성한다.
이후 Ubuntu Server 내부에 DevStack을 설치하여
하나의 가상머신에서 OpenStack의 주요 서비스를 실행하는 All-in-One 환경을 구축할 예정이다.
여기서 OpenStack이 아닌 DevStack이 갑자기 튀어나와서 당황할 수 있다.
OpenStack을 처음부터 수동으로 설치하면
각 서비스의 데이터베이스, 인증 정보, API 주소, 네트워크 등을 직접 설정해야 하므로
초보자가 실습 환경을 구성하기 어렵다.
그래서 이번 실습에서는 주요 OpenStack 서비스를 자동으로 구성해주는
DevStack을 사용하여 먼저 동작하는 환경을 구축하고,
이후 각 서비스의 역할과 연결 구조를 하나씩 살펴볼 예정이다.
전체적인 실습 환경은 다음과 같다.
Windows PC
└─ VirtualBox
└─ Ubuntu Server
└─ DevStack
├─ Keystone
├─ Nova
├─ Neutron
├─ Glance
├─ Cinder
└─ Horizon
VirtualBox는 Windows 위에서 Ubuntu Server 가상머신을 실행하는 역할을 한다.
Ubuntu Server 내부에서는 KVM 또는 QEMU가 OpenStack 인스턴스를 실행하는 하이퍼바이저 역할을 담당한다.
즉, VirtualBox와 KVM 중 하나를 선택하는 것이 아니라 다음과 같이 서로 다른 계층에서 함께 사용되는 구조다.
이번 실습에서는 VirtualBox의 중첩 가상화 기능을 활성화하여
Ubuntu 가상머신 내부에서 KVM을 사용할 수 있는지 확인할 예정이다.
중첩 가상화를 사용할 수 없는 환경에서는 QEMU를 이용해 실습을 진행할 수 있지만,
인스턴스 실행 성능이 다소 느려질 수 있다.
또한 DevStack은 학습과 개발, 기능 테스트를 위한 도구이며
실제 서비스를 운영하기 위한 설치 방식은 아니다.
운영체제의 패키지와 네트워크 설정을 크게 변경하기 때문에
개인 개발 환경에 직접 설치하기보다 별도의 가상머신에서 사용하는 것이 안전하다.
정리해서 말하자면
이번 실습의 최종 목표는 Ubuntu Server 가상머신에 DevStack 기반의 OpenStack All-in-One 환경을 구축하고,
Keystone, Nova, Neutron, Glance, Cinder 등 주요 OpenStack 서비스가 정상적으로 실행되는지 확인하는 것이다.
이번 글에서는 Windows 환경에서 가상머신을 설치하고 실행하기 전까지의 과정을 설명한다.
실제 PC 사양 확인하기
먼저 최소한의 가상 머신의 사양을 결정하기 위해
Windows PC의 사양을 확인한다.
설정 → 시스템 → 정보
또는 작업 관리자에서 확인 가능하다.
Ctrl + Shift + Esc → 성능 → CPU / 메모리
PC에 사양에 따른 권장 사양은 다음과 같다.
PC 메모리 32GB 이상
CPU: 6~8 vCPU
메모리: 12~16GB
디스크: 100GB
PC 메모리 16GB
CPU: 4 vCPU
메모리: 8GB
디스크: 80GB
8GB 메모리에서도 OpenStack 자체는 설치될 수 있지만,
Windows와 Ubuntu, OpenStack 인스턴스를 동시에 실행하면 상당히 답답할 수 있다.
가상 머신의 디스크는 동적 할당 100GB로 만들어도 처음부터 100GB를 모두 차지하지 않는다.
실제 사용한 만큼 파일 크기가 증가한다.
BIOS 가상화 기능 확인하기
실습을 위해서는 가상화 기능을 필수로 확인해야 한다.
가상화 기능을 활성화하면 VirtualBox가 CPU의 하드웨어 가상화 기능을 사용해
가상머신을 더 안정적이고 빠르게 실행할 수 있다.
또한 Ubuntu 가상머신 내부에서 KVM을 사용하는 중첩 가상화 실습을 위해 반드시 확인해야 한다.
작업 관리자에서 다음 항목을 확인한다.
작업 관리자 → 성능 → CPU → 가상화

사진과 같이 자동화가 '사용'으로 표시되면 된다.
사용 안 함으로 표시되면 BIOS 또는 UEFI에서 다음 기능을 활성화해야 한다.
Intel CPU
Intel Virtualization Technology
Intel VT-x
AMD CPU
SVM Mode
AMD-V
설정 이름은 메인보드 제조사마다 조금씩 다르다.
VirtualBox Host-Only 네트워크 만들기
이번 실습에서는 VirtualBox 가상머신에 네트워크 어댑터를 두 개 연결하는 방법을 사용할 예정이다.
어댑터 1: NAT
어댑터 2: Host-Only
역할은 다음과 같다.
NAT
→ Ubuntu가 인터넷에 접속
→ 패키지와 OpenStack 소스 다운로드
Host-Only
→ Windows와 Ubuntu가 직접 통신
→ Horizon 접속
→ 고정된 관리 IP 사용
Host-Only 네트워크 생성
VirtualBox를 실행하고 네트워크 관리 화면으로 이동한다.
(VirtualBox 버전에 따라 메뉴 이름은 조금 다를 수 있다)
도구 → 네트워크 → Host-only Networks
새 네트워크를 만들고 다음처럼 설정
IPv4 주소: 192.168.56.1
IPv4 네트워크 마스크: 255.255.255.0
DHCP 서버: 사용하지 않음
여기서 192.168.56.1은 Windows 쪽 Host-Only 어댑터 주소
Ubuntu에는 나중에 다음 주소를 직접 설정할 예정
192.168.56.10
결과적으로 구조는 다음과 같음
Windows Host-Only: 192.168.56.1
Ubuntu Host-Only: 192.168.56.10
Ubuntu Server 가상머신 생성하기
VirtualBox에서 새 가상머신을 생성한다.
이름: OpenStack-Lab (이름은 자유)
종류: Linux
버전: Ubuntu (64-bit)
이번 실습에서는 Ubuntu Server 24.04 LTS ISO를 연결한다.

하드웨어 설정
PC 메모리가 16GB인 경우
메모리: 8192MB
CPU: 4개
디스크: 80~100GB
PC 메모리가 32GB 이상인 경우
메모리: 12288~16384MB
CPU: 6~8개
디스크: 100GB
디스크 형식은 VirtualBox 기본값인 VDI로 사용하면 된다.
디스크 형식: VDI
저장 방식: 동적 할당
크기: 100GB


중첩 가상화 설정하기
가상머신을 실행하기 전에 설정한다.
OpenStack-Lab 선택
→ 설정
→ 시스템
→ 프로세서
다음 항목을 활성화한다.
Enable Nested VT-x/AMD-V
VirtualBox 공식 설명상 이 옵션은 실제 CPU의 하드웨어 가상화 기능을 게스트 가상머신으로 전달한다.
옵션이 회색으로 비활성화되어 있다면 가상머신이 완전히 종료됐는지 먼저 확인해야 한다.
명령어로도 설정이 가능하다.
Windows PowerShell 또는 명령 프롬프트에서 실행한다.
VBoxManage modifyvm "OpenStack-Lab" --nested-hw-virt on
그래도 활성화되지 않는다면 다음 항목을 확인해야 한다.
BIOS의 VT-x 또는 AMD-V
Windows Hyper-V
Virtual Machine Platform
Windows Hypervisor Platform
코어 격리의 메모리 무결성
다만 WSL2를 사용 중이라면 Hyper-V 관련 기능을 무작정 끄면 WSL2에 영향을 줄 수 있다.
우선 VirtualBox 설정과 /dev/kvm 확인까지 진행한 뒤, 실제로 문제가 있을 때 조정하는 게 안전하다.

가상머신 네트워크 어댑터 설정하기
VirtualBox 가상머신 설정에서 다음처럼 구성한다.
어댑터 1
네트워크 어댑터 사용: 체크
다음에 연결됨: NAT

어댑터 2
네트워크 어댑터 사용: 체크
다음에 연결됨: 호스트 전용
어댑터 이름: 앞에서 생성한 Host-Only 네트워크

이제 가상머신에는 네트워크 인터페이스가 두 개 생기게 된다.
Ubuntu에서는 일반적으로 다음과 비슷한 이름으로 보일 것이다.
enp0s3: NAT
enp0s8: Host-Only
지금까지 VirtualBox를 통해서 실습을 위한 가상머신의 설정을 해보았다.
다음 글에서는 가상머신을 실행해서 본격적인 실습을 진행할 예정이다!
'공부 기록 > 클라우드 공부' 카테고리의 다른 글
| [OpenStack] 1. OpenStack이란? (0) | 2026.07.02 |
|---|---|
| [Kubernetes] Vagrant + Ansible 기반 Kubernetes Cluster 자동 구축 (Virtual Box 환경) (0) | 2025.10.23 |