轉至 http://gavinshaw.blog.51cto.com/385947/177624
一、Rehat 下kvm安裝過程
虛擬化技術可以擴大硬件的容量,簡化軟件的重新配置過程。CPU的虛擬化技術可以單CPU模擬多CPU並行,允許一個平臺同時運行多個操作系統,並且應用程序都可以在相互獨立的空間內運行而互不影響,從而顯著提高計算機的工作效率。
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow
rpm -q qemu-kvm virt-manager virt-viewer python-virtinst
然後依次執行以下命令:
yum install qemu-kvm virt-manager virt-viewer python-virtinst yum groupinstall 'Virtualization'
這裏選擇使用什麼方式啓動,本地光盤(鏡像)啓動,網絡安裝,或者網絡啓動.我這裏選擇的光盤鏡像啓動.
之後就是非常簡單的一步一步點下去了,然後就能進入系統安裝階段了.這裏就不贅述了.
成功的關鍵是配置網絡及路由(這個在網上流傳的版本中沒有提到)
請生成一個文件(qemu-ifup),將這個文件加上可執行屬性,文件內容如下:
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文件如下:
# 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,這是你的計算機的實際網卡,請根據你的網絡修改,也可能跟我的這個一樣。
address 192.168.1.242 //根據你的需要設置從這裏到下面的參數,這個網絡跟你的實現網絡在一個子網內,不然無法橋接
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
此時,重新啓動計算機即可。
你可能注意到, 這個文件裏可能有關於eth0的配置,請刪除它即可,也就是說,不能對eth0進行任何配置,這個接口在重新啓動後,應該是沒有配置IP的,否則不能工作。
重新啓動完成後,請比照一下你的接口配置是否跟我的一樣:
br0 Link encap:以太網 硬件地址 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 躍點數:1
接收數據包:48324758 錯誤:0 丟棄:0 過載:0 幀數:0
發送數據包:25261650 錯誤:0 丟棄:0 過載:0 載波:0
碰撞:0 發送隊列長度:0
接收字節:63199826111 (63.1 GB) 發送字節:5380518900 (5.3 GB)
eth0 Link encap:以太網 硬件地址 00:21:5e:4e:33:e2
inet6 地址: fe80::221:5eff:fe4e:33e2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 躍點數:1
接收數據包:48903854 錯誤:0 丟棄:0 過載:0 幀數:0
發送數據包:28125512 錯誤:0 丟棄:0 過載:0 載波:0
碰撞:0 發送隊列長度:1000
接收字節:64152739997 (64.1 GB) 發送字節:6185466883 (6.1 GB)
中斷:16
請注意,只有br0有地址,而eth0是沒有地址的,再比照一下你的路由表:
內核 IP 路由表
目標 網關 子網掩碼 標誌 躍點 引用 使用 接口
localnet * 255.255.255.0 U 0 0 0 br0
default bogon 0.0.0.0 UG 100 0 0 br0
請注意,如果你的路由表與我的不一樣,例如出現四行,即又加上了
localnet * ................... eth0
default bogon ..................eth0
那麼,你八成是不能成功橋接的,出現這樣的問題應該是由於你的ETH0網絡被配置了IP,處理的辦法就是想辦法去掉eth0的IP,可以使用這個方法:
比較一下,你的橋接網絡接口:
#brctl show
bridge name bridge id STP enabled interfaces
br0 8000.00215e4e33e2 no eth0
tap0
tap1
tap2
應該有這行存在(可能還會出現其它的行,例如pan0),後面的tapX是不同的虛擬機的接口,這裏可以看出,我橋接了三個虛擬接口到一個直接的接口。
如果你的IP地址配置與路由表跟我的一樣,那麼,應該是可以橋接成功的。
接下來就是啓動你的虛擬機,啓動前需要創建虛擬機的磁盤(即下面的u_ubuntu.img,可以參照網上的方法,這裏就不重複了),啓動虛擬機的方法:
當然,有很的參數可用,我就不介紹了(其實我也不是很懂,嘿嘿),關鍵的問題就是macaddr和script兩項,如果你有多個虛擬機,那麼一樣要配置不同的macaddr,script一定要指向你剛纔保存的那個文件,可以使用絕對路徑指明。
啓動後,你應該可以正常安裝操作系統了,安裝完成後,如果虛擬機操作系統網絡配置成DHCP,那麼應該可以獲取一個192.168.1.0網絡內的地址,如果你不能獲取地址,那麼說明配置不成功。
在虛擬機工作的情況下,在宿主計算機上運行ifconfig,應該可以看到一個自動增加的接口tapX(其中X從0開始)。
小結一下:
1)eth0(宿主計算機連接到網絡的真實網絡接口)不能有IP地址!
2)路由表一定要正確,可以去找一找關於路由方面的介紹,瞭解一下這個路由信息的意思。