複製鏈接
請複製以下鏈接發送給好友

Eucalyptus

鎖定
Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus) 是一種開源的軟件基礎結構,用來通過計算集羣或工作站羣實現彈性的、實用的雲計算。它最初是美國加利福尼亞大學 Santa Barbara 計算機科學學院的一個研究項目,現在已經商業化,發展成為了 Eucalyptus Systems Inc。
中文名
Eucalyptus
外文名
Elastic Utility Computing
管理程序
Xen和KVM
出    處
美國加利福尼亞大學

Eucalyptus簡介

不過,Eucalyptus 仍然按開源項目那樣維護和開發。Eucalyptus Systems 還在基於開源的 Eucalyptus 構建額外的產品;它還提供支持服務。 [1] 
Eucalyptus雲計算軟件,在一個平台上(分為open source版和enterprise版),提供了對這些資源的抽象。Eucalyptus的源碼是公開的。並且有提供給CentOS 5,Debian squeeze,OpenSUSE 11,Fedora 12的軟件包。
Eucalyptus選擇Xen和KVM作為虛擬化的管理程序。目前版本是3.2。Eucalyptus的enterprise版已經對vSphere ESX/ESXi提供了支持。

Eucalyptus高級特點

1.與 EC2 和 S3 的接口兼容性(SOAP 接口和 REST 接口)。使用這些接口的幾乎所有現有工具都將可以與基於 Eucalyptus 的雲協作。
2.支持運行在 Xen hypervisor 或 KVM 之上的 VM 的運行。未來版本還有望支持其他類型的 VM,比如 VMware。
3.用來進行系統管理和用户結算的雲管理工具。
4.能夠將多個分別具有各自私有的內部網絡地址的集羣配置到一個雲內。 [1] 

Eucalyptus原理

Eucalyptus組件:在邏輯上,Eucalyptus雲包括4個組件:存儲控制器(walrus)、雲控制器(簡稱CLC或者“cloud”)、集羣控制器(cc)以及節點控制器(nc)。客户端依賴於解決方案,但可能以瀏覽器腳本、一個用户空間應用程序、或者甚至是一個內核模塊的形式出現。雲控制器是從客户端進入雲的接口,併為雲提供邏輯決定。雲控制執行對客户端進行認證的服務,並將客户端的請求轉化為事務。集羣控制器是一個節點控制器集合。它負責狀態信息並與所提供的虛擬機進行交互。可是,節點自身是通過管理程序(Xen或者KVM)來與在線以及離線虛擬機進行交互的。一個節點控制器在一個單獨的機器上是作為一個獨立的實例存在的。但是,多個節點控制器組成了特定的雲。
架構如下:
eucalyptus由五個部分組成 eucalyptus由五個部分組成

Eucalyptus架構

Eucalyptus 包含五個主要組件,它們能相互協作共同提供所需的雲服務。這些組件使用具有 WS-Security 的 SOAP 消息傳遞安全地相互通信。
Cloud Controller (CLC)在 Eucalyptus 雲內,這是主要的控制器組件,負責管理整個系統。它是所有用户和管理員進入 Eucalyptus 雲的主要入口。所有客户機通過基於 SOAP 或 REST 的 API 只與 CLC 通信。由 CLC 負責將請求傳遞給正確的組件、收集它們並將來自這些組件的響應發送回至該客户機。這是 Eucalyptus 雲的對外 “窗口”。
Cluster Controller (CC)Eucalyptus 內的這個控制器組件負責管理整個虛擬實例網絡。請求通過基於 SOAP 或 REST 的接口被送至 CC。CC 維護有關運行在系統內的 Node Controller 的全部信息,並負責控制這些實例的生命週期。它將開啓虛擬實例的請求路由到具有可用資源的 Node Controller。
圖2 圖2
Node Controller (NC)它控制主機操作系統及相應的 hypervisor(Xen 或最近的 KVM,很快就會支持 VMWare)。必須在託管了實際的虛擬實例(根據來自 CC 的請求實例化)的每個機器上運行 NC 的一個實例。
Walrus (W)這個控制器組件管理對 Eucalyptus 內的存儲服務的訪問。請求通過基於 SOAP 或 REST 的接口傳遞至 Walrus。
Storage Controller (SC)Eucalyptus 內的這個存儲服務實現 Amazon 的 S3 接口。SC 與 Walrus 聯合工作,用於存儲和訪問虛擬機映像、內核映像、RAM 磁盤映像和用户數據。其中,VM 映像可以是公共的,也可以是私有的,並最初以壓縮和加密的格式存儲。這些映像只有在某個節點需要啓動一個新的實例並請求訪問此映像時才會被解密。
一個 Eucalyptus 雲安裝可以聚合和管理來自一個或多個集羣的資源。一個集羣 是連接到相同 LAN 的一組機器。在一個集羣中,可以有一個或多個 NC 實例,每個實例管理虛擬實例的實例化和終止。
圖3 圖3
在一個單一集羣的安裝中,如圖 3 所示,將至少包含兩個機器:一個機器運行 CC、SC 和 CLC;另一個機器運行 NC。這種配置主要適合於試驗的目的以及快速配置的目的。通過將所有東西都組合到一個機器內,還可以進一步簡化,但這個機器需要非常健壯才能這樣做。
一個單集羣 Eucalyptus 安裝的拓撲
在多集羣安裝中,可以將各個組件(CC、SC、 NC 和 CLC)放置在單獨的機器上。如果想要用它來執行重大的任務,那麼這麼做就是一種配置 Eucalyptus 雲的理想方式。多集羣安裝還能通過選擇與其上運行的控制器類型相適應的機器來顯著提高性能。比如,可以選擇一個具有超快 CPU 的機器來運行 CLC。多集羣的結果是可用性的提高、負載和資源的跨集羣分佈。集羣的概念類似於 Amazon EC2 內的可用性區域的概念。資源可以跨多個可用性區域分配,這樣一來,一個區域內的故障不會影響到整個應用程序。
一個多集羣 Eucalyptus 安裝的拓撲

