OpenStack性能测试⼯具Rally实践和分析
1      Rally介绍
1.1    概述
Rally是OpenStack社区推出开源测试⼯具,可⽤于对OpenStack各个组件进⾏性能测试。通过使⽤Rally组件,⽤户可完成OpenStack云计算平台的安装部署、功能验证、⼤规模负载测试(性能测试)、输出测试报告等⼀系列动作。对于我们环境中性能测试来说,由于我们的⽹络平台和Neutron的API接⼝基本⼀致,所以可以直接拿来测试我们的⽹络平台系统。
以下为官⽅⽹站上⾯的图⽚,展⽰了Rally强⼤的功能:
1.2    应⽤场景
对于不同的使⽤场景,Rally在测试中的流程也有所不同,主要⽀持以下三种场景:
1)  开发测试,可以评估处于开发阶段的OpenStack系统的性能,能够完成安装部署、仿真测试并输出测试结果等⼀系列动作;
2)  开发运维测试,可以基于现有的OpenStack云平台,对已经安装部署的云平台进⾏仿真测试并输出测试结果;
3)  CI/CD场景测试,可以将Rally集成到CI/CD系统。
以下为三种主要场景的使⽤流程:
1.3    架构
Rally内部架构如下:
2      Rally安装
2.1    ⾃动化安装
有多种⽅式安装Rally组件,如下是官⽅推荐的3种⽅法,这三种⽅法都要求你的安装环境能够访问Internet(如果很不幸,你的环境不能访问外⽹,请查看下2.2⼩节):
1.      ⾃动化独⽴安装
这个是全⾃动化,省事省⼒,如下命令即可搞定,如果是缺少什么软件,会⾃动下载安装。
# or using curl
安装完成后,执⾏以下命令构建rally数据库:
rally-manage db recreate
2.      和DevStack allinone⼀起安装
cd devstack
cp f
编辑f⽂件,在[[local|localrc]]段⾥⾯新增如下⾏:
之后执⾏:
./stack.sh
3.      使⽤Docker⽅式安装
docker build -t myrally .
sudo mkdir/var/lib/rally_container
sudo chown 65500 /var/lib/rally_container
docker run -it -v/var/lib/rally_container:/home/rally rallyforge/rally
如有疑问,可查阅官⽅安装⽂档:
2.2    源码安装
如果安装环境不能访问外⽹环境,那么只能采⽤⼿⼯⽅式进⾏源码安装了,这种⽅式费时费⼒,经常会遇到莫名其名的坑,但是⼀步步排雷下来,相信会对系统有更深的理解。以下是源码安装过程:
1.      ⾸先下载⼀份Rally源码(我⽤的是Rally-0.4.0),将源码拷贝到安装机器上⾯;
2.      修改pbr/packaging.py⽂件(等安装完成后再修改回来)
vim/usr/lib/python2.7/site-packages/pbr/packaging.py
在get_version函数中新增如下代码(红⾊字体):
if version:
return version
return '0.4.0'  #我使⽤了rally的0.4.0版本
raise Exception("Versioning for thisproject requires either an sdist"
" , or accessto an upstream git repository."
" Are you sure thatgit is installed?")
3.      安装sphinx软件(可使⽤yum內源⽅式安装或者rpm安装)
yum install *sphinx
yum install subunit*
4.      进⼊rally源码⽬录,可看到⾥⾯有setup.py⽂件,执⾏如下命令:
cd rally-0.4.0/
python setup.py install
5.      为rally新建mysql数据库
mysql -u root -proot -e"CREATE DATABASErally;"
mysql -u root -proot -e"GRANT ALL PRIVILEGES ON rally.* TO 'rally'@'localhost' IDENTIFIED BY'rally';"
mysql -u root -proot -e"GRANT ALL PRIVILEGES ON rally.* TO 'rally'@'%' IDENTIFIED BY'rally';"
6.      为rally⽣成alembic
cd /usr/lib/python2.7/site-packages/rally/common/db/sqlalchemy
alembic init alembic
vim alembic.ini  #编辑配置⽂件,修改如下⾏:
sqlalchemy.url =mysql://rally:rally@localhost/rally
7.      修改rally的配置⽂件,添加数据库访问路径
vim /etc/f
[database]
connection =mysql://rally:rally@10.25.49.2/rally
8.      初始化rally数据库
rally-manage  db recreate
9.      验证rally命令是否调⽤成功,可以发现安装的版本是0.4.0
[root@control home]# rally--version
No handlers could be foundfor logger "oslo_config.cfg"
0.4.0
3      Rally使⽤mysql下载libs包的网址
下⾯介绍常⽤的Rally命令。
3.1    创建Deployment
如果要测试已存在的OpenStack系统,则在创建deployment直接导⼊环境变量即可,如果测试的OpenStack不存在,需要在创建Deployment时安装部署⼀套openstack,这需要配置deployment engine。我是对已经安装好的NSP进⾏测试,因此没有配置deployment engine.
对于已经安装部署了OpenStack系统,有两种⽅式创建deployment:
1)  使⽤环境变量创建
rally deployment create --fromenv--name=existing
环境变量中需要存在如下变量:
OS_USERNAME
OS_PASSWORD
OS_AUTH_URL
OS_TENANT_NAME
OS_ENDPOINT
OS_REGION_NAME
OS_CACERT
OS_INSECURE
其实执⾏openstack各个组件都需要环境变量,如果能够执⾏nova/neutron等命令没有错误说明已经包含了要求的环境变量,如果执⾏失败,需要导⼊你⾃⼰的环境变量,以下是我的环境变量⽂件:
[root@control home]# cat /root/admin-openrc.sh
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=****
export OS_IDENTITY_API_VERSION=3

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。