OpenStack应用实战之Shaker安装测试

 

Shaker项目是由Mirantis发起,专门针对OpenStack网络性能的测试工具。通过模拟不同的网络场景和heat模板,创建虚拟机,并在虚拟机里运行iperf、iperf3、netperf等工具来对网络进行自动化性能测试...

点击“九州云99Cloud”可关注
项目介绍
Shaker项目是由Mirantis发起,专门针对OpenStack网络性能的测试工具。通过模拟不同的网络场景和heat模板,创建虚拟机,并在虚拟机里运行iperf、iperf3、netperf等工具来对网络进行自动化性能测试,并且把测试的结果以网页的形式输出。

目前OpenStack的另外一个著名测试工具Rally, 也是由Mirantis发起,可以针对OpenStack进行整体测试,也可以对OpenStack的功能,存储的性能进行压力测试,以及测试磁盘的IOPS,并提供很好的Web展示。

Rally与Shaker各自的侧重点,两个工具结合起来,在OpenStack交付给用户的场景下,可以提供一份相对客观的验收报告。
环境说明
需要有一个可用的OpenStack环境,并配置好Heat服务,因为Shaker需要使用编排服务来启动各种场景下的虚拟机,本文环境如下:
安装篇


(在Shaker机器)

yum install git gcc-c++ python-devel

git clone http://git.trystack.cn/openstack/shaker

cd shaker

pip install .

制作shaker使用image,如下

source ./keystonerc (Shaker命令跟其他服务Client一样,可以使用环境变量做认证)

shaker-image-builder (需要等待一段时间,“shaker-image-builder”会下载Ubuntu的系统,然后安装配置成Shaker使用的Image)

“shaker-image-builder”工作原理如下:

这个命令底层就调用了一个Python函数,“shaker/engine/image_builder.py ”中的“build_image” 函数。

Shaker提供了三种制作“shaker-image”镜像的模板:centos、debian、ubutnu,默认使用ubuntu,可以使用“--image-builder-template ”参数指定使用哪个镜像,使用哪个镜像对Shaker来说都一样,Shaker在乎的是镜像中的pyshaker-agent、iperf、netperf、flent工具,换句话说,“镜像中只要有这几款工具,任何系统都可以实现!”

“build_image”函数会创建名字为“ shaker-flavor”的Flavor(1vcpu、512mb memory、3g disk),以及名字为“shaker-image”的Glance镜像,Shaker创建镜像底层使用的技术是Heat,“build_image”函数读取“ shaker/resources/image_builder_templates/ ”目录下的模板文件,默认是Ubuntu,然后由Heat创建需要的Network、Router,下载原始镜像,然后通过“cloud-init”工具,安装Shaker需要的工具,“build_image”函数会等待虚拟机关机,最后创建虚拟机的快照,上传到Glance中。

“build_image”函数创建镜像之前会检查Glance是否存在名为“shaker-imag”的镜像和名为“shaker-flavor”的Flavor,如果已经存在,就不会再次创建了,所以不管使用哪个原始镜像创建“shaker-image”镜像,都只会创建一个不会重复。例如第一次使用Ubuntu,那么第二次使用“centos、shaker-image-builder ”命令会直接返回!
测试篇
环境有限,只进行了如下简单测试,对一个Tenant网络进行了测试(scenario:openstack/full_l2),这个环境下,会在每个计算节点启动一个虚拟机,然后在虚拟机里面对“tcp、icmp”进行测试。

source ./keystonerc

shaker --output output.json --verbose --server-endpoint 192.168.1.44:4000 --scenario openstack/full_l2

--output 指定把Raw格式的报告存放到哪个文件

--server-endpoint 这个IP地址和端口,是运行Shaker命令的本机的IP地址和端口,端口随意,不冲突即可,虚拟机中的“shaker-agent”会连接到这个Socket上,跟Shaker命令通讯,由Shaker告知需要测试的项目以及相关节点信息(如IP)

--scenario Shaker 项目提供多种场景的模板进行测试,详细可以查看

https://github.com/openstack/shaker/tree/master/shaker/scenarios/openstack

我们例子使用的是“full_l2.yaml”来进行测试。
测试原理简析
同样Shaker也使用Heat启动各种场景下的虚拟机,这个示例使用的是“openstack/full_l2”,根据描述,Shaker会启动成对的虚拟机(master/slave),每个虚拟机起在不同的Compute节点上,在虚拟机中使用“iperf、netperf”工具测试。
根据结果生成报告
shaker-report --input output.json --report a.html

shaker-report可以根据结果生成HTML格式的报告。


输入标题

https://github.com/openstack/shaker/

http://pyshaker.readthedocs.io/en/latest/
原创文章,转载请务必在文首注明转自“九州云99Cloud”及原作者,谢谢配合~
九州云


九州云信息科技有限公司(99Cloud Inc.)成立于2012年,是中国OpenStack最佳实践的传播者,专注“OpenStack企业落地最后一公里”,提供私有云、混合云相关的咨询设计、开发部署、运维支持等服务和OpenStack相关培训与认证。

点击“阅读原文”


    关注 九州云99Cloud


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册