CentOS 5.6下創(chuàng)建KVM虛擬機(jī)
原創(chuàng)【51CTO專家投稿】RedHat 的下一代旗艦產(chǎn)品RedHat Enterprise Linux 6只包含 KVM,這一點(diǎn) RedHat 官方已經(jīng)在很久以前、在不同場合都確認(rèn)過。KVM 發(fā)展很快,穩(wěn)定性有了很大提高,隨著 RHEL 6 的正式到來,KVM 應(yīng)用到生產(chǎn)環(huán)境的日子應(yīng)該不遠(yuǎn)了。目前 KVM 應(yīng)用比較少,一個(gè)是根據(jù)一些測試和學(xué)術(shù)論文顯示,KVM在網(wǎng)絡(luò)性能、擴(kuò)展和穩(wěn)定性方面和Xen還有差距,另一個(gè)原因就是對硬件要求高(CPU 需要 Intel VT 或 AMD SVM 的支持)。不過現(xiàn)在硬件發(fā)展速度很快,以后應(yīng)該不會有這個(gè)問題。
我們可以用KVM做什么
由于 KVM 支持全虛擬,所以可以在上面安裝各類操作系統(tǒng),再加上它跟FreeBSD的jail一樣,屬于系統(tǒng)自帶的,我們可以用其搭建屬于自己的開發(fā)展測試環(huán)境。
安裝前的準(zhǔn)備工作,我們先看看硬件配置情況,CPU和內(nèi)存:

圖 這個(gè)配置玩虛擬化足夠了
強(qiáng)烈建議以下操作在真實(shí)服務(wù)器上進(jìn)行,全虛擬化對CPU負(fù)載還是比較大的。如果學(xué)習(xí)的話可以拿臺式機(jī)代替。
以下步驟將在CentOS 5.6上搭建起你的KVM虛擬機(jī)。
首先要保證你的CPU支持虛擬化。執(zhí)行以下命令查看CPU的flag信息,里面包含svm的flag就說明支持虛擬化:
[root@localhost ~]# egrep '(vmx|svm)' --color=always /proc/cpuinfo flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
安裝KVM運(yùn)行所需要的軟件包:
yum install kvm kmod-kvm qemu kvm-qemu-img virt-viewer virt-manager ibvirt libvirt-python python-virtinst
或者用下面這句也行:
yum groupinstall KVM
另外,如果后面想用virt-manager圖形化安裝和管理虛擬機(jī)的話,CentOS 5.6需要作一些配置和改動。由于我在安裝前就選擇了gnome圖形化界面,所以我想用Xmanager 3.0圖形化管理此機(jī)器,過程如下:
一、添加XDMCP協(xié)議支持,讓服務(wù)器打開177端口
我們可以更改/etc/gdm/custom.conf文件,在
[xdmcp]項(xiàng)下添加
Enable=1
二、服務(wù)器自身關(guān)閉iptables及SElinux
三、保證服務(wù)器以圖形化界面啟動,即運(yùn)行在5模式下
這個(gè)我們可以能過更改/etc/inittab文件來實(shí)現(xiàn),參考Linux運(yùn)行級概述。
做完這些后重啟服務(wù)器即可,然后我們就可以通過Xmanager 3的X-browser來遠(yuǎn)程管理CentOS 5.6的桌面了。
相關(guān)閱讀:Xmanager 3.0企業(yè)版實(shí)用技巧集錦
當(dāng)然了,如果要用root登錄,對于GDM添加:
vi /etc/gdm/custom.conf [security] AllowRemoteRoot=true
#vim /etc/securetty 結(jié)尾增加
pts/0 pts/1 pts/2 pts/3 pts/4
以下是更改CentOS 5.6的認(rèn)證模塊
vim /etc/pam.d/login 注釋***行 #auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so vim /etc/pam.d/remote 注釋***行 #auth required pam_securetty.so
重新啟動服務(wù)器即可,可用lsof -i:177命令查看端口是否開放。
在服務(wù)器上增加一個(gè)br0網(wǎng)橋設(shè)備,方便與虛擬機(jī)直連,步驟如下:
一、首先修改網(wǎng)卡文件,vim /etc/sysconfig/network-scripts/ifcfg-eth0,作如下修改:
DEVICE=eth0 #BOOTPROTO=static #BROADCAST=192.168.1.255 HWADDR=00:E0:62:12:7B:65 #IPADDR=192.168.1.101 #NETMASK=255.255.255.0 #NETWORK=192.168.1.0 ONBOOT=yes BRIDGE=br0
二、增加網(wǎng)橋設(shè)備的文件,如vim /etc/sysconfig/network-scripts/ifcfg-br0,代碼如下:
DEVICE=br0 TYPE=Bridge BOOTPROTO=static BROADCAST=192.168.0.255 IPADDR=192.168.1.101 NETMASK=255.255.255.0 NETWORK=192.168.1.0 ONBOOT=yes
修改完畢后重啟網(wǎng)絡(luò)
service network restart
或者
/etc/init.d/network restart
查看一下網(wǎng)絡(luò)設(shè)置是否生效:
[root@localhost ~0m]# ifconfig
br0 Link encap:Ethernet HWaddr 00:E0:62:12:7B:65
inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:29 errors:0 dropped:0 overruns:0 frame:0
TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2034 (1.9 KiB) TX bytes:10052 (9.8 KiB)
eth0 Link encap:Ethernet HWaddr 00:E0:62:12:7B:65
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:494 errors:0 dropped:0 overruns:0 frame:0
TX packets:554 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:43921 (42.8 KiB) TX bytes:67020 (65.4 KiB)
Interrupt:50
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3208 (3.1 KiB) TX bytes:3208 (3.1 KiB)
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
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:26 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:4094 (3.9 KiB)
接下來的話,我們就可以直接在服務(wù)器上用圖形化命令Virt-manager來創(chuàng)建一個(gè)CentOS 5.6的虛擬機(jī)了。由于要用到物理機(jī)本身的光驅(qū),所以這里需要掛載下:
mount /dev/cdrom /mnt
記得將CentOS 5.6的DVD光盤放進(jìn)光驅(qū)里。
然后在終端下執(zhí)行命令virt-manager創(chuàng)建虛擬機(jī),由于操作與vmware server類似,都是基于圖形化的操作。過程比較簡單,我這里也不用文字詳細(xì)說明了,相關(guān)說明可以參考RHEL 6上搭建KVM虛擬機(jī)一文。virt-manager效果圖如下:

