說明:
只有RHEL5.5以上 64位 server版才可以安裝KVM,Centos相同。client版本和32位都安裝不了KVM。
安裝前期準備: 因為有些CPU不支援kvm虛擬化,Need檢視主機板(BIOS)是否啟動了虛擬化選項; 另外在安裝Centos的軟體包時,勾選虛擬化, 如果沒有選, 可以用命令:yum install virt* 安裝即可
0. 配置BIOS
使BIOS支援虛擬化,
如果沒配置的話會報錯:
“Error polling connection 'qemu:///system': internal error Cannot find suitable emulator for x86_64 ”
1.需要軟體
1.1Kvm 模組
2.6.29之後核心大多包含了kvm模組, Slackware13.37核心版本為2.6.32已經包含 了kvm模組,所以無需從網上下載kvm-mod模組,否則模組無法正常啟動,kvm虛擬機器 速度極慢。
1.2使用者空間元件
目前兩種版本qemu-kvm 和 kvm 的使用者空間元件,kvm 現在已經不提倡使用,最好使用qemu-kvm,從網上下載qemu-kvm-1.0.tar.gz, 版本號1.0
1.3 yum install tunctl 元件,版本號1.5, 主要用來實現虛擬機器聯網packages is in DVD.
2.安裝步驟
2.1 安裝 qemu-kvm(如果yum 安裝了qemu-kvn可以不安裝這一步。)
./configure --disable-vnc-tls --disable-vnc-sasl 把這個VNC選項禁掉否則會報錯;
make
make install
2.2 安裝 tunctl
yum install tunctl -y
重啟server,除錯CPU.
3.主機和客戶機聯網
一 真實機上配置
[root@localhost src]# cd /etc/sysconfig/network-scripts/
1/ 備份網路卡
cp -rap ifcfg-eth0 bak.ifcfg-eth0
2/新的橋接網路卡使用eth0的配置檔案
cp -rap ifcfg-eth0 ifcfg-br33
3/編輯這兩個配置檔案 注意編輯這個檔案會導致網路卡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
儲存推出
重啟網路卡
/etc/init.d/network restart
3. 關閉centos的NetworkManager(這一步可以不做)
一定要關閉這個服務,否則網路卡的指令碼配置檔案可能不會生效,上不了網
service NetworkManager stop
3.4重啟網路服務
service network restart
3.5開啟轉發(這一步可以不做)
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.
小結:之前主機不能上網,虛擬機器可以上網,可能的:1.沒有寫網橋的配置檔案而是參照KVM官網上面,用命令來新增網橋,繫結網路卡,故網橋就沒有配置閘道器2.開啟了NetworkManager 這個服務,導致用ifconfig命令來配置網路失效3.沒有正確的設定好DNS
########## 新建完虛擬機器後,千萬不要使用預設的硬碟型別,要刪除預設的硬碟,然後再新增一塊硬碟,硬碟型別要vda的,硬碟格式要raw的,快取模式要none,即可。 #########
使用預設的硬碟型別會出現當機情況和老牛拉破車情況---慢!!!
########### 注意選擇架構和虛擬機器型別,一定要選擇kvm,架構符合你的虛擬機器的實際情況,我的虛擬機器選擇kvm和i686,否則虛擬機器非常慢,都沒法使用了。 ################################
4.0 新建KVM虛擬機器
安裝虛擬機器時,選擇高階-網路卡-br33,即可。
切換到root使用者: su –l
安裝kvm模組 modprobe kvm && modprobe kvm_intel
檢視模組安裝; lsmod | grep kvm
新建虛擬機器的步驟:
1. 在伺服器上鍵入命令:(因為要選擇映象格式qcow2來做快照,所以不能使用圖形介面預設的格式)
[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,根據需求自己可以定義,映象名稱是test.img。
2. 開啟圖形介面:
[root@PLASPACSHCN14 images]# virt-manager
Xlib: extension "RANDR" missing on display "localhost:10.0".
選擇new,來新建一個虛擬機器:
這裡輸入虛擬機器的名字,然後注意,一定要選擇“import existing disk image”,這樣才可以選擇剛才建立好的映象。
選擇“Forward”
這裡輸入剛才建立的映象的路徑即可。
選擇下一步。
一路下一步,等待設定完成之後,會發現,沒有選擇光碟機。
選擇Details選項
這裡選擇“Add Hardware”
下面需要修改光碟檔案的路徑,指向作業系統映象檔案即可。
然後Device type:這裡選擇"IDE cdrom"即可。如圖:
接下來,點選finish。重啟之後繼續安裝系統就OK啦!
kvm相關命令:
開啟虛擬機器:
virt-manager
4.1為客戶機新建一個硬碟映象
qemu-img create -f qcow2 vdisk.img 50G
4.2安裝客戶機作業系統:
光碟啟動:
qemu-system-x86_64-hda vdisk.img -cdrom /dev/cdrom -boot d -m 512
.iso檔案啟動:
qemu-system-x86_64-hda vdisk.img -cdrom /Centos6.0.iso(此處為iso檔案路徑) -bootd -m512
4.3啟動作業系統:
qemu-system-x86_64–had vdisk.img–net nic,macaddr=自定義實體地址–net tap – m 512
啟動客戶機後,可以如一般作業系統來使用,如果要聯網配下客戶機的ip和閘道器即可上網
過程中碰到的問題如:Centos6.2 下KVM 虛擬機器 花屏當機問題, VNC錯誤等參見部落格的其他文章,如有其他問題歡迎留言共同探討, 另外以上命令可寫成指令碼簡化安裝。