KVM/QEMU橋接網絡設置[zz]


研究了很久的KVM,感覺是我用過的最快的虛擬機。對比常用的虛擬機,Vmware的功能全面,設置簡單,但其速度不是很好;VirtualBox的效率雖然比Vmware高一些,但是存在不少缺點,感覺在運行時比較搶CPU,現在virtualbox已經支持smp,和虛擬化技術,但整體效率還是沒有KVM高(但是圖形效率作的不錯);KVM(Kernel-based Virtual Machine),基於內核的虛擬機,是我用過的最快的虛擬機,需要CPU支持虛擬化技術,並且在BIOS里打開虛擬化選項,效率可達到物理機的80%以上,對SMP的支持很好。所以現在強烈吐血賣命推薦KVM。(注:在原文最下面添加了版虛擬化驅動(virtio)的使用方式)
(使用磁盤方式以更新,請大家注意!!!)
沒有廢話,以下是在UBUNTU 10.04.3 64BIT下的方法
獲得KVM:
KVM的網站:http://sourceforge.net/projects/kvm/files/
下載最新的qemu-kvm-1.0.tar.gz 
解壓:

代碼:
tar -xzvf qemu-kvm-1.0.tar.gz


需要用到的包:
在 UBUNTU 10.04中 ,可以使用

代碼:
sudo apt-get build-dep qemu-kvm

來解決依賴關系。
三步曲:

代碼:
cd qemu-kvm-1.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橋接網絡的方法: \\特別注意,大部分不能橋接無線網卡。。。只能橋接PCI網卡。。。。
安裝橋接工具:

代碼:
sudo apt-get install bridge-utils


安裝創建TAP界面的工具:

代碼:
sudo apt-get install uml-utilities


編輯網絡界面配置文件(

代碼:
sudo vi /etc/network/interfaces

),根據你的情況加入以下內容:

代碼:
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       \\當然這里也可以使用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,ifname=tapo,script=no


使用網絡,並連接到一個存在的網絡設備tap0,注意mac地址一定要自己編一個,特別是如果你虛擬了多個系統並且要同時運行的話,不然就MAC沖突了,在

代碼:
-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 -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 10.04.1 64bit

其實KVM的安裝和使用都很方便簡單的,大家要理解KVM各個參數的含義。最關鍵的就是KVM的網絡橋接的設置,在這里大家要多看軟件自身的文檔,會有很大的幫助。
以上是KVM的最基礎的實現方法,望大家多看文檔,以便掌握更多更靈活的功能。

BTW:
[b]現在已經找到了原來磁盤性能糟糕的原因,按照以往的方法是用 -hda disk.img 的方法來使用虛擬磁盤,現在版本更新以后時候 -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


網絡配置如上,是一樣的。

大家注意一個問題,如果你虛擬的是WIN2003,那么切勿在-net參數中使用model=e1000,否則HOST和GUEST之間不能PING通

添加:半虛擬化驅動使用方式如下
WIN系統需要下載的驅動程序:
http://www.linux-kvm.com
在左手邊有一個Windows Guest Drivers,下載cdrom image和floppy image
使用版虛擬化驅動(virtio)可以得到更好的磁盤性能和網絡性能,使用版虛擬化驅動的時候,KVM的啟動參數如下(安裝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


說明一下新的參數:

代碼:
在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來使用網絡

代碼:
-fda=/disk/virtio-win-1.1.11-0.vfd


驅動程序的軟盤鏡像,-fda為添加一個軟盤驅動器

在安裝WINDOWS的時候需要注意:在虛擬機啟動從光盤引導啟動WINDOWS安裝的時候(最開始的時候)會提示你,按F6選擇第三方驅動程序,按F6以后過幾秒鍾,它會出現選擇第三方驅動的畫面,按下S,會讓你選擇你要加載的第三方驅動。(網絡太慢,圖傳不上來,大家可參考:http://www.linux-kvm.org/page/WindowsGuestDrivers/viostor/installation)
在WINDOWS安裝完成以后,還要安裝virtio網絡驅動程序,修改KVM啟動參數:

代碼:
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


啟動虛擬機,啟動好WIN系統以后,在WIN中安裝網卡驅動程序(在設備管理器中安裝),驅動程序就在虛擬機的光驅中。有時在安裝過程中會出現問題,那么去掉cache=writeback重新安裝試試。
現在主流的LINUX系統的內核都集成了virtio驅動,所以在使用半虛擬化驅動安裝LINUX的時候可以直接安裝,無需加載virtio驅動來安裝。

注:
如果你使用的是raw文件系統或LVM分區,則應該將cache=writeback改為cache=none
建議大家使用LVM分區方式,這樣虛擬機的磁盤性能可以接近物理機的磁盤性能。關於LVM的創建大家可以去查找相關文章,在這里給大家一個KVM使用LVM分區的示例:

代碼:
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



virt-manager圖形管理界面使用方法:
1.安裝qemu-kvm,virt-manager,bridge-utils

代碼:
sudo apt-get install qemu-kvm bridge-utils virt-manager



2.修改網絡為橋接模式:
編輯/etc/network/interface

代碼:
sudo vim /etc/network/interface


修改其內容,如:

代碼:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
bridge_ports eth0
address 192.168.1.8
netmask 255.255.255.0
gateway 192.168.1.1
就這兩段哦,相比上面的,少了TAP段


重啟networking服務(如果原來你使用network-manager來管理網絡,那么需要停止network-manager):

代碼:
sudo /etc/init.d/network-manager stop          //停止network-manager服務
sudo /etc/init.d/networking start                   //啟動networking服務,需要耐心等待一下


這時可以ifconfig看以下br0有沒有出現你設定的IP地址,也可以用brctl show來看一下eth0有沒有橋接到br0。

啟動vrit-manager

代碼:
sudo virt-manager


這里要使用超級用戶身份啟動,所以要在終端里使用sudo命令啟動,如果直接點GNOME菜單中的虛擬系統管理器,那么只能鏈接到用戶模式(除非你新建一個鏈接,使用SSH方式從本機鏈接到本機)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM