QEMU를 사용한 VM 제작

5204 단어 Linux
[!NOTE]
이 글은 2013/08/11momoto.github.io에 기고한 내용을 Qita로 옮긴 것이다
QEMU를 사용하여 가상 머신을 생성하는 단계의 레코드입니다.호스트 측에 가상화 기능이 있는지 확인한 후 QEMU를 사용하여 고객 OS를 구축합니다.

1. 가상화 기능 확인


호스트인 GNU/Linux 시스템에서 CPU의 하드웨어 가상화 지원 기능과 Linux KVM 지원을 확인합니다.

하드웨어 지원 확인


lscpu의 가상화(Virtualization) 행이나 /proc/cpuinfoのflags 행에서 하드웨어 가상화 지원 기능(Hardware-Assisted Virtualization)을 확인합니다.이 기능은 CPU 공급업체마다 설치가 다르기 때문에 Intel 제품이라면 VT-x를, AMD 제품이면 AMD-V를 확인한다.
lscpu
$ lscpu | grep -Ei "(vt-x|amd-v)"
仮想化:             AMD-V
/proc/cpuinfo에서는 VT-x의 동작 모드인 VMX 또는 AMD-V의 Secure virtual machine(svm)를 확인합니다.
cpuinfo
$ grep -E "(vmx|svm)" /proc/cpuinfo
flags : ... svm ... svm_lock ...

커널 지원 확인


Linux KVM 커널 모듈이 활성화되어 있는지 확인합니다./proc/config.gz 또는 lsmod에서 확인합니다.
config.gz
$ zgrep -E "KVM|VIRTUALIZATION" /proc/config.gz
CONFIG_KVM_GUEST=y
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQ_ROUTING=y
CONFIG_HAVE_KVM_EVENTFD=y
CONFIG_KVM_APIC_ARCHITECTURE=y
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_HAVE_KVM_MSI=y
CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_MMU_AUDIT=y
CONFIG_KVM_DEVICE_ASSIGNMENT=y
lsmod
$ lsmod | grep kvm
kvm_amd                52151  0
kvm                   376394  1 kvm_amd
또한 사용자는 /dev/kvm에 액세스할 수 있는 권한이 필요합니다.Arch Linux에 kvm 그룹이 준비되어 있으므로 수퍼서버를 사용하는 사용자를 그룹에 추가합니다.
gpasswd
$ sudo gpasswd -a $(whoami) kvm

2. 고객 OS 구축


가상 디스크 이미지 생성

qemu-img를 사용하여 고객 OS의 디스크 이미지를 만듭니다.디스크 이미지의 파일 형식, 파일 이름 및 크기를 선택합니다.qcow2는 QEMU에서 사용하는 이미지 파일 형식입니다.
qemu-img
$ qemu-img create -f qcow2 ~/Workspace/CentOS-6.4-x86_64-netinstall.qcow2 8G
Formatting '/home/guest/Workspace/CentOS-6.4-x86_64-netinstall.qcow2', fmt=qcow2 size=8589934592 encryption=off cluster_size=65536 lazy_refcounts=off

고객 OS 설치

qemu-system-<architecture>를 사용하여 가상 시스템을 시작하여 고객 OS를 설치합니다.이 옵션은 OS를 설치하는 방법에 따라 적절한 옵션을 선택해야 합니다.설치 미디어를 CentOS-6.4-x86_64-netinstall.iso로 옵티컬 드라이브에서 부팅하려면 -boot order=d-cdrom <file>를 선택합니다.
qemu-system-x86_64
$ qemu-system-x86_64 \
-enable-kvm \
-m 512 \
-boot order=d \
-cdrom ~/Downloads/CentOS-6.4-x86_64-netinstall.iso \
~/Workspace/CentOS-6.4-x86_64-netinstall.qcow2
  • failed to initialize KVM: Device or resource busy 중 먼저 권장하지 않은 경우 호스트 측에서 다른 수퍼유저가 시작되었는지 확인하십시오
  • .
  • 방문자 측Trying to unpack rootfs image as initramfs의 가동이 멈춘 상황에서 방문자 OS에 필요한 메모리가 부족한 것 같습니다.QEMU-m 옵션의 값을 높여 보십시오.
  • 설치 후 설치 미디어 옵션을 제거하고 가상 시스템을 시작합니다.
    qemu-system-x86_64
    $ qemu-system-x86_64 \
    -enable-kvm \
    -m 512 \
    ~/Workspace/CentOS-6.4-x86_64-netinstall.qcow2
    

    참고 자료

  • QEMU
  • The QCOW2 Image Format
  • 좋은 웹페이지 즐겨찾기