2012年5月30日 星期三

[Ubuntu]How to configure network in bridge mode on Ubuntu 10.04 / 12.04

這個程序在 Ubuntu 10.04 及 12.04 都可以用



1.安裝橋接工具套件『bridge-utils』及『 uml-utilities』
 
$ sudo apt-get install bridge-utils uml-utilities



2.新增橋接器『br0』

    橋接器的名稱並沒有特別的規定,比較常看到的是『br0』或『bri0』。

   新增橋接器的語法如下,

        brctl  sddbr   <橋接器名稱>

$ sudo brctl addbr br0


 
3.將eth0接到橋接器『br0』

    概念上就跟使用實體橋接器是一樣的,這個動作可以當成是拿一條網路線連接主機的網路卡與橋接器。

    橋接網路卡的語法如下,

        brctl  sddif    <橋接器名稱>  <實體網卡名稱>

$ sudo brctl addif br0 eth0



4.檢視橋接器

    設定完畢看一下設定結果。

     檢視的語法如下,

        brctl  show

$ sudo brctl show

bridge name          bridge id           STP enabled         interfaces   
br0               8000.c89cdc26033b no                    eth0     
virbr0 8000.000000000000 yes







 5.修改『 /etc/network/interfaces』設定檔

    設定完橋接器之後接著還要修改網路介面設定檔,修改內容如下,

#將eth0的網路組態設定註解掉
# The primary network interface
#auto eth0
#iface eth0 inet dhcp


#新增橋接器網路組態設定
auto br0
iface br0 inet static
#將eth0接到橋接器 br0                                                          
bridge_ports eth0
address X.X.X.X #這是橋接器的IP
netmask A.B.C.D
gateway Y.Y.Y.Y 
















6.啟動 IP Forwarding

    找到『/etc/sysctl.conf』設定檔中的『#net.ipv4.ip_forward=1』 這一行,將前面的註解符號拿掉。

# Uncomment the next line to enable packet forwarding for IPv4 
#net.ipv4.ip_forward=1 
net.ipv4.ip_forward=1  #<--將這一行的註解拿掉,啟動IP Forwarding 』 





7.重開機    

$ sudo reboot                                          



8.收工



[Ubuntu]How To Install KVM on Ubuntu 10.04 /12.04

   本安裝程序適用 Ubuntu 10.04 以後的版本


1. 前置作業
 
    安裝KVM前我們需要作一些檢查以確認主機的環境是否符合需求。   
    
    a. 確認 主機BIOS是否支援虛擬化技術(Virtualization Technology)

        一開始需要先確認BIOS是否支援虛擬化技術,同時已開啟這項支援。
 
        進入BIOS設定畫面之後找一下相關設定,依不同的主機品牌這項設定可能稱為『Virtualization Support』 或『Virtualization Technology』,請確定有此項設定同時已啟動『Enable』。

        Reference:
                http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Virtualization/sect-Virtualization-Troubleshooting-Enabling_Intel_VT_and_AMD_V_virtualization_hardware_extensions_in_BIOS.html      


  b. 確認CPU是否支援虛擬化技術

        除了BISO之外,CPU也需要支援虛擬化技術。

        檢視一下『 /proc/cpuinfo』中的CPU Flag,若輸出大於等於『1』,即表示你所使用的CPU支援虛擬化技術。

$ egrep -c '(vmx|svm)' /proc/cpuinfo                                
4                       




       Note:
            (1).  vmx:Virtual Machine Extensions ( INTEL)。
            (2).  svm:Secure Virtual Machine(AMD)。
            (3). 若為多核心CPU,每一核心會有一個vmx或svm Flag。

      Reference: 
                http://zh.wikipedia.org/wiki/多核心 
                http://en.wikipedia.org/wiki/Multi-core_processo   

    c. 確認CPU是否為64 bits

        你的實體CPU得是64 bits KVM才有辦法模擬出64 bits的vCPU(Virtual CPU)。

        同樣是檢視『 /proc/cpuinfo』中的CPU Flag,若輸出大於等於『1』,即表示你所使用的CPU是64 bits。
 
