Understand different OS Concepts/Virtualization

Xen Orchestra란?

Somaz 2024. 5. 21. 15:52
728x90
반응형

Overview

XO(Xen Orchestra)는 XenServer 및 XCP-ng 하이퍼바이저 환경을 관리하도록 설계된 웹 기반 관리 도구이다. VM 관리, 백업 프로세스, 리소스 모니터링 등의 작업을 단순화한다. 주요 구성요소를 자세히 살펴보겠다.

출처 : https://github.com/vatesfr/xen-orchestra

 

 

가상화 개념 참고

2023.03.17 - [CS 지식] - [CS 지식5.] 가상화란?

 

[CS 지식5.] 가상화란?

Overview 오늘은 가상화에 대해서 공부해보려고 한다. 가상화란? 가상화는 시스템 내에서 물리적 장치 또는 리소스의 가상 버전을 생성하는 기술이다. 이 프로세스를 통해 물리적 구성 요소를 논

somaz.tistory.com

 

 


개요

 

XCP

XCP-ng는 XenServer 기반의 오픈 소스 가상화 플랫폼이다. 이는 커뮤니티에서 개발했거나 XenServer의 프리미엄 버전에서 사용할 수 있는 추가 개선 사항 및 수정 사항과 함께 XenServer의 모든 기능을 제공한다.

XCP-ng는 XenServer를 즉시 대체하여 라이센스 제약 없이 가상화 환경에 대한 완전한 제어를 제공하는 것을 목표로 한다.

 

Xen Orchestra(XO)

Xen Orchestra는 XCP-ng 및 XenServer 호스트와 풀을 관리하기 위한 포괄적인 웹 인터페이스를 제공한다. Vates에서 개발했으며 두 가지 버전으로 제공된다. 무료이며 소스 코드의 빌드 프로세스를 통해 설치할 수 있는 XOAS(XO from the Sources)와 사전 패키지되어 지원되는 XOA(Xen Orchestra Appliance) Vates에서 제공하는 버전이 있다.

 

Xen Orchestra의 기능

  • VM 관리 : 웹 인터페이스에서 직접 VM을 생성, 편집, 시작, 중지 및 확인
  • 백업 : 전체, 증분 및 연속 복제와 같은 백업 기능을 제공
  • 재해 복구 : VM을 다른 사이트에 복제하고 복원하는 기능
  • 사용자 및 권한 관리 : 다양한 사용자 및 그룹에 대한 액세스 제어를 관리
  • 리소스 모니터링 : 경고 및 통계를 통해 VM 및 호스트를 실시간으로 모니터링
  • 업데이트 및 패치 : 호스트에 업데이트 및 패치를 적용

 

기타 구성품

XCP-ng 및 Xen Orchestra 외에도 일반적인 설정에는 특정 요구 사항에 따라 다음과 같은 다른 구성 요소가 포함될 수 있다.

  • Cloud-init: 클라우드 인스턴스를 초기화하는 데 사용
  • 스토리지 저장소(SR): NFS, iSCSI, SMB 등 다양한 유형의 스토리지를 XCP-ng와 함께 사용하여 VM 디스크를 저장
  • 네트워크 구성: XCP-ng 환경 내에서 네트워크, VLAN, 본드 등의 설정이 포함

 

아키텍처 개요

  • XCP-ng는 하이퍼바이저 계층 역할을 하며 하드웨어에서 직접 실행되고 VM을 관리
  • Xen Orchestra는 웹 브라우저를 통해 액세스할 수 있는 관리 계층을 제공하여 XCP-ng 서버와 상호 작용할 수 있는 사용자 친화적인 인터페이스를 제공
  • 향상된 모니터링, 클라우드 서비스와의 향상된 통합 또는 고급 백업 구성과 같은 작업을 위해 추가 도구 및 플러그인을 통합

 


 

설치

 

옵션 1: XOA(Xen Orchestra Appliance)

사용 편의성과 지원을 원하는 경우 Xen Orchestra Appliance를 사용하는 것이 좋다. 이는 XenServer 또는 XCP-ng 환경으로 간단히 가져올 수 있는 사전 구성된 VM이다.

 

XOA 설치 단계

  1. XOA 이미지 다운로드: Xen Orchestra 웹사이트를 방문하여 어플라이언스 이미지를 다운로드
  2. XOA 이미지 가져오기: XenServer 또는 XCP-ng 관리 도구(예: XenCenter)를 열고 "VM 가져오기"를 선택하여 다운로드한 XVA 파일 가져온다.
  3. XOA VM 시작: 가져오기가 완료되면 VM을 시작
  4. XOA 구성: 브라우저에 VM의 IP 주소를 입력하여 웹 인터페이스에 액세스한다. 설정 마법사에 따라 네트워크 설정을 구성하고 업데이트를 수행한다.

 

옵션 2: 소스에서 설치

