웹사이트 검색

Manjaro/Archlinux에 KVM/QEMU를 설치하는 방법


이 페이지에서

  1. QEMU란 무엇입니까?

KVM은 Kernel-based Virtual Machine의 약자로 Linux 커널 모듈 기반의 가상화 기술 솔루션입니다. KVM은 하드웨어 가상화 확장 Intel VT 또는 AMD-V를 지원하는 Linux x86 시스템에서 실행되는 오픈 소스 소프트웨어 솔루션입니다. KVM 커널 모듈은 버전 2.6.20부터 Linux 커널에 제공되었으며 FreeBSD 및 Illumos와 같은 다른 운영 체제에 로드 가능한 커널 모듈로 포팅되었습니다.

KVM 기술은 Linux 시스템을 호스트 시스템이라고 하는 하이퍼바이저 가상화로 전환합니다. 호스트 머신에서 VM(가상 머신)이라는 격리된 여러 시스템을 생성할 수 있습니다. 각 가상 머신에는 자체 시스템(Linux, Windows 또는 BSD일 수 있음)이 있으며 메모리, CPU, 네트워크 카드, 디스크, 그래픽 등과 같은 개인용 가상화 하드웨어도 있습니다.

QEMU란?

QEMU 또는 Quick Emulator는 하드웨어 가상화를 위한 오픈 소스 시스템 에뮬레이터 및 가상화 프로그램입니다. 일반적으로 가상 머신을 실행하기 위해 KVM 커널 모듈과 함께 가상화기로 사용됩니다. 게스트 머신/가상 머신의 뛰어난 성능을 달성하기 위해 Intel VT 또는 AMD-V와 같은 하드웨어 가상화 확장을 활용합니다. QEMU/KVM 가상화는 주로 데이터 센터에서 하이퍼바이저로 사용됩니다.

이 가이드에서는 Manjaro/Archlinux 머신에서 KVM/QEMU 가상화를 설정하는 방법을 배웁니다. 또한 GUI 응용 프로그램 "virt-manager"(가상 머신 관리를 위한 데스크톱 사용자 인터페이스)를 사용하여 첫 번째 가상 머신을 생성하는 방법을 배웁니다.

전제 조건

  • x86 또는 64비트 아키텍처를 사용하는 Manjaro/Archlinux.\n
  • 가상화를 지원하는 CPU/프로세서(Intel VT 또는 AMD-V).\n
  • sudo 루트 권한이 있는 루트가 아닌 사용자.\n

시스템 아키텍처 및 CPU 가상화 지원 확인

먼저 컴퓨터 아키텍처와 Intel CPU용 가상화 가속 Intel VT 및 AMD CPU용 AMD-v의 하드웨어 지원을 확인하십시오.

1. 다음 명령을 실행하여 시스템의 시스템 아키텍처를 확인합니다.

uname -m

다음과 같은 결과가 표시됩니다.

Linux machine1 5.4.134-1 #1 SMP PREEMPT Tue Jul 06 08:10:03 UTC 2021 x86_64 GNU/Linux

알 수 있듯이 현재 "x86_64" 또는 "64비트" 아키텍처와 커널 버전 "5.4"의 Linux 시스템을 사용하고 있습니다.

2. 다음으로 다음 명령을 실행하여 하드웨어 가상화 지원을 확인합니다.

sudo lscpu | grep Virtualization

Intel 프로세서의 경우 아래와 유사한 출력이 표시됩니다.

Virtualization:                  VT-x

그리고 AMD 프로세서의 경우 아래에 유사한 출력이 있습니다.

Virtualization:                  AMD-V

3. 선택적으로 다음 명령을 사용하여 컴퓨터에서 중첩 가상화를 활성화할 수 있습니다.

sudo modprobe -r kvm_intel
sudo modprobe kvm_intel nested=1

그런 다음 다음 명령을 실행하여 중첩된 가상화를 확인합니다.

cat /sys/module/kvm_intel/parameters/nested

"Y" 또는 "1"과 같은 출력이 표시되면 기능 중첩 가상화가 활성화되었음을 의미합니다. 그렇지 않으면 "No such file or directory"라는 오류 메시지가 표시됩니다.