$ egrep -c 'lm' /proc/cpuinfo                                
4                       




        若沒有模擬64 bits vCPU的需求,可以略過這項檢查。

        Note:
           (1). lm:Long Mode (64bit) support。
           (2).若為多核心CPU,每一核心會有一個 lm Flag。

         Referenve: 
                http://www.unixtutorial.org/2009/05/how-to-confirm-if-your-cpu-is-32bit-or-64bit/

    d.確認所安裝的OS是否為64 bits

        要讓KVM模擬 64 bits 的環境,所使用的OS必須是 64 bits。

$ uname -m                                                                       
x86_64




        若輸出不是『x86_64』即表示OS不是64-bits。

        若沒有模擬64 bits 環境的需求,可以略過這項檢查。

    e. 使用『kvm-ok』命令確認系統環境是否可符合執行 hardware accelerated KVM virtual machine 的需求

        當然也可以直接執行『kvm-ok』確認系統環境是否可符合執行 hardware accelerated KVM virtual machine 的需求。

$ kvm-ok                                                                  



         『kvm-ok』會確認下列項目,

            (1). 從『/proc/cpuinfo』中確認是否有 『vmx』或『svm』Flag。
            (2). 從 dmesg  中確認BIOS的虛擬化技術支援是否已開啟。
            (3). 『/dev/kvm』裝置檔是否存在。


        若上述三項檢查均符合KVM的需求會有如下輸出,

INFO: Your CPU supports KVM extensions                                                             
INFO: /dev/kvm exists
KVM acceleration can be used






2.安裝KVM

    完成前置作業後開始進行安裝程序。

    a. 安裝 KVM及其相依套件

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils


    
b.確認操作KVM的帳號是『libvirtd』及『 kvm』群組的成員
        
    我是用『max』這個帳號登入系統操作KVM,所以要確認『max』是否為『libvirtd』及『 kvm』的群組成員。

$ groups max
max : max adm dialout cdrom plugdev lpadmin admin sambashare libvirtd kvm



           
   
        如果發現操作帳號不是libvirtd』或『 kvm』的群組成員,就使用下操作程序將該帳號加入『libvirtd』或『 kvm』群組。

    (1). 以該帳號登入系統或切換使用者身份為該帳號
 
    (2).將該帳號加入『libvirtd』及『 kvm』群組
 

$ sudo adduser `id -un` kvm                                                   
$ sudo adduser `id -un` libvirtd


           


    c.登出後再重新登入系統


    d.確認安裝是否完成


$ virsh -c qemu:///system list                                                        
 Id Name                           State
----------------------------------    

           




        virsh 是 KVM 的管裡工具,如果可以使用這個命令且看到上面的輸出,表示安裝已順利完成。

3. 安裝GUI 管理工具

    你可以使用KVM的命令列管理工具來操作KVM,不過由於參數跟選項眾多,在操作上需要相當的注意,建議可寫成 Script以減輕管理的負擔。

    不過現在有相當多的KVM GUI 管理工具可以選擇 (http://www.linux-kvm.org/page/Management_Tools),其中『Virt-manager』在操作上頗為便利且多數的細項設定可透過『Virt-manager』完成,同時亦可管理遠端的KVM Server,若無特殊的嗜好建議使用『Virt-manager』來進行KVM系統的管理。

     Ubuntu 10.04 / 12.04的套件庫有收錄該『Virt-manager』,可以使用下列命令安裝,



$ sudo apt-get install virt-manager                       

           



若你的VM需要像實體機器一樣擁有實體 IP 就需要先將 KVM Host上的網路卡設為橋接模式,Ubuntu 10.04 / 12.04 的設定可以參考:http://www.mpsstudio.org/2011/07/ubuntuhow-to-configure-network-in.html