본 문서는 CloudStack의 주요기능을 살펴보기 위한 미리보기 성격의 Private 클라우드 구축방법에 관한 문서입니다. 실제 운영환경에서의 구축방법과는 차이가 있으며 관련 자료는 하단의 참고의 링크를 확인하십시오. Apache CloudStack 저장소에 배포된 2026년 02월 24일 기준 최신 모듈 4.22을 기준으로 설치합니다.
Apache CloudStack 개요
개요 (Overview)
- IaaS(Infrastructure as a Service) 클라우드 컴퓨팅 오케스트레이션(Orchestration) 플랫폼.
- 프라이빗, 퍼블릭 및 하이브리드 클라우드 환경에서 컴퓨팅, 스토리지, 네트워크 리소스를 풀링(Pooling)하고 자동화된 프로비저닝 제공.
주요 기능 (Key Features)
- 멀티 하이퍼바이저 지원: KVM, VMware vSphere(ESXi), XenServer 등 이기종 하이퍼바이저를 단일 제어 평면(Control Plane)에서 통합 제어.
- 네트워크 오케스트레이션: 가상 라우터(Virtual Router) 배포를 통한 방화벽, 로드밸런싱, 포트 포워딩, NAT 자동화 및 L2/L3 네트워크 격리.
- API 및 셀프 서비스 포털: 프로그래밍 방식의 제어를 위한 RESTful API 및 네이티브 웹 UI 제공. AWS EC2 API 호환성 지원.
- 고가용성(HA): Management Server 클러스터링, 하이퍼바이저 장애 감지 및 VM 자동 복구(Host HA) 스케줄링.
아키텍처 및 주요 특징 (Characteristics)
- 계층적 리소스 모델: Region > Zone > Pod > Cluster > Host 계층 구조를 채택하여 대규모 인프라의 물리적/논리적 분할 및 확장성 확보.
- 스토리지 티어링 분리: VM 루트/데이터 볼륨 구동을 위한 Primary Storage(블록 스토리지)와 템플릿, ISO, 스냅샷 보관용 Secondary Storage(NFS/오브젝트 스토리지)의 완전한 분리.
- System VM 어플라이언스: 외부 스토리지 마운트(SSVM), VNC 콘솔 프록시(CPVM) 등 인프라 백그라운드 제어를 위한 특수 목적 가상 머신의 자동 배포 체계.
기반 기술 (Underlying Technologies)
- Management Server (Core): Java 및 Spring Framework 기반으로 구현. 모듈화된 플러그인 아키텍처로 컴포넌트 간 결합도를 낮추고 확장성 제고.
- 네트워크 가상화 (SDN): OVN(Open Virtual Network), Open vSwitch(OVS) 플랫폼 등과의 플러그인 연동을 통한 분산 라우팅 및 선도적인 네트워크 가상화 제어.
- 비동기 메시징 (Message Broker): RabbitMQ를 활용한 분산 Management 노드 간 이벤트 브로드캐스팅 및 비동기 작업 큐잉(Queueing).
- 메타데이터 영속성 (Database): MySQL 및 MariaDB를 사용하여 클라우드 리소스의 상태(State) 데이터 트랜잭션 처리 및 영속성(Persistence) 유지.
Physical Hardware 장치 준비
장치 필수 조건
- 하드웨어 가상화를 지원하고 활성화한 컴퓨터가 최소 한 대 이상
- 최소한의 EL8 배포판과 같은 것
- 오라클 리눅스 8 - https://yum.oracle.com/oracle-linux-isos.html
- Rocky Linux 8 - https://rockylinux.org/download
- AlmaLinux OS 8 - https://almalinux.org/get-almalinux/
- 게이트웨이가 (예시) xxx.xxx.xxx.1인 /24 네트워크에서는 DHCP가 필요하지 않으며 CloudStack을 실행하는 컴퓨터는 동적 IP 주소를 할당받지 않습니다. 이는 네트워크 구성의 단순화를 위한 것입니다.
VMWare Esxi 기반 VM 준비
- CPU 정보에서 “게스트 운영 체제에 하드웨어 지원 가상화 표시” 체크
- 새 CD/DVD 드라이브에서 “전원을 켤때 연결” 체크 및 운영체제 설치 ISO 이미지 연결



- “중첩 VT-x/AMD-V 사용” 활성화
- CPU코어 3개이상, RAM 6GB이상, 40GB이상의 디스크 공간 확보
- 무선 네트워크도 사용가능하나 되도록이면 유선 네트워크
- 반가상화 네트워크 활성화
- 운영체제 설치 ISO 이미지 연결
Rocky Linux 9.5 설치
최소 설치


