Eucalyptus

Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus) 是一種開源的軟件基礎(chǔ)結(jié)構(gòu),用來通過計算集群或工作站群實現(xiàn)彈性的、實用的云計算。它最初是美國加利福尼亞大學(xué) Santa Barbara 計算機科學(xué)學(xué)院的一個研究項目,現(xiàn)在已經(jīng)商業(yè)化,發(fā)展成為了 Eucalyptus Systems Inc。不過,Eucalyptus 仍然按開源項目那樣維護和開發(fā)。Eucalyptus Systems 還在基于開源的 Eucalyptus 構(gòu)建額外的產(chǎn)品;它還提供支持服務(wù)。
不管是源代碼還是包安裝,Eucalyptus 很容易安裝在現(xiàn)今大多數(shù) Linux® 發(fā)布版上。它提供了如下這些高級特性:
與 EC2 和 S3 的接口兼容性(SOAP 接口和 REST 接口)。使用這些接口的幾乎所有現(xiàn)有工具都將可以與基于 Eucalyptus 的云協(xié)作。
支持運行在 Xen hypervisor 或 KVM 之上的 VM 的運行。未來版本還有望支持其他類型的 VM,比如 VMware。
用來進行系統(tǒng)管理和用戶結(jié)算的云管理工具。
能夠?qū)⒍鄠€分別具有各自私有的內(nèi)部網(wǎng)絡(luò)地址的集群配置到一個云內(nèi)。
架構(gòu)
Eucalyptus 包含五個主要組件,它們能相互協(xié)作共同提供所需的云服務(wù)。這些組件使用具有 WS-Security 的 SOAP 消息傳遞安全地相互通信。
Cloud Controller (CLC)
在 Eucalyptus 云內(nèi),這是主要的控制器組件,負(fù)責(zé)管理整個系統(tǒng)。它是所有用戶和管理員進入 Eucalyptus 云的主要入口。所有客戶機通過基于 SOAP 或 REST 的 API 只與 CLC 通信。由 CLC 負(fù)責(zé)將請求傳遞給正確的組件、收集它們并將來自這些組件的響應(yīng)發(fā)送回至該客戶機。這是 Eucalyptus 云的對外 “窗口”。
Cluster Controller (CC)
Eucalyptus 內(nèi)的這個控制器組件負(fù)責(zé)管理整個虛擬實例網(wǎng)絡(luò)。請求通過基于 SOAP 或 REST 的接口被送至 CC。CC 維護有關(guān)運行在系統(tǒng)內(nèi)的 Node Controller 的全部信息,并負(fù)責(zé)控制這些實例的生命周期。它將開啟虛擬實例的請求路由到具有可用資源的 Node Controller。
Node Controller (NC)
它控制主機操作系統(tǒng)及相應(yīng)的 hypervisor(Xen 或最近的 KVM,很快就會支持 VMWare)。必須在托管了實際的虛擬實例(根據(jù)來自 CC 的請求實例化)的每個機器上運行 NC 的一個實例。
Walrus (W)
這個控制器組件管理對 Eucalyptus 內(nèi)的存儲服務(wù)的訪問。請求通過基于 SOAP 或 REST 的接口傳遞至 Walrus。
Storage Controller (SC)
Eucalyptus 內(nèi)的這個存儲服務(wù)實現(xiàn) Amazon 的 S3 接口。SC 與 Walrus 聯(lián)合工作,用于存儲和訪問虛擬機映像、內(nèi)核映像、RAM 磁盤映像和用戶數(shù)據(jù)。其中,VM 映像可以是公共的,也可以是私有的,并最初以壓縮和加密的格式存儲。這些映像只有在某個節(jié)點需要啟動一個新的實例并請求訪問此映像時才會被解密。
一個 Eucalyptus 云安裝可以聚合和管理來自一個或多個集群的資源。一個集群 是連接到相同 LAN 的一組機器。在一個集群中,可以有一個或多個 NC 實例,每個實例管理虛擬實例的實例化和終止。
在一個單一集群的安裝中,如圖 3 所示,將至少包含兩個機器:一個機器運行 CC、SC 和 CLC;另一個機器運行 NC。這種配置主要適合于試驗的目的以及快速配置的目的。通過將所有東西都組合到一個機器內(nèi),還可以進一步簡化,但這個機器需要非常健壯才能這樣做。
圖 3. 一個單集群 Eucalyptus 安裝的拓?fù)?/p>

在多集群安裝中,可以將各個組件(CC、SC、 NC 和 CLC)放置在單獨的機器上。如果想要用它來執(zhí)行重大的任務(wù),那么這么做就是一種配置 Eucalyptus 云的理想方式。多集群安裝還能通過選擇與其上運行的控制器類型相適應(yīng)的機器來顯著提高性能。比如,可以選擇一個具有超快 CPU 的機器來運行 CLC。多集群的結(jié)果是可用性的提高、負(fù)載和資源的跨集群分布。集群的概念類似于 Amazon EC2 內(nèi)的可用性區(qū)域的概念。資源可以跨多個可用性區(qū)域分配,這樣一來,一個區(qū)域內(nèi)的故障不會影響到整個應(yīng)用程序。圖 4 給出了一個例子。
圖 4. 一個多集群 Eucalyptus 安裝的拓?fù)?/p>

在將 Eucalyptus 安裝并應(yīng)用到您的基礎(chǔ)設(shè)施上之前,需要考慮硬件要求。雖然出于試驗?zāi)康?,可以在一個筆記本電腦上運行全部內(nèi)容,但是對于一個實際的部署場景,多集群無疑是一個更好的選擇。如下所列的是 Ubuntu 管理員對硬件配置方面的一些指導(dǎo)。這些指導(dǎo)可廣泛應(yīng)用于任何的 Linux 發(fā)布版(不只是 Ubuntu)。