[[PageOutline]] {{{ #!html

Eucalyptus 管理者手冊

}}} ---- = 【0.序言】 = * 本文件參考 [http://open.eucalyptus.com/wiki/EucalyptusPrerequisites_v1.5 Eucalyptus Administrator Guide v1.5],分為5部份:(1)__必要環境的設定__,(2)__安裝__,(3)__配置__,(4)__管理__,(5)__問題排解__ * Euc 分為三個元件: 元件間透過 SOAP with WS-security 溝通,一個 Cluster 只會有一個 head node 來執行Cluster controller 和每個 node 都個有一個 Node controller * Euc 3個元件的架構圖:[[Image(euc_3com.png)]] 1. '''''Cloud controller (CLC)''''' -> Java 寫的程式,負責高階的資源排程和系統 accounting,此外也提供 Web services 和網頁介面讓外界使用者可以連接 2. '''''Cluster controller (CC)''''' -> 用 C 撰寫,在 Apache 內當成 Web server 來佈署 3. '''''Node controller (NC)''''' -> 用 C 撰寫,在 Apache 內當成 Web server 來佈署 ---- = 【1.必要環境】 = == ''__1.1 編譯 Euc 所需的套件__'' == * (1)C compilers (2)Java Developer Kit - SDK version 1.6 or above (3)Apache ant 1.6.5 or above (4)Curl development package (5)openssl development package (6)zlib development package == ''__1.2 執行 Euc 所需的套件__'' == ||Front-end ||(1) Java6 (2) Apache ant -> cloud controller (3)Java(TM) Cryptography Extension-JCE (4) Run a server on port 25 & Exim, postfix to send mail (5) Dhcp3-server (6) iptables, vlan(vconfig) (7) 如果從 rpm 安裝的話,必須再安裝 xen-libs RPM || ||Node || (1) xen > 3.0.X: enabule Unix Socket for Euc to contorl Xen -> xend-unix-server yes,Euc 透過 libvirt >0.6.0 與 hypervisior 互動,需確定 libvrt 是正常的來執行 Eucalyptus Node Controller (2) Euc 支援各種網路型式 : vlan (vconfig), bridge-utils, xen-utils || ||與 Euc 互動的套件 ||需安裝 EC2 command-line tools: (1)[http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-30349.zip ec2-api-tools-1.3-30349] (2)[http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools-1.3-26357.zip ec2-ami-tools-1.3-26357]|| ---- = 【2.安裝】 = == [wiki:Eucalyptus/Install/Source 2.1 從 Source 安裝] == == [wiki:Eucalyptus/Install/package 2.2 從套件檔安裝 (deb)] == ---- = 【3.配置】 = == ''__3.1 系統配置__'' == * Front-end {{{ $ euca_conf -addcluster }}} * Node controler {{{ $EUCALYPTUS/usr/sbin/euca_conf -nodes " ... " $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf $EUCALYPTUS/usr/sbin/euca_sync_key }}} * 設定 storage 存放 image template {{{ for x in hostname1 hostname2 ... hostnameN ; do \ ssh $x "mkdir -p /usr/local/instances/; /usr/sbin/euca_conf -hypervisor xen -instances /usr/local/instances /etc/eucalyptus/eucalyptus.conf" done }}} * 網路配置 (提供三種高階的網路 modes,必須選擇合適的網路模式再 front-end 和 node 在 'eucalyptus.conf'設定檔內) 1. SYSTEM Mode -> 最簡單的網路配置,Euc 發 random MAC 位址,使用 Xen Bridge,配合 DHCP 來發 IP,適合小環境測試用 2. STATIC Mode -> 此模式可讓 Euc 管理者管理 VM 的 MAC 和 IP 位址(和 SYSTEM Mode 一樣會使用到 Xen Bridge 和 DHCP),適合當管理者有一群 MAC/IP 時 3. MANAGED Mode -> 最有特色的 modes,但也相當多的約束,Euc 管理需定義一個大的網路 (private 且 unrouteable)給 VMs,Euc 使用者可定義 'named networks' 和 'security groups',舉例來說使用者可以選擇是否允許 ping (ICMP) 或 ssh (TCP, port 22)到他們的 VMs,此外,Eua 也可定義一個 Public Network Pool(在Amazon 稱為 elastic IP)。此 mode 適用於需要 security groups, elastic IPs 和 VM network isolation >> 使用 SYSTEM和 STATIC 會關掉一些特色 (1)VMs間的進出規則(在Amzaon EC2 稱為 security groups) (2)使用者可控制和動態IPs分配再開機和執行期間(在Amazon EC2 稱為 elastic IPs) (3)VMs間的網路流量的的隔離 4. MANAGED-NOVLAN Mode -> [[BR]] == ''__3.2 啟動 Euc__'' == * 啟動 {{{ $ $EUCALYPTUS/etc/init.d/eucalyptus start }}} * 停止 {{{ $ $EUCALYPTUS/etc/init.d/eucalyptus stop }}} * 設定開機自動啟動 {{{ $ ln -sf $EUCALYPTUS/etc/init.d/eucalyptus /etc/init.d/eucalyptus ### 以下兩者擇一即可 ### $ update-rc.d eucalyptus defaults $ chkconfig eucalyptus on }}} * 第1次執行 Euc 的設定 i. 在 CLC 那台 登入 https://localhost:8443/ (admin/admin) * 修改 admin 密碼 * 修改 mail * 確認網址和 Walrus service(Euc Storage) ii. 到'Configuration'標籤,選擇'Add Cluster'再'Save clusters'之後,會產生認証的 Key,需手動分配給所有的 nodes {{{ ### 這個指令會使用 rsync 和 ssh 來散佈 key ### $ $EUCALYPTUS/usr/sbin/euca_sync_key -c $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf }}} iii. 最後,你必須產生使用者的認証,選擇 'Credentials' 標籤和按下 'Download certificates' 來下載,你能使用 基於 x509 的 EC2 tools 和第3方工具(rightscale.com) {{{ $ mkdir $HOME/.euca ### 當你要使用 Euc時,source 此檔案 ### $ source $HOME/.euca/eucarc }}} ---- = 【4.管理】 = == ''__[wiki:Eucalyptus/Images 4.1 Euc 印象檔管理]''__ == == ''__4.2 Euc 管理__'' == * 管理者環境 * 目前管理者只能透過命令列來管理,需注意Euc的路徑必須正確被宣告,才能正常執行指令 {{{ ### 宣告 EUCALYPTUS 路徑 ### $ export EUCALYPTUS=/path/to/eucalyptus }}} * 印象檔管理 * 參考之前 * Node管理 {{{ ### 可編輯 $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf 來修改 node 列表 ### NODES="vm-container-0-0 vm-container-0-1" ### 當增加node,記的將 key 複製給 node ### ${EUCALYPTUS}/usr/sbin/euca_sync_key }}} * 使用者管理 * 使用者註冊 -> 可到 https://your.front.end.hostname:8443/ 註冊,點選Apply for account,之候選填相關的資訊,直到管理者審核後會發mail通知註冊成功 * 增加使用者 -> 管理者也可直接透過 wen 介面增加,點選 'Users' 標籤並選 'Add User' * 管理使用者 -> 管理者透過網頁 'disable' 或 'delete' 使用者 ---- = 【5.問題排解】 = * 重新啟動 * 當 front-end 要重啟時,需要關掉所有的 VMs (可使用 client tools ),或是手動使用 'xm destroy' {{{ ### 再 head node 執行 ### /etc/init.d/eucalyptus restart }}} * 問題判斷 * 若是有些無法正常運作,第一步可以參考文件檢查 installation/configuration/networking 部份,來確定元件是否正常運作,資源是否可被 instances 使用,eucarc 使否正確被 source和認証,也可使用以下指令來了解系Cloud 系統狀態 {{{ $ ec2-describe-availability-zones verbose AVAILABILITYZONE cluster AVAILABILITYZONE |- vm types free / max cpu ram disk AVAILABILITYZONE |- m1.small 0128 / 0128 1 128 10 AVAILABILITYZONE |- c1.medium 0128 / 0128 1 256 10 AVAILABILITYZONE |- m1.large 0064 / 0064 2 512 10 AVAILABILITYZONE |- m1.xlarge 0064 / 0064 2 1024 20 AVAILABILITYZONE |- c1.xlarge 0032 / 0032 4 2048 20 ... }}} * log file -> $EUCALYPTUS/var/log/eucalyptus/ * 在 front-end 的 CLC -> 'cloud-output.log' 和 'cloud-debug.log' * 在 front-end/Head Node 的 CC 'cc.log' 和 'httpd-cc_error_log' * 每個 node 的 NC -> 'nc.log' 和 'httpd-nc_error_log ---- = 【Reference】 = * [http://open.eucalyptus.com/wiki/EucalyptusPrerequisites_v1.5 Eucalyptus Administrator Guide v1.5] * [attachment:A_Tech_Report_Euc.pdf Eucalyptus : A Technical Report on an Elastic Utility Computing Archietcture Linking Your Programs to Useful Systems] [[BR]]