使用 libvirt 與 qemu-kvm 開啓 VM (內含 libvirt sample XML for KVM )

KVM 的環境

Kernel

makeconfig 裡, search "kvm", 把所有有 KVM (KVM, INTEL_KVM, ...) 都打勾加編諽.

記得退出 xen 的 domain-0 瓌境

原先你可能是從 xen mode 轉來玩玩看 kvm, 而發現 kvm 很神奇地都無法 enable. 要記住把 /boot/grub/menu.lstxen.gz 改掉, 用原生的硬碟開機就好了.

VNC Viewer 的軟體

要去載 Tight VNC Viewer 來去看剛開好的 VM 的狀況, 包括一開始的開機狀況到完整的登入畫面. 我原先下載了 Real VNC Viewer , 發現我一直會出現手機才有的閃退現像, 連上了消失了連上了消失. 在經晃睿學長的提點後, 才知道 Real VNC 對於 Xen 跟 KVM 的 VNC Protocol 可能有些不相容的狀況會發生, 我就去載了學長推薦的 Tight VNC, 果然一試就連上畫面.

KVM Domain-U Kernel 注意事項

要多裝 realtek rt8139cp 這塊顥卡的 DRIVER!

QEMU-KVM 的硬碟 與 安裝

記住, 裡面要含有正規的 partitions , 而且要有 bootable 的 partition 才能正常啓動開機. 舉個例子是要 /dev/sda 這種的, 而不是 /dev/sda1 這種的.

virt-install --ram 1024 \

  --name=YOUR_VM_NAME \

--file=/YOUR/DISK/PATH,size=YOUR_IMAGE_SIZE_IN_GB,spare=False \

  --cdrom=/YOUR/LIVECD/PATH \

  --network network:default \

--vnc \

--noautoconsole 

就會幫你產生一個 QEMU 專用的映像檔啦

KVM libvirt minimal xml

 <domain type='kvm'>
    <name>gentoo10-1</name>
    <memory unit='KiB'>1048576</memory>
    <vcpu placement='static'>2</vcpu>
    <os>
      <type arch='x86_64'>hvm</type>
      <kernel>YOUR KERNEL</kernel>
      <cmdline>root=/dev/sda3 ip=::::YOUR_HOSTNAME::dhcp</cmdline>
      <boot dev='hd'/>
    </os>
    <features>
      <acpi/>
      <apic/>
      <pae/>
    </features>
    <clock offset='utc'/>
    <on_poweroff>destroy</on_poweroff>
    <on_reboot>destroy</on_reboot>
    <on_crash>destroy</on_crash>
    <devices>
      <emulator>/usr/bin/qemu-kvm</emulator>
      <disk type='file' device='disk'>
        <driver name='qemu' type='raw'/>
        <source file='/path/to/your/disk'/>
        <target dev='hda' bus='ide'/>
      </disk>
      <interface type='bridge'>
        <mac address='YOUR_NETWORK_MAC'/>
        <source bridge='virbr0'/>
        <target dev='vnet0'/>
      </interface>
      <graphics type='vnc' port='5900' autoport='no' listen='0.0.0.0'>
        <listen type='address' address='0.0.0.0'/>
      </graphics>
    </devices>
 </domain>

Libvirt 啓動

virsh create vm1.xml YES!! works!!

開一個原生 VM 的指令

vm create command
$ qemu-kvm --enable-kvm -m 1024 -hda YOUR_FILE -vnc 0.0.0.0:0
# --enable-kvm 就是啓動 KVM 來利用KERNEL來加快原本只在USER MODE 會跑得很慢的QEMU

# -m VM 的 max memory

# -hda VM 的 image file

# -vnc 要放一個有含 port 的位址, 0.0.0.0 代表是本機, 0.0.0.0:0 的 0 port 代表是 vnc 預設的 5900
comments powered by Disqus