티스토리 뷰
아래의 실습은 Ubuntu 20.04를 기반으로 포스팅하였습니다.
1. Xen 설치하기
[ 1. 관련 패키지 설치 ]
먼저 Xen을 설치하기 위해 필요한 패키지들을 설치하고 업데이트 후에 재부팅한다.
// vim 에디터 설치
sudo apt install vim
// Xen 관련 패키지 설치
sudo apt install xen-hypervisor-amd64 xen-tools
// 네트워크 유틸 설치
sudo apt install net-tools
// 패키지 업데이트
sudo apt update
// 재부팅
sudo reboot
[ 2. Xen 실행 여부 확인 ]
설치한 Xen 하이퍼바이저가 잘 실행되고 있는지 확인한다. 정상적으로 Xen이 설치되었다면 아래와 같은 도메인 0 가상머신이 생성되어 있을 것이다. 앞에서 도메인 0은 특권 명령을 일임하여 처리하는 가상 머신이라고 설명하였다,
sudo xl list
또한 Xen은 Type1 하이퍼바이저이기 때문에 하이퍼바이저 위에 가상머신이 생성됨을 잊지말자.
[ 3. 네트워크를 Bridge 모드로 설정 ]
설치한 Xen 네트워크를 Bridge모드로 설정한다. 여기서 Bridge 모드란 공유기로부터 IP를 할당받아 Host PC와 동일한 네트워 크 대역의 IP를 갖는 모드를 의미한다.
먼저 Bridge와 연결될 네트워크 인터페이스의 이름을 확인한다. 아래의 그림을 통해 우리가 설정할 네트워크 인터페이스의 이름은 enp0s3임을 확인해두자.
ifconfig
해당 네트워크 인터페이스를 Bridge로 설정한다. 위의 enp0s3를 기억해두고 아래와 같이 설정후재어야 한다.
sudo vi / etc netplan /01 network manager all.yaml
네트워크를 적용하고 설정이 잘 되었는지 확인한다. 제대로 설정되었다면 위에서 추가한 xenbr0이 보일 것이다.
sudo netplan apply
brctl show
[ 4. 부팅 순서(GRUB) 설정 ]
부팅 순서를 설정하여 Xen이 먼저 부팅되고, Dom0 커널이 부팅되도록 설정한다.
// GRUB을 설정한다.
sudo mv /etc/grub.d/10_linux /etc/grub.d/50_linux
// GRUB 설정을 적용한다.
sudo update-grub
// 재부팅한다.
sudo reboot
2. Xen으로 가상머신 구동
[ 1. 가상머신 이미지 생성 ]
Xen은 아래와 같은 옵션을 활용해 가상머신을 생성할 수 있도록 도와준다.
아래와 같은 명령어를 통해 가상머신의 이미지를 생성할 수 있다. dist 옵션을 보면 배포할 OS의 종류라고 적혀있다. 각각의 OS는 별칭을 가지고 있는데, Ubuntu16은 Xenial Xerus(xenial), Ubuntu18은 Bionic Beaver(bionic), Ubuntu20은 Focal Fossa(focal)이다. 설치하기 원하는 OS의 별칭을 dist옵션으로 주면 원하는 OS에 대한 이미지를 생성할 수 있다.
설치가 가능한 OS의 종류는 /usr/share/xen-tools 하위에 있는 목록을 통해 조회할 수 있다.
이번 예제에서는 우분투 16버전인 xenial을 설치해보도록 하겠다. 설치 시간은 약 15분~20분 정도 소요되므로 기다려주어야 한다.
// 설치할 가상머신의 이미지를 생성한다.
sudo xen-create-image -hostname=myUbuntu -size=1Gb -swap=128Mb -dhcp
-force -dir=/vz -memory=256Mb -arch=amd64 -dist=xenial –passwd
위의 명령어가 끝나면 아래은 명령어로 생성된 가상머신의 이미지를 확인할 수 있다. 위에서 우리가 hostname을 myUbuntu로 설정했기 때문에 myUbuntu라는 가상 머신 이미지가 생성되었다. 또한 /etc/xen에는 myUbuntu.cfg라는 설정 파일이 존재한다.
// 가상머신 이미지 파일(myUbuntu) 확인
ls /vz/domains/
// 가상머신 설정 파일(myUbuntu.cfg) 확인
ls /etc/xen
[ 2. Xen tools를 활용해 가상머신 구동 ]
이제 생성된 가상머신의 이미지를 기반으로 가상머신을 구동할 것이다. 아래와 같은 명령어를 이용하면 우리가 설정한 파일을 기반으로 가상머신을 구동할 수 있다.
sudo xl create /etc/xen/myUbuntu.cfg
아래와 같은 명령어를 활용하면 생성된 가상머신의 정보를 확인할 수 있다. 이전과는 다르게 우리가 추가한 myUbuntu가 보임을 확인할 수 있다. 여기서 우리가 생성한 가상머신의 ID가 1임을 확인해두자. 가상머신의 ID는 가상머신의 접속 및 삭제에 사용된다.
// 가상머신 목록 확인
sudo xl list
[ 3. 가상머신 접속/해제 ]
이제 생성된 가상머신에 접속을 할 차례이다.
아까 확인해둔 가상머신의 ID와 함께 아래의 명령어를 이용하면 가상머신에 접속할 수 있다. 사용자의 아이디는 root로 주고, 비밀번호는 Xen을 설치하면서 입력했던 비밀번호를 입력하면 된다.
// sudo xl console VM_ID
sudo xl console 1
위와 같이 root@myUbuntu로 보인다면 정상적으로 가상머신에 접속된 것이다. 현재 우리의 OS는 우분투 20.04버전인데 위의 내용을 확인해보면 우리가 접속한 OS는 직접 설정해준 우분투16.04 LTS임을 확인할 수 있다.
아래의 명령어를 활용하면 가상머신을 구동시킨 후에 바로 접속할 수 있다.
// 가상머신 구동 후 바로 접속
sudo xl create -c myUbuntu.cfg
[ 4. 가상머신 종료 ]
가상머신에서 작업을 끝냈으면 접속을 종료할 차례이다.
가상머신의 접속을 종료하기 위한 명령어는 아래와 같다.
// 가상머신 접속 종료
종료키: ‘ctrl’ + ']'
그리고 가상머신 자체를 종료하기 위한 명령어는 아래와 같다.
// sudo xl shutdown VM_ID
sudo xl shutdown 1
가상머신을 종료하면 기존에 있었던 myUbuntu가 사라지게 된다.
가상머신을 강제로 종료하기 위한 명령어로 destroy가 있는데, 강제 종료를 하면 가상머신의 이미지가 손상될 수 있다. 그렇기 때문에 불가피한 상황이 아니라면 shutdown으로 가상머신을 종료해주자.
관련 포스팅
-
Xen Hypervisor 설치 및 가상머신 생성 예제 (2/2)
'Server' 카테고리의 다른 글
[Server] 하드웨어 가상화(Virtualization)의 종류 및 차이 (2/2) (1) | 2020.09.14 |
---|---|
[Server] 가상화(Virtualization)란? (1/2) (8) | 2020.09.14 |
[Server] Xen Hypervisor(Xen 하이퍼바이저) 란? (1/2) (0) | 2020.09.07 |
[Server] Cache(캐시)란? (6) | 2020.02.21 |
[Server] JWT(Json Web Token)란? (16) | 2019.12.13 |