Apache CloudStack 설치
운영체제 준비
네트워크 브릿지 생성
작업시 네트워크가 끊어질 수 있으니 직접 서버 콘솔에서 작업해야 합니다.
# ip a
-- #nmcli connection add type bridge con-name cloudbr0 ifname cloudbr0
-- #nmcli connection modify eth0 master cloudbr0
-- #nmcli connection up eth0
-- #nmcli connection modify cloudbr0 ipv4.addresses '172.16.10.2/24' ipv4.gateway '172.16.10.1' ipv4.dns '8.8.8.8' ipv4.method manual && nmcli connection up cloudbr0
# nmcli connection add type bridge con-name cloudbr0 ifname cloudbr0
# nmcli connection modify ens33 master cloudbr0
# nmcli connection up ens33
# nmcli connection modify cloudbr0 ipv4.addresses '192.168.140.40/24' ipv4.gateway '192.168.140.254' ipv4.dns '8.8.8.8,8.8.4.4' ipv4.method manual && nmcli connection up cloudbr0
# ping [ipv4.gateway]
# reboot
// 필요 시 아래 명령 한번 더 실행(nmcli device 명령에서 ens33이 연결되지 않은 경우)
# nmcli connection up ens33

운영체제 패치 및 Sshd 설정
손쉬운 사용을 위하여 root로 접속이 가능하게 설정합니다.
# dnf -y upgrade
# dnf -y openssh-server
# dnf install net-tools -y
# vi /etc/ssh/sshd_config
Port 22
PermitRootLogin yes
# systemctl enable sshd
# systemctl restart sshd
SELinux 설정
selinux 설정을 permissive로 변경합니다.
# vi /etc/selinux/config
SELINUX=permissive
SELINUXTYPE=targeted
시간 동기화 서비스를 설정합니다. 본 문서에서는 별도의 추가 설정이 필요하지 않습니다. 실 운영환경에서는 서버간 동기화 설정해야 합니다.
# dnf -y install chrony
# systemctl enable chronyd
# systemctl start chronyd
CloudStack Repo 설정
CloudStack을 다운로드할 dnf/yum 저장소를 추가합니다.
# vi /etc/yum.repos.d/cloudstack.repo
[cloudstack]
name=cloudstack
baseurl=http://download.cloudstack.org/centos/$releasever/4.22/
enabled=1
gpgcheck=0
NFS 설정
NFS를 통하여 공유 스토리지를 생성합니다.
# dnf -y install nfs-utils
# vi /etc/exports
/export/secondary *(rw,async,no_root_squash,no_subtree_check)
/export/primary *(rw,async,no_root_squash,no_subtree_check)
# mkdir -p /export/primary
# mkdir /export/secondary
# vi /etc/idmapd.conf
Domain = local
# systemctl stop firewalld
# systemctl disable firewalld
# systemctl enable rpcbind
# systemctl enable nfs-server
# systemctl start rpcbind
# systemctl start nfs-server
CloudStack Management 설치
MariaDB 설치 및 설정
CloudStack 문서에서는 MySQL을 설명하고 있으나 본 문서에서는 MariaDB를 사용하였습니다.
# dnf -y install mariadb-server
# vi /etc/my.cnf.d/mariadb-server.cnf
[mysqld] section: ADD
innodb_rollback_on_timeout=1
innodb_lock_wait_timeout=600
max_connections=350
log_bin=mysql-bin
binlog_format=ROW
# systemctl enable mariadb
# systemctl start mariadb
관리 모듈을 설치합니다.
# dnf -y install cloudstack-management
JDK 17
# alternatives --config java
# cloudstack-setup-databases cloud:password@localhost --deploy-as=root
Mysql user name:cloud [ OK ]
Mysql user password:****** [ OK ]
Mysql server ip:localhost [ OK ]
Mysql server port:3306 [ OK ]
Mysql root user name:root [ OK ]
Mysql root user password:****** [ OK ]
Checking Cloud database files ... [ OK ]
Checking local machine hostname ... [ OK ]
Checking SELinux setup ... [ OK ]
Detected local IP address as 127.0.0.1, will use as cluster management server node IP[ OK ]
Preparing /etc/cloudstack/management/db.properties [ OK ]
Applying /usr/share/cloudstack-management/setup/create-database.sql [ OK ]
Applying /usr/share/cloudstack-management/setup/create-schema.sql [ OK ]
Applying /usr/share/cloudstack-management/setup/create-database-premium.sql [ OK ]
Applying /usr/share/cloudstack-management/setup/create-schema-premium.sql [ OK ]
Applying /usr/share/cloudstack-management/setup/server-setup.sql [ OK ]
Applying /usr/share/cloudstack-management/setup/templates.sql [ OK ]
Processing encryption ... [ OK ]
Finalizing setup ... [ OK ]
CloudStack has successfully initialized database, you can check your database configuration in /etc/cloudstack/management/db.properties
# cloudstack-setup-management
Starting to configure CloudStack Management Server:
Configure CloudStack Management Server ...[OK]
CloudStack Management Server setup is Done!
Please ensure ports 8080, 8250, 8443, and 9090 are opened and not firewalled for the management server and not in use by other processes on this host.
System Template Setup
시스템 템플릿을 다운로드하고 등록합니다.
# /usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -u http://download.cloudstack.org/systemvm/4.22/systemvmtemplate-4.22.0-x86_64-kvm.qcow2.bz2 -h kvm -F
CloudStack Agent 설치
CloudStack Agent 설치
Agent(Compute) 모듈을 설치합니다.
# dnf -y install cloudstack-agent
# vi /etc/libvirt/qemu.conf
vnc_listen=0.0.0.0
# vi /etc/libvirt/libvirtd.conf
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
auth_tcp = "none"
mdns_adv = 0
# vi /etc/libvirt/libvirtd
# vi /usr/lib/systemd/system/libvirtd.service
# Environment=LIBVIRTD_ARGS="--timeout 120"
Environment=LIBVIRTD_ARGS="--listen --timeout 120"
# systemctl daemon-reload
# systemctl start libvirtd
-- # systemctl mask libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket libvirtd-tls.socket libvirtd-tcp.socket
-- # systemctl restart libvirtd
# lsmod | grep kvm
kvm_intel 55496 0
kvm 337772 1 kvm_intel
kvm_amd # if you are in AMD cpu
Apache CloudStack 설정
UI 접근
- 주소 : http://[관리노드IP]:8080/client
- 기본계정 : admin / password

