KVM 的安裝過程(圖文)

轉至 http://gavinshaw.blog.51cto.com/385947/177624

一、Rehat 下kvm安裝過程

虛擬化技術可以擴大硬件的容量,簡化軟件的重新配置過程。CPU的虛擬化技術可以單CPU模擬多CPU並行,允許一個平臺同時運行多個操作系統,並且應用程序都可以在相互獨立的空間內運行而互不影響,從而顯著提高計算機的工作效率。

   虛擬化按照虛擬的方式可以分爲軟件虛擬,如vmware,他是直接提取awardBIOS的程序(當然是經過授權的)。另外是基於硬件的,cpu虛擬化。CPU的虛擬化,又可以分爲全虛擬化,和半虛擬化。AMD目前多已支持全虛擬化,而intel只有部分支持虛擬化。當然小機不在此次討論之列。
  爲我們可以通過以下命令來查看CPU是否支持全虛擬化!
[root@jadeshow ~]# egrep '(vmx|svm)' /proc/cpuinfo
flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow
flags        : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow
下面進入本次討論的重點,使用KVM來啓動虛擬機。
KVM 實際上還是一種相對來說比較新的技術。目前存在各具功能的開源技術,例如Xen、Bochs、UML、Linux-VServer 和 coLinux,但是 KVM 目前正在被大量使用。另外,KVM不再僅僅是一個全虛擬化解決方案,而將成爲更大的解決方案的一部分。
好下面我們來進行實際的操作。
首先查詢以下包qemu-kvm virt-manager virt-viewer python-virtinst
是否安裝。
rpm -q qemu-kvm virt-manager virt-viewer python-virtinst




然後依次執行以下命令:
 yum install qemu-kvm virt-manager virt-viewer python-virtinst
yum install qemu-kvm virt-manager virt-viewer 
python-virtinst
yum groupinstall 'Virtualization'



建立一個虛擬機:
這時候就可以通過X界面來建立一個虛擬機咯。
應用程序--->系統工具----->虛擬器管理系統

這裏選擇使用什麼方式啓動,本地光盤(鏡像)啓動,網絡安裝,或者網絡啓動.我這裏選擇的光盤鏡像啓動.

之後就是非常簡單的一步一步點下去了,然後就能進入系統安裝階段了.這裏就不贅述了.
成功的關鍵是配置網絡及路由(這個在網上流傳的版本中沒有提到)
請生成一個文件(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

將這個文件保存在你的HOME目錄下,或者其它的目錄也行。
修改你的/etc/network/interfaces文件如下:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
    bridge_ports eth0 //注意這個eth0,這是你的計算機的實際網卡,請根據你的網絡修改,也可能跟我的這個一樣。
    address 192.168.1.242 //根據你的需要設置從這裏到下面的參數,這個網絡跟你的實現網絡在一個子網內,不然無法橋接
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-nameserver 192.168.1.1 219.141.136.10
    dns-search Office

此時,重新啓動計算機即可。
你可能注意到, 這個文件裏可能有關於eth0的配置,請刪除它即可,也就是說,不能對eth0進行任何配置,這個接口在重新啓動後,應該是沒有配置IP的,否則不能工作。
重新啓動完成後,請比照一下你的接口配置是否跟我的一樣:
#ifconfig
br0       Link encap:以太網  硬件地址 00:21:5e:4e:33:e2  
          inet 地址:192.168.1.242  廣播:192.168.1.255  掩碼:255.255.255.0
          inet6 地址: fe80::221:5eff:fe4e:33e2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  躍點數:1
          接收數據包:48324758 錯誤:0 丟棄:0 過載:0 幀數:0
          發送數據包:25261650 錯誤:0 丟棄:0 過載:0 載波:0
          碰撞:0 發送隊列長度:0
          接收字節:63199826111 (63.1 GB)  發送字節:5380518900 (5.3 GB)
eth0      Link encap:以太網  硬件地址 00:21:5e:4e:33:e2  
          inet6 地址: fe80::221:5eff:fe4e:33e2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  躍點數:1
          接收數據包:48903854 錯誤:0 丟棄:0 過載:0 幀數:0
          發送數據包:28125512 錯誤:0 丟棄:0 過載:0 載波:0
          碰撞:0 發送隊列長度:1000
          接收字節:64152739997 (64.1 GB)  發送字節:6185466883 (6.1 GB)
          中斷:16

請注意,只有br0有地址,而eth0是沒有地址的,再比照一下你的路由表:
#route
內核 IP 路由表
目標            網關            子網掩碼        標誌  躍點   引用  使用 接口
localnet        *               255.255.255.0   U     0      0        0 br0
default         bogon           0.0.0.0         UG    100    0        0 br0

請注意,如果你的路由表與我的不一樣,例如出現四行,即又加上了
localnet * ...................    eth0
default bogon ..................eth0
那麼,你八成是不能成功橋接的,出現這樣的問題應該是由於你的ETH0網絡被配置了IP,處理的辦法就是想辦法去掉eth0的IP,可以使用這個方法:
#ifconfig eth0 0.0.0.0
比較一下,你的橋接網絡接口:
#brctl show
bridge name    bridge id        STP enabled    interfaces
br0        8000.00215e4e33e2    no        eth0
                            tap0
                            tap1
                            tap2

應該有這行存在(可能還會出現其它的行,例如pan0),後面的tapX是不同的虛擬機的接口,這裏可以看出,我橋接了三個虛擬接口到一個直接的接口。
如果你的IP地址配置與路由表跟我的一樣,那麼,應該是可以橋接成功的。
接下來就是啓動你的虛擬機,啓動前需要創建虛擬機的磁盤(即下面的u_ubuntu.img,可以參照網上的方法,這裏就不重複了),啓動虛擬機的方法:
 kvm -hda u_ubuntu.img -boot c -netnic,model=virtio,macaddr=DE:AD:AF:22:33:22 -net tap,script=qemu-ifup -m1024 -smp 2 -clock rtc -localtime

當然,有很的參數可用,我就不介紹了(其實我也不是很懂,嘿嘿),關鍵的問題就是macaddr和script兩項,如果你有多個虛擬機,那麼一樣要配置不同的macaddr,script一定要指向你剛纔保存的那個文件,可以使用絕對路徑指明。
啓動後,你應該可以正常安裝操作系統了,安裝完成後,如果虛擬機操作系統網絡配置成DHCP,那麼應該可以獲取一個192.168.1.0網絡內的地址,如果你不能獲取地址,那麼說明配置不成功。
在虛擬機工作的情況下,在宿主計算機上運行ifconfig,應該可以看到一個自動增加的接口tapX(其中X從0開始)。
小結一下:
1)eth0(宿主計算機連接到網絡的真實網絡接口)不能有IP地址!

