본문 바로가기

Language&Configuration/[Liunx]

[Linux] KVM 특징 및 설치 방법 - 커널 기반 가상 머신

KVM(Kernel-based Virtual Machine: 커널 기반 가상 머신)

  • 리눅스 커널을 기반으로 전가상화(full virtualization) 방식을 지원하는 오픈소스 하이퍼바이저
    • 전가상화(full virtualization): 물리적인 하드웨어 전체를 Hypervisor에서 가상화시켜 가상머신(GuestOS)에 제공하는 환경이다.
  • KVM을 통해 Linux를 하이퍼바이저로 전환하여 호스트 머신이 게스트 또는 VM(가상머신) 등 독립된 가상 환경 여러 개를 실행할 수 있다.
  • KVM은 레드헷 계열 리눅스, centos, fedora 기반 리눅스 등에 기본적으로 포함한다.
  • 리눅스에서 제공되는 것은 모두 KVM에도 제공된다.
  • SELinux(Security-Enhanced Linux)와 sVirt(Secure Virtualization) 제공된다.

 

관리 콘솔 설치(Manager Console)

- 가상머신 관리 콘솔

- 이를 사용함으로 원격 컴퓨터에서 클라우드 호스트의 가상머신 운용상태를 효과적으로 관리할  있도록 도와주는 응용프로그램

yum install virt-manage

 

설치방법

1) KVM 설치 전에 준비

리눅스에서 동작하는 가상화 솔루션으로 Intel VT 또는 AMD-V 가상화 기술을 사용한다.

egrep -c '(vmx|svm)' /proc/cpuinfo

0 경우, 하드웨어 가상화 기능을 제공하지 않는다. 그러면 BIOS에서 가상화 기능이 활성화시켜야 한다. VMware 사용한다면 설정에서 체크박스를 통해서 설정할  있다.

  

2) KVM 설치

1. KVM 설치하기

sudo apt-get install qemu-kvm libvirt-daemon-system virtinst bridge-utils cpu-checker

KVM 관련 패키지를 설치

sudo adduser $USER kvm

사용자 권한으로 가상머신을 관리할 수 있도록 권한 설정

  

시스템 재부팅 후 사용이 가능한 상태인지 테스트 진행

reboot
kvm-ok

 

다음과 같은 값이 나오면 KVM 성공적으로 설치

 

 

Bridge 네트워크 설정 작업

실행환경 인터페이스: ens33

생성된 브릿지: br0

가상머신 내부에서 같은 네트워크를 통해서 인터넷을 사용하기 위해 브릿지를 설정하도록 한다.

-> 브릿지: 네트워크 세그먼트를 연결해주는 데 사용하는 인터페이스이다. 주로 내부 가상 네트워크와 인터넷 공용망을 연결하여 내부 네트워크에서도 인터넷을 연결할 수 있도록 하는데 주로 사용되는데, KVM과 Xen 등의 Hypervisor 사용에 필요한 네트워크 설정

 

0. 하기 전에 우분투 브릿지 설정을 해야 한다.

브릿지는 네트워크 세그먼트를 연결해 주는데 사용되는 인터페이스입니다.

주로 내부 가상 네트워크와 인터넷 공용망을 연결하여 내부 네트워크에서도 인터넷을 연결 할 수 있도록 하는데 주로 사용되는데, KVM 과 Xen 등의 Hypervisor 사용에 필요한 네트워크 설정입니다.

우분투 18.04 LTS 버전을 포함하여 최신 배포되는 우분투 리눅스는 Netplan을 이용하여 네트워크를 설정하게 됩니다.

Netplan 브릿지 설정

Netplan 를 이용하여 브릿지를 설정하기 위해서는 가장 먼저 브릿지와 연결될 네트워크 인트페이스 이름을 알아야 합니다.

인터페이스를 확인하기 위해서 아래와 같은 명령어를 실행합니다.

$ ifconfig
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 08:62:66:7c:ed:6c  txqueuelen 1000  (Ethernet)
        RX packets 392254  bytes 362183645 (362.1 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 119557  bytes 8543144 (8.5 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 20  memory 0xfb300000-fb320000

위의 내용과 비슷한 결과가 나타날 것입니다. 위의 명령어로 실행한 결과 인터페이스 이름은 eno1 인 것을 알 수 있습니다. 이 eno1 이름을 이용하여 설정을 하게 됩니다.

Netplan 브릿지 설정

먼저 netplan 설정 파일인 /etc/netplan/01-network-manager-all.yaml 파일을 열고 내용을 확인합니다.

renderer 으로 NetworkManager가 설정되어 있습니다. 기존의 내용을 주석처리 하고, 아래의 내용을 추가합니다.

설정된 네트워크 인터페이스 이름이 eno1 이 아닐 경우, 환경에 맞게 수정후 작성해 주시면 됩니다.

# Let NetworkManager manage all devices on this system
#network:
#  version: 2
#  renderer: NetworkManager

network:
  version: 2
  renderer: networkd
  ethernets:
    eno1:
      dhcp4: false
  bridges:
    br0:
      dhcp4: true
      interfaces: [eno1]

그리고 netplan 을 적용하는 아래의 명령어를 실행합니다.

$ sudo netplan apply

 

브릿지 정보 확인

brctl show 명령어를 입력하면 브릿지 정보를 확인 할 수 있습니다. 

우분투 18.04 네트워크 설정

 

 1. /tmp/br0.xml 파일을 생성

<network>
  <name>br0</name>
  <forward mode='bridge'/>
  <bridge name='br0'/>
</network>

 2. XML 파일 생성 후 명령어 수행

virsh net-define /tmp/br0.xml
virsh net-start br0
virsh net-autostart br0

여기까지 KVM 설치 완료

 

 

Virt-manager 사용해서 가상머신 만들기

virt-manager 사용법

virt-manager(Virtual Machine Manager)은 데스탑의 GUI 환경에서 가상머신을 생성하고, 관리할 수 있는 소프트웨어

 

virt-manager 설치

sudo apt install virt-manager

 

virt-manager 실행

GUI인 경우 검색을 통해 실행한다.

 

해당 소프트웨어를 통해서 가상머신을 생성할 수 있다.