<!> 這是一份草稿

OpenNebula 4.4

OpenNebula 是一個成熟及穩定的雲端管理軟件,它可從一個雲端節點延展至數千個實體節點。你可用它來建立私人、公用或混合式雲端。此指南會協助你在 CentOS 上著手建立一個 OpenNebula 雲端。

整個安裝過程中共有兩個獨立角色:前端點節。前端伺服器負責執行 OpenNebula 服務,而節點是用來運行虛擬機器。請注意你可以遵照此指引在一台主機上集前端及點節的角色於一身。然而我們建議在擁有虛擬延伸的主機上運行虛擬機器。若要測試你的主機是否支援虛擬延伸,請執行:

grep -E 'svm|vmx' /proc/cpuinfo

假如你看不見任何輸出,你的伺服器多數不支援/未啟用虛擬延伸。

OpenNebula 內的指令行工具及其它資源都統稱為 one 工具。

套件安排

OpenNebula 提供這些主要套件:

除此以外還有 opennebula-commonopennebula-ruby,但他們的用途是作為依賴性套件。opennebula-occi,一個管理雲端的表徵狀態轉移(RESTful)服務,已經包含在 opennebula-sunstone 套件內。

前端上的安裝

安裝軟件庫

<!> TODO: 軟件庫資料。

要確保該軟件庫已順利地安裝,你可執行:

# yum repolist

安裝所須套件

完整安裝後的 OpenNebula 至少包括 opennebula-server 及 opennebula-sunstone 套件:

# yum install opennebula-server opennebula-suntone

設定及啟動服務

你必須啟動兩個主程式:OpenNebula 的常駐程式 oned 及圖像介面 sunstone

基於安全性理由,Sunstone 預設只會在 loopback 介面上聆聽。要更改的話,你可編輯 /etc/one/sunstone-server.conf 並把 :host: 127.0.0.1 改為 :host: 0.0.0.0

現在我們可以啟動服務:

# service opennebula start
# service opennebula-sunstone start

設定 NFS

<!> 如果你以同一台伺服器扮演前端及工作節點的角色,你可略過這部份。

從前端匯出 /var/lib/one/ 至工作節點。要這樣做,把以下內容加進前端的 /etc/exports 檔內:

/var/lib/one/ *(rw,sync,no_subtree_check,root_squash)

更新 NFS 匯出的檔案:

# service rpcbind restart
# service nfs restart

設定 SSH 公鑰

OpenNebula 要求在無需密碼的情況下從任何一個節點(包括前端)SSH 至另一個節點。

以 oneadmin 的身份把以下內容加進 ~/.ssh/config 內,防止它提示你把金鑰加進 known_hosts 檔內:

# su - oneadmin
$ cat << EOT > ~/.ssh/config
Host *
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null
EOT
$ chmod 600 ~/.ssh/config

節點上的安裝

安裝軟件庫

<!> TODO: 軟件庫資料。

要確保該軟件庫已順利地安裝,你可執行:

# yum repolist

安裝所須套件

# yum install opennebula-node-kvm

啟動所須的服務:

# service messagebus start
# service libvirtd start

設定網絡

<!> 請先備份此部份所修改的每個檔案,然後才作出改動。

你須要把你的主介面,一般是 eth0,連接至一道橋。該道橋的名稱在所有節點上都必須是相同的。

要這樣的話,請把 /etc/sysconfig/network-scripts/ifcfg-eth0 變為:

DEVICE=eth0
BOOTPROTO=none
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
BRIDGE=br0

然後新增一個 /etc/sysconfig/network-scripts/ifcfg-br0 檔案。

如果你的 eth0 採用 DHCP,請使用這個範本:

DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=dhcp
NM_CONTROLLED=no

假若你採用固定 IP 位置,請使用以下範本:

DEVICE=br0
TYPE=Bridge
IPADDR=<YOUR_IPADDRESS>
NETMASK=<YOUR_NETMASK>
ONBOOT=yes
BOOTPROTO=static
NM_CONTROLLED=no