QEMU 및 Virt-Manager 패키지 설치

1. qemu 및 virt-manager 패키지를 설치하려면 아래 명령을 실행하십시오.

sudo pacman -S qemu virt-manager libvirt virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat ebtables libguestfs

manjaro 시스템의 경우 \iptables\와 \ebtables\ 사이에 패키지 충돌이 있습니다. "y"를 입력하여 기본 iptables 패키지를 제거하고 "ebtables" 및 "nftables"로 교체합니다.

다음은 반드시 알아야 할 필수 패키지입니다.

  • qemu: 오픈 소스 머신 에뮬레이터 및 가상화 프로그램입니다.\n
  • virt-manager; 가상 머신을 관리하기 위한 GUI 애플리케이션.\n
  • libvirt: KVM, QEMU 등과 같은 가상화 엔진을 제어하기 위한 API입니다.\n
  • dnsmasq: 경량 DNS 전달자 및 DHCP 서버.
  • bridge-utils: Linux 이더넷 브리지 구성을 위한 유틸리티입니다.\n
  • libguestfs: 가상 머신(VM) 디스크 이미지를 수정하기 위한 도구 세트입니다.\n

2. 그런 다음 다음 명령을 사용하여 libvirtd 서비스를 시작하고 활성화합니다.

sudo systemctl enable --now libvirtd

아래와 비슷한 출력을 얻을 수 있습니다.

Created symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service → /usr/lib/systemd/system/libvirtd.service.
Created symlink /etc/systemd/system/sockets.target.wants/virtlockd.socket → /usr/lib/systemd/system/virtlockd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/virtlogd.socket → /usr/lib/systemd/system/virtlogd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd.socket → /usr/lib/systemd/system/libvirtd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd-ro.socket → /usr/lib/systemd/system/libvirtd-ro.socket.

3. 이후 다음 명령어를 실행하여 libvirtd 서비스 상태를 확인합니다.

sudo systemctl status libvirtd

그리고 아래와 유사한 출력이 표시되어야 합니다. 표시된 대로 libvritd 서비스가 활성화되어 실행 중입니다.

? libvirtd.service - Virtualization daemon
     Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; disabled; vendor preset: disabled)
     Active: active (running) since Fri 2021-07-23 10:33:25 UTC; 6s ago
TriggeredBy: ? libvirtd-ro.socket
             ? libvirtd.socket
             ? libvirtd-admin.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 16828 (libvirtd)
      Tasks: 19 (limit: 32768)
     Memory: 16.4M
        CPU: 226ms
     CGroup: /system.slice/libvirtd.service
             ??16828 /usr/bin/libvirtd --timeout 120

루트가 아닌 사용자가 KVM/QEMU 가상화를 사용하도록 허용

기본적으로 "root" 사용자만 가상 머신을 만들고 관리할 수 있습니다. 루트가 아닌 사용자가 가상 머신을 만들고 관리할 수 있도록 하려면 아래의 libvirtd 구성을 따라야 합니다.

1. 다음 명령을 실행하여 libvirtd 구성을 편집합니다.

sudo nano /etc/libvirt/libvirtd.conf

"unix_sock_group" 옵션의 주석을 제거하고 그룹 이름을 "libvirt"로 입력하십시오.

# Set the UNIX domain socket group ownership. This can be used to
# allow a 'trusted' set of users access to management capabilities
# without becoming root.
#
# This setting is not required or honoured if using systemd socket
# activation.
#
# This is restricted to 'root' by default.
unix_sock_group = "libvirt"

그런 다음 "unix_sock_rw_perms" 옵션의 주석을 제거하고 권한을 기본값인 "0770"으로 둡니다.

# Set the UNIX socket permissions for the R/W socket. This is used
# for full management of VMs
#
# This setting is not required or honoured if using systemd socket
# activation.
#
# Default allows only root. If PolicyKit is enabled on the socket,
# the default will change to allow everyone (eg, 0777)
#
# If not using PolicyKit and setting group ownership for access
# control, then you may want to relax this too.
unix_sock_rw_perms = "0770"

