轉載自
http://forum.ubuntu.org.cn/viewtopic.php?f=65&t=154792&sid=591087b7c7a8b9dcef3c39f297d78946
研究了很久的KVM,感覺是我用過的最快的虛擬機器。對比常用的虛擬機器,Vmware的功能全面,設定簡單,但其速度不是很好;VirtualBox的效率 雖然比Vmware高一些,但是存在不少缺點,感覺在運行時比較搶CPU,現在virtualbox已經支援smp,和虛擬化技術,但整體效率還是沒有 KVM高(但是圖形效率作的不錯);KVM(Kernel-based Virtual Machine),基於核心的虛擬機器,是我用過的最快的虛擬機器,需要CPU支援虛擬化技術,並且在BIOS裡開啟虛擬化選項,效率可達到物理機的80%以
上,對SMP的支援很好。所以現在強烈吐血賣命推薦KVM。
(使用磁碟方式以更新,請大家注意!!!)
沒有廢話,以下是在UBUNTU 804.4 64BIT下的方法
獲得KVM:
KVM的網站:http://sourceforge.net/projects/kvm/files/
下載最新的qemu-kvm-0.12.4.tar.gz
解壓:
-
代碼:
全選
-
tar -xzvf qemu-kvm-0.12.4.tar.gz
需要用到的包:
-
代碼:
全選
-
sudo apt-get install gcc libsdl1.2-dev zlib1g-dev libasound2-dev linux-kernel-headers pkg-config libgnutls-dev libpci1 pciutils-dev
在 UBUNTU 10.04中 ,可以使用
-
代碼:
全選
-
sudo apt-get build-dep qemu-kvm
來解決依賴關係。
三步曲:
-
代碼:
全選
-
cd qemu-kvm-0.12.4
./configure --prefix=/usr/local/kvm
make
sudo make install
安裝好以後載入KVM模組
-
代碼:
全選
-
sudo modprobe kvm
sudo modprobe kvm-intel //如果你的是INTEL處理器就用這個
sudo modprobe kvm-amd //如果你的是AMD處理器就用這個
這樣就裝好了。
下面介紹配置KVM橋接網路的方法: \\特別注意,大部分不能橋接無線網卡。。。只能橋接PCI網卡。。。。
安裝橋接工具:
-
代碼:
全選
-
sudo apt-get install bridge-utils
安裝建立TAP介面的工具:
-
代碼:
全選
-
sudo apt-get install uml-utilities
編輯網路介面設定檔(
-
代碼:
全選
-
sudo vi /etc/network/interfaces
),根據你的情況加入以下內容:
-
代碼:
全選
-
auto eth0
iface eth0 inet manualauto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user lm \\lm是我的使用者名稱,在這裡換為你的使用者名稱
auto br0
iface br0 inet static \\當然這裡也可以使用DHCP分配
bridge_ports eth0 tap0
address 192.168.1.3
netmask 255.255.255.0
gateway 192.168.1.1
啟用tap0和br0: //有些時候會不奏效,但重啟後就行了
-
代碼:
全選
-
sudo /sbin/ifup tap0
sudo /sbin/ifup br0
好了以後ifconfig看一下,多了一個tap0和br0, br0上的IP地址就是你原生IP地址。
KVM的使用方法:
KVM的使用方法具體可以參考
-
代碼:
全選
-
/usr/local/kvm/bin/qemu-system-x86_64 --help
下面具體舉幾個例子:
建立虛擬磁碟(用qemu-img命令):
-
代碼:
全選
-
mkdir kvm
cd kvm
/usr/local/kvm/bin/qemu-img create -f qcow2 winxp.img 10G
建立虛擬機器:
-
代碼:
全選
-
sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512 -drive file=/home/lm/kvm/winxp.img,cache=writeback -localtime -net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no -boot d -cdrom /home/lm/iso/winxp.iso -smp 2 -soundhw es1370
這裡對各個參數說明一下:
-
代碼:
全選
-
-m 512
分配512MB的記憶體給GUEST OS
-
代碼:
全選
-
-drive file=/home/lm/kvm/winxp.img,cache=writeback
使用虛擬磁碟的檔案和路徑,並啟用writeback緩衝。
-
代碼:
全選
-
-localtime
使用本地時間(一定要加這個參數,不然虛擬機器時間會有問題)
-
代碼:
全選
-
-net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,df=h,ifname=tapo,script=no
使用網路,並串連到一個存在的網路裝置tap0,注意mac地址一定要自己編一個,特別是如果你虛擬了多個系統並且要同時啟動並執行話,不然就MAC衝突了,在KVM-87下去掉df=h
-
代碼:
全選
-
-boot d
從光碟片啟動 (從硬碟啟動則為 -boot c )
-
代碼:
全選
-
-cdrom /home/lm/iso/winxp.iso
使用的光碟片鏡像,如果要使用物理光碟機的話就是 -cdrom /dev/cdrom
-
代碼:
全選
-
-smp 2
smp處理器個數為2個,如果你是4核處理器,後面的數字就為4(如果不開啟此選項,則只能以單核模式運行)
開始啟動裝系統了吧?是不是非常的快?如果你機器可以的話大概在15分鐘左右就把XP裝好了。
啟動裝好的虛擬機器(很簡單,上面的命令改兩個參數就行):
-
代碼:
全選
-
sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512 -drive file=/home/lm/kvm/winxp.img,cache=writeback -localtime -net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no -boot c -smp 2 -soundhw es1370
然後在用戶端裡設定好IP地址就可以使用了,但是KVM的顯卡能力不行,可以通過rdesktop遠端連線解決
-
代碼:
全選
-
rdesktop 192.168.1.4:3389 -u administrator -p ****** -g 1280x750 -D -r sound:local \\解析度可以自行設定,是不是比VirtualBox的無縫串連模式要爽??
補充:
如果同時運行多個GUEST OS ,則網路設定要改一下,在/etc/network/interfaces 裡加幾個tap介面就行了,每個GUEST OS單獨使用一個TAP,比如說現在要同時運行3個GUEST OS ,則設定檔如下:
-
代碼:
全選
-
auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user lm \\lm是我的使用者名稱,在這裡換為你的使用者名稱auto tap1
iface tap1 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user lm \\lm是我的使用者名稱,在這裡換為你的使用者名稱
auto tap2
iface tap2 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user lm \\lm是我的使用者名稱,在這裡換為你的使用者名稱
auto br0
iface br0 inet static \\當然這裡也可以使用DHCP分配
bridge_ports eth0 tap0 tap1 tap2
address 192.168.1.3
netmask 255.255.255.0
gateway 192.168.1.1
啟動GUEST OS
-
代碼:
全選
-
sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512-drive file=/home/lm/kvm/winxp.img,cache=writeback -localtime -net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no -boot c -smp 2 -clock rtc -soundhw es1370
把ifname=tap0換為你要tap1或者tap2就行了,MAC也要改噢。。
要注意,系統重啟後要重新載入kvm核心模組:
-
代碼:
全選
-
sudo modprobe kvm
sudo modprobe kvm-amd //如果使用AMD處理器
sudo modprobe kvm-intel //如果是用INTEL處理器
當然,你也可以修改系統相關設定在啟動時自動載入該模組。
同理,可以用此方法安裝LINUX。裝完了可以對比一下,是不是比VB和VM要爽得多呢?
其他比如像USB串連問題可以參考論壇裡的文章
我已經在我的系統裡同時運行了4個CentOS 4.8 1個winxp sp3 1個win2003 sp2 5個FreeBSD 8.0
速度太快了,難以置信。
系統配置為:Athlon X2 5000+ 8G RAM 跑的Ubuntu 8.04.4 64bit
其實KVM的安裝和使用都很方便簡單的,大家要理解KVM各個參數的含義。最關鍵的就是KVM的網路橋接的設定,在這裡大家要多看軟體自身的文檔,會有很大的協助。
以上是KVM的最基礎的實現方法,望大家多看文檔,以便掌握更多更靈活的功能。
BTW:
現 在已經找到了原來磁碟效能糟糕的原因,按照以往的方法是用 -hda disk.img 的方法來使用虛擬磁碟,現在版本更新以後時候 -drive file=/home/lm/kvm/winxp.img,cache=writeback 來使用虛擬磁碟,請廣大使用KVM的使用者注意這裡的變化。
-hda / hdb 參數主要使用者使用物理硬碟上的一個分區。
註:Ubuntu 10.04 LTS 下的安裝方法(qemu-kvm 0.12.3):
直接
-
代碼:
全選
-
sudo apt-get install qemu-kvm
網路設定如上,是一樣的。
大家注意一個問題,如果你虛擬是WIN2003,那麼切勿在-net參數中使用model=e1000,否則HOST和GUEST之間不能PING通