CVP 项目说明

NOTE:本文以 CVP dovetail的0.6版本为例来讲解dovetail项目的使用,随着dovetail版本的升级使用的命令和配置会有所改变。(2017年9月8日)

修改1:0.6版本升级到0.9,部分内容作出更新(2017年11月13日)

摘要:本文主要介绍如何使用OPNFV的Dovetail项目进行NFV基础设施NFVI&VIM的测试。

OPNFV的CVP(Compliance Verification Program)一致性认证项目

1.Dovetail 安装

dovetail 可以运行在实体机(bare metal),可以运行在虚拟机中。dovetail可以使用源码来安装也可以使用docker环境,建议使用docker来安装。为了环境部署方便以及更快的熟悉该项目,本文采用 docker 环境来安装和使用 dovetail 。

1.1 准备相应的测试代码

由于dovetail测试项目需要使用OPNFV中的其他测试项目代码,因此还需要functest、yardstick等项目。

1
2
3
4
5
6
docker pull opnfv/dovetail:cvp.0.6.0
docker pull opnfv/functest:cvp.0.5.0
docker pull opnfv/yardstick:danube.3.2
docker pull opnfv/bottlenecks:cvp.0.4.0
wget -nc http://artifacts.opnfv.org/sdnvpn/ubuntu-16.04-server-cloudimg-amd64-disk1.img -P .
wget -nc http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img -P .

dovetail可以在离线环境下进行测试,前提是需要先保存以上的docker镜像。

1
2
docker save -o dovetail.tar opnfv/dovetail:cvp.0.6.0 opnfv/functest:cvp.0.5.0 \
opnfv/yardstick:danube.3.2 opnfv/bottlenecks:cvp.0.4.0

1.2 配置 dovetail 运行环境

首先创建一个dovetail的相关文件存放的目录${DOVETAIL_HOME}/pre_config,这里以/root/dovetail为例

1
export DOVETAIL_HOME=/home/dovetail

将之前的镜像文件保存在pre_config目录下,并在该目录下创建env_config.sh文件,并填入一下内容。需要指出的是dovetail CVP中不在需要INSTALL_IP之类的参数,相关警告可以忽略,详见

https://jira.opnfv.org/browse/DOVETAIL-371

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Project-level authentication scope (name or ID), recommend admin project.
export OS_PROJECT_NAME=admin
# Authentication username, belongs to the project above, recommend admin user.
export OS_USERNAME=admin
# Authentication password. Use your own password
export OS_PASSWORD=admin
# Authentication URL, one of the endpoints of keystone service. If this is v3 version,
# there need some extra variables as follows.
export OS_AUTH_URL='http://192.168.20.11:5000/'
# Default is 2.0. If use keystone v3 API, this should be set as 3.
export OS_IDENTITY_API_VERSION=3
# Domain name or ID containing the user above.
# Command to check the domain: openstack user show <OS_USERNAME>
export OS_USER_DOMAIN_NAME=default
# Domain name or ID containing the project above.
# Command to check the domain: openstack project show <OS_PROJECT_NAME>
export OS_PROJECT_DOMAIN_NAME=default
# Home directory for dovetail
export DOVETAIL_HOME=/root/dovetail

导入该环境变量

1
source env_config.sh

1.3 运行 dovetail 容器

1
2
3
4
5
docker run --privileged=true -it \
-e DOVETAIL_HOME=$DOVETAIL_HOME \
-v $DOVETAIL_HOME:$DOVETAIL_HOME \
-v /var/run/docker.sock:/var/run/docker.sock \
--name dovetail opnfv/dovetail:cvp.0.6.0 /bin/bash

上述命令中-v $DOVETAIL_HOME:$DOVETAIL_HOME是指明host与container之间目录映射,此处不一致会导致后续的测试结果存储出现问题。在后续拍错时可以使用docker inspect dovetail命令检查容器的相关配置。运行完成后会直接进入到dovetail容器中.

为了方便的看清目录和文件,增加一些配置

1
2
3
4
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

2. 执行测试

2.1 简单用例测试

使用命令查看有哪些dovetail测试例

1
dovetail list

运行 dovetail 测试

当dovetail正式版本发布时使用下列命令执行整个测试

1
dovetail run --testsuite CVP_1_0_0 --testarea ipv6 --debug | tee test.txt

目前dovetail测试版本使用下列命令执行测试

1
dovetail run -d --testsuite proposed_tests --testarea ha --offline | tee $DOVETAIL_HOME/test.txt-20170912_0954-HA

testarea指明测试域,在dovetail容器的conf目录中dovetail.yml可以查看相关测试域

testarea_supported:

  • defcore
  • example
  • ha
  • ipv6
  • sdnvpn
  • vping
  • resiliency
  • tempest

或者使用dovetail list proposed_tests命令来查看有哪些testarea和具体的testarea下包含的测试例是什么。

2.2 其他测试配置文件

2.2.1 HA测试配置

HA测试的配置文件为${DOVETAIL_HOME}/pre_config/pod.yaml,可以参考dovetail/userconfig/pod.yaml.sample配置内容如下,只需要列出HA的控制节点

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
nodes:
-
# This can not be changed and must be node1.
name: node1

# This must be controller.
role: Controller

# This is the install IP of a controller node.
ip: xx.xx.xx.xx

# User name of this node. This user must have sudo privileges.
user: root

# Password of the user.
password: root

# Private key of this node. It must be /root/.ssh/id_rsa
# Dovetail will move the key file from $DOVETAIL_HOME/pre_config/id_rsa
# to /root/.ssh/id_rsa of Yardstick container
key_filename: /root/.ssh/id_rsa

需要注意的是节点的名字必须是node1node2格式,主要是该项测试调用了functest的相关测试,而functest做了相关配置要求,IP地址为测试机能够访问节点的IP,HA测试会需要ssh登录到节点中关闭/重启openstack的nova、glance等相应服务,也需要提供能够访问其他节点的密匙文件。

2.2.2 tempest测试配置

配置文件需要存放在$DOVETAIL_HOME/pre_config/tempest_conf.yaml,依据待测环境配置相应的信息。

1
2
3
4
5
6
7
validation:
image_ssh_user: cirros
ssh_timeout: 300

compute:
min_compute_nodes: 2
# volume_device_name: vdb

测试过程中使用的是cirros的镜像,cirros的初始账户为:cirros,设置登录超时时间,设置计算节点个数,对于compass的环境新添加的系统云盘名称为vdb因此需要指定(默认为vdc)。

3. 测试结果

dovetail的测试结果存放在$DOVETAIL_HOME/results目录下,具体的每个测试域也有对应的详细存储结果目录。如IPv6测试详细结果存放在ipv6_logs/dovetail.ipv6.tcXXX.log,可以查看执行失败的原因。

参考链接

1)dovetail 用户手册

-------------本文结束感谢您的阅读-------------

版权声明

Louie's Blog by louie long is licensed under a Creative Commons BY-NC-ND 4.0 International License.
Louie Long创作并维护的Louie's Blog博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Louie's Blog 博客( http://ylong.net.cn ),版权所有,侵权必究。
转载请注明作者和链接地址http://ylong.net.cn, 如对文章内容有疑问请联系邮箱( longyu805@163.com )。