2)路由表一定要正確,可以去找一找關於路由方面的介紹,瞭解一下這個路由信息的意思。




二、Ubuntu12.04 安裝過程

2. 安裝準備
     首先檢查CPU是否支持安裝KVM:英特爾VT或AMD-V處理器才支持安裝虛擬機,可用命令查看:
     $ egrep -o '(vmx|svm)' /proc/cpuinfo
     輸出下面的信息說明該CPU支持安裝KVM:
     vmx
     vmx
3. 安裝KVM
    (1) 安裝軟件包
    sudo apt-get install qemu-kvm libvirt-bin virt-manager bridge-utils
    其中:virt-manager爲GUI管理窗口,bridge-utils:用於網絡橋接。
    (2) 安裝測試  www.2cto.com  
    執行下面的命令看KVM是否安裝成功:
    kvm -ok
    輸出信息:
    INFO: /dev/kvm exists
 KVM acceleration can be used
    如果提示信息爲:
    INFO: KVM (vmx) is disabled by your BIOS(KVM [vmx]被你的BIOS禁用)
    HINT: Enter your BIOS setup and enable Virtualization Technology (VT)
    則需要進入的BIOS設置界面,啓用虛擬化技術[VT],設置步驟爲:
 
    進入BIOS後,選擇ADVANCED,然後至 PROCESSOR CONFIGURATION進去找到,
    INTEL (R) VIRTUALIZATION  TECHNOLOGY ,設置成ENABLE,保存退出 。
    驗證KVM內核是否加載成功:
    lsmod | grep kvm
    輸出爲:
    kvm_intel     47162   0
    kvm           317577  1  kvm_intel
    若KVM內核沒加載執行下面命令加載:    
   $ sudo modprobe kvm
   $sudo modprobe kvm-intel ( or kvm-amd )
 
    (3) 證實KVM正常運行
    virsh -c qemu:///system list
    將輸出:
    Id Name State
    如果提示你沒權限操作,則需要將當前操作賬戶添加進libvirtd組,命令爲:
    sudo usermod -G libvirtd -a fdc
    (4) 啓動KVMGUI
    virt-manager
    (5) 確認libvirtld後臺服務是否啓動
    sudo service libvirt-bin status
4. KVM中安裝操作系統  www.2cto.com  
    選中localhost(QEMU)右鍵->新建:
    按屏幕提示逐步完成操作。想在你的系統上找到ISO映像文件,點擊Browse(瀏覽)按鈕,然後查看Browse
    Local(瀏覽本地)按鈕的“Locate ISO media volume”(定位IOS介質卷)屏幕的左下角。點擊該處,即可
    打開文 件選擇器。安裝過程中務必要勾選“Allocate entire disk now”(立即分配整個磁盤)。這並不意味着,
    它會接管你的整個磁盤,而是會立即預留你爲操作系統分配的所有空間。如果你沒有選擇這個,那麼KVM就會根
    據需要分配空間,上限是最大分配值。
5. KVM使用
     kvm --help
     詳細查看某個命令(img)的信息:
     kvm-img --help

發佈了5 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章