股票代码: 836286    股票简称: 易云股份
官方微信

扫一扫关注易云捷讯官方微信

备案 |       管理控制台

Rally and Docker

介绍

OpenStack,毫无疑问是各种服务联合的一个庞大的生态系统。

Rally 作为一个标准测试工具,回答了 "OpenStack 如何大规模运作?" 的问题。

为了使其成为可能,Rally 自动化并统一了多个节点的 OpenStack 部署、云的验证、标准测试和分析。Rally 使用一个通用的方法,使得我们能够检查 OpenStack 是否正常运作,也即,在高负荷下 1K 服务器的安装是否成功。因此,它可以作为 OpenStack CI/CD 系统的基本工具来使用,可以持续改进其 SLA、运作和稳定性。

Rally 的操作如下图所示:

1.jpg

Rally 的操作

●  Deploy engine还不算是另一个OpenStack 的部署工具,而仅仅是一个可插入的机制,它通过各种各样的部署工具,如:DevStack、Fuel、Anvil on hardware/VMs 等,可以使我们统一和简化工作

●  Verification - (正运作着) 使用 Tempest 来验证一个部署好的 OpenStack 云的功能。在未来,Rally 将支持其他 OS 的验证

●  Benchmark engine - 允许基于一个标准测试的大仓库在云上创建一个参数化的负载。

Rally 架构

通常 OpenStack 的项目是作为服务的,所以,Rally 也提供这种方法和一种不需要守护进程的 CLI 驱动的方法:

1.Rally as-a-Service: 将 Rally 作为守护进程运行,可以展示 Web UI (正运作着),因此 1 RaaS 可以用于整个团队。

2.Rally as-an-APP: Rally 仅仅作为一个轻量级的 CLI App (没有任何守护进程),可以使部署更简单且更轻便。

这是如何做到的?请看下图:

2.jpg

Rally 架构

Rally 组件

Rally 由 4 个主要组件构成:

●  Server Providers - 提供服务器 (虚拟服务器),用 ssh 访问,在一个L3 网络中

●  Deploy Engines - 在由 Server  Providers提供的服务器上部署 OpenStack 云

●  Verification - 针对一个部署好的云环境运行 tempest (或其他特定测试) 的组件,收集结果并以人们能够解读的方式展现出来

●  Benchmark engine - 可以写一些参数化的标准测试场景并在云环境上运行

那么,为什么 Rally 会需要这些组件呢?

如果我们想象一下:我会如何对大规模的云进行标准测试呢?这个问题将非常清晰:

3.jpg

How to Benchmark

Rally & Docker 怎么使用

●  安装 Docker (如果你环境中没有的话)

# yum update

# yum install docker

# usermod -a -G docker `id -u -n` # 把自己添加到 docker 的组里

# exit   # 重新登录是很重要的!

●  为 Rally 准备一个环境

Rally 需要一个额外的目录来保存结果。否则,在退出之后所有的结果会被清除。

# 注意:docker container 用户对这些目录要有访问权

mkdir ~/rally_home ~/rally_db

●  Pull Rally 镜像并运行 container

1.启动 docker 服务,随手设置为随系统启动了:

      # systemctl start docker

      # systemctl enable docker

2.pull docker 镜像:

      docker pull rallyforge/rally

      docker run -t -i -v ~/rally_home:/home/rally -v~/rally_db:/var/lib/rally/database rallyforge/rally

      # 这个命令会在含有 rally 的 container 里打开 bash

●  设置 alias 以简化命令行

echo 'alias dock_rally="docker run -t -i -v~/rally_home:/home/rally -v ~/rally_db:/var/lib/rally/databaserallyforge/rally"' >> ~/etc/bashrc

# 在 CentOS 7 中,"~/.bashrc" 中写了个 if 语句,配置写在 "~/etc/bashrc"中

# 现在可以直接执行 "dock_rally" 来代替上面的命令了

●  运行第一个 Rally

# 运行 bash 来启动并登录到 Rally container 中

dock_rally

 

# 运行 Rally 之前,需要创建其数据库

# 只在第一次运行时执行以下命令!否则会清除你所有的结果

rally-manage db recreate  

 

# 列出所有的部署环境

rally deployment list

 

# 提示没有可用环境,可以用下列命令创建:

rally deployment create

 

# 更多步骤可以看: [step by step guide]

 

Rally 的更多使用方法,请参考:Rally 官方文档。

 

译者注

●  进入 container 后,执行 rally deployment list 会报错:

    TRACE rally OperationalError: (OperationalError)unable to open database file None None

●  发现 rally 的数据库 /var/lib/rally/database 没有访问权限:rally@47ee9f93dcb4:~$ ls -l /var/lib/rally/database/ ls:cannot open directory .: Permission denied

●  尝试更改访问权限,结果失败~用 root 进入 container,也没有权限...

最后的解决办法是关闭 SELinux: setenforce 0

参考文档

Rally 文档包含了很多有用的信息,可以帮助你更高效地使用 Rally。所以,安装完成后请阅读step by step guide。

 

二维码.gif

关注易云微信号,浏览更多技术文档


© 2011-2017 易云捷讯科技(北京)股份有限公司, 版权所有 | © 2011-2017 Eayun,Inc. All rights reserved.

京公网安备 11010802022475号 | 京ICP备 11028869号

业务咨询:400-606-6396