Eucalyptus安裝

Eucalyptus包含的軟件包,根據其組件進行相應地命名:eucalyptus雲控制器(eucalyptus-cloud)、eucalyptus控制器(eucalyptus-controller)以及節點控制器(eucalyptus-nc)。在這篇文章中,使用Ubuntu 9.04系統。安裝的先決條件是在所有的節點上都配置一個一致的網絡時間協議(NTP),並在節點控制器之間進行橋接配置。進行橋接的步驟超過了這篇文章的範疇,但Ubuntu提供了相應的文檔。安裝的第一步是下載Eucalyptus(32位或者64位)。
在下載完程序之後,轉到下載到的目錄(在這個例子中,使用/tmp)。然後在每一台組成雲控制器、集羣控制器以及節點控制器的機器上執行下述命令:
root@ubuntu:/tmp/eucalyptus-1.5.1-ubuntu-i386#
tar zxvf eucalyptus-1.5.1-*.tar.gzroot@ubuntu:/tmp/eucalyptus-1.5.1-ubuntu-i386#
cd eucalyptus-1.5.1-*root@ubuntu:/tmp/eucalyptus-1.5.1-ubuntu-i386#
echo deb file://${PWD} ./ >> /etc/apt/sources.listroot@ubuntu:/tmp/eucalyptus-1.5.1-ubuntu-i386#
apt-get update
apt-get update命令會對平台所需的先決條件進行安裝,其中開放的Java框架佔據了下載量的很大一部分。apt-get將需要執行相當長的一段時間。
對每一個組件,依賴於角色,會各自安裝自己的軟件包。
在雲控制器上:
root@ubuntu:/tmp/eucalyptus-1.5.1-ubuntu-i386# aptitude install eucalyptus-cloud
在控制器上:
root@ubuntu:/tmp/eucalyptus-1.5.1-ubuntu-i386# aptitude install eucalyptus-cc
以及最後在節點控制器上:
root@ubuntu:/tmp/eucalyptus-1.5.1-ubuntu-i386# aptitude install eucalyptus-nc
集羣現在已經建立起來。可以在合適的系統上,通過下述命令來啓動服務:
/etc/init.d/eucalyptus-cloud
/etc/init.d/ecualyptus-cc
/etc/init.d/eucalyptus-nc

Eucalyptus版本發佈

2010年08月27日 ,雲計算Eucalyptus 2.0 發佈,改進可擴展性。 [2] 
2012年05月04日,Eucalyptus 3.1 Alpha 發佈了,與 2.x 版本比較,3.x 主要改進包括以下三個方面:
高可用性
增強的資源訪問控制
提升穩定性。 [3] 
2012年12月26日,Eucalyptus3.2發佈,與3.1版本相比,大幅提升了web-based控制枱的用户體驗和功能豐富程度,增強了用户使用情況報告,簡化了管理操作,並一定程度上增強了雲的健壯性。
參考資料