這是一份草稿
OpenNebula 4.4
OpenNebula 是一個成熟及穩定的雲端管理軟件,它可從一個雲端節點延展至數千個實體節點。你可用它來建立私人、公用或混合式雲端。此指南會協助你在 CentOS 上著手建立一個 OpenNebula 雲端。
整個安裝過程中共有兩個獨立角色:前端及點節。前端伺服器負責執行 OpenNebula 服務,而節點是用來運行虛擬機器。請注意你可以遵照此指引在一台主機上集前端及點節的角色於一身。然而我們建議在擁有虛擬延伸的主機上運行虛擬機器。若要測試你的主機是否支援虛擬延伸,請執行:
grep -E 'svm|vmx' /proc/cpuinfo
假如你看不見任何輸出,你的伺服器多數不支援/未啟用虛擬延伸。
OpenNebula 內的指令行工具及其它資源都統稱為 one 工具。
1. 套件安排
OpenNebula 提供這些主要套件:
opennebula-server:OpenNebula 常駐程式
opennebula:OpenNebula 指令行的指令
opennebula-sunstone:OpenNebula 網頁使用介面
opennebula-ozones: OpenNebula 網頁使用介面
opennebula-java:OpenNebula Java API
opennebula-node-kvm:安裝 OpenNubla 在點節上所依賴的套件
opennebula-gate: 從虛擬機器發放信息給 OpenNebula
opennebula-flow: 管理 OpenNebula 服務
opennebula-context: OpenNebula 客端套件
除此以外還有 opennebula-common 及 opennebula-ruby,但他們的用途是作為依賴性套件。opennebula-occi,一個管理雲端的表徵狀態轉移(RESTful)服務,已經包含在 opennebula-sunstone 套件內。
2. 前端上的安裝
2.1. 安裝軟件庫
TODO: 軟件庫資料。
要確保該軟件庫已順利地安裝,你可執行:
# yum repolist
2.2. 安裝所須套件
完整安裝後的 OpenNebula 至少包括 opennebula-server 及 opennebula-sunstone 套件:
# yum install opennebula-server opennebula-suntone
2.3. 設定及啟動服務
你必須啟動兩個主程式: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
3. 設定 NFS
如果你以同一台伺服器扮演前端及工作節點的角色,你可略過這部份。
從前端匯出 /var/lib/one/ 至工作節點。要這樣做,把以下內容加進前端的 /etc/exports 檔內:
/var/lib/one/ *(rw,sync,no_subtree_check,root_squash)
更新 NFS 匯出的檔案:
# service rpcbind restart # service nfs restart
4. 設定 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
5. 節點上的安裝
5.1. 安裝軟件庫
TODO: 軟件庫資料。
要確保該軟件庫已順利地安裝,你可執行:
# yum repolist
5.2. 安裝所須套件
# yum install opennebula-node-kvm
啟動所須的服務:
# service messagebus start # service libvirtd start
5.3. 設定網絡
請先備份此部份所修改的每個檔案,然後才作出改動。
你須要把你的主介面,一般是 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
6. 設定 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/
7. 基本操作
此部份中所有操作均能以 Sunstone 代替指令行來完成。請把你的瀏覽器指向:http://frontend:9869。
oneadmin 用戶的預設密碼已收錄在 ~/.one/one_auth,它是在安裝時隨機產生出來的。
要操作 OpenNebula,你需要通過 oneadmin 帳戶來進行。我們會假設以下所有指令都是在該帳戶下執行的。請執行 su - oneadmin 來登入為 oneadmin。
7.1. 新增主機
要開始使用虛擬機器,你首先要在 OpenNebula 登記工作節點。
你要替每個節點執行這個指令。請以節點的主機名稱取代 localhost。
$ onehost create localhost -i kvm -v kvm -n dummy
執行 onehost list 直至節點已被啟動。要是它失敗了,你大概是在 ssh 設定上出了錯。請檢查 /var/log/one/oned.log。
7.2. 新增虛擬資源
當一切能運作後,你必須建立一個網絡範本、一個映像範本、及一個虛擬機器範本。
建立網絡時,我們要先建立一個名為 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 的輸出取代上述的值。
7.3. 執行一台虛擬機器
要啟動一台虛擬機器,你必須把範本實例化:
$ onetemplate instantiate "CentOS-6.4" -n "My Scratch VM"
執行 onevm list 並察看虛擬機器由 PENDING 轉為 PROLOG 再轉為 RUNNING。假若虛擬機器失效,請在日誌內尋找原因:/var/log/one/<VM_ID>/vm.log。
8. 支援及排除疑難
日誌的位置在 /var/log/one。排除疑難時切記要檢查它們。如果你需要協助,上游可透過他們的主要http://opennebula.org/support:社群支援渠道來幫你。
9. 更多資訊
Translation of revision 10