KVM安裝啟動虛擬機


KVM定制OpenStack雲主機

  如何定制化OpenStack雲主機?從去年10月份剛開始接觸OpenStack,到現在也有一年了。雖說目前只是停留在用它,對它的一些組件簡單的了解,但談到制作出一個OpenStack雲主機的鏡像還真不會。今年年初因為一個比賽需要給雲主機安裝tomcat、ssh等服務,一頭霧水,網上查資料。也有正確的資料,但對於我來說似乎也不管用。記得當時是用libvirt的virsh來實現的。而且雲主機用的是網上下載的ubuntu14.04的server版本,而且又看到網上說,OpenStack只能支持server版本的,我把只支持server當理論來記在腦海里,現在想想真是傻的不行。

  前面嘮嗑了下,下面我會一步步來講解如何利用KVM來創建虛擬機(即本文提到的雲主機)。本文使用的環境是ubuntu14.04。一些KVM的概念這里就不闡述了,網上資料很多很全。

一、ubuntu14.04中安裝tun模塊。參考上篇博客,這里不再展開。博客地址

http://www.cnblogs.com/grglym/p/7891253.html

為什么用安裝tun模塊呢?既然需要對虛擬機進行定制化,即需要安裝一些個性化服務,文章開頭中有提及的,如tomcat、ssh等等。安裝這些就需要網絡進行安裝,這樣更加方便。所以呢,虛擬機需要能夠上網呀!在KVM的網絡實現中是通過qemu來實現。qemu網絡相關的教程很多,可以參考如下鏈接:

http://www.jianshu.com/p/110b60c14a8b

http://blog.csdn.net/ztsinghua/article/details/49741795

這兩個鏈接把qemu的網絡細節說的很清楚。本文選擇就是qemu的橋接網絡方式來實現KVM虛擬機連接Internet。

二、開啟CPU虛擬化服務。(vmware和virtualbox各自的虛擬化服務如何開啟可網上查看)

modprobe kvm
cat /proc/cpuinfo |grep vmx

在宿主機中輸入如上指令,在flags一欄中查看是否有“vmx”或者“svm”字眼,如圖1所示:

圖 1

說明CPU是Inter的,如果是AMD的CPU,應該是“svm”。

我所遇到的錯誤:

modprobe: ERROR: could not insert 'kvm_intel': Operation not supported

 通過在宿主機輸入如下指令

dmesg | grep kvm

 輸出為:

kvm: no hardware support

解決辦法:看下是否開啟CPU虛擬化,如果你是用VMware或者virtualbox,它們有各自的CPU虛擬化選項,勾上即可。如果是在物理機上,則需要進入bios了。

 三、安裝kvm-qemu工具

kvm-qemu這是個什么鬼呢?我們應該知道KVM是在linux內核內,KVM自身功能也非常。。。。不誇它了,反正就是很有用的虛擬化工具。但它也有痛點,即實現不了網卡虛擬化等一些必要功能,所以需要借助qemu來實現。kvm-qemu是kvm在用戶態下的一個管理工具吧!接下來源碼安裝kvm-qemu。

1、源碼下載

http://sourceforge.net/projects/kvm/files/

下載個最新版本qemu-kvm-1.2.0.tar.gz

tar -zxvf qemu-kvm-1.2.0.tar.gz
cd qemu-kvm-1.2.0

2、對qemu-kvm打補丁。

因為本文用的環境時ubuntu14.04,所以需要對qemu-kvm-1.2.0中的configure進行簡單修改,不然會報錯。如圖2所示,添加黑框中的代碼,分別為:

timer_create(CLOCK_REALTIME, NULL, NULL);
$pthread_lib
libs_qga="-lrt $libs_qga"

圖 2

需要修改的代碼在2681行左右,可通過vim的命令模式下輸入/<time.h>,來快速定位需要修改的代碼位置。

 3、qemu-kvm編譯及安裝

./configure --prefix=/usr/local/kvm (注,如果報錯,需要查看第2步中代碼是否修改正確)
make
make install

四、加載KVM內核模塊

modprobe kvm-intel
lsmod | grep kvm

圖 3

如果modprobe出錯,可查看二的開啟CPU虛擬化服務。

五、創建br0網橋

1、安裝libvirt

apt-get install libvirt-bin

2、創建br0網橋

virsh iface-bridge eth0 br0
brctl show

圖 4

圖 5

六、KVM創建虛擬機

經過以上五大步驟,終於把准備工作做好了,接下來的才是重頭菜。

1、KVM創建虛擬磁盤,磁盤格式為qcow2。kvm的一些指令可以從網上查到,這里不再解釋。

/usr/local/kvm/bin/qemu-img create -f qcow2 openstack.img 10G

2、KVM虛擬機開啟和關閉的網絡腳本配置。

開啟腳本 qemu-ifup.sh:

#!/bin/bash
switch=br0
if [ -n "$1" ]; then
#create a tap interface
#tunctl -u $(whoami) -t $1
#start up the tap interface
ip link set $1 up
sleep 1
#add tap interface to the bridge
brctl addif ${switch} $1
exit 0
else
echo "error: no interface specified"
exit 1
fi

關閉腳本 qemu-ifdown.sh :

#!/bin/bash
switch=br0
if [ -n "$1" ]; then
#delete the specified interface
tunctl -d $1
#rlease tap interface from bridge
brctl delif $(switch) $1
#shutdown the tap interface
ip link set $1 down
exit 0
else
echo "error: no interface specified"
exit 1
fi

腳本授權:

chmod +x qemu-ifup.sh
chmod +x qemu-ifdown.sh

3、KVM啟動虛擬機安裝:

/usr/local/kvm/bin/qemu-system-x86_64 -hda openstack.img -cdrom ubuntu-14.04.5-desktop-amd64.iso -boot d -m 1024 -net nic -net tap,ifname=tap1,script=qemu-ifup.sh,downscript=no

4、安裝完成后,下次如需重新進入系統,可用如下命令:

/usr/local/kvm/bin/qemu-system-x86_64 -hda openstack.img -boot d -m 1024 -net nic -net tap,ifname=tap1,script=qemu-ifup.sh,downscript=no

5、KVM虛擬機運行結果展示如圖6所示:

圖 6

 6、KVM虛擬機訪問Internet效果展示如圖7所示:

圖 7

七、總結

利用KVM的整個過程還是有些麻煩,以后會嘗試用KVM的管理工具libvirt來實現更加便捷的定制化雲主機。網上資料會有很多,可能不同的環境需要參考不同的資料,這個過程需要踩過很多個坑,這里記錄下在本文環境中可行的處理步驟。

八、參考鏈接

http://blog.csdn.net/ztsinghua/article/details/49741795
http://royluo.org/2014/06/15/kvm-install-1/
http://blog.csdn.net/zhaihaifei/article/details/23168621


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM