安装EUCALYPTUS

概述

本教程涵盖以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前端服务器

  1. 下载Ubuntu 10.04 Server 光盘镜像
  2. 当开机启动时,选择“Install Ubuntu Enterprise Cloud”。
    bootscreen.png

  3. 安装程序将检测是否存在其他Eucalyptus组件。
    uec1.png

  4. 然后你可以根据你选择的 拓扑结构 选择要安装的组件。
    uec2.png

  5. 在安装过程中它会询问另外两个有关云的特定的问题:
    1. 给集群取个名字,例如 cluster1
      uec3.png

    2. 局域网上公用的IP地址范围,云可以将其分配给运行的实例,例如 192.168.1.200-192.168.1.249
      uec4.png

第3步:安装节点控制器

节点控制器安装更简单。只要确保在节点的机器所在的网络上,云/群集控制器已在运行。

  1. 在节点机器上用同一个光盘镜像引导启动
  2. 选择“Install Ubuntu Enterprise Cloud”
  3. 系统会自动检测集群环境并会预先为你选择“节点安装“方式
  4. 确认分区方案
  5. 安装的剩余部分会无打扰的进行;节点完成安装并重新启动

第4步:注册节点

对于 Ubuntu 10.04 LTS 来说,所有组件的注册都是自动的,包括:

  1. 正确交换公共SSH密钥
  2. 正确配置服务
  3. 服务广播它们的存在
  4. 合适的UEC组件监听器在运行
  5. 验证注册

步骤 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步:获取证书

在安装和启动云控制器之后,云的用户需要获取他们的证书 。这个可以通过浏览器或命令行来完成。

通过浏览器
  1. 在浏览器(远程机器的浏览器或者在Ubuntu服务器上的浏览器均可)上访问如下URL:
    https://<cloud-controller-ip-address>:8443/

    重要! 你必须使用安全连接,所以确定你在URL中使用的是"https"而不是"http"。你会看到一个安全证书警告,要查看该页面你必须添加一个例外。否则你将无法看到Eucalyptus的配置页面。

  2. 第一次登录时使用默认的用户名 'admin' 和密码 'admin'(你会被提示要修改密码)
  3. 然后按照屏幕上的提示更新管理员密码和邮件地址。
  4. 当第一次配置过程 结束之后,点击屏幕左上方的'credentials'标签。

  5. 点击'Download Credentials'按钮来获得你的证书
  6. 将证书保存到 ~/.euca

  7. 将下载的zip文件解压并保存到一个安全的位置 (~/.euca)
    unzip -d ~/.euca mycreds.zip
通过命令行
  1. 或者,如果你是在云控制器的命令行,你可以运行:
    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工具。

  1. 安装必要的云用户工具:
    sudo apt-get install euca2ools
  2. 为了验证这一切都正常工作,可以查看一下本地集群可用性的详细信息:
    . ~/.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来安装。

  1. 通过如下URL来访问web界面(确认你是使用 https):
    https://<cloud-controller-ip-address>:8443/
  2. 输入你的登录名和密码,如果需要的话
  3. 点击'Store'标签

    Private-store-cr.png

  4. 浏览可用的镜像
  5. 在想要安装的镜像上点击'Install'

一旦镜像被下载并安装完成,你可以点击显示在映射按钮下的 "How to run?" 来查看用来实例化(启动)该镜像的命令。该镜像也将显示在Image标签上给出的列表里。

  • private-images-cr.png

第7步:运行镜像

有多种方法来实例化UEC里的一个镜像:

  • 使用命令行
  • 使用一个和UEC兼容的管理工具,例如 Landscape
  • 使用 Firefox 浏览器的 ElasticFox 插件

这里我们将描述通过命令行的方法:

  1. 在运行你的镜像的一个实例之前,你应该首先创建一个当实例启动后,可以用来以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 来获取存储在系统里的已经创建的密钥的列表。

  2. 你必须确保在运行任何eucatools工具之前运行命令 source ~/.euca/eucarc 可能最后的办法是将这条命令加入到 .bashrc 脚本文件的底部。
  3. 你也必须开放实例的22端口:
    euca-authorize default -P tcp -p 22 -s 0.0.0.0/0
  4. 接下来,你可以创建已经注册的镜像的实例:
    euca-run-instances $EMI -k mykey -t m1.small

    注意: 如果你遇到有关 image_id 的一个错误,可以通过查看Images页面找到它,或者在 Store 页面上点击 "How to Run" 查看示例命令。

  5. 当你第一次运行某个实例,系统会从将要创建该实例的机器上为这个镜像设置缓存。VM镜像通常相当大,在第一次运行某个实例时,这个过程通常需要一段时间。要监测你的实例的状态,运行命令:
    watch -n5 euca-describe-instances
    在输出中,你应该可以看到有关该实例的信息,包括它的状态。当第一次缓存正在进行的时候,实例的状态是 'pending'。
  6. 当实例已经完全启动了,上述状态将变为 'running'。在输出里看到分配给你的实例的IP地址,然后连接到它:
    IPADDR=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print $4}')
    ssh -i ~/.euca/mykey.priv ubuntu@$IPADDR
  7. 最后当你在实例上的工作完成后,退出 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 。

链接:

词汇表

在 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 抽象过程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值