CentOS下KVM試用
最近整理公司的幾台服務器,由於機器少應用多,就總是覺得服務器資源緊張,所以痛下決心使用虛擬機 。考察了一番決定使用KVM,因為機器配置不是很高,使用KVM性能會比較好。
基礎系統選用CentOS5.4 ,下面列出具體的安裝配置過程
安裝CentOS操作系統
下載CentOS5.4,安裝是使用Server模式,不 安裝任何桌面,畢竟圖形桌面太占資源,在選擇軟件時啟用下面的幾項:
開發工具
開發庫
虛擬化--KVM
虛擬化--KVM 起初我沒有啟用KVM,因為我想自己編譯安裝KVM,結果在裝載內核 kvm-amd模塊時總是不成功!
安裝完成後首先啟用內核的kvm-amd模塊,如果你的機器是intel的就改成 kvm-intel,命令如下
[root@localhost ~]# modprobe kvm-amd
如果沒有提示任何錯誤就成功 了,可以使用lsmod | grep kvm查看是否裝載成功,命令如下
[root@localhost ~]# lsmod | grep kvm kvm_amd 68648 1 kvm 223264 2 ksm,kvm_amd
看到如上類似的輸出就表示啟用kvm模塊成功!
編譯安裝KVM
CentOS的yum源裡提供的kvm版本太低,所以我決定自己編譯安裝。首先下載kvm源碼包, 然後解壓,命令如下
[root@localhost ~]# tar zxvf qemu-kvm-0.12.3.tar.gz
接下來開始編 譯、安裝,進入解壓後的目錄,命令如下:
[root@localhost /]# ./configure --prefix=/usr
[root@localhost /]# make
[root@localhost /]# make install
編譯很快,基本上幾秒就完成了 ,如果沒有出現什麼錯誤,那麼恭喜你!KVM已經成功安裝了!
KVM版本 目前官方的最高版本是0.13.0 ,可是我使用發現無法通過vns連接虛擬機,所以只好放棄,使用0.12.3版本就一切正常。
搞定虛擬機 網橋
虛擬機最重要的是保證網絡能正常訪問,否則就沒有意義了。啟用kvm網橋要安裝兩個軟件 bridge-utils和tunctl。 bridge-utils可以使用yum安裝,命令如下:
yum install bridge- utils
tunctl在源裡沒有找到,需要下載rpm包手工安裝,命令如下:
[root@localhost /]# wget -c 'ftp://194.199.20.114/linux/EPEL/5Server/x86_64/tunctl-1.5-2.el5.x86_64.rpm'
[root@localhost /]# rpm -ivh tunctl-1.5-2.el5.x86_64.rpm
接下來編輯網橋配置文件,新建一 個名字為vmbridge.sh的shell文件,使用vim編輯,命令如下
[root@localhost /]# vim vmbridge.sh
然後在新建的文件中加入如下內容
#!/bin/bash modprobe tun #加載tun模塊 tunctl -t tap0 -u root #先是新建一個名為tap0的虛擬網卡,所有者為當前用戶 tunctl -t tap1 -u root tunctl -t tap2 -u root tunctl -t tap3 -u root tunctl -t tap4 -u root tunctl -t tap5 -u root tunctl -t tap6 -u root brctl addbr br0 #新建一個名為br0的網橋 ifconfig eth0 0.0.0.0 promisc #eth0進入promiscuous模式,不過執行此步之前最好記錄原來eth0的IP,避 免後面出現IP沖突 brctl addif br0 eth0 #將eth0加入br0. ifconfig br0 up #活br0 dhclient br0 #獲取br0的IP brctl addif br0 tap0 #將tap0加入br0 brctl addif br0 tap1 brctl addif br0 tap2 brctl addif br0 tap3 brctl addif br0 tap4 brctl addif br0 tap5 brctl addif br0 tap6 ifconfig tap0 up #激活tap0 ifconfig tap1 up ifconfig tap2 up ifconfig tap3 up ifconfig tap4 up ifconfig tap5 up ifconfig tap6 up chmod a+rw /dev/net/tun
以上的9個步驟就設置了一個虛擬網卡tap0,上面的例子中我一共創建了7 個虛擬網卡,如果想設置更多的網卡參考上次的內容自行添加即可。
接下來給vmbridge.sh賦予可執行 權限,命令如下:
[root@localhost /]# chmod a+x vmbridge.sh
然後把它加入系統啟動裡, 這樣每次啟動系統就自動創建了7個虛擬網卡。命令如下:
[root@localhost /]# echo '/kvm/vmbridge.sh' >> /etc/rc.local
OK! 虛擬網卡已經配置完畢,你可以手動執行 下vmbridge.sh,或者馬上重啟下系統,然後使用ifconfig命令查看一下是否出現了新建的虛擬網卡。
安裝 VNC服務器
這步簡單,兩條命令搞定,命令如下:
[root@localhost /]# yum install vnc- server
[root@localhost /]# service vncserver start
現在可以查看一下VNC是否已經運行,執 行下面的命令查看
[root@localhost /]# service vncserver status Xvnc 已停
雖然顯示Xvnc 已停,但其實是運行的,可以正差訪問
創建KVM虛擬機
所有的前期配置都OK了,下面可以創建KVM虛 擬機了。 首先創建一個大小為40G的鏡像文件用來安裝WinXP虛擬機。命令如下
[root@localhost /]# qemu-img create -f qcow2 /kvm/vmimg/kvm-xp.img 40G
現在開始安裝WinXP虛擬機,使用如下命令:
[root@localhost /]# qemu-system-x86_64 -m 1024 -drive file=/kvm/vmimg/kvm- xp.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 - vnc 192.168.1.1:1 &
解釋一下參數都是什麼意思
root@localhost /]# qemu-system- x86_64 -m 1024 -drive file=/kvm/vmimg/kvm-xp.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 -vnc 192.168.1.1:1
-m 1024 表示安裝虛擬機時 使用1024MB內存
file=/kvm/vmimg/kvm-xp.img 指向剛剛創建的虛擬機鏡像文件
ifname=tap0 指定一個虛擬網卡
-cdrom /home/lm/iso/winxp.iso 指定WinXP的iso安裝文件
-smp 2 指定使 用CPU的核數
-soundhw es1370 啟用聲卡
-vnc 192.168.1.1:1 指定VNC訪問IP和端口
然 後用VNC客戶端連接192.168.1.1:1,就看到安裝界面了。安裝就不說,和以往安裝XP一樣的。 接下來可以訪 問安裝好的虛擬機了。使用如下命令:
[root@localhost /]# qemu-system-x86_64 -m 1024 -drive file=/kvm/vmimg/kvm-xp.img -localtime -net nic,vlan=0,macaddr=00:00:00:00:20:02 -net tap,vlan=0,ifname=tap0,script=no -boot c -smp 2 -clock rtc -soundhw es1370 -vnc 192.168.1.1:1 &
命令格式基本和安裝差不多,需要說明的是macaddr硬件地址要自己指定一個不沖突的,虛擬機 可以用DHCP自動獲取一個IP地址。最後用VNC客戶端連接 192.168.1.1:1 就可看到XP啟動界面了。如果你安裝 的是Linux虛擬機,可以直接用SSH訪問,比較方便。
至此整個安裝配置過程完畢,最後祝各位都能成 功安裝KVM虛擬機!