完成這些改動後,重新啟動網絡:

# service network restart

設定 NFS

<1> 如果你以同一台伺服器扮演前端及工作節點的角色,你可略過這部份。

掛載被匯出的儲存區。在你的 /etc/fstab 內加入以下內容:

192.168.1.1:/var/lib/one/  /var/lib/one/  nfs   soft,intr,rsize=8192,wsize=8192,noauto

<!> 以前端的 IP 取代 192.168.1.1

掛載 NFS 共用檔案:

# mount /var/lib/one/

基本操作

<!> 此部份中所有操作均能以 Sunstone 代替指令行來完成。請把你的瀏覽器指向:http://frontend:9869

oneadmin 用戶的預設密碼已收錄在 ~/.one/one_auth,它是在安裝時隨機產生出來的。

要操作 OpenNebula,你需要通過 oneadmin 帳戶來進行。我們會假設以下所有指令都是在該帳戶下執行的。請執行 su - oneadmin 來登入為 oneadmin

新增主機

要開始使用虛擬機器,你首先要在 OpenNebula 登記工作節點。

你要替每個節點執行這個指令。請以節點的主機名稱取代 localhost

$ onehost create localhost -i kvm -v kvm -n dummy

執行 onehost list 直至節點已被啟動。要是它失敗了,你大概是在 ssh 設定上出了錯。請檢查 /var/log/one/oned.log

新增虛擬資源

當一切能運作後,你必須建立一個網絡範本、一個映像範本、及一個虛擬機器範本。

建立網絡時,我們要先建立一個名為 mynetwork.one 的網絡範本檔,當中含有:

NAME = "private"
TYPE = FIXED

BRIDGE = br0

LEASES = [ IP=192.168.0.100 ]
LEASES = [ IP=192.168.0.101 ]
LEASES = [ IP=192.168.0.102 ]

<!> 請以主機網絡內的空置 IP 取代上述租約。租約的數量不限。

現在我們可以進一步在 OpenNebula 下建立資源:

$ onevnet create mynetwork.one

$ oneimage create --name "CentOS-6.4_x86_64" \
    --path "http://us.cloud.centos.org/i/one/c6-x86_64-20130910-1.qcow2.bz2" \
    --driver qcow2 \
    --datastore default

$ onetemplate create --name "CentOS-6.4" --cpu 1 --vcpu 1 --memory 512 \
    --arch x86_64 --disk "CentOS-6.4_x86_64" --nic "private" --vnc \
    --ssh

你必須等待至該映像成為可用為止。請執行 oneimage list 來監視它的狀況。

為求能隨時把 ssh 金鑰加進虛擬機器內,我們必須編輯用戶範本並把自己的 ssh 金鑰新增至其中:

$ EDITOR=vi oneuser update oneadmin

請在範本內加入如下的一行:

SSH_PUBLIC_KEY="ssh-dss AAAAB3NzaC1kc3MAAACBANBWTQmm4Gt..."

請以 cat ~/.ssh/id_dsa.pub 的輸出取代上述的值。

執行一台虛擬機器

要啟動一台虛擬機器,你必須把範本實例化:

$ onetemplate instantiate "CentOS-6.4" -n "My Scratch VM"

執行 onevm list 並察看虛擬機器由 PENDING 轉為 PROLOG 再轉為 RUNNING。假若虛擬機器失效,請在日誌內尋找原因:/var/log/one/<VM_ID>/vm.log

支援及排除疑難

日誌的位置在 /var/log/one。排除疑難時切記要檢查它們。如果你需要協助,上游可透過他們的主要http://opennebula.org/support:社群支援渠道來幫你。

更多資訊

Translation of revision 10

zh-tw/Cloud/OpenNebula/QuickStart (last edited 2014-01-13 16:37:38 by TimothyLee)