云服務環境 Eucalyptus
Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus) 是一種開源的軟件基礎結構,用來通過計算集群或工作站群實現彈性的、實用的云計算。它最初是美國加利福尼亞大學 Santa Barbara 計算機科學學院的一個研究項目,現在已經商業化,發展成為了 Eucalyptus Systems Inc。不過,Eucalyptus 仍然按開源項目那樣維護和開發。Eucalyptus Systems 還在基于開源的 Eucalyptus 構建額外的產品;它還提供支持服務。
不管是源代碼還是包安裝,Eucalyptus 很容易安裝在現今大多數 Linux? 發布版上。
它提供了如下這些高級特性:
- 與 EC2 和 S3 的接口兼容性(SOAP 接口和 REST 接口)。使用這些接口的幾乎所有現有工具都將可以與基于 Eucalyptus 的云協作。
- 支持運行在 Xen hypervisor 或 KVM 之上的 VM 的運行。未來版本還有望支持其他類型的 VM,比如 VMware。
- 用來進行系統管理和用戶結算的云管理工具。
- 能夠將多個分別具有各自私有的內部網絡地址的集群配置到一個云內。
架構
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 的一個實例。
Walrus (W)
這個控制器組件管理對 Eucalyptus 內的存儲服務的訪問。請求通過基于 SOAP 或 REST 的接口傳遞至 Walrus。
Storage Controller (SC)
Eucalyptus 內的這個存儲服務實現 Amazon 的 S3 接口。SC 與 Walrus 聯合工作,用于存儲和訪問虛擬機映像、內核映像、RAM 磁盤映像和用戶數據。其中,VM 映像可以是公共的,也可以是私有的,并最初以壓縮和加密的格式存儲。這些映像只有在某個節點需要啟動一個新的實例并請求訪問此映像時才會被解密。
一個 Eucalyptus 云安裝可以聚合和管理來自一個或多個集群的資源。一個集群 是連接到相同 LAN 的一組機器。在一個集群中,可以有一個或多個 NC 實例,每個實例管理虛擬實例的實例化和終止。
在一個單一集群的安裝中,如圖 3 所示,將至少包含兩個機器:一個機器運行 CC、SC 和 CLC;另一個機器運行 NC。這種配置主要適合于試驗的目的以及快速配置的目的。通過將所有東西都組合到一個機器內,還可以進一步簡化,但這個機器需要非常健壯才能這樣做。
一個單集群 Eucalyptus 安裝的拓撲
在多集群安裝中,可以將各個組件(CC、SC、 NC 和 CLC)放置在單獨的機器上。如果想要用它來執行重大的任務,那么這么做就是一種配置 Eucalyptus 云的理想方式。多集群安裝還能通過選擇與其上運行的控制器類型相適應的機器來顯著提高性能。比如,可以選擇一個具有超快 CPU 的機器來運行 CLC。多集群的結果是可用性的提高、負載和資源的跨集群分布。集群的概念類似于 Amazon EC2 內的可用性區域的概念。資源可以跨多個可用性區域分配,這樣一來,一個區域內的故障不會影響到整個應用程序。
一個多集群 Eucalyptus 安裝的拓撲
在將 Eucalyptus 安裝并應用到您的基礎設施上之前,需要考慮硬件要求。雖然出于試驗目的,可以在一個筆記本電腦上運行全部內容,但是對于一個實際的部署場景,多集群無疑是 一個更好的選擇。如下所列的是 Ubuntu 管理員對硬件配置方面的一些指導。這些指導可廣泛應用于任何的 Linux 發布版(不只是 Ubuntu)。