說(shuō)明:

只有RHEL5.5以上 64位 server版才可以安裝KVM,Centos相同。client版本和32位都安裝不了KVM。

安裝前期準(zhǔn)備: 因?yàn)橛行〤PU不支持kvm虛擬化,Need查看主板(BIOS)是否啟動(dòng)了虛擬化選項(xiàng); 另外在安裝Centos的軟件包時(shí),勾選虛擬化, 如果沒(méi)有選, 可以用命令:yum install virt* 安裝即可

 

0. 配置BIOS

使BIOS支持虛擬化,

如果沒(méi)配置的話會(huì)報(bào)錯(cuò):

“Error polling connection 'qemu:///system': internal error Cannot find suitable emulator for x86_64 ”

 

1.需要軟件

       1.1Kvm 模塊

       2.6.29之后內(nèi)核大多包含了kvm模塊, Slackware13.37內(nèi)核版本為2.6.32已經(jīng)包含       了kvm模塊,所以無(wú)需從網(wǎng)上下載kvm-mod模塊,否則模塊無(wú)法正常啟動(dòng),kvm虛擬機(jī)  速度極慢。

       1.2用戶空間組件

       目前兩種版本qemu-kvm 和 kvm 的用戶空間組件,kvm 現(xiàn)在已經(jīng)不提倡使用,最好使用qemu-kvm,從網(wǎng)上下載qemu-kvm-1.0.tar.gz, 版本號(hào)1.0

       1.3 yum install  tunctl 組件,版本號(hào)1.5, 主要用來(lái)實(shí)現(xiàn)虛擬機(jī)聯(lián)網(wǎng)packages is in  DVD.


2.安裝步驟 

       2.1  安裝   qemu-kvm(如果yum 安裝了qemu-kvn可以不安裝這一步。)

       ./configure --disable-vnc-tls --disable-vnc-sasl    把這個(gè)VNC選項(xiàng)禁掉否則會(huì)報(bào)錯(cuò);

       make

       make install

       2.2  安裝   tunctl       

       yum install  tunctl -y

重啟server,調(diào)試CPU.


3.主機(jī)和客戶機(jī)聯(lián)網(wǎng)

設(shè)置網(wǎng)卡橋接模式  

一  真實(shí)機(jī)上配置

[root@localhost src]# cd /etc/sysconfig/network-scripts/
1/ 備份網(wǎng)卡
 cp -rap ifcfg-eth0 bak.ifcfg-eth0
2/新的橋接網(wǎng)卡使用eth0的配置文件
  cp -rap ifcfg-eth0 ifcfg-br33
3/編輯這兩個(gè)配置文件 注意編輯這個(gè)文件會(huì)導(dǎo)致網(wǎng)卡ip宕掉。可以先編輯下面的配置文件。

vim ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
HWADDR=bc:ae:c5:df:93:96
NM_CONTROLLED=yes
ONBOOT=yes
BRIDGE="br33"
IPV6INIT=no
USERCTL=no

保存推出

vim /etc/sysconfig/network-scripts/ifcfg-br33 
DEVICE=br33
BOOTPROTO=static
HWADDR=bc:ae:c5:df:93:96
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Bridge
IPADDR=192.168.1.202
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
保存推出
重啟網(wǎng)卡

/etc/init.d/network restart

3. 關(guān)閉centos的NetworkManager(這一步可以不做)

一定要關(guān)閉這個(gè)服務(wù),否則網(wǎng)卡的腳本配置文件可能不會(huì)生效,上不了網(wǎng)

service NetworkManager stop

 

3.4重啟網(wǎng)絡(luò)服務(wù)

service network restart


3.5開啟轉(zhuǎn)發(fā)(這一步可以不做)

echo 1 > /proc/sys/net/ipv4/ip_forward


3.6 Review network card status:

[root@localhost ~]# ifconfig
br33      Link encap:Ethernet  HWaddr 00:25:64:97:BA:51  
          inet addr:192.168.120.96  Bcast:192.168.120.255  Mask:255.255.255.0
          inet6 addr: fe80::225:64ff:fe97:ba51/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:641005 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4785 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:64019315 (61.0 MiB)  TX bytes:278717 (272.1 KiB)

eth0      Link encap:Ethernet  HWaddr 00:25:64:97:BA:51  
          inet6 addr: fe80::225:64ff:fe97:ba51/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:1410323 errors:0 dropped:0 overruns:0 frame:0
          TX packets:465818 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:254264481 (242.4 MiB)  TX bytes:293774426 (280.1 MiB)
          Interrupt:21 Memory:fe6e0000-fe700000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:468571 errors:0 dropped:0 overruns:0 frame:0
          TX packets:468571 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:898319692 (856.7 MiB)  TX bytes:898319692 (856.7 MiB)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:B3:44:41  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4293 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:205669 (200.8 KiB)

vnet0     Link encap:Ethernet  HWaddr FE:54:00:11:CE:91  
          inet6 addr: fe80::fc54:ff:fe11:ce91/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:182999 errors:0 dropped:0 overruns:0 frame:0
          TX packets:911932 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:266186182 (253.8 MiB)  TX bytes:110334183 (105.2 MiB)

