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 Systems 還在基於開源的 Eucalyptus 構建額外的產品;它還提供支持服務。
Eucalyptus雲計算軟體,在一個平台上(分為open source版和enterprise版),提供了對這些資源的抽象。Eucalyptus的源碼是公開的。並且有提供給CentOS 5,Debian squeeze,OpenSUSE 11,Fedora 12的軟體包。
Eucalyptus選擇Xen和KVM作為虛擬化的管理程式。目前版本是3.2。Eucalyptus的enterprise版已經對vSphere ESX/ESXi提供了支持。

高級特點

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

原理

Eucalyptus組件:在邏輯上,Eucalyptus雲包括4個組件:存儲控制器(walrus)、雲控制器(簡稱CLC或者“cloud”)、集群控制器(cc)以及節點控制器(nc)。客戶端依賴於解決方案,但可能以瀏覽器腳本、一個用戶空間應用程式、或者甚至是一個核心模組的形式出現。雲控制器是從客戶端進入雲的接口,並為雲提供邏輯決定。雲控制執行對客戶端進行認證的服務,並將客戶端的請求轉化為事務。集群控制器是一個節點控制器集合。它負責狀態信息並與所提供的虛擬機進行互動。可是,節點自身是通過管理程式(Xen或者KVM)來與線上以及離線虛擬機進行互動的。一個節點控制器在一個單獨的機器上是作為一個獨立的實例存在的。但是,多個節點控制器組成了特定的雲。
架構如下圖:
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。
Node Controller (NC)它控制主機作業系統及相應的 hypervisor(Xen 或最近的 KVM,很快就會支持 VMWare)。必須在託管了實際的虛擬實例(根據來自 CC 的請求實例化)的每個機器上運行 NC 的一個實例。
Eucalyptus
Walrus (W)這個控制器組件管理對 Eucalyptus 內的存儲服務的訪問。請求通過基於 SOAP 或 REST 的接口傳遞至 Walrus。
Storage Controller (SC)Eucalyptus 內的這個存儲服務實現 Amazon 的 S3 接口。SC 與 Walrus 聯合工作,用於存儲和訪問虛擬機映像、核心映像、RAM 磁碟映像和用戶數據。其中,VM 映像可以是公共的,也可以是私有的,並最初以壓縮和加密的格式存儲。這些映像只有在某個節點需要啟動一個新的實例並請求訪問此映像時才會被解密。
一個 Eucalyptus 雲安裝可以聚合和管理來自一個或多個集群的資源。一個集群 是連線到相同 LAN 的一組機器。在一個集群中,可以有一個或多個 NC 實例,每個實例管理虛擬實例的實例化和終止。
Eucalyptus
在一個單一集群的安裝中,如圖 3 所示,將至少包含兩個機器:一個機器運行 CC、SC 和 CLC;另一個機器運行 NC。這種配置主要適合於試驗的目的以及快速配置的目的。通過將所有東西都組合到一個機器內,還可以進一步簡化,但這個機器需要非常健壯才能這樣做。
一個單集群 Eucalyptus 安裝的拓撲
在多集群安裝中,可以將各個組件(CC、SC、 NC 和 CLC)放置在單獨的機器上。如果想要用它來執行重大的任務,那么這么做就是一種配置 Eucalyptus 雲的理想方式。多集群安裝還能通過選擇與其上運行的控制器類型相適應的機器來顯著提高性能。比如,可以選擇一個具有超快 CPU 的機器來運行 CLC。多集群的結果是可用性的提高、負載和資源的跨集群分布。集群的概念類似於 Amazon EC2 內的可用性區域的概念。資源可以跨多個可用性區域分配,這樣一來,一個區域內的故障不會影響到整個應用程式。
一個多集群 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

版本發布

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

相關詞條

熱門詞條

聯絡我們