KVM/QEMU橋接網(wǎng)絡(luò)設(shè)置
配置kvm的網(wǎng)絡(luò)有2種方法。其一,默認(rèn)方式為用戶模式網(wǎng)絡(luò)(Usermode Networking),數(shù)據(jù)包由NAT方式通過主機(jī)的接口進(jìn)行傳送。其二,使用橋接方式(Bridged Networking),外部的機(jī)器可以直接聯(lián)通到虛擬機(jī),就像聯(lián)通到你的主機(jī)一樣。
第一,用戶模式
虛擬機(jī)可以使用網(wǎng)絡(luò)服務(wù),但局域網(wǎng)中其他機(jī)器包括宿主機(jī)無法連接它。比如,它可以瀏覽網(wǎng)頁,但外部機(jī)器不能訪問架設(shè)在它里面的web服務(wù)器。
默認(rèn)的,虛擬機(jī)得到的ip空間為10.0.2.0/24,主機(jī)ip為10.0.2.2供虛擬機(jī)訪問。可以ssh到主機(jī)(10.0.2.2),用scp來拷貝文件。
第二,橋接模式
這種模式允許虛擬機(jī)就像一臺獨立的主機(jī)一樣擁有網(wǎng)絡(luò)。這種模式需要網(wǎng)卡支持,一般的有線網(wǎng)卡都支持,絕大部分的無線網(wǎng)卡都不支持
A) 在主機(jī)上創(chuàng)建一個網(wǎng)絡(luò)橋
1)安裝bridge-utils
sudo apt-get install bridge-utils
2)改變網(wǎng)絡(luò)設(shè)置,先停止網(wǎng)絡(luò)
sudo invoke-rc.d networking stop
如果是用遠(yuǎn)程連接進(jìn)行設(shè)置,設(shè)置完后,重啟網(wǎng)絡(luò)sudo invoke-rc.d networking restart,如果中途有一步錯誤,將不能連接
3)修改/etc/network/interfaces,直接用下面的替換。
a) 靜態(tài)ip模式
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
b) DHCP模式
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
4)重啟網(wǎng)絡(luò)
sudo /etc/init.d/networking restart
B) 隨機(jī)生成一個KVM的MAC地址
MACADDR="52:54:$(dd if=/dev/urandom count=1 2>/dev/null | md5sum | sed s/^/(../)/(../)/(../)/(../).*$//1:/2:/3:/4/)"; echo $MACADDR
可以指定一個mac地址,但要注意,第一個字節(jié)必須為偶數(shù),如00,52等,不能為奇數(shù)(01),否則會有不可預(yù)料的問題。因為奇數(shù)保留為多播使用。如,KVM可以接收ARP包并回復(fù),但這些回復(fù)會使其他機(jī)器迷惑。這是以太網(wǎng)的規(guī)則,而非KVM的問題。
如直接將網(wǎng)卡地址設(shè)置為MACADDR="32:32:32:32:32:32"
C) 將以前安裝的虛擬機(jī)網(wǎng)絡(luò)改為橋接方式或者安裝新的虛擬機(jī)使用橋接網(wǎng)絡(luò)
一個腳本文件
#start kvm.winxp
USERID=`whoami`
MACADDR="32:32:32:32:32:32"
model=e1000e
iface=`sudo tunctl -b -u $USERID`
kvm -net nic,vlan=0,macaddr=$MACADDR -net tap,vlan=0,ifname=$iface $@
sudo tunctl -d $iface
#end kvm.winxp
使用iso文件安裝winxp,運行如下命令:
sudo ./kvm.bridge -m 512 -hda winxp.img -cdrom /home/software/zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso -boot d
運行安裝完的虛擬機(jī),運行如下命令:
sudo ./kvm.bridge -m 512 -hda winxp.img -boot c
===================================================================================
linux中Kvm橋接網(wǎng)絡(luò)成功的關(guān)鍵
KVM在LINUX中的重要作用,速度等,我不再評價,我只能說,快!
但是,如果你要在一個服務(wù)器中使用多個虛擬機(jī),并且想讓這些虛擬機(jī)提供服務(wù),那么,橋接網(wǎng)絡(luò)是必不可少的,可是,網(wǎng)上流傳的三四個版本中,關(guān)于橋接網(wǎng)絡(luò)的,你試一下,會發(fā)現(xiàn),很難成功,這是何道理?看起來他們似乎都配置成功了,也有可能是軟件版本的問題,總之,你親自嘗試的時候,會發(fā)現(xiàn),這其實很難實現(xiàn)。
當(dāng)然,如果無法實現(xiàn)的話,也就沒有此文了!
先說一下我的軟件配置:
Linux 2.6.28-11-server #42-Ubuntu SMP X86_64位Ubuntu服務(wù)器版9.04
KVM內(nèi)核是自帶的。
真實網(wǎng)絡(luò)接口名稱:eth0
KVM的安裝方法我就不寫了,網(wǎng)上有一大堆,注意,KVM有兩個部分,一個部分是內(nèi)核部分,這在9.04中是自帶的,您要安裝的KVM是管理部分(我也不知道這樣理解是否正確,總之,你要安裝KVM及QEMU)
不安裝QEMU也可以用,因為KVM帶一個修改版本的QEMU
成功的關(guān)鍵是配置網(wǎng)絡(luò)及路由(這個在網(wǎng)上流傳的版本中沒有提到)
請生成一個文件(qemu-ifup),將這個文件加上可執(zhí)行屬性,文件內(nèi)容如下:
#!/bin/sh
set -x
switch=br0
if [ -n "$1" ];then
/usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1
/usr/bin/sudo /sbin/ip link set $1 up
sleep 0.5s
/usr/bin/sudo /usr/sbin/brctl addif $switch $1
exit 0
else
echo "Error: no interface specified"
exit 1
fi
將這個文件保存在你的HOME目錄下,或者其它的目錄也行。
修改你的/etc/network/interfaces文件如下:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
bridge_ports eth0 //注意這個eth0,這是你的計算機(jī)的實際網(wǎng)卡,請根據(jù)你的網(wǎng)絡(luò)修改,也可能跟我的這個一樣。
address 192.168.1.242 //根據(jù)你的需要設(shè)置從這里到下面的參數(shù),這個網(wǎng)絡(luò)跟你的實現(xiàn)網(wǎng)絡(luò)在一個子網(wǎng)內(nèi),不然無法橋接
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameserver 192.168.1.1 219.141.136.10
dns-search Office
此時,重新啟動計算機(jī)即可。
你可能注意到, 這個文件里可能有關(guān)于eth0的配置,請刪除它即可,也就是說,不能對eth0進(jìn)行任何配置,這個接口在重新啟動后,應(yīng)該是沒有配置IP的,否則不能工作。
重新啟動完成后,請比照一下你的接口配置是否跟我的一樣:
#ifconfig
br0 Link encap:以太網(wǎng) 硬件地址 00:21:5e:4e:33:e2
inet 地址:192.168.1.242 廣播:192.168.1.255 掩碼:255.255.255.0
inet6 地址: fe80::221:5eff:fe4e:33e2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 躍點數(shù):1
接收數(shù)據(jù)包:48324758 錯誤:0 丟棄:0 過載:0 幀數(shù):0
發(fā)送數(shù)據(jù)包:25261650 錯誤:0 丟棄:0 過載:0 載波:0
碰撞:0 發(fā)送隊列長度:0
接收字節(jié):63199826111 (63.1 GB) 發(fā)送字節(jié):5380518900 (5.3 GB)
eth0 Link encap:以太網(wǎng) 硬件地址 00:21:5e:4e:33:e2
inet6 地址: fe80::221:5eff:fe4e:33e2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 躍點數(shù):1
接收數(shù)據(jù)包:48903854 錯誤:0 丟棄:0 過載:0 幀數(shù):0
發(fā)送數(shù)據(jù)包:28125512 錯誤:0 丟棄:0 過載:0 載波:0
碰撞:0 發(fā)送隊列長度:1000
接收字節(jié):64152739997 (64.1 GB) 發(fā)送字節(jié):6185466883 (6.1 GB)
中斷:16
請注意,只有br0有地址,而eth0是沒有地址的,再比照一下你的路由表:
#route
內(nèi)核 IP 路由表
目標(biāo) 網(wǎng)關(guān) 子網(wǎng)掩碼 標(biāo)志 躍點 引用 使用 接口
localnet * 255.255.255.0 U 0 0 0 br0
default bogon 0.0.0.0 UG 100 0 0 br0
請注意,如果你的路由表與我的不一樣,例如出現(xiàn)四行,即又加上了
localnet * ................... eth0
default bogon ..................eth0
那么,你八成是不能成功橋接的,出現(xiàn)這樣的問題應(yīng)該是由于你的ETH0網(wǎng)絡(luò)被配置了IP,處理的辦法就是想辦法去掉eth0的IP,可以使用這個方法:
#ifconfig eth0 0.0.0.0
比較一下,你的橋接網(wǎng)絡(luò)接口:
#brctl show
bridge name bridge id STP enabled interfaces
br0 8000.00215e4e33e2 no eth0
tap0
tap1
tap2
應(yīng)該有這行存在(了可能還會出現(xiàn)其它的行,例如pan0),后面的tapX是不同的虛擬機(jī)的接口,這里可以看出,我橋接了三個虛擬接口到一個直接的接口。
如果你的IP地址配置與路由表跟我的一樣,那么,應(yīng)該是可以橋接成功的。
接下來就是啟動你的虛擬機(jī),啟動前需要創(chuàng)建虛擬機(jī)的磁盤(即下面的u_ubuntu.img,可以參照網(wǎng)上的方法,這里就不重復(fù)了),啟動虛擬機(jī)的方法:
#sudo kvm -hda u_ubuntu.img -boot c -net nic,model=virtio,macaddr=DE:AD:AF:22:33:22 -net tap,script=qemu-ifup -m 1024 -smp 2 -clock rtc -localtime
當(dāng)然,有很的參數(shù)可用,我就不介紹了(其實我也不是很懂,嘿嘿),關(guān)鍵的問題就是macaddr和script兩項,如果你有多個虛擬機(jī),那么一樣要配置不同的macaddr,script一定要指向你剛才保存的那個文件,可以使用絕對路徑指明。
啟動后,你應(yīng)該可以正常安裝操作系統(tǒng)了,安裝完成后,如果虛擬機(jī)操作系統(tǒng)網(wǎng)絡(luò)配置成DHCP,那么應(yīng)該可以獲取一個192.168.1.0網(wǎng)絡(luò)內(nèi)的地址,如果你不能獲取地址,那么說明配置不成功。
在虛擬機(jī)工作的情況下,在宿主計算機(jī)上運行ifconfig,應(yīng)該可以看到一個自動增加的接口tapX(其中X從0開始)。
小結(jié)一下:
1)eth0(宿主計算機(jī)連接到網(wǎng)絡(luò)的真實網(wǎng)絡(luò)接口)不能有IP地址!
2)路由表一定要正確,可以去找一找關(guān)于路由方面的介紹,了解一下這個路由信息的意思
=============================================================================================
近幾天在搞kvm。kvm真的是很不錯,運行操作系統(tǒng)速度非常快,至少比我以前用的vbox要快。但是 kvm的網(wǎng)絡(luò)配置讓我頭疼了一陣,上網(wǎng)找了很多資料,無奈那些資料要不省略了一些內(nèi)容(都把我當(dāng)高手看了),要不就是寫了一堆東西,不說原理,看了半天都搞不懂為什么要那么做,反正都不適合我這種“從0開始”的人。故今天花了幾個小時做實驗,終于弄出了一個解決方法,現(xiàn)在從頭到尾講出來跟大家分享一下。
對于那些跟我一樣想要找到一個只要照著它的提示打命令就多半能成功的方法的人,此帖應(yīng)該有用。高手請無視此帖~
首先說一下實現(xiàn)原理。我是想先在host上造一塊假網(wǎng)卡,然后guest的系統(tǒng)跟這假網(wǎng)卡連接構(gòu)成一個局域網(wǎng)。guest想連外網(wǎng)的話,就把host當(dāng)路由器。至于域名服務(wù)器,在guest系統(tǒng)里直接指定。
本人實驗的host是ubuntu 8.04 server,guest是freebsd 7.0 release。(都是64位)
接下來我會假設(shè)你已經(jīng)裝了kvm,而且能用它啟動虛擬機(jī)。
(以下一到四參照了vbox的網(wǎng)絡(luò)設(shè)定,都在host下操作)
一,首先把必要的工具裝了:
代碼:
sudo apt-get install uml-utilities
二,再造假網(wǎng)卡tap0(名字隨便取)并作一些基本配置
代碼:
sudo tunctl -t tap0 -u xxx
此處xxx換成你自己的用戶名
代碼:
sudo chmod 0666 /dev/net/tun
這樣大家都有權(quán)力去讀寫那個假網(wǎng)卡。即使在上面那行代碼中你指定了自己的用戶名,你還是沒有辦法讀寫tap0(很奇怪),所以這條命令是有用的。
三,配置網(wǎng)卡的網(wǎng)絡(luò)參數(shù)。
代碼:
sudo ifconfig tap0 192.168.0.10 netmask 255.255.255.0 up
隨便設(shè),但是你要確保你待會設(shè)置的guest的網(wǎng)卡ip跟tap0的屬于同一個網(wǎng)段。
四,接下來是系統(tǒng)的配置(連外網(wǎng)所必須)
代碼:
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
這樣開啟了linux的ip轉(zhuǎn)發(fā)功能,host可以當(dāng)路由器用了。如果你想讓guest連上外網(wǎng)的話這條一定要。
代碼:
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
這條命令也是連外網(wǎng)所必須的。
五,啟動kvm虛擬機(jī)
代碼:
kvm -M pc -m 512 -hda /root/hda.img -net nic -net tap,ifname=tap0,script=no -boot c
-net nic -net tap,ifname=tap0,script=no是跟網(wǎng)絡(luò)相關(guān)的,上面的命令的其他部分自己跟據(jù)實際情況修改。ifname=你造的假網(wǎng)卡的名字,我的是tap0。
六,guest系統(tǒng)的配置。(接下來的事請我不詳細(xì)講了,在guest下操作,根據(jù)不同的guest系統(tǒng)自己找資料,不要鄙視我~~~)
guest啟動后應(yīng)該會認(rèn)出一張網(wǎng)卡,realtek的。我的freebsd認(rèn)出來是re0。把那網(wǎng)卡的ip設(shè)定成192.168.0.x,(這個ip跟host下tap0的ip不能相同!但要確保它們同在一個子網(wǎng)。我的是192.168.0.11),并把netmask設(shè)成 255.255.255.0。到現(xiàn)在,guest和host應(yīng)該是同在一個子網(wǎng)了。你可以試一下在guest里ping 192.168.0.10,在host里ping 192.168.0.11,如無意外,應(yīng)該能ping通。到現(xiàn)在已實現(xiàn)host guest之間的互訪。
七,讓guest連上外網(wǎng)。(前提是host已經(jīng)連上外網(wǎng))
只需要把guest的默認(rèn)網(wǎng)關(guān)設(shè)置成192.168.0.10(你的假網(wǎng)卡的ip)就可以了,非常的簡單。
域名服務(wù)器手動設(shè)置,不會很麻煩。
至此kvm網(wǎng)絡(luò)設(shè)置的問題解決了,freebsd在線裝東西中~
希望此帖能對大家有點幫助。
==========================================================================================
研究了很久的KVM,感覺是我用過的最快的虛擬機(jī)。對比常用的虛擬機(jī),Vmware的功能全面,設(shè)置簡單,但其速度不是很好;VirtualBox的效率雖然比Vmware高一些,但是存在不少缺點,感覺在運行時比較搶CPU,現(xiàn)在virtualbox已經(jīng)支持smp,和虛擬化技術(shù),但整體效率還是沒有KVM高(但是圖形效率作的不錯);KVM(Kernel-based Virtual Machine),基于內(nèi)核的虛擬機(jī),是我用過的最快的虛擬機(jī),需要CPU支持虛擬化技術(shù),并且在BIOS里打開虛擬化選項,效率可達(dá)到物理機(jī)的80%以上,對SMP的支持很好。所以現(xiàn)在強(qiáng)烈吐血賣命推薦KVM。(注:在原文最下面添加了版虛擬化驅(qū)動(virtio)的使用方式)
(使用磁盤方式以更新,請大家注意!!!)
沒有廢話,以下是在UBUNTU 10.04.1 64BIT下的方法
獲得KVM:
KVM的網(wǎng)站:http://sourceforge.net/projects/kvm/files/
下載最新的qemu-kvm-0.13.0.tar.gz
解壓:
代碼:
tar -xzvf qemu-kvm-0.13.0.tar.gz
需要用到的包:
在 UBUNTU 10.04中 ,可以使用
代碼:
sudo apt-get build-dep qemu-kvm
來解決依賴關(guān)系。
三步曲:
代碼:
cd qemu-kvm-0.13.0
/configure --prefix=/usr/local/kvm
make
sudo make install
安裝好以后加載KVM模塊
代碼:
sudo modprobe kvm
sudo modprobe kvm-intel //如果你的是INTEL處理器就用這個
sudo modprobe kvm-amd //如果你的是AMD處理器就用這個
這樣就裝好了。
下面介紹配置KVM橋接網(wǎng)絡(luò)的方法: 特別注意,大部分不能橋接無線網(wǎng)卡。。。只能橋接PCI網(wǎng)卡。。。。
安裝橋接工具:
代碼:
sudo apt-get install bridge-utils
安裝創(chuàng)建TAP界面的工具:
代碼:
sudo apt-get install uml-utilities
編輯網(wǎng)絡(luò)界面配置文件(
代碼:
sudo vi /etc/network/interfaces
),根據(jù)你的情況加入以下內(nèi)容:
代碼:
auto eth0
iface eth0 inet manual
auto 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 當(dāng)然這里也可以使用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地址就是你本機(jī)的IP地址。
KVM的使用方法:
KVM的使用方法具體可以參考
代碼:
/usr/local/kvm/bin/qemu-system-x86_64 --help
下面具體舉幾個例子:
創(chuàng)建虛擬磁盤(用qemu-img命令):
代碼:
mkdir kvm
cd kvm
/usr/local/kvm/bin/qemu-img create -f qcow2 winxp.img 10G
創(chuàng)建虛擬機(jī):
代碼:
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
這里對各個參數(shù)說明一下:
代碼:
-m 512
分配512MB的內(nèi)存給GUEST OS
代碼:
-drive file=/home/lm/kvm/winxp.img,cache=writeback
使用虛擬磁盤的文件和路徑,并啟用writeback緩存。
代碼:
-localtime
使用本地時間(一定要加這個參數(shù),不然虛擬機(jī)時間會有問題)
代碼:
-net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tapo,script=no
使用網(wǎng)絡(luò),并連接到一個存在的網(wǎng)絡(luò)設(shè)備tap0,注意mac地址一定要自己編一個,特別是如果你虛擬了多個系統(tǒng)并且要同時運行的話,不然就MAC沖突了,在
代碼:
-boot d
從光盤啟動 (從硬盤啟動則為 -boot c )
代碼:
-cdrom /home/lm/iso/winxp.iso
使用的光盤鏡像,如果要使用物理光驅(qū)的話就是 -cdrom /dev/cdrom
代碼:
-smp 2
smp處理器個數(shù)為2個,如果你是4核處理器,后面的數(shù)字就為4(如果不開啟此選項,則只能以單核模式運行)
開始啟動裝系統(tǒng)了吧?是不是非常的快?如果你機(jī)器可以的話大概在15分鐘左右就把XP裝好了。
啟動裝好的虛擬機(jī)(很簡單,上面的命令改兩個參數(shù)就行):
代碼:
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
然后在客戶端里設(shè)置好IP地址就可以使用了,但是KVM的顯卡能力不行,可以通過rdesktop遠(yuǎn)程連接解決
代碼:
rdesktop 192.168.1.4:3389 -u administrator -p ****** -g 1280x750 -D -r sound:local 分辨率可以自行設(shè)定,是不是比VirtualBox的無縫連接模式要爽??
補充:
如果同時運行多個GUEST OS ,則網(wǎng)絡(luò)設(shè)置要改一下,在/etc/network/interfaces 里加幾個tap界面就行了,每個GUEST OS單獨使用一個TAP,比如說現(xiàn)在要同時運行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 當(dāng)然這里也可以使用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 -soundhw es1370
把ifname=tap0換為你要tap1或者tap2就行了,MAC也要改噢。。
要注意,系統(tǒng)重啟后要重新加載kvm內(nèi)核模塊:
代碼:
sudo modprobe kvm
sudo modprobe kvm-amd //如果使用AMD處理器
sudo modprobe kvm-intel //如果是用INTEL處理器
當(dāng)然,你也可以修改系統(tǒng)相關(guān)設(shè)置在啟動時自動加載該模塊。
同理,可以用此方法安裝LINUX。裝完了可以對比一下,是不是比VB和VM要爽得多呢?
其他比如像USB連接問題可以參考論壇里的帖子
我已經(jīng)在我的系統(tǒng)里同時運行了4個CentOS 4.8 1個winxp sp3 1個win2003 sp2 5個FreeBSD 8.0
速度太快了,難以置信。
系統(tǒng)配置為:Athlon X2 5000+ 8G RAM 跑的Ubuntu 10.04.1 64bit
其實KVM的安裝和使用都很方便簡單的,大家要理解KVM各個參數(shù)的含義。最關(guān)鍵的就是KVM的網(wǎng)絡(luò)橋接的設(shè)置,在這里大家要多看軟件自身的文檔,會有很大的幫助。
以上是KVM的最基礎(chǔ)的實現(xiàn)方法,望大家多看文檔,以便掌握更多更靈活的功能。
BTW:
[b]現(xiàn)在已經(jīng)找到了原來磁盤性能糟糕的原因,按照以往的方法是用 -hda disk.img 的方法來使用虛擬磁盤,現(xiàn)在版本更新以后時候 -drive file=/home/lm/kvm/winxp.img,cache=writeback 來使用虛擬磁盤,請廣大使用KVM的用戶注意這里的變化。
注:Ubuntu 10.04 LTS 下的安裝源里的KVM的方法(qemu-kvm 0.12.3):
直接
代碼:
sudo apt-get install qemu-kvm
網(wǎng)絡(luò)配置如上,是一樣的。
大家注意一個問題,如果你虛擬的是WIN2003,那么切勿在-net參數(shù)中使用model=e1000,否則HOST和GUEST之間不能PING通
添加:半虛擬化驅(qū)動使用方式如下
WIN系統(tǒng)需要下載的驅(qū)動程序:
http://www.linux-kvm.com
在左手邊有一個Windows Guest Drivers,下載cdrom image和floppy image
使用版虛擬化驅(qū)動(virtio)可以得到更好的磁盤性能和網(wǎng)絡(luò)性能,使用版虛擬化驅(qū)動的時候,KVM的啟動參數(shù)如下(安裝WIN時):
代碼:
sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512 -drive file=/home/lm/kvm/winxp.img,if=virtio,boot=on,cache=writeback -localtime -net nic,vlan=0,model=virtio,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no -boot d -cdrom /home/lm/iso/winxp.iso -fda=/disk/virtio-win-1.1.11-0.vfd -smp 2
說明一下新的參數(shù):
代碼:
在file=/home/lm/kvm/winxp.img,if=virtio,boot=on,cache=writeback中
添加了if=virtio,通過virio來使用磁盤
代碼:
在 -net nic,vlan=0,model=virtio,macaddr=52-54-00-12-34-01中
添加了model=virtio,通過virtio來使用網(wǎng)絡(luò)
代碼:
-fda=/disk/virtio-win-1.1.11-0.vfd
驅(qū)動程序的軟盤鏡像,-fda為添加一個軟盤驅(qū)動器
在安裝WINDOWS的時候需要注意:在虛擬機(jī)啟動從光盤引導(dǎo)啟動WINDOWS安裝的時候(最開始的時候)會提示你,按F6選擇第三方驅(qū)動程序,按F6以后過幾秒鐘,它會出現(xiàn)選擇第三方驅(qū)動的畫面,按下S,會讓你選擇你要加載的第三方驅(qū)動。(網(wǎng)絡(luò)太慢,圖傳不上來,大家可參考:http://www.linux-kvm.org/page/WindowsGuestDrivers/viostor/installation)
在WINDOWS安裝完成以后,還要安裝virtio網(wǎng)絡(luò)驅(qū)動程序,修改KVM啟動參數(shù):
代碼:
sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512 -drive file=/home/lm/kvm/winxp.img,if=virtio,boot=on,cache=writeback -localtime -net nic,vlan=0,model=virtio,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no -boot c -cdrom /home/lm/iso/virtio-win-1.1.11-0.iso -smp 2
啟動虛擬機(jī),啟動好WIN系統(tǒng)以后,在WIN中安裝網(wǎng)卡驅(qū)動程序(在設(shè)備管理器中安裝),驅(qū)動程序就在虛擬機(jī)的光驅(qū)中。有時在安裝過程中會出現(xiàn)問題,那么去掉cache=writeback重新安裝試試。
現(xiàn)在主流的LINUX系統(tǒng)的內(nèi)核都集成了virtio驅(qū)動,所以在使用半虛擬化驅(qū)動安裝LINUX的時候可以直接安裝,無需加載virtio驅(qū)動來安裝。
注:
如果你使用的是raw文件系統(tǒng)或LVM分區(qū),則應(yīng)該將cache=writeback改為cache=none
建議大家使用LVM分區(qū)方式,這樣虛擬機(jī)的磁盤性能可以接近物理機(jī)的磁盤性能。關(guān)于LVM的創(chuàng)建大家可以去查找相關(guān)文章,在這里給大家一個KVM使用LVM分區(qū)的示例:
代碼:
sudo /usr/local/kvm/bin/qemu-system-x86_64 -m 512 -drive file=/dev/vg0/lv1,if=virtio,boot=on,cache=none -localtime -net nic,vlan=0,model=virtio,macaddr=52-54-00-12-34-01 -net tap,vlan=0,ifname=tap0,script=no -boot c -smp 2
新聞熱點
疑難解答