이 방법에는 소스 코드에서 Xen Orchestra를 설정하는 작업이 포함된다.

 

전제 조건

  • Linux 서버(Ubuntu 또는 Debian 권장)
  • 서버에 Node.js, Yarn, Git이 설치

 

소스에서 설치하는 단계

 

1. 종속성 설치

 

시스템을 업데이트하고 Node.js 및 Yarn을 설치한다.

sudo apt update && sudo apt upgrade
sudo apt install -y ca-certificates curl gnupg git ntp 

# Node 설치
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg

NODE_MAJOR=18
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] <https://deb.nodesource.com/node_$NODE_MAJOR.x> nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list

sudo apt update && sudo apt install -y nodejs

# yarn 설치
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] <https://dl.yarnpkg.com/debian> stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

sudo apt update && sudo apt install yarn -y

# node / yarn 설치 확인
node -v
v18.20.2

yarn -v
1.22.19

# xo 설치

#For Python 3
sudo apt install python3-minimal

#For Python 2
sudo apt install python2-minimal

sudo apt update
sudo apt install build-essential redis-server libpng-dev git libvhdi-utils lvm2 cifs-utils

 

 

2. Git Clone

 

Git을 사용하여 소스 저장소를 Clone 한다.

git clone -b master https://github.com/vatesfr/xen-orchestra.git
cd xen-orchestra

 

 

3. Xen Orchestra 구축 및 config 설정

 

JavaScript 종속 항목을 설치하고 프로젝트를 빌드 후 Config 설정에서 Port 변경해준다.

# JavaScript 종속성 설치
sudo yarn

# JavaScript 빌드하는 작업
sudo yarn build

# config 설정
cd ~/xen-orchestra/packages/xo-server
sudo mkdir /etc/xo-server
sudo cp sample.config.toml /etc/xo-server/config.toml

# config 수정
sudo vi /etc/xo-server/config.toml
...
[[http.listen]]
# Address on which the server is listening on.
#
# Sets it to 'localhost' for IP to listen only on the local host.
#
# Default: all IPv6 addresses if available, otherwise all IPv4 addresses.
# hostname = 'localhost'

# Port on which the server is listening on.
#
# Default: undefined
port = 8080

 

 

4. Xen Orchestra 실행

 

Yarn을 사용하여 서버를 시작한다.

sudo yarn start

# 백그라운드 실행
sudo yarn start & >> yarn_log.out

 

Forever 설치한다. (서비스 구성)

sudo yarn global add forever

sudo yarn global add forever-service

cd ~/xen-orchestra/packages/xo-server/
sudo forever-service install orchestra -r root -s dist/cli.mjs
...
Commands to interact with service orchestra
Start   - "sudo service orchestra start"
Stop    - "sudo service orchestra stop"
Status  - "sudo service orchestra status"
Restart - "sudo service orchestra restart"

# 확인
sudo service orchestra start

sudo service orchestra status
● orchestra.service - LSB: forever-service startup script for orchestra
     Loaded: loaded (/etc/init.d/orchestra; generated)
     Active: active (exited) since Mon 2024-05-13 03:46:05 UTC; 1s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 11517 ExecStart=/etc/init.d/orchestra start (code=exited, status=0/SUCCESS)

May 13 03:46:05 test-server systemd[1]: Starting LSB: forever-service startup script for orchestra...
May 13 03:46:05 test-server orchestra[11517]: Starting orchestra
May 13 03:46:05 test-server systemd[1]: Started LSB: forever-service startup script for orchestra.

# 포트 확인
sudo ss -tunelp | grep *:8080
tcp    LISTEN  0       511                        *:8080                *:*      users:(("node",pid=11334,fd=17)) ino:53715 sk:b v6only:0 <->

# 서비스 삭제해야 할경우
sudo forever-service delete Orchestra

 

 

 

5. 웹 인터페이스에 액세스

 

브라우저를 열고 다음으로 이동한다.

  • `http://[your-server-ip]:8080`

 

기본 자격 증명(ID/PW) 으로 로그인한다.

  • `admin@admin.net / admin`

 

 

6. xo-cli 설치

sudo npm install --global xo-cli

 

 

7. xcp-ng 서버 추가

 

 

로그인에 사용되는 서버 레이블, IP 주소, 사용자 이름 및 비밀번호를 입력한다.

 

 

이제 콘솔에서 가상머신을 생성할 수 있다.

 


Reference

https://github.com/vatesfr/xen-orchestra

https://ko.linux-console.net/?p=22362

728x90
반응형

'Understand different OS Concepts > Virtualization' 카테고리의 다른 글

Proxmox란?  (0) 2024.05.24
Enable Nested Virtualization IN KVM In Linux  (0) 2022.09.02
libvirt 자주 쓰는 명령어 정리 virsh  (0) 2022.08.12
libvirt란?  (0) 2022.08.08
KVM와 Qemu  (0) 2022.08.08