centos5.6下kvm的安裝/橋接設置/虛擬機創建及運行

原創內容,如有轉載必須註明出處,否則追究。

 

        首先提一個概念"橋接",網上各種說法,但自己的理解是:以一個物理網卡爲基本硬件,創建一個虛擬的路由器(路由器的概念不用說了吧)。當虛擬機需分配IP地址時,我們創建一個臨時的虛擬網卡,並將這個網卡連接到虛擬路由器上,虛擬網卡通過虛擬路由器從真實的DHCP端得到IP地址。

 

宿主主機系統:
centos5.6-64bit,文本模式,有openssh-server
ip:192.168.135.125


1.安裝KVM
# yum install -y kvm kmod-kvm kvm-qemu-img libvirt python-virtinst virt-manager virt-viewer bridge-utils

 

安裝完成後重啓主機:
# reboot

 

重啓完成後,檢查kvm模塊是否加載:
# lsmod |grep kvm
kvm_intel              50380  6
kvm                   305081  1 kvm_inte


2.配置橋接
安裝tunctl:
# yum install -y tunctl

 

添加一個橋設備br0,並添加下面的內容
# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=dhcp   //可根據實際情況設置靜態IP也可


修改物理網卡em1的設置,本例中的br0是橋接在em1上
# vim /etc/sysconfig/network-scripts/ifcfg-em1
DEVICE="em1"
BOOTPROTO="dhcp"
HWADDR="00:22:19:63:A7:F6"
IPV6INIT="no"
NM_CONTROLLED="yes"
ONBOOT="yes"
BRIDGE=br0

 

做完以上內容,重啓一下網絡服務
# service network restart

 

以下這段內容非常重要,橋接成功與否均是源於這一步!
在/etc目錄下創建qemu-ifup文件:
# vim /etc/qemu-ifup

 

添加如下內容:
#!/bin/sh
set -x
switch=br0
if [ -n "$1" ];then
        /usr/bin/sudo /usr/sbin/tunctl -u `whoami` -t $1
        /usr/bin/sudo /sbin/ip link set $1 up
        sleep 0.5s
        /usr/bin/sudo /usr/sbin/brctl addif $switch $1
        exit 0
else
        echo "Error: no interface specified"
        exit 1
fi

 

爲了簡單直接給予任何人對該文件的所有權限,否則虛擬機將還是無法分配到ip地址
#chmod 777 /etc/qemu-ifup

 

        解釋下該文件的作用,該文件的主要作用就是在啓動虛擬機時,使用tunctl創建一個虛擬網絡設備(tapN,N=0、1、2...可理解爲一個網卡或者是路由器上的一個插口),並將該設備使用橋接控制工具brctl添加到switch(橋br0)上。可理解爲在一個路由器上開了一個新的網線插口。這一步的操作是橋接成功的關鍵,網上的很多教程均沒有提到,本人多次嘗試失敗後來只好去看官網的文檔,最終才得以知道問題的真相。

 

3.配置轉發
執行以下命令:
#echo 1 > /proc/sys/net/ipv4/ip_forward


4.創建虛擬機鏡像
爲了使用方便本人先做一些鏈接,這樣就可以直接使用命令kvm、kvm-img:
# ln -s /usr/libexec/qemu-kvm /usr/bin/kvm
# ln -s /usr/bin/qemu-img /usr/bin/kvm-img

 

         在創建虛擬機鏡像之前,我們假設你已經將操作系統ios文件拷貝到相應的位置(隨意),本例的CentOS-5.6-x86_64-bin-DVD-1of2.iso是放在了/data/kvmtest路徑下。


創建文件:
# kvm-img create centos.img -f raw 6GB

 

創建虛擬機鏡像:
# kvm -m 512 -cdrom CentOS-5.6-x86_64-bin-DVD-1of2.iso -drive file=centos.img -boot d -net nic -net user -nographic -vnc :0

 

        以上操作均是在宿主主機192.168.135.125進行的,執行以上操作之後,我是在windows端通過圖形界面工具VNCViewer連接到測試服務器192.168.135.125:0,如果使用的是-vnc :1,那麼就應該是連接到192.168.135.125:1,以此類推。linux下也有vncviewer工具。安裝配置過程就是通過vncviewer進行操作的。


5.啓動虛擬機
# kvm -m 1024 -drive file=centos.img -net nic,macaddr=55-54-53-52-66-01 -net tap -vnc :0

 

        此處本人隨便填了一個mac地址。執行以上操作後,可以通過VNCViewer連接192.168.135.125:0可以看到該虛擬機實例的啓動過程。

 

        此文爲本人實踐的筆記,如有任何問題,歡迎交流!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章