Ctrl+x 버튼을 눌러 구성을 저장하고 y를 입력한 다음 Enter 키를 누릅니다.

2. 다음으로 다음 명령을 사용하여 사용자를 "libvirt" 그룹에 추가합니다.

sudo usermod -a -G libvirt username

3. 그런 다음 libvirtd 서비스를 다시 시작하여 새 구성을 적용합니다.

sudo systemctl restart libvirtd

이제 "libvirt" 그룹 내의 모든 사용자는 가상 머신을 만들고 구성할 수 있습니다.

virt-manager로 QEMU/KVM 설치 확인

이제 애플리케이션 메뉴에서 "virt-manager" 애플리케이션을 엽니다.

1. virt-manager 애플리케이션에서 "Edit -> Connection Details" 메뉴를 클릭합니다.

2. \개요\ 탭에서 virt-manager가 \qemu:///system\에 자동으로 연결되는 것을 볼 수 있습니다.

3. "가상 네트워크" 탭으로 이동하면 "기본" 네트워크 구성이 표시됩니다.

  • 인터페이스: virbr0
  • 부팅 시 자동 시작: 예
  • IP 주소: 192.168.122.0/24
  • 범위 DHCP IP 주소: 192.168.122.2 - 192.168.122.254
  • 네트워크 유형: NAT\n

4. 이제 "스토리지" 탭으로 이동하면 "기본" 풀 스토리지 구성이 표시됩니다.

  • 유형: 파일 시스템 디렉토리\n
  • 크기: 디스크에 따라 다름
  • 위치: /var/lib/libvirt/images
  • 부팅 시 자동 시작: 예

모든 가상 머신 이미지는 이 기본 스토리지인 "/var/lib/libvirt/images" 디렉토리에서 사용할 수 있습니다.

5. 그런 다음 "+" 버튼을 클릭하여 ISO 이미지 파일용 새 풀 저장소를 만듭니다. 모든 ISO 파일 운영 체제는 이 풀에서 사용할 수 있습니다.

아래와 같이 스토리지 구성을 따르십시오.

  • 이름: ISO
  • 유형: dir: 파일 시스템 디렉토리\n
  • 대상 경로: /path/directory/to/your/iso/

프로세스를 완료하려면 "마침" 버튼을 클릭하십시오. 그러면 새 가상 머신을 만들 준비가 된 것입니다.

virt-manager를 사용하여 새 가상 머신 생성

1. virt-manager 애플리케이션에서 "+" 버튼을 클릭하여 새 가상 머신을 생성합니다.

2. 설치에 ISO 이미지를 사용하려면 "로컬 설치 미디어"를 선택하고 계속하려면 "앞으로" 버튼을 클릭하십시오.

3. "찾아보기" 버튼을 클릭하여 ISO 파일을 선택합니다.

이제 풀 저장소 "ISO"를 선택하고 설치를 위한 iso 파일을 선택한 다음(이 예에서는 "Debian 10") "볼륨 선택"을 클릭합니다.

"설치 미디어/소스에서 자동으로 검색" 옵션을 선택 취소하고 설치하려는 운영 체제(이 예에서는 "Debian 10")를 입력한 다음 "앞으로" 버튼을 다시 클릭하여 계속합니다.

4. 가상 머신의 메모리 및 CPU 양을 선택한 다음 "앞으로"를 클릭합니다.

5. 가상 머신의 디스크 크기를 선택하고 "앞으로"를 클릭합니다.

6. 구성을 다시 확인하고 "마침" 버튼을 클릭하여 설치합니다.

7. 이제 가상 머신이 QEMU/KVM 가상화와 함께 실행되고 있으며 os 설치를 계속할 수 있습니다.

결론

축하합니다! Manjaro/Archlinux 시스템에서 QEMU/KVM 가상화를 설정하는 방법을 배웠습니다. 또한 가상 머신을 생성하기 위해 virt-manager 애플리케이션을 사용하는 방법. 이제 원하는 운영 체제로 가상 머신을 만들 수 있습니다. 다른 Linux 배포판, Windows 또는 BSD 제품군 OS를 사용할 수 있습니다.