OpenStack Benchmark - Rally

作为以基于OpenStack的云平台的基准测试工具 -- Rally, 其功能不仅是测试云的性能&&稳定性,
还可以安装OpenStack,以及以良好的表现形式(web 页面)展现测试结果。
关于Rally的更多介绍可以参考 Rally wiki

  • Rally 安装
git clone https://github.com/stackforge/rally.git && cd rally
./install_rally.sh --target /home/rally                      #install Rally in a virtualenv in /home/rally
  • Rally 初始化
    可以把Rally理解为OpenStack的一个client,首先是通过设置一些环境变量使client与OpenStackKeystone服务进行通信。
    为了方便,(1)可以把这些变量放到一个脚本文件中,该脚本文件一般称为openrc 文件,比如:
export OS_PROJECT_DOMAIN_ID=default
export OS_USER_DOMAIN_ID=default
export OS_PROJECT_NAME=admin
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_AUTH_URL=http://[KeystoneService_Host_IP]:35357/v3

也可以(2)把这些变量存放到一个json文件中:

{
	"type": "ExistingCloud",
	"auth_url": "http://[KeystoneService_Host_IP]:5000/v2.0/",
	"region_name": "RegionOne",
	"endpoint_type": "public",
	"admin": {
		"username": "admin",
		"password": "password",
		"tenant_name": "demo"
	},
	"https_insecure": False,
	"https_cacert": "",
}

创建测试环境:

rally deployment create --filename xxx.json --name existing

或者

. openrc admin admin
rally deployment create --fromenv --name=existing

完成之后,可以通过rally deployment check/list/destroy命令检查测试环境是否成功等其他事情。

  • Rally 测试
    Rally本身提供了丰富的测试用例,保存在samples/tasks/scenarios/目录下。我们可以按照自己的需求方便地扩展用例,将测试用例以JSON的格式保存。
rally task start samples/tasks/scenarios/nova/boot-and-delete.json

一个一个执行比较慢,如果想一次性执行完,可以参考下面的脚本让多个脚本自动运行。

CASESDIR="/home/rally/testCases"
RESULTDIR="/home/rally/testResults"

for myfile in ${CASESDIR}/*; do
    myfile_name=$(basename -s .json "$myfile")
    sleep 5
    rally -v task start $myfile > $RESULTDIR/$myfile_name.result
    sleep 10
done

注意事项

  1. 虽然Rally作为一个轻量级的服务运行(没有后台进程),仍然建议把Rally运行在一台单独的机器上,
    而不是云系统中的某个物理节点上,这样测试环境不影响测试对象系统。
  2. 如果Rally运行在单独一台机器上,必须事先修改其/etc/hosts文件,使其能够正确解析controller的地址,
    因为我们安装OpenStack的时候,节点之间的通信是通过主机名而不是IP地址,否则测试过程中会出现无法连接的错误。
posted @ 2015-11-20 21:15  AndyBlog  阅读(727)  评论(0编辑  收藏  举报