Overview
XO(Xen Orchestra)는 XenServer 및 XCP-ng 하이퍼바이저 환경을 관리하도록 설계된 웹 기반 관리 도구이다. VM 관리, 백업 프로세스, 리소스 모니터링 등의 작업을 단순화한다. 주요 구성요소를 자세히 살펴보겠다.
가상화 개념 참고
2023.03.17 - [CS 지식] - [CS 지식5.] 가상화란?
개요
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 설치 단계
- XOA 이미지 다운로드: Xen Orchestra 웹사이트를 방문하여 어플라이언스 이미지를 다운로드
- XOA 이미지 가져오기: XenServer 또는 XCP-ng 관리 도구(예: XenCenter)를 열고 "VM 가져오기"를 선택하여 다운로드한 XVA 파일 가져온다.
- XOA VM 시작: 가져오기가 완료되면 VM을 시작
- 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
'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 |