創(chuàng)建***臺虛擬機(jī)的圖如下:

我們成功創(chuàng)建完***個(gè)虛擬機(jī)后,我由于測試的需要,還需要創(chuàng)建三個(gè)虛擬機(jī),我們可以在終端下依次輸入命令,復(fù)制虛擬機(jī):
virt-clone --connect=qemu:///system -o centos1 -n centos2 -f /datata/kvm/centos2.img virt-clone --connect=qemu:///system -o centos1 -n centos3 -f /datata/kvm/centos3.img virt-clone --connect=qemu:///system -o centos1 -n centos4 -f /datata/kvm/centos4.img
-o表示舊的虛擬機(jī)名稱,-n表示新的虛擬機(jī)名稱,-f表示新的虛擬機(jī)路徑。
我們?nèi)窟\(yùn)行后,可以看下virt-manager的效果圖,如下:

系統(tǒng)穩(wěn)定運(yùn)行一段時(shí)間后,我們可以通過uptime命令觀測系統(tǒng)負(fù)載,它們不是特別大。
[root@kvm centos10m]# uptime 00:43:08 up 2:04, 1 user, load average: 0.92, 0.77, 0.81
這樣的話,我們就在這臺服務(wù)器上成功運(yùn)行了四臺64bit CentOS 5.6的機(jī)器,KVM環(huán)境搭建成功。
作者簡介:余洪春(博客),網(wǎng)名撫琴煮酒,英文名Andrew.Yu,武漢某外企高級Linux/Unix系統(tǒng)管理員、項(xiàng)目實(shí)施工程師,紅帽RHCE講師,擅長負(fù)載均衡高可用和中小型證券類和商務(wù)網(wǎng)站架構(gòu),目前關(guān)注網(wǎng)站架構(gòu)研究及網(wǎng)絡(luò)安全。
【編輯推薦】



















