wiki:Eucalyptus/Install

Version 32 (modified by rock, 16 years ago) (diff)

--

Eucalyptus 管理者手冊


【0.序言】

  • 本文件參考 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個元件的架構圖:
    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)ec2-api-tools-1.3-30349 (2)ec2-ami-tools-1.3-26357

【2.安裝】

2.1 從 Source 安裝

2.2 從套件檔安裝 (deb)


【3.配置】

3.1 系統配置

  • 3.1.1 Front-end
    $ euca_conf -addcluster <clustername> <clusterhost> 
    
  • 3.1.2 Node controler
    $EUCALYPTUS/usr/sbin/euca_conf -nodes "<nodehost1> ... <nodehostN>" $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf
    $EUCALYPTUS/usr/sbin/euca_sync_key 
    
  • 3.1.3 設定 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
    
  • 3.1.4 網路配置 (提供四種網路 modes,選擇適合的網路模式在 front-end 和 node 的 'eucalyptus.conf'設定檔內)


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 的設定
    1. 在 CLC 那台 登入 https://localhost:8443/ (admin/admin)
      • 修改 admin 密碼
      • 修改 mail
      • 確認網址和 Walrus service(Euc Storage)
    2. 到'Configuration'標籤,選擇'Add Cluster'再'Save clusters'之後,會產生認証的 Key,需手動分配給所有的 nodes
      ### 這個指令會使用 rsync 和 ssh 來散佈 key ###
      $ $EUCALYPTUS/usr/sbin/euca_sync_key -c $EUCALYPTUS/etc/eucalyptus/eucalyptus.conf 
      
    3. 最後,你必須產生使用者的認証,選擇 'Credentials' 標籤和按下 'Download certificates' 來下載,你能使用 基於 x509 的 EC2 tools 和第3方工具(rightscale.com)
      $ mkdir $HOME/.euca
      
      ### 當你要使用 Euc時,source 此檔案 ###
      $ source $HOME/.euca/eucarc
      

【4.管理】

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 <hostname of your front-end>
      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】


Attachments (4)

Download all attachments as: .zip