- 论坛徽章:
- 0
|
概述
本教程涵盖以Ubuntu 10.04 Server Edition CD为基础的UEC安装指南,并假定一个基本的网络拓扑:一个单一的服务器作为“多合一控制器”,连接一个或多个节点。
目标
从本教程你将学到如何安装、配置、注册以及在一个基本的UEC设置上进行多个操作。最终结果是一朵由一个控制器“前端”和运行着虚拟机的一个或多个节点的的云。本教程的一些示例将帮助你开始使用自己的私人云计算。
教程
第1步:先决条件
要部署一个最小的云基础设施,你将需要至少两个专用系统:
一个前端
一个或多个节点
以下只是一些推荐的条件,而不是一定要满足的要求。然而我们在撰写这份文档时的经验得出了以下的建议。
前端
下面的表格适用于一个运行了一个或多个下述组件的前端系统:
云控制器 the cloud controller (clc)
集群控制器 the cluster controller (cc)
walrus (类似于S3的存储服务)
存储控制器 the storage controller (sc)
硬件
最小
建议
备注
CPU
1GHz
2 x 2GHz
对于一个多合一的前端,至少有一个双核心处理器会更好
内存
2GB
4GB
较多的可用内存对于Java的Web前端有好处
硬盘
5400rpm IDE
7200rpm SATA
较慢的磁盘可以正常工作,但会造成实例的启动时间更长
硬盘容量
40GB
200GB
40GB仅足够用于一个单独的镜像、缓存等等,Eucalyptus 不 喜欢在运行的时候磁盘空间不足
网络带宽
100Mbps
1000Mbps
机器镜像有数百MB,需要通过网络从前端系统复制到各个节点
节点
另一个系统是一些节点,在上面运行着:
节点控制器 the node controller (nc)
These systems will actually run the instances. You will need one or more systems with:
硬件
最小
建议
备注
CPU
VT extensions
VT, 64位,多核
64位可以运行i386和amd64的实例;默认情况下,Eucalyptus在每个节点的每个CPU核心上只运行一个虚拟机
内存
1GB
4GB
更多的内存意味着更多、更大的客户程序
硬盘
5400rpm IDE
7200rpm SATA or SCSI
Eucalyptus节点是磁盘密集型的; I/O等待很可能会成为性能瓶颈
硬盘容量
40GB
100GB
镜像将被缓存在本地,Eucalyptus 不 喜欢在运行的时候磁盘空间不足
网络带宽
100Mbps
1000Mbps
机器镜像有数百MB,需要通过网络从前端系统复制到各个节点
第2步:安装云/集群/存储/Walrus前端服务器
下载Ubuntu 10.04 Server 光盘镜像
当开机启动时,选择“Install Ubuntu Enterprise Cloud”。
bootscreen.png
安装程序将检测是否存在其他Eucalyptus组件。
uec1.png
然后你可以根据你选择的 拓扑结构 选择要安装的组件。
uec2.png
在安装过程中它会询问另外两个有关云的特定的问题:
给集群取个名字,例如 cluster1 。
uec3.png
局域网上公用的IP地址范围,云可以将其分配给运行的实例,例如 192.168.1.200-192.168.1.249 。
uec4.png
第3步:安装节点控制器
节点控制器安装更简单。只要确保在节点的机器所在的网络上,云/群集控制器已在运行。
在节点机器上用同一个光盘镜像引导启动
选择“Install Ubuntu Enterprise Cloud”
系统会自动检测集群环境并会预先为你选择“节点安装“方式
确认分区方案
安装的剩余部分会无打扰的进行;节点完成安装并重新启动
第4步:注册节点
对于 Ubuntu 10.04 LTS 来说,所有组件的注册都是自动的,包括:
正确交换公共SSH密钥
正确配置服务
服务广播它们的存在
合适的UEC组件监听器在运行
验证注册
步骤 a 到 e 仅当你是使用UEC/PackageInstall 方法安装时才需要。否则,如果你是按照UEC/CDInstall 方法安装的,这些步骤应当已经自动完成了,所以你可以直接跳过。
a.
交换公共 SSH 密钥
云控制器的 eucalyptus 用户需要以eucalyptus 用户通过 SSH 访问 Walrus 控制器、集群控制器和存储控制器。
安装云控制器的 eucalyptus 用户的公共 ssh 密钥:
在目标控制器上,临时为 eucalyptus 用户设置一个密码:
sudo passwd eucalyptus
然后,在云控制器上:
sudo -u eucalyptus ssh-copy-id -i /var/lib/eucalyptus/.ssh/id_rsa.pub eucalyptus@<IP_OF_NODE>
如果你愿意的话,现在你可以删除目标控制器上 eucalyptus 账号的密码:
sudo passwd -d eucalyptus
b.
配置服务
在 云控制器 上:
注册 集群控制器 :
在 /etc/eucalyptus/eucalyptus-cc.conf 文件里定义 shell 变量 CC_NAME
在 /etc/eucalyptus/eucalyptus-ipaddr.conf 文件里定义 shell 变量 CC_IP_ADDR ,以空格隔开的一个或多个 IP 地址。
注册 Walrus 控制器 :
在 /etc/eucalyptus/eucalyptus-ipaddr.conf 文件里定义 shell 变量 WALRUS_IP_ADDR ,一个单独的 IP 地址。
在 集群控制器 上:
注册 存储控制器 :
在 /etc/eucalyptus/eucalyptus-cc.conf 文件里定义集群名字的 shell 变量 CC_NAME
在 /etc/eucalyptus/eucalyptus-ipaddr.conf 文件里定义 shell 变量 SC_IP_ADDR ,以空格分隔的一个或多个 IP 地址。
c.
发布
现在启动发布服务。
Walrus 控制器 :
sudo start eucalyptus-walrus-publication
集群控制器 :
sudo start eucalyptus-cc-publication
存储控制器 :
sudo start eucalyptus-sc-publication
节点控制器
sudo start eucalyptus-nc-publication
d.
启动监听器
在 云控制器 和 集群控制器上 ,运行:
sudo start uec-component-listener
e.
验证注册
cat /var/log/eucalyptus/registration.log
2010-04-08 15:46:36-05:00 | 24243 -> Calling node cluster1 node 10.1.1.75
2010-04-08 15:46:36-05:00 | 24243 -> euca_conf --register-nodes returned 0
2010-04-08 15:48:47-05:00 | 25858 -> Calling walrus Walrus 10.1.1.71
2010-04-08 15:48:51-05:00 | 25858 -> euca_conf --register-walrus returned 0
2010-04-08 15:49:04-05:00 | 26237 -> Calling cluster cluster1 10.1.1.71
2010-04-08 15:49:08-05:00 | 26237 -> euca_conf --register-cluster returned 0
2010-04-08 15:49:17-05:00 | 26644 -> Calling storage cluster1 storage 10.1.1.71
2010-04-08 15:49:18-05:00 | 26644 -> euca_conf --register-sc returned 0
第5步:获取证书
在安装和启动云控制器之后,云的用户需要获取他们的证书 。这个可以通过浏览器或命令行来完成。
通过浏览器
在浏览器(远程机器的浏览器或者在Ubuntu服务器上的浏览器均可)上访问如下URL:
https://<cloud-controller-ip-address>:8443/
重要! 你必须使用安全连接,所以确定你在URL中使用的是"https"而不是"http"。你会看到一个安全证书警告,要查看该页面你必须添加一个例外。否则你将无法看到Eucalyptus的配置页面。
第一次登录时使用默认的用户名 'admin' 和密码 'admin'(你会被提示要修改密码)
然后按照屏幕上的提示更新管理员密码和邮件地址。
当第一次配置过程 结束之后,点击屏幕左上方的'credentials'标签。
点击'Download Credentials'按钮来获得你的证书
将证书保存到 ~/.euca
将下载的zip文件解压并保存到一个安全的位置 (~/.euca)
unzip -d ~/.euca mycreds.zip
通过命令行
或者,如果你是在云控制器的命令行,你可以运行:
mkdir -p ~/.euca
chmod 700 ~/.euca
cd ~/.euca
sudo euca_conf --get-credentials mycreds.zip
unzip mycreds.zip
ln -s ~/.euca/eucarc ~/.eucarc
cd -
提取和使用你的证书
现在,你需要在你的服务器上使用X.509证书来设置EC2 API和AMI工具。
安装必要的云用户工具:
sudo apt-get install euca2ools
为了验证这一切都正常工作,可以查看一下本地集群可用性的详细信息:
. ~/.euca/eucarc
euca-describe-availability-zones verbose
AVAILABILITYZONE myowncloud 192.168.1.1
AVAILABILITYZONE |- vm types free / max cpu ram disk
AVAILABILITYZONE |- m1.small 0004 / 0004 1 192 2
AVAILABILITYZONE |- c1.medium 0004 / 0004 1 256 5
AVAILABILITYZONE |- m1.large 0002 / 0002 2 512 10
AVAILABILITYZONE |- m1.xlarge 0002 / 0002 2 1024 20
AVAILABILITYZONE |- c1.xlarge 0001 / 0001 4 2048 20
第6步:通过Store安装镜像
以下是迄今为止安装镜像的最简单的方法。然而,高级用户可能对学习如何 绑定他们自己的镜像 有兴趣。
将镜像添加到UEC的最简单的方法是通过UEC web界面的Image Store来安装。
通过如下URL来访问web界面(确认你是使用 https):
https://<cloud-controller-ip-address>:8443/
输入你的登录名和密码,如果需要的话
点击'Store'标签
Private-store-cr.png
浏览可用的镜像
在想要安装的镜像上点击'Install'
一旦镜像被下载并安装完成,你可以点击显示在映射按钮下的 "How to run?" 来查看用来实例化(启动)该镜像的命令。该镜像也将显示在Image标签上给出的列表里。
private-images-cr.png
第7步:运行镜像
有多种方法来实例化UEC里的一个镜像:
使用命令行
使用一个和UEC兼容的管理工具,例如 Landscape
使用 Firefox 浏览器的 ElasticFox 插件
这里我们将描述通过命令行的方法:
在运行你的镜像的一个实例之前,你应该首先创建一个当实例启动后,可以用来以root用户登录到你的镜像里的密钥对(ssh密钥)。密钥会被存储起来,所以你只需要创建一次。运行下面的命令:
if [ ! -e ~/.euca/mykey.priv ]; then
mkdir -p -m 700 ~/.euca
touch ~/.euca/mykey.priv
chmod 0600 ~/.euca/mykey.priv
euca-add-keypair mykey > ~/.euca/mykey.priv
fi
注意: 你可以给你的密钥任何你想要的名字 (在这个例子里,密钥的名字是 'mykey'),但是要记住它的名字。如果你不小心忘记了,可以运行euca-describe-keypairs 来获取存储在系统里的已经创建的密钥的列表。
你必须确保在运行任何eucatools工具之前运行命令 source ~/.euca/eucarc 可能最后的办法是将这条命令加入到 .bashrc 脚本文件的底部。
你也必须开放实例的22端口:
euca-authorize default -P tcp -p 22 -s 0.0.0.0/0
接下来,你可以创建已经注册的镜像的实例:
euca-run-instances $EMI -k mykey -t m1.small
注意: 如果你遇到有关 image_id 的一个错误,可以通过查看Images页面找到它,或者在 Store 页面上点击 "How to Run" 查看示例命令。
当你第一次运行某个实例,系统会从将要创建该实例的机器上为这个镜像设置缓存。VM镜像通常相当大,在第一次运行某个实例时,这个过程通常需要一段时间。要监测你的实例的状态,运行命令:
watch -n5 euca-describe-instances
在输出中,你应该可以看到有关该实例的信息,包括它的状态。当第一次缓存正在进行的时候,实例的状态是 'pending'。
当实例已经完全启动了,上述状态将变为 'running'。在输出里看到分配给你的实例的IP地址,然后连接到它:
IPADDR=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print $4}')
ssh -i ~/.euca/mykey.priv ubuntu@$IPADDR
最后当你在实例上的工作完成后,退出 SSH 连接,然后关闭实例:
INSTANCEID=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print $2}')
euca-terminate-instances $INSTANCEID
更多信息
如何使用 存储控制器
管理 eucalyptus 服务:
sudo service eucalyptus [start|stop|restart] (在 CLC/CC/SC/Walrus 端)
sudo service eucalyptus-nc [start|stop|restart] (在节点端)
一些重要文件的路径:
日志文件:
/var/log/eucalyptus
配置文件:
/etc/eucalyptus
数据库:
/var/lib/eucalyptus/db
密钥
/var/lib/eucalyptus
/var/lib/eucalyptus/.ssh
注意:
在运行客户端工具之前,别忘了运行命令 source ~/.euca/eucarc 。
链接:
Eucalyptus 项目网站 (论坛、文档、下载)
Eucalyptus on Launchpad (漏洞、源代码)
Eucalyptus 疑难解答 (1.5)
在 RightScale 上注册你的云
词汇表
在 Ubuntu Enterprise Cloud 文档中用到了对一些读者来说可能不熟的术语。这部分的目的是提供一个这样的术语和缩写的语汇表。
云 Cloud - 通过虚拟机提供计算资源的一个物理机器的联合组,能够动态的配置和回收资源。
云控制器 Cloud Controller (CLC) - 提供了web界面 (运行在8443端口的https服务器)的一个 Eucalyptus 组件, 并且实现了亚马逊的 EC2 API。在一个UEC安装中只能有一个云控制器。这项服务是由 Ubuntu 的 eucalyptus-cloud 软件包提供的。
集群 Cluster - 一个节点的集合,与一个集群控制器相关联。在一个UEC安装中可以有不止一个集群。集群有时候是物理隔开的节点组。 (例如,1楼、2楼、3楼)。
集群控制器 Cluster Controller (CC) - 是一个管理节点资源的集合的 Eucalyptus 组件。这项服务由 Ubuntu 的 eucalyptus-cc 软件包提供。
弹性块存储 EBS - Elastic Block Storage. http://aws.amazon.com/ebs/
弹性计算云 EC2 - Elastic Compute Cloud. 亚马逊的按小时付费,按GB付费的公共云计算产品。
EKI - Eucalyptus Kernel Image.
EMI - Eucalyptus Machine Image.
ERI - Eucalyptus Ramdisk Image.
Eucalyptus - Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems 的首字母缩写,意思是“将你的程序连接到有用的系统上的一个弹性的基础计算架构”。是一个最初从加州大学圣巴巴拉分校开始的开源项目,现在由 Eucalyptus Systems,一个 Canonical 公司的合作伙伴提供支持。
前端 Front-end - 部署了一个(或更多)高级 Eucalyptus 组件 (云、walrus、存储控制器、集群控制器)的物理机器。
节点 Node - 节点是一台可以运行虚拟机的物理机器,上面运行着一个节点控制器。在 Ubuntu 中,这通常意味着 CPU 有 VT 扩展,并且可以运行 KVM 管理程序。
节点控制器 Node Controller (NC) - 在部署了虚拟机的组成了云的节点上运行的 Eucalyptus 组件。这项服务由 Ubuntu 软件包 eucalyptus-nc 提供。
简单存储服务 S3 - Simple Storage Service. 亚马逊为EC2提供的按GB付费的持久存储解决方案。http://aws.amazon.com/s3/
存储控制器 Storage Controller (SC) - 管理动态块存储服务(EBS)的 Eucalyptus 组件。在 Eucalyptus 安装中的每一个“集群”都可以拥有它自己的存储控制器。这个组件由 'eucalyptus-sc' 软件包提供。
Ubuntu 企业云 UEC - Ubuntu Enterprise Cloud. Ubuntu的基于 Eucalyptus 的云计算解决方案。
虚拟机 VM - Virtual Machine.
虚拟化技术 VT - Virtualization Technology. 一些现代 CPU 的一项可选功能,允许虚拟主机加速。
Walrus - 实现了亚马逊的 S3 API 的 Eucalyptus 组件,用于存储虚拟机镜像和用户数据,使用了 S3 桶的 put/get 抽象过程。
|
|