FREEDOM. FRIENDS. FEATURES. FIRST.
페도라 한국 사용자 모임

페도라에서 버추얼머신을 가장 잘 활용하는 방법 - KVM편.

게시판 자유게시판 페도라에서 버추얼머신을 가장 잘 활용하는 방법 - KVM편.

  • This topic has 5개 답변, 3명 참여, and was last updated 10 years, 9 months 전에 by ELem. This post has been viewed 27 times
  • 만든이
    게시글
  • #18734
    인베인
    참가자
    • 게시글141
    • 댓글379
    • 총합520
    • ★★
    @leemgs

    페도라에서 버추얼머신을 가장 잘 활용하는 방법의 "딱털서어"님의 이벤트 참여합니다. ^^

    Fedora에서 kvm/QEMU 을 이용하여 가상화 활용방법에 대해 정리해보았습니다.

     

     

    Fedora에서 kvm/QEMU 설치 방법 퀵노트입니다.
    ===================================
    (   Written by 인베인)

     

     

    * kvm동영상 강의
    - Japan Linux Symposium: The kvm qemu Storage Stack (by Christoph Hellwig)
    http://video.linuxfoundation.org/video/1644
    -  Review: Red Hat Virtual Experience 2009
    http://www.montanalinux.org/review-red-hat-virtual-experience-2009.html

     

    kvm(Kernel-based Virtual Machine)는 Intel VT 및 AMD-V와 같은 가상화 확장을 포함하는 X86하드웨어에서 리눅스를 위한 전가상화(Full virtualization)솔류션이다. 이것은 가상화 인프라스트럭쳐 코어를 위한  kvm.ko이라는 커널 모듈과  kvm-intel.ko(kvm-amd.ko)라는 CPU 의존적 커널모듈을 구성한다. kvm을 실행하기 위해서는 /proc/cpuinfo에 vmx/svm과 같은 CPU지원과 수정된 QEMU인 qemu-kvm 유틸리티가 필요하다. CPU지원이 있어야 하지만, kvm이 QEMU보다 하드웨어적인 성능 향상이 있다. KVM을 사용해서 수정되지 않은(XEN은 Guest가 수정되어야함.) Linux배포판 및 WinXP을 실행할수 있다. 각 가상화 머신들(Guests)은 사설로 가상화된 하드웨어(예: 네트웍카드, 그래픽어뎁터, 기타)를 가지고 있다. KVM은 VServer(http://linux-vserver.org/Welcome_to_Linux-VServer.org), 솔라리스 containers(http://www.sun.com/software/solaris /containers_learning_center.jsp)처럼 리눅스 2.6.20부터 포함되기 시작한 GPL2오픈소스이다.

     

     

    0. 참고
    http://www.howtoforge.com/virtualization-with-kvm-on-a-fedora-11-server
    http://www.linux-kvm.org/

     

     

    1. 필요한 유틸리티 설치

    1.1 CPU가 가상화 지원하는지 체크
    CPU가 하드웨어 가상화를 지원하는지 체크를 하도록한다.
    아래 명령을 리눅스 데스크탑의 Xwindow상의 그놈콘솔에서 실행시
    빨간색의 vmx 또는 svm이 출력되어야 한다. 아무것도 출력이 되지 않는 다면
    하드웨어 가상화(H/W Virtualization)을 지원하지 않으므로 kvm을 사용할수 없다.
    * vmx flag : Intel CPUs
    * svm flag : AMD CPUs
    fedora-invain#> egrep '(vmx|svm)' --color=always /proc/cpuinfo

    1.2 kvm 모듈 설치
    kvm과 virtinst (가상화 머신을 생성하기 위한 툴)을 설치한다.
    fedora-invain#> yum install kvm qemu libvirt python-virtinst
    fedora-invain#> modprobe kvm kvm-intel  (or kvm-amd)
    fedora-invain#> lsmod | grep kvm
    kvm_intel              39696  0
    kvm                   128388  1 kvm_intel
    fedora-invain#> ls /usr/bin/qemu-*
    /usr/bin/qemu-alpha       /usr/bin/qemu-sparc32plus
    /usr/bin/qemu-arm         /usr/bin/qemu-sparc64
    /usr/bin/qemu-armeb       /usr/bin/qemu-system-arm
    /usr/bin/qemu-cris        /usr/bin/qemu-system-cris
    /usr/bin/qemu-i386        /usr/bin/qemu-system-m68k
    /usr/bin/qemu-img         /usr/bin/qemu-system-mips
    /usr/bin/qemu-kvm         /usr/bin/qemu-system-mips64
    /usr/bin/qemu-m68k        /usr/bin/qemu-system-mips64el
    /usr/bin/qemu-mips        /usr/bin/qemu-system-mipsel
    /usr/bin/qemu-mipsel      /usr/bin/qemu-system-ppc
    /usr/bin/qemu-nbd         /usr/bin/qemu-system-ppc64
    /usr/bin/qemu-ppc         /usr/bin/qemu-system-ppcemb
    /usr/bin/qemu-ppc64       /usr/bin/qemu-system-sh4
    /usr/bin/qemu-ppc64abi32  /usr/bin/qemu-system-sh4eb
    /usr/bin/qemu-sh4         /usr/bin/qemu-system-sparc
    /usr/bin/qemu-sh4eb       /usr/bin/qemu-system-x86_64
    /usr/bin/qemu-sparc       /usr/bin/qemu-x86_64

     

    1.3 가상화 머신 생성을 위한 서비스 데몬 시작
    "libvirtd" 서비스 데몬을 시작한다.
    fedora-invain#> /etc/init.d/libvirtd start

    kvm이 성공적으로 설치가 되었는지 아래 명령으로 에러가 출력되지 않는지 체크하도록 한다.
    fedora-invain#> virsh -c qemu:///system list
    Id 이름               상태
    ----------------------------------

    2. kvm  네트웍 환경 설정.

    가상화머신(virtual machine)이 Host을 통해서 인터넷이 가능하도록 네트웍 브리지를 설정해야 한다. 그리고나서, NetworkManager를 disable한후에 네트웍 설정을 한후에 다시 enable하도록 한다.
    fedora-invain#> yum install bridge-utils
    fedora-invain#> chkconfig NetworkManager off
    fedora-invain#> chkconfig --levels 35 network on
    fedora-invain#> /etc/init.d/network restart
    fedora-invain#> cat /etc/resolv.conf
    fedora-invain#> system-config-network
    fedora-invain#> vi /etc/sysconfig/network-scripts/ifcfg-br0
    DEVICE=br0
    TYPE=Bridge
    BOOTPROTO=static
    DNS1=10.32.192.11
    DNS2=210.220.163.82
    DNS3=219.250.36.130
    GATEWAY=75.2.179.1
    IPADDR=75.2.179.52
    NETMASK=255.255.255.0
    ONBOOT=yes
    SEARCH="intomail.net"

    fedora-invain#> vi /etc/sysconfig/network-scripts/ifcfg-eth0# Networking Interface
    DEVICE=eth0
    #BOOTPROTO=none
    #DNS1=10.32.192.11
    #DNS2=210.220.163.82
    #DNS3=219.250.36.130
    #GATEWAY=75.2.179.1
    #HWADDR=00:1e:90:f3:f0:02
    #IPADDR=75.2.179.52
    #NETMASK=255.255.255.0
    ONBOOT=yes
    TYPE=Ethernet
    IPV6INIT=no
    USERCTL=no
    BRIDGE=br0

    fedora-invain#> reboot
    fedora-invain#> ifconfig  ( virtbr0 이라는 네트웍크 브리지가 보여야 함.)
    -----------------------
    eth0      Link encap:Ethernet  HWaddr 00:07:E9:00:6E:D6
    inet addr:75.2.179.52  Bcast:75.2.179.255  Mask:255.255.255.0

    virbr0    Link encap:Ethernet  HWaddr 66:E1:5C:B7:EC:8D
    inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0

    vnet0     Link encap:Ethernet  HWaddr 66:E1:5C:B7:EC:8D
    inet6 addr: fe80::64e1:5cff:feb7:ec8d/64 Scope:Link
    ------------------------------
    virbr0 가 192.168.122.1이라는 사설 IP으로 설정되기때문에, 외부 인터넷을 위해서는
    아래와 같이 "/etc/rc.d/rc.local" 파일에 IP 마스크레이딩을 설정해야만 한다.
    fedora-invain#> vi /etc/rc.d/rc.local
    -------------------------------------------
    ### IP Sharing Setting (IP Masquerading )
    # IP forward setting
    /sbin/depmod -a
    /sbin/modprobe ipt_MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward
    # IP forwarding  Auto Setting
    # -eth0 : internet connection  NIC
    iptables -t nat  -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
    iptables -t nat  -A POSTROUTING -s 192.168.122.0/24 -o eth0 -j MASQUERADE
    --------------------------------------------
    fedora-invain#>

    3.  GUI 가상화 매니저 설치.
    fedora-invain#> su
    fedora-invain#> yum install virt-manager (sudo aptitude install virt-manager)
    fedora-invain#>
    fedora-invain#>
    가상화 매니저(vrit-manager)를 이용하여 생성된 OS이미지는 아래의
    디렉토리에 위치한다.
    fedora-invain#> /var/lib/libvirt/images/
    합계 2696748
    drwx------ 2 root root        4096 2009-12-14 13:40 .
    drwxr-xr-x 9 root root        4096 2009-10-19 20:20 ..
    -rw------- 1 root root 16106127360 2009-12-14 20:31 Ubuntu910.img

    4. 이미지 기반의 데비안 5.03 Lenny Guest 만들기

    fedora-invain#> man virt-install

    리눅스 설치 시디를 이용하여 GuestOS를 만들고자 할 경우의 방법이다.
    fedora-invain#> virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c /dev/cdrom --vnc --noautoconsole --os-type=linux --os-variant=debianlenny --accelerate --network=bridge:virbr0 --hvm

    fedora-invain#>
    리눅스 ISO 이미지를 이용하여 GuestOS를 만들고자 할 경우의 방법이다.
    fedora-invain#> w+get http://ftp.kr.debian.org/debian-cd/5.0.3/i386/iso-cd/debian-503-i386-netinst.iso  (150M, debian Lenny ver 5.03)

    fedora-invain#> virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c debian-503-i386-netinst.iso --vnc --noautoconsole --os-type=linux --os-variant=debianlenny --accelerate --network=bridge:virbr0 --hvm
    fedora-invain#>
    fedora-invain#>

     

    5. Guest에 접속하기
    fedora-invain#> virt-manager    ( GUI  관리 프로그램)
    - "Error determining default hypervisor. " 에러 메세지가 보인다면 무시해도 됨.
    -  fedora kvm 호스트에 연결하기 위해 File > Add Connection . . .
    . Hypervisor: QEMU/kvm
    . Connection: Remote tunnel over SSH
    . Name: -
    . Hostname: 75.2.179.52
    fedora-invain#> virsh --connect qemu:///system
    fedora-invain#> start vm10
    fedora-invain#> quit

    "debian-503-i386-netinst.iso"이미지로 데비안 설치시에 네트웍이 안되는 경우
    최소설치를 하도록 한다. 그리고나서, 부팅을 하면 Xorg은 지원이 되지않고,
    콘솔만 지원이 되는것을 확인할수 있다. Xorg의 Gnome환경을 위해서
    debian503#> apt-get update
    debian503#> apt-get upgrade
    debian503#> apt-get install xorg scim*
    debian503#> vi /etc/default/locale
    LANG="en"
    debian503#> uname -a
    Linux debian-invain 2.6.26-2-686 #1 SMP Wed Aug 19 06:06:52 UTC2009  i686 GNU/Linux
    debian503#> startx
    debian503#> /etc/init.d/networking start
    debian503#> /etc/init.d/network-manager start
    을 차례대로 실행한다.

    6. kvm 게스트 관리
    fedora-invain#> virsh --connect qemu:///system
    virsh # help
    virsh # list
    virsh # list --all
    Id Name                 State
    ----------------------------------
    2 vm10                 running
    virsh # quit
    fedora-invain#> virsh --connect qemu:///system
    fedora-invain#> define /etc/libvirt/qemu/vm10.xml
    virsh #
    virsh # start vm10
    virsh # shutdown vm10
    virsh # destroy vm10
    virsh # suspend vm10
    virsh # resume vm10
    virsh # quit
    fedora-invain#>

     

    7. LVM 기반 GUEST생성하기
    fedora-invain#> vgdisplay
    fedora-invain#> lvdisplay
    fedora-invain#> lvcreate -L20G -n vm11 vg_server1
    fedora-invain#> virt-install --connect qemu:///system -n vm11 -r 512 --vcpus=2 --disk path=/dev/vg_server1/vm11 -c ~/debian-500-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debianlenny --accelerate --network=bridge:br0 --hvm
    fedora-invain#>
    fedora-invain#>

    8. 이미지 기반 Guest --> LVM기반 Guest으로 변환하기

    fedora-invain#> virsh --connect qemu:///system
    virsh # shutdown vm10
    virsh # quit
    virsh #
    fedora-invain#> lvcreate -L12G -n vm10 vg_server1
    fedora-invain#> dd bs=1M if=/dev/zero of=/dev/vg_server1/vm10
    qemu-img convert ~/vm10.qcow2 -O raw /dev/vg_server1/vm10
    fedora-invain#> rm -f ~/vm10.qcow2
    fedora-invain#> vi /etc/libvirt/qemu/vm10.xml
    [...]
    < disk type='file' device='disk'>
    < source file='/root/vm10.qcow2'/>
    < target dev='vda' bus='virtio'/>
    < /disk>
    [...]

    -------------------------------------------------
    [...]
    < disk type='block' device='disk'>
    < source dev='/dev/vg_server1/vm10'/>
    < target dev='vda' bus='virtio'/>
    < /disk>
    [...]

    fedora-invain#> virsh --connect qemu:///system
    fedora-invain#> define /etc/libvirt/qemu/vm10.xml
    virsh #  start vm10
    virsh #  quit
    fedora-invain#>
    fedora-invain#>
    fedora-invain#>

     

    9. 스크린샷
    아래는 스크린샷 입니다.

    * 오픈소스는 Open Innovationa & 윈윈전략을 도모할 지언정 절대 공짜(무료)임을 뜻하지 않는다.치

4 답변 글타래를 보이고 있습니다
  • 글쓴이
    답변
    • #18767
      인베인
      참가자
      참가자
      • 게시글141
      • 댓글379
      • 총합520
      • ★★
      @leemgs

      리눅스에서 사용해볼수 있는 가상화 소프트웨어 쓰본 결과 virtuxbox가 가장 현실적인것 같습니다.
      ---------------------------------------------------
      Software          Linux지원    Win지원     Opensource    무료    Quick Install
      ---------------------------------------------------
      M$
      virtual PC       X             O            X           O           O
      VMwareServer      O             O            X           O           O
      VMwareWorkstation O             O            X           X           O
      Parallels             O             O            X           X           O
      QEMU               O             O            O           O           O
      virtualbox           O             O            O           O           O
      XEN                 O             O            O           O           X
      KVM                O             X            O           O           X
      ---------------------------------------------------

      * 오픈소스는 Open Innovationa & 윈윈전략을 도모할 지언정 절대 공짜(무료)임을 뜻하지 않는다.치

    • #18768
      인베인
      참가자
      참가자
      • 게시글141
      • 댓글379
      • 총합520
      • ★★
      @leemgs

      VirtualBox 최근버젼(예:3.1.2)의 경우 디스플레이어의 [V] 3D acceleration 을 enable하여 가상화 소프트웨어에 설치한 winxp에서도 3D가 가능하군요. ^^

      * 오픈소스는 Open Innovationa & 윈윈전략을 도모할 지언정 절대 공짜(무료)임을 뜻하지 않는다.치

    • #18769
      딱털서어
      참가자
      • 게시글87
      • 댓글316
      • 총합403
      • ★★
      @no1linuxer

      안정성은 VirtualBox(버박)보다는 VMware(비엠)가 더 낫다고 판단하는데, 버박을 줄곤
      쓰다보니 안정성도 그리 비엠보다 떨어지는 것같지도 않고,,,, 속도도 빨라졌고요...

      XEN도 괜찮은 선택인 거 같지만, 좀 느린 것 같군요. 제 환경에서 젠을 써 보질 못해서리
      어떤지 모르겠지만, 다른 배포판에서 써본바로는 젠도 괜찮네요. ISO 설치는 안되는 거 같던데...

      리눅스를 더 가까이 - No1.Linux

    • #18770
      인베인
      참가자
      참가자
      • 게시글141
      • 댓글379
      • 총합520
      • ★★
      @leemgs

      기술적으로는 XEN이 full virtualizaiton이 아니라 papra virtualization이므로, xen이 가장 빠릅니다. 다만, 체감속도가 별차이가 없어서.. 거기에 내부기술적인 이유로 xen에서는 윈도우소스가없는이상 윈도우 돌릴수 없습니다.

       

      어쨌던 virtualbox와 같은 무료 및 오픈소스 프로젝트 덕분에 vmware server edition는 공짜입니다.ㅎㅎ (현재)

      * 오픈소스는 Open Innovationa & 윈윈전략을 도모할 지언정 절대 공짜(무료)임을 뜻하지 않는다.치

    • #18771
      ELem
      참가자
      • 게시글67
      • 댓글672
      • 총합739
      • ★★
      @Bardisch

      Parallels도 OpenVZ는 오픈소스입죠 ㅎㅎ

4 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.