설치 계속
첫 페이지(대시보드) 접속 후 “Continue with installation >>” 클릭합니다.

암호 변경
암호를 변경합니다.

Zone 설정
기본값으로 설정합니다.


Zone 이름과 DNS, Hypervisor 정보를 입력합니다.

Network 설정 - Physical Network
특별한 추가 입력은 필요하지 않습니다. “다음”버튼을 클릭합니다.

Network 설정 - Public Traffic
공개 네트워크 정보를 입력합니다. VLAN/VNI는 별도로 입력하지 않아도 됩니다.


Network 설정 - Pod 설정
사설 네트워크 정보를 입력합니다.

Network 설정 - Guest Traffic
100-200을 입력합니다. 미리보기에서는 100-200이면 충분합니다.

Cluster 설정 - Cluster
클러스터 이름과 구조를 선택합니다.

Cluster 설정 - IP address
Agent 호스트 정보를 입력합니다.

Cluster 설정 - Primary Storage
메인 저장소 정보를 입력합니다.

Cluster 설정 - Secondary Storage
부가 저장소 정보를 입력합니다.

Launch
Launch Zone 버튼을 클릭하여 활성화합니다.


사용하고자 하는 템플릿을 선택하고 Register Templeate 버튼을 클릭합니다.


Dashboard
모든 설정이 완료되면 대시보드가 아래와 같이 표시됩니다.

문제 및 해결책
네트워크 관련
VMWare Esxi에서 System VMs의 네트워크가 안되는 경우
ESXi 호스트 레벨 보안 설정 경로
- CloudStack KVM VM이 구동 중인 실제 ESXi 호스트에 접속하고 로그인합니다.
- 구성 탭 진입: 우측 메인 화면 상단의 구성(Configure) 탭을 선택합니다.
- 가상 스위치 이동: 하위 카테고리인 네트워킹(Networking) -> **가상 스위치(Virtual switches)**를 클릭합니다.
- 설정 편집: VM Network 포트 그룹이 포함된 가상 스위치(일반적으로 vSwitch0)를 선택하고 설정 편집(Edit) 버튼을 클릭합니다.
- 보안 정책 적용: 팝업 창 좌측의 보안(Security) 메뉴를 누르고, 다음 3개 항목을 모두 **수락(Accept)**으로 변경 후 저장합니다.
- 무차별 모드 (Promiscuous mode)
- MAC 주소 변경 (MAC address changes)
- 위조된 전송 (Forged transmits)

참고
https://docs.cloudstack.apache.org/en/4.22.0.0/quickinstallationguide/qig.html
'Development > Cloud, OpenStack, CloudStack' 카테고리의 다른 글
| Openstack Designate 소개 (0) | 2024.11.27 |
|---|---|
| Telegraf + InfluxDB 1.8.x 설치 (0) | 2024.11.26 |
| OpenStack 이란 (0) | 2024.11.24 |
| Openstack Octavia(Load Balancer) Flaver 만들기 (0) | 2024.11.21 |
| Openstack(Antelope) Multi-Node 설치하기 with Kolla-ansible & NFS #2/2 (2) | 2024.11.16 |
