云计算EC2兼容平台 安装实践
最近我在公司中尝试安装搭建了基于 Eucalyptus 云计算EC2兼容平台的测试环境。用一台作为控制器,一台作为虚拟机节点,在此感谢综合服务部老马的支持。
Eucalyptus 的组成说明
Euc 的组成可以分为5类组件,它们之间是通过 SOAP with WS-security进行通信。
通过下图我们可以看到基于顶层的是Cloud Controller(clc) 和 Walrus。我们将clc,walrus,sc,cc控制器称为前端节点,虚拟机控制器节点(nc)称为后端节点。
控制器(前端节点):
- the cloud controller (clc)
- the cluster controller (cc)
- walrus (the S3-like storage service)
- the storage controller (sc)
虚拟机节点(后端节点):
- 一个或多个node controller (nc)
组件描述:
- 云控制器(Cloud Controller: CLC) 是Java写的,提供给外界 ec2 兼容的Web SOAP Service 和query接口以及Web界面交互,用来管理所有的集群。执行高层对资源的规划和系统用户的管理。
- Walrus 是兼容Amazon S3的存储,也是java写的,为外界提供Key-Value存储服务。 顶层的cls和walrus可以汇集多个集群的资源。每一个集群需要一个集群控制器(cc)来管理计算节点(资源规划和网络控制),以及一个存储控制器(sc)。
- 存储控制器(Storage Controller)实现EBS(Amazon Elastic Block Store)类型的块存储:所有的image文件存放于此,sc是用java写的。
- 集群控制器Cluster controller (CC) - C 写的,提供对集群内部控制,在 Apache 內作为 Web services 來部署。
- 虚拟机节点控制器Node controller (NC) - C 写的,安在提供虚拟机服务的节点上,在 Apache 內作为 Web services 來部署。
安装
鉴于ubuntu最新的Server版本已经直接集成了Eucalyptus Cloud Server的支持,能够创建在 Amazon 的 EC2 基础设施上运行 Eucalyptus 的公共云和位于防火墙之后的数据中心内部的基础设施之上运行的私有云。这是到目前为止最为简单的安装和尝试使用 Eucalyptus 的方式。只需下载 CD 服务器版并将其安装在任何想要的地方。为了省事,所有机器安装 Ubuntu Server 10.04 LTS。
如前所述,控制器(前端节点 10.34.7.102)上需要安装云控制器(clc),集群控制器(cc),S3存储服务(Walrus),Image存储控制器(sc)。控制器的服务器建议配置如下:
Hardware | Minimum | Suggested | Notes |
CPU | 1GHz | 2 x 2GHz | for an all-in-one front end, it helps to have at least a dual core processor |
Memory | 2GB | 4GB | the Java web front end benefits from lots of available memory |
Disk | 5400rpm IDE | 7200rpm SATA | slower disks will work, but will yield much longer instance startup times |
Disk Space | 40GB | 200GB | 40GB is only enough space for only a single image, cache, etc., Eucalyptus does not like to run out of disk space |
Networking | 100Mbps | 1000Mbps | machine images are hundreds of MB, and need to be copied over the network to nodes |
虚拟机节点控制器的服务器建议配置为:
Hardware | Minimum | Suggested | Notes |
CPU | VT extensions | VT, 64-bit, Multicore | 64-bit can run both i386, and amd64 instances; by default, Eucalyptus will only run 1 VM per CPU core on a Node |
Memory | 1GB | 4GB | additional memory means more, and larger guests |
Disk | 5400rpm IDE | 7200rpm SATA or SCSI | Eucalyptus nodes are disk-intensive; I/O wait will likely be the performance bottleneck |
Disk Space | 40GB | 100GB | images will be cached locally, Eucalyptus does not like to run out of disk space |
Networking | 100Mbps | 1000Mbps | machine images are hundreds of MB, and need to be copied over the network to nodes |
OK,下载ubuntu 10.04 Server ISO并刻盘:
http://www.ubuntu.com/server/get-ubuntu/download
安装前端控制器节点
首先我们安装前端控制器节点, 从光盘引导,选择“Install Ubuntu Enterprise Cloud”.
安装程序将会检查本地网络是否存在已知的云控制器组件,如果没有检测到就会显示如下的画面:
这里我们本来就要安装云控制器,所以保持空白不填,按回车继续。
在下面的屏幕中选择你希望安装的组件,这里我们要在一台机器上安装前端控制节点,所以选择除了虚拟机节点外的所有组件.
在安装过程中,你需要配置你的云计算平台的基本信息:
首先是你的云集群名称,例如:cluster1
- 然后是可供你的集群使用的公共 IP 地址池,分配给虚拟机实例的IP地址, e.g. 192.168.1.200-192.168.1.249. 如果在这里没有提供公共 IP 地址池,那么在启动虚拟机实例的时候就必须指定地址。
安装后端虚拟机节点
- 虚拟机的节点安装更简单,首先请一定确保前端控制服务器已经在网络中正常运行。
- 首先在节点服务器上从光盘引导,选择“Install Ubuntu Enterprise Cloud”,只选择安装Node Controller.
注册节点控制器
- 如果你正在用Ubuntu 10.04 LTS安装,那么可以跳过此步,Ubuntu 10.04 LTS会自动向已经找到的集群控制器注册该节点的。不过如果你是通过package的方式安装的,那么本步骤依然需要。
交换公共SSH密钥
- 云控制器的eucalyptus用户需要去访问其它控制服务器,它们之间的访问是通过Public SSH Key来完成的。由于这里所有前端的控制器都在一台上面,所以只需要将节点控制器的ssh key放到前端的云控制器上的俄服务器即可。
- 在节点服务器上临时为eucalyptus用户加上密码:
- sudo passwd eucalyptus
- 然后在云控制器(Cloud Controller)上:
- sudo -u eucalyptus ssh-copy-id -i ~eucalyptus/.ssh/id_rsa.pub eucalyptus@<IP_OF_NODE>
- 最后将临时密码删除:
- sudo passwd -d eucalyptus
配置服务
- 在云控制器( Cloud Controller)上:
- 注册集群控制器( Cluster Controller ):
- 定义集群名称: CC_NAME in /etc/eucalyptus/eucalyptus-cc.conf
- 定义集群IP: CC_IP_ADDR in /etc/eucalyptus/eucalyptus-ipaddr.conf, 如果有多个集群服务器IP,用空格分隔.
- 注册S3 Key-Value存储服务( Walrus Controller ):
- 定义服务的IP地址: WALRUS_IP_ADDR in /etc/eucalyptus/eucalyptus-ipaddr.conf.
在集群控制器( Cluster Controller)上:
- 注册Image存储控制器( Storage Controller ):
- 定义集群名称: CC_NAME in /etc/eucalyptus/eucalyptus-cc.conf
- 定义存储控制器的IP地址: SC_IP_ADDR in /etc/eucalyptus/eucalyptus-ipaddr.conf, 如果有多个存储服务器IP,用空格分隔.
获取安全证书
- 安装完毕,我们需要获取能够访问云计算平台安全证书来访问,云计算平台。
浏览器访问
- 首先我们可以从浏览器访问,访问云控制器的URL:
- https://<cloud-controller-ip-address>:8443/
- 注意你必须使用HTTPS安全连接访问。默认管理用户和密码为:admin/admin,第一次访问会让你填写修改密码等管理信息。
完成登录后,在Credentials页面上获取你的安全证书,点击“Download Credentials”下载你的云计算平台安全证书文件。
你也可以在云控制器服务器上直接用命令行的方式下载:
mkdir -p ~/.euca
chmod 700 ~/.eucacd ~/.eucasudo euca_conf --get-credentials mycreds.zipunzip mycreds.zipln -s ~/.euca/eucarc ~/.eucarccd -
可以在服务器上运行下euca2tools中的命令看看证书是否正常:
. ~/.euca/eucarc
euca-describe-availability-zones verboseAVAILABILITYZONE cluster1 192.168.1.2AVAILABILITYZONE |- vm types free / max cpu ram diskAVAILABILITYZONE |- m1.small 0004 / 0004 1 192 2AVAILABILITYZONE |- c1.medium 0004 / 0004 1 256 5AVAILABILITYZONE |- m1.large 0002 / 0002 2 512 10AVAILABILITYZONE |- m1.xlarge 0002 / 0002 2 1024 20AVAILABILITYZONE |- c1.xlarge 0001 / 0001 4 2048 20
获取了安全证书你就可以开始使用了,比如获取或者创建操作系统Image, 开启虚拟机实例等等。接下来就是使用篇,由于本人巨懒,在教会韩同学后,就请我们文学有为青年韩同学以优美的文笔写了使用篇,我们大家都要感谢韩同学。
—————————————————————————————————————————