XCP-ng (Xen Hypervisor) 노트
XCP-ng (Xen Hyphervisor) 노트
지난 가천 카카오엔터프라이즈 SW 아카데미 기간동안 프로젝트를 진행하면서 노션에 작성한 XCP-ng 노트 내용을 옮긴 것이다.
아카데미 기간동안 개발 서버로 사용한 교내 On-premise 서버가 XCP-ng 기반의 Xen 서버여서 사용하게 되었다.
Team Github: https://github.com/KEA-ACCELER
A-Log(동시편집 기반 릴리즈 노트 공유 시스템) : https://github.com/KEA-ACCELER/alog-cluster
A-Form(GPT 기반 설문 플랫폼) : https://github.com/KEA-ACCELER/aform-cluster
1. XCP-ng란?
Introduction
XCP-ng documentation | XCP-ng documentation
XenServer 기반의 오픈소스 Xen 가상화 플랫폼 (하이퍼바이저)
XCP-ng는 Xen Cloud Platform - next generation의 약자로, Xen 프로젝트의 하이퍼바이저를 기반으로 한 오픈소스 서버 가상화 플랫폼이다. XCP-ng는 2018년에 Citrix XenServer(현재 Citrix Hypervisor)의 포크로 탄생했으며, 2020년부터는 Xen 프로젝트를 통해 Linux 재단의 일원이 되었다.
비슷한 것으로는 Proxmox가 있다. (Proxmox는 KVM + Debian 기반, XCP-ng는 Xen + CentOS 기반)
XCP-ng vs. Proxmox: Side-by-Side Comparison in 2023
Installation
Installation | XCP-ng documentation
설치 방법은 위 문서를 참고하면 된다.
type 1 hyphervisor이므로 운영체제를 설치하듯이 bare-metal에 설치를 진행하면 된다.
KEA 프로젝트에서는 학교에 사전 설치된 XCP-ng를 사용
2. Management
Managing pools and hosts | XCP-ng documentation
XCP-ng를 사용하기 위해서는 메니징을 위한 클라이언트 들을 사용해야 하는데 종류는 아래와 같다.
xe
CLI (talking to a host XAPI directly)- XCP-ng Center (Windows client, only community supported)
- Xen Orchestra web UI (need an XO virtual appliance running)
- Xen Orchestra CLI (
xo-cli
, same requirement) - Xen Orchestra API (same requirement)
- XO Lite (future embedded lightweight client)
XCP-ng는 기본적으로는 GUI는 XO Lite만 설치되어 있는데 이는 아직 매우 초기버전으로 web console을 사용할 수 있는것 외에는 기능이 없다.
따라서 기본적으로 설치된 xe cli를 사용해 web ui를 vm 형태로 올려서 사용해야 gui 기반의 관리를 할 수 있다.
GUI툴로는 XCP-ng Center, Xen Orchestra 등이 있는데, XCP-ng Center는 윈도우에서만 지원하므로 Xen Orchestra 설치를 시도하였다.
Xen Orchestra
Xen Orchestra | XO documentation
Xen Orchestra는 XCP-ng에서 공식적으로 지원하는 client이다.
설치를 위해 XOA라는 이름으로 trunkey한 방식을 지원해 웹페이지에 접속하는 것만으로 쉽게 설치할 수 있지만, 이는 기본적으로 상업용으로 지원되는 서비스로 유료 요금제를 사용해야 모든 기능을 사용할 수 있다.
하지만 Xen Orchestra도 오픈소스 프로젝트로 소스파일을 통해 설치하면 모든 기능을 사용할 수 있다.(하지만 유료 서비스 지원을 받을 수 없다)
Installation
Installation | XO documentation
Xen Orchestra를 소스파일을 기반으로 설치하려면 우선 Xen Orchestra가 동작할 VM을 생성해 주어야 한다.
공식 문서에서 Debian으로 동작이 확인되었다고 소개되어 있어 Debian VM을 생성해 주었다.
VM 생성을 위해서는 아직 GUI가 없으므로 아래 링크를 참고해 xe 명령어로 진행하였다.
How to create a new virtual machine on XenServer using command line
How to add ISO image storage repository on XenServer Linux
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# iso 파일 리스트 확인 (iso 파일 경로가 사전에 인식될 수 있게 추가되어야 한다 - 위 링크 확인)
xe cd-list
ISO="debian-12.0.0-amd64-netinst.iso"
# vm 생성, UUID는 아래 명령에서 사용을 위해 저장
xe vm-install template="Debian Bullseye 11" new-name-label="Xen-Orchestra"
UUID=4f8dfb43-40ca-066c-d071-62492a16ad56
# 가상 디스크 목록 확인, VDI의 코드값은 아래 명령에서 사용을 위해 저장
xe vm-disk-list vm="$NAME"
VDI=ad186454-0031-460b-9afd-38c656a24f4f
# 설치 iso파일을 vm에 가상 cdrom으로 추가
xe vm-cd-add uuid=$UUID cd-name=$ISO device=1
# 설치를 위한 부트 옵션 설정
xe vm-param-set HVM-boot-policy="BIOS order" uuid=$UUID
# network 인터페이스 리스트 확인
xe network-list
NETWORK=dbe1233f-d339-6dce-991a-e08a7fe0907d
# 가상 network 인터페이스 연결
xe vif-create vm-uuid=$UUID network-uuid=$NETWORK device=0
# vm 메모리 사용 설정
xe vm-memory-limits-set dynamic-max=4096MiB dynamic-min=512MiB static-max=4096MiB static-min=512MiB uuid=$UUID
# 가상 디스크 용량 설정
xe vdi-resize uuid=$VDI disk-size=64GiB
# 생성된 vm 확인
xe vm-list
위 참고 링크에서는 vif-create 명령을 사용할때 MAC주소를 수동으로 설정해주었지만 이를 설정 안하고 자동으로 잡게 해주는게 네트워크 설정에 편리한것 같다.
위 명령은 vm 설정만 완료한것으로 vm을 실행시켜 debian 설치를 진행해야 한다.
이 과정은 화면 출력이 필요하므로 XO Lite의 Console화면으로 진행하였다. (XO Lite는 XCP-ng가 설치된 호스트 컴퓨터 ip로 접속하면 접속할 수 있다.)
그런다음 공식 문서 설명을 따라 xen orchestra를 debian vm에 설치
1
2
default id: admin@admin.net
default pw: admin
Xen Orchestra 접속 화면
1
2
# 현재 설정
adress: http://172.16.211.21
VM 생성 화면
VM 생성 리스트