vnet1     Link encap:Ethernet  HWaddr FE:54:00:A5:0F:52  
          inet6 addr: fe80::fc54:ff:fea5:f52/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:161319 errors:0 dropped:0 overruns:0 frame:0
          TX packets:783482 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:20856924 (19.8 MiB)  TX bytes:97247791 (92.7 MiB)

[root@localhost ~]# 
Summary: eth0 don't have IP address, only br33 has valid IP. That is to say, br33 IP address is server's IP address.

小結(jié):之前主機(jī)不能上網(wǎng),虛擬機(jī)可以上網(wǎng),可能的:1.沒(méi)有寫網(wǎng)橋的配置文件而是參照KVM官網(wǎng)上面,用命令來(lái)添加網(wǎng)橋,綁定網(wǎng)卡,故網(wǎng)橋就沒(méi)有配置網(wǎng)關(guān)2.開啟了NetworkManager 這個(gè)服務(wù),導(dǎo)致用ifconfig命令來(lái)配置網(wǎng)絡(luò)失效3.沒(méi)有正確的設(shè)置好DNS

##########  新建完虛擬機(jī)后,千萬(wàn)不要使用默認(rèn)的硬盤類型,要?jiǎng)h除默認(rèn)的硬盤,然后再添加一塊硬盤,硬盤類型要vda的,硬盤格式要raw的,緩存模式要none,即可。  #########
使用默認(rèn)的硬盤類型會(huì)出現(xiàn)死機(jī)情況和老牛拉破車情況---慢!!!

###########  注意選擇架構(gòu)和虛擬機(jī)類型,一定要選擇kvm,架構(gòu)符合你的虛擬機(jī)的實(shí)際情況,我的虛擬機(jī)選擇kvm和i686,否則虛擬機(jī)非常慢,都沒(méi)法使用了。  ################################

      

4.0 新建KVM虛擬機(jī)

安裝虛擬機(jī)時(shí),選擇高級(jí)-網(wǎng)卡-br33,即可。

       切換到root用戶: su –l

       安裝kvm模塊    modprobe kvm && modprobe kvm_intel

       查看模塊安裝; lsmod | grep kvm

 

新建虛擬機(jī)的步驟:

1. 在服務(wù)器上鍵入命令:(因?yàn)橐x擇鏡像格式qcow2來(lái)做快照,所以不能使用圖形界面默認(rèn)的格式)

[root@PLASPACSHCN14 ~]# cd /var/lib/libvirt/images/

[root@PLASPACSHCN14 images]# qemu-img create -f qcow2 test.img 10G

Formatting 'test1.img', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536

大小我給10G,根據(jù)需求自己可以定義,鏡像名稱是test.img。

2. 打開圖形界面:

[root@PLASPACSHCN14 images]# virt-manager 
Xlib:  extension "RANDR" missing on display "localhost:10.0".

選擇new,來(lái)新建一個(gè)虛擬機(jī):

這里輸入虛擬機(jī)的名字,然后注意,一定要選擇“import existing disk image”,這樣才可以選擇剛才創(chuàng)建好的鏡像。

選擇“Forward”

這里輸入剛才創(chuàng)建的鏡像的路徑即可。

選擇下一步。

一路下一步,等待設(shè)置完成之后,會(huì)發(fā)現(xiàn),沒(méi)有選擇光驅(qū)。

選擇Details選項(xiàng)

這里選擇“Add Hardware”

下面需要修改光盤文件的路徑,指向操作系統(tǒng)鏡像文件即可。

然后Device type:這里選擇"IDE cdrom"即可。如圖:

 

接下來(lái),點(diǎn)擊finish。重啟之后繼續(xù)安裝系統(tǒng)就OK啦!

 

 

 kvm相關(guān)命令:

開啟虛擬機(jī):

virt-manager

4.1為客戶機(jī)新建一個(gè)硬盤鏡像

       qemu-img create -f qcow2 vdisk.img 50G

4.2安裝客戶機(jī)操作系統(tǒng):

       光盤啟動(dòng):

       qemu-system-x86_64-hda vdisk.img -cdrom /dev/cdrom -boot d -m 512

       .iso文件啟動(dòng):

       qemu-system-x86_64-hda vdisk.img -cdrom /Centos6.0.iso(此處為iso文件路徑) -bootd  -m512

4.3啟動(dòng)操作系統(tǒng):

       qemu-system-x86_64–had vdisk.img–net nic,macaddr=自定義物理地址–net tap –  m 512

啟動(dòng)客戶機(jī)后,可以如一般操作系統(tǒng)來(lái)使用,如果要聯(lián)網(wǎng)配下客戶機(jī)的ip和網(wǎng)關(guān)即可上網(wǎng)


過(guò)程中碰到的問(wèn)題如:Centos6.2 下KVM 虛擬機(jī) 花屏死機(jī)問(wèn)題, VNC錯(cuò)誤等參見博客的其他文章,如有其他問(wèn)題歡迎留言共同探討, 另外以上命令可寫成腳本簡(jiǎn)化安裝。