Add custom shaker scenarios for testing of DVS plugin.
Change-Id: I9b11f1b46a0f36d6a088e5ce64cd63485270ef58
This commit is contained in:
parent
aa23019b33
commit
2c5b5c72fd
|
@ -0,0 +1,102 @@
|
||||||
|
heat_template_version: 2013-05-23
|
||||||
|
|
||||||
|
description:
|
||||||
|
This Heat template creates a new Neutron network, a router to the external
|
||||||
|
network and plugs instances into this new network. All instances are located
|
||||||
|
in the same L2 domain.
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
image:
|
||||||
|
type: string
|
||||||
|
description: Name of image to use for servers
|
||||||
|
flavor:
|
||||||
|
type: string
|
||||||
|
description: Flavor to use for servers
|
||||||
|
external_net:
|
||||||
|
type: string
|
||||||
|
description: ID or name of external network
|
||||||
|
server_endpoint:
|
||||||
|
type: string
|
||||||
|
description: Server endpoint address
|
||||||
|
dns_nameservers:
|
||||||
|
type: comma_delimited_list
|
||||||
|
description: DNS nameservers for the subnet
|
||||||
|
|
||||||
|
resources:
|
||||||
|
private_net:
|
||||||
|
type: OS::Neutron::Net
|
||||||
|
properties:
|
||||||
|
name: {{ unique }}_net
|
||||||
|
|
||||||
|
private_subnet:
|
||||||
|
type: OS::Neutron::Subnet
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: private_net }
|
||||||
|
cidr: 10.0.0.0/16
|
||||||
|
dns_nameservers: { get_param: dns_nameservers }
|
||||||
|
|
||||||
|
router:
|
||||||
|
type: OS::Neutron::Router
|
||||||
|
properties:
|
||||||
|
external_gateway_info:
|
||||||
|
network: { get_param: external_net }
|
||||||
|
|
||||||
|
router_interface:
|
||||||
|
type: OS::Neutron::RouterInterface
|
||||||
|
properties:
|
||||||
|
router_id: { get_resource: router }
|
||||||
|
subnet_id: { get_resource: private_subnet }
|
||||||
|
|
||||||
|
server_security_group:
|
||||||
|
type: OS::Neutron::SecurityGroup
|
||||||
|
properties:
|
||||||
|
rules: [
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: tcp,
|
||||||
|
port_range_min: 1,
|
||||||
|
port_range_max: 65535},
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: udp,
|
||||||
|
port_range_min: 1,
|
||||||
|
port_range_max: 65535},
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: icmp}]
|
||||||
|
|
||||||
|
{% for agent in agents.values() %}
|
||||||
|
|
||||||
|
{{ agent.id }}:
|
||||||
|
type: OS::Nova::Server
|
||||||
|
properties:
|
||||||
|
name: {{ agent.id }}
|
||||||
|
image: {% if agent.zone == 'nova' %} shaker-image-nova {% else %} shaker-image-vcenter {% endif %}
|
||||||
|
flavor: { get_param: flavor }
|
||||||
|
availability_zone: "{{ agent.availability_zone }}"
|
||||||
|
networks:
|
||||||
|
- port: { get_resource: {{ agent.id }}_port }
|
||||||
|
user_data_format: RAW
|
||||||
|
user_data:
|
||||||
|
str_replace:
|
||||||
|
template: |
|
||||||
|
#!/bin/sh
|
||||||
|
screen -dmS shaker-agent-screen shaker-agent --server-endpoint=$SERVER_ENDPOINT --agent-id=$AGENT_ID
|
||||||
|
params:
|
||||||
|
"$SERVER_ENDPOINT": { get_param: server_endpoint }
|
||||||
|
"$AGENT_ID": {{ agent.id }}
|
||||||
|
|
||||||
|
{{ agent.id }}_port:
|
||||||
|
type: OS::Neutron::Port
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: private_net }
|
||||||
|
fixed_ips:
|
||||||
|
- subnet_id: { get_resource: private_subnet }
|
||||||
|
security_groups: [{ get_resource: server_security_group }]
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
{% for agent in agents.values() %}
|
||||||
|
{{ agent.id }}_instance_name:
|
||||||
|
value: { get_attr: [ {{ agent.id }}, instance_name ] }
|
||||||
|
{{ agent.id }}_ip:
|
||||||
|
value: { get_attr: [ {{ agent.id }}, networks, { get_attr: [private_net, name] }, 0 ] }
|
||||||
|
{% endfor %}
|
|
@ -0,0 +1,134 @@
|
||||||
|
heat_template_version: 2013-05-23
|
||||||
|
|
||||||
|
description:
|
||||||
|
This Heat template creates a pair of networks plugged into the same router.
|
||||||
|
Master instances and slave instances are connected into different networks.
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
image:
|
||||||
|
type: string
|
||||||
|
description: Name of image to use for servers
|
||||||
|
flavor:
|
||||||
|
type: string
|
||||||
|
description: Flavor to use for servers
|
||||||
|
external_net:
|
||||||
|
type: string
|
||||||
|
description: ID or name of external network for which floating IP addresses will be allocated
|
||||||
|
server_endpoint:
|
||||||
|
type: string
|
||||||
|
description: Server endpoint address
|
||||||
|
dns_nameservers:
|
||||||
|
type: comma_delimited_list
|
||||||
|
description: DNS nameservers for the subnets
|
||||||
|
|
||||||
|
resources:
|
||||||
|
east_private_net:
|
||||||
|
type: OS::Neutron::Net
|
||||||
|
properties:
|
||||||
|
name: {{ unique }}_net_east
|
||||||
|
|
||||||
|
east_private_subnet:
|
||||||
|
type: OS::Neutron::Subnet
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: east_private_net }
|
||||||
|
cidr: 10.1.0.0/16
|
||||||
|
dns_nameservers: { get_param: dns_nameservers }
|
||||||
|
|
||||||
|
router:
|
||||||
|
type: OS::Neutron::Router
|
||||||
|
properties:
|
||||||
|
external_gateway_info:
|
||||||
|
network: { get_param: external_net }
|
||||||
|
|
||||||
|
router_interface:
|
||||||
|
type: OS::Neutron::RouterInterface
|
||||||
|
properties:
|
||||||
|
router_id: { get_resource: router }
|
||||||
|
subnet_id: { get_resource: east_private_subnet }
|
||||||
|
|
||||||
|
west_private_net:
|
||||||
|
type: OS::Neutron::Net
|
||||||
|
properties:
|
||||||
|
name: {{ unique }}_net_west
|
||||||
|
|
||||||
|
west_private_subnet:
|
||||||
|
type: OS::Neutron::Subnet
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: west_private_net }
|
||||||
|
cidr: 10.2.0.0/16
|
||||||
|
dns_nameservers: { get_param: dns_nameservers }
|
||||||
|
|
||||||
|
router_interface_2:
|
||||||
|
type: OS::Neutron::RouterInterface
|
||||||
|
properties:
|
||||||
|
router_id: { get_resource: router }
|
||||||
|
subnet_id: { get_resource: west_private_subnet }
|
||||||
|
|
||||||
|
server_security_group:
|
||||||
|
type: OS::Neutron::SecurityGroup
|
||||||
|
properties:
|
||||||
|
rules: [
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: tcp,
|
||||||
|
port_range_min: 1,
|
||||||
|
port_range_max: 65535},
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: udp,
|
||||||
|
port_range_min: 1,
|
||||||
|
port_range_max: 65535},
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: icmp}]
|
||||||
|
|
||||||
|
{% for agent in agents.values() %}
|
||||||
|
|
||||||
|
{{ agent.id }}:
|
||||||
|
type: OS::Nova::Server
|
||||||
|
properties:
|
||||||
|
name: {{ agent.id }}
|
||||||
|
image: {% if agent.zone == 'nova' %} shaker-image-nova {% else %} shaker-image-vcenter {% endif %}
|
||||||
|
flavor: { get_param: flavor }
|
||||||
|
availability_zone: "{{ agent.availability_zone }}"
|
||||||
|
networks:
|
||||||
|
- port: { get_resource: {{ agent.id }}_port }
|
||||||
|
user_data_format: RAW
|
||||||
|
user_data:
|
||||||
|
str_replace:
|
||||||
|
template: |
|
||||||
|
#!/bin/sh
|
||||||
|
screen -dmS shaker-agent-screen shaker-agent --server-endpoint=$SERVER_ENDPOINT --agent-id=$AGENT_ID
|
||||||
|
params:
|
||||||
|
"$SERVER_ENDPOINT": { get_param: server_endpoint }
|
||||||
|
"$AGENT_ID": {{ agent.id }}
|
||||||
|
|
||||||
|
{% if agent.mode == 'master' %}
|
||||||
|
{{ agent.id }}_port:
|
||||||
|
type: OS::Neutron::Port
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: east_private_net }
|
||||||
|
fixed_ips:
|
||||||
|
- subnet_id: { get_resource: east_private_subnet }
|
||||||
|
security_groups: [{ get_resource: server_security_group }]
|
||||||
|
{% else %}
|
||||||
|
{{ agent.id }}_port:
|
||||||
|
type: OS::Neutron::Port
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: west_private_net }
|
||||||
|
fixed_ips:
|
||||||
|
- subnet_id: { get_resource: west_private_subnet }
|
||||||
|
security_groups: [{ get_resource: server_security_group }]
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
{% for agent in agents.values() %}
|
||||||
|
{{ agent.id }}_instance_name:
|
||||||
|
value: { get_attr: [ {{ agent.id }}, instance_name ] }
|
||||||
|
{% if agent.mode == 'master' %}
|
||||||
|
{{ agent.id }}_ip:
|
||||||
|
value: { get_attr: [ {{ agent.id }}, networks, { get_attr: [east_private_net, name] }, 0 ] }
|
||||||
|
{% else %}
|
||||||
|
{{ agent.id }}_ip:
|
||||||
|
value: { get_attr: [ {{ agent.id }}, networks, { get_attr: [west_private_net, name] }, 0 ] }
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
|
@ -0,0 +1,147 @@
|
||||||
|
heat_template_version: 2013-05-23
|
||||||
|
|
||||||
|
description: >
|
||||||
|
This Heat template creates a new Neutron network plus a north_router to the
|
||||||
|
external network. The template also assigns floating IP addresses to each
|
||||||
|
instance so they are routable from the external network.
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
image:
|
||||||
|
type: string
|
||||||
|
description: Name of image to use for servers
|
||||||
|
flavor:
|
||||||
|
type: string
|
||||||
|
description: Flavor to use for servers
|
||||||
|
external_net:
|
||||||
|
type: string
|
||||||
|
description: ID or name of external network for which floating IP addresses will be allocated
|
||||||
|
server_endpoint:
|
||||||
|
type: string
|
||||||
|
description: Server endpoint address
|
||||||
|
dns_nameservers:
|
||||||
|
type: comma_delimited_list
|
||||||
|
description: DNS nameservers for the subnets
|
||||||
|
|
||||||
|
resources:
|
||||||
|
north_private_net:
|
||||||
|
type: OS::Neutron::Net
|
||||||
|
properties:
|
||||||
|
name: {{ unique }}_net_north
|
||||||
|
|
||||||
|
north_private_subnet:
|
||||||
|
type: OS::Neutron::Subnet
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: north_private_net }
|
||||||
|
cidr: 10.1.0.0/16
|
||||||
|
dns_nameservers: { get_param: dns_nameservers }
|
||||||
|
|
||||||
|
north_router:
|
||||||
|
type: OS::Neutron::Router
|
||||||
|
properties:
|
||||||
|
external_gateway_info:
|
||||||
|
network: { get_param: external_net }
|
||||||
|
|
||||||
|
router_interface:
|
||||||
|
type: OS::Neutron::RouterInterface
|
||||||
|
properties:
|
||||||
|
router_id: { get_resource: north_router }
|
||||||
|
subnet_id: { get_resource: north_private_subnet }
|
||||||
|
|
||||||
|
south_private_net:
|
||||||
|
type: OS::Neutron::Net
|
||||||
|
properties:
|
||||||
|
name: {{ unique }}_net_south
|
||||||
|
|
||||||
|
south_private_subnet:
|
||||||
|
type: OS::Neutron::Subnet
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: south_private_net }
|
||||||
|
cidr: 10.2.0.0/16
|
||||||
|
dns_nameservers: { get_param: dns_nameservers }
|
||||||
|
|
||||||
|
south_router:
|
||||||
|
type: OS::Neutron::Router
|
||||||
|
properties:
|
||||||
|
external_gateway_info:
|
||||||
|
network: { get_param: external_net }
|
||||||
|
|
||||||
|
router_interface_2:
|
||||||
|
type: OS::Neutron::RouterInterface
|
||||||
|
properties:
|
||||||
|
router_id: { get_resource: south_router }
|
||||||
|
subnet_id: { get_resource: south_private_subnet }
|
||||||
|
|
||||||
|
server_security_group:
|
||||||
|
type: OS::Neutron::SecurityGroup
|
||||||
|
properties:
|
||||||
|
rules: [
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: tcp,
|
||||||
|
port_range_min: 1,
|
||||||
|
port_range_max: 65535},
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: udp,
|
||||||
|
port_range_min: 1,
|
||||||
|
port_range_max: 65535},
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: icmp}]
|
||||||
|
|
||||||
|
{% for agent in agents.values() %}
|
||||||
|
|
||||||
|
{{ agent.id }}:
|
||||||
|
type: OS::Nova::Server
|
||||||
|
properties:
|
||||||
|
name: {{ agent.id }}
|
||||||
|
image: {% if agent.zone == 'nova' %} shaker-image-nova {% else %} shaker-image-vcenter {% endif %}
|
||||||
|
flavor: { get_param: flavor }
|
||||||
|
availability_zone: "{{ agent.availability_zone }}"
|
||||||
|
networks:
|
||||||
|
- port: { get_resource: {{ agent.id }}_port }
|
||||||
|
user_data_format: RAW
|
||||||
|
user_data:
|
||||||
|
str_replace:
|
||||||
|
template: |
|
||||||
|
#!/bin/sh
|
||||||
|
screen -dmS shaker-agent-screen shaker-agent --server-endpoint=$SERVER_ENDPOINT --agent-id=$AGENT_ID
|
||||||
|
params:
|
||||||
|
"$SERVER_ENDPOINT": { get_param: server_endpoint }
|
||||||
|
"$AGENT_ID": {{ agent.id }}
|
||||||
|
|
||||||
|
{% if agent.mode == 'master' %}
|
||||||
|
{{ agent.id }}_port:
|
||||||
|
type: OS::Neutron::Port
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: north_private_net }
|
||||||
|
fixed_ips:
|
||||||
|
- subnet_id: { get_resource: north_private_subnet }
|
||||||
|
security_groups: [{ get_resource: server_security_group }]
|
||||||
|
{% else %}
|
||||||
|
{{ agent.id }}_port:
|
||||||
|
type: OS::Neutron::Port
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: south_private_net }
|
||||||
|
fixed_ips:
|
||||||
|
- subnet_id: { get_resource: south_private_subnet }
|
||||||
|
security_groups: [{ get_resource: server_security_group }]
|
||||||
|
|
||||||
|
{{ agent.id }}_floating_ip:
|
||||||
|
type: OS::Neutron::FloatingIP
|
||||||
|
properties:
|
||||||
|
floating_network: { get_param: external_net }
|
||||||
|
port_id: { get_resource: {{ agent.id }}_port }
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
{% for agent in agents.values() %}
|
||||||
|
{{ agent.id }}_instance_name:
|
||||||
|
value: { get_attr: [ {{ agent.id }}, instance_name ] }
|
||||||
|
{% if agent.mode == 'master' %}
|
||||||
|
{{ agent.id }}_ip:
|
||||||
|
value: { get_attr: [ {{ agent.id }}, networks, { get_attr: [north_private_net, name] }, 0 ] }
|
||||||
|
{% else %}
|
||||||
|
{{ agent.id }}_ip:
|
||||||
|
value: { get_attr: [ {{ agent.id }}_floating_ip, floating_ip_address ] }
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
|
@ -0,0 +1,57 @@
|
||||||
|
title: OpenStack L2 Cross-AZ Performance
|
||||||
|
|
||||||
|
description:
|
||||||
|
In this scenario Shaker launches 1 pair of instances in the same tenant
|
||||||
|
network. Each instance is hosted on a separate compute node.
|
||||||
|
The master and slave instances are in different availability zones.
|
||||||
|
The scenario is used to test throughput between `nova` and `vcenter` zones.
|
||||||
|
|
||||||
|
deployment:
|
||||||
|
template: l2.hot
|
||||||
|
accommodation: [pair, single_room, zones: [nova, vcenter], cross_az, compute_nodes: 2]
|
||||||
|
|
||||||
|
execution:
|
||||||
|
tests:
|
||||||
|
-
|
||||||
|
title: Ping
|
||||||
|
class: flent
|
||||||
|
method: ping
|
||||||
|
time: 10
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.ping_icmp.avg < 2.0)"
|
||||||
|
-
|
||||||
|
title: TCP
|
||||||
|
class: iperf3
|
||||||
|
time: 600
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.bandwidth.avg > 5000)"
|
||||||
|
- "[type == 'agent'] >> (stats.retransmits.max < 10)"
|
||||||
|
-
|
||||||
|
title: UDP64
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
bandwidth: 0
|
||||||
|
time: 600
|
||||||
|
datagram_size: 64
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP1500
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 0
|
||||||
|
datagram_size: 1500
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP9000
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 1000M
|
||||||
|
buffer_size: 8950
|
||||||
|
datagram_size: 9000
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
|
|
@ -0,0 +1,60 @@
|
||||||
|
title: OpenStack L3 East-West Cross-AZ Performance
|
||||||
|
|
||||||
|
description:
|
||||||
|
In this scenario Shaker launches 1 pair of instances, each instance on its own
|
||||||
|
compute node. Instances are connected to one of 2 tenant networks, which
|
||||||
|
plugged into single router. The traffic goes from one network to the other
|
||||||
|
(L3 east-west).
|
||||||
|
The master and slave instances are in different availability zones.
|
||||||
|
The scenario is used to test throughput between `nova` and `vcenter` zones.
|
||||||
|
|
||||||
|
deployment:
|
||||||
|
template: l3_east_west.hot
|
||||||
|
accommodation: [pair, single_room, zones: [nova, vcenter], cross_az, compute_nodes: 2]
|
||||||
|
|
||||||
|
execution:
|
||||||
|
tests:
|
||||||
|
-
|
||||||
|
title: Ping
|
||||||
|
class: flent
|
||||||
|
method: ping
|
||||||
|
time: 10
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.ping_icmp.avg < 2.0)"
|
||||||
|
-
|
||||||
|
title: TCP
|
||||||
|
class: iperf3
|
||||||
|
time: 600
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.bandwidth.avg > 5000)"
|
||||||
|
- "[type == 'agent'] >> (stats.retransmits.max < 10)"
|
||||||
|
-
|
||||||
|
title: UDP_64
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
bandwidth: 0
|
||||||
|
time: 600
|
||||||
|
datagram_size: 64
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
|
||||||
|
-
|
||||||
|
title: UDP_1500
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
bandwidth: 0
|
||||||
|
time: 600
|
||||||
|
datagram_size: 1500
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
|
||||||
|
-
|
||||||
|
title: UDP_JUMBO
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
bandwidth: 1000M
|
||||||
|
time: 600
|
||||||
|
buffer_size: 8950
|
||||||
|
datagram_size: 9000
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
|
@ -0,0 +1,58 @@
|
||||||
|
title: OpenStack L3 North-South Cross-AZ Performance
|
||||||
|
|
||||||
|
description:
|
||||||
|
In this scenario Shaker launches 1 pair of instances on different compute
|
||||||
|
nodes. Instances are in different networks connected to different routers,
|
||||||
|
master accesses slave by floating ip. The traffic goes from one network
|
||||||
|
via external network to the other network.
|
||||||
|
The master and slave instances are in different availability zones.
|
||||||
|
The scenario is used to test throughput between `nova` and `vcenter` zones.
|
||||||
|
|
||||||
|
deployment:
|
||||||
|
template: l3_north_south.hot
|
||||||
|
accommodation: [pair, single_room, zones: [nova, vcenter], cross_az, compute_nodes: 2]
|
||||||
|
|
||||||
|
execution:
|
||||||
|
tests:
|
||||||
|
-
|
||||||
|
title: Ping
|
||||||
|
class: flent
|
||||||
|
method: ping
|
||||||
|
time: 10
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.ping_icmp.avg < 2.0)"
|
||||||
|
-
|
||||||
|
title: TCP
|
||||||
|
class: iperf3
|
||||||
|
time: 600
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.bandwidth.avg > 5000)"
|
||||||
|
- "[type == 'agent'] >> (stats.retransmits.max < 10)"
|
||||||
|
-
|
||||||
|
title: UDP64
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 0
|
||||||
|
datagram_size: 32
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP1500
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 0
|
||||||
|
datagram_size: 1500
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP_JUMBO
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 1000M
|
||||||
|
buffer_size: 8950
|
||||||
|
datagram_size: 9000
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
|
@ -0,0 +1,129 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
INVALIDOPTS_ERR=100
|
||||||
|
NOTYPENAME=101
|
||||||
|
NOSCENARIOS=102
|
||||||
|
|
||||||
|
ShowHelp() {
|
||||||
|
cat << EOF
|
||||||
|
Run shaker scenarios
|
||||||
|
|
||||||
|
-t (name) - Types name of suite to run scenarios. It can be cross_az or single_zone
|
||||||
|
Uses TYPE if not set.
|
||||||
|
-s (list) - Names of shaker scenarios separated by space
|
||||||
|
Uses SHAKER_SCENARIOS if not set. See file name in folders cross_az and single_zone.
|
||||||
|
Names can be specified as <name>.yaml ar <name>
|
||||||
|
-i (name) - Shaker image name which is using in Openstack to run Shaker
|
||||||
|
-n - No debug
|
||||||
|
-h - Show this message
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
function log_info {
|
||||||
|
message=$1
|
||||||
|
date "+%d/%m/%y %H:%M:%S INFO: $message"
|
||||||
|
}
|
||||||
|
|
||||||
|
function log_error {
|
||||||
|
message=$1
|
||||||
|
date "+%d-%m-%y %H:%M:%S ERROR: $message"
|
||||||
|
}
|
||||||
|
|
||||||
|
GetoptsVariables() {
|
||||||
|
while getopts ":t:s:i:nh" opt; do
|
||||||
|
case ${opt} in
|
||||||
|
t)
|
||||||
|
TYPE="${OPTARG}"
|
||||||
|
;;
|
||||||
|
s)
|
||||||
|
SHAKER_SCENARIOS="${OPTARG}"
|
||||||
|
;;
|
||||||
|
i)
|
||||||
|
SHAKER_IMAGE="${OPTARG}"
|
||||||
|
;;
|
||||||
|
n)
|
||||||
|
NODEBUG="--nodebug"
|
||||||
|
;;
|
||||||
|
h)
|
||||||
|
ShowHelp
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
\?)
|
||||||
|
echo "Invalid option: -$OPTARG"
|
||||||
|
ShowHelp
|
||||||
|
exit ${INVALIDOPTS_ERR}
|
||||||
|
;;
|
||||||
|
:)
|
||||||
|
echo "Option -$OPTARG requires an argument."
|
||||||
|
ShowHelp
|
||||||
|
exit ${INVALIDOPTS_ERR}
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckVariables() {
|
||||||
|
|
||||||
|
if [ -z "${SHAKER_SCENARIOS}" ]; then
|
||||||
|
echo "Error! SHAKER_SCENARIOS is not set!"
|
||||||
|
exit ${NOSCENARIOS}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${TYPE}" ]; then
|
||||||
|
echo "Error! TYPE is not set!"
|
||||||
|
exit ${NOTYPENAME}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "${SHAKER_IMAGE}" ]; then
|
||||||
|
SHAKER_IMAGE="--image-name $SHAKER_IMAGE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
MakeDir() {
|
||||||
|
|
||||||
|
start_time=$(date "+%H:%M:%S_%d-%m-%y")
|
||||||
|
reports_folder=reports/${TYPE}/${start_time}
|
||||||
|
output_folder=output/${TYPE}/${start_time}
|
||||||
|
|
||||||
|
mkdir -p ${reports_folder}
|
||||||
|
mkdir -p ${output_folder}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
RunTests() {
|
||||||
|
|
||||||
|
log_info "Following groups should be run: $SHAKER_SCENARIOS"
|
||||||
|
|
||||||
|
for group in ${SHAKER_SCENARIOS}
|
||||||
|
do
|
||||||
|
|
||||||
|
name=$(echo ${group} | sed 's/.yaml//')
|
||||||
|
log_info "Start group: $group"
|
||||||
|
scenario=${TYPE}/${group}
|
||||||
|
|
||||||
|
SHAKER="shaker ${NODEBUG} --scenario ${scenario} --report ${reports_folder}/${name}.html --output ${output_folder}/${name}.json ${SHAKER_IMAGE}"
|
||||||
|
log_info "Command to run: ${SHAKER}"
|
||||||
|
|
||||||
|
${SHAKER}
|
||||||
|
if [ $? != 0 ]; then
|
||||||
|
log_error "Something went wrong in group $group"
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# first we want to get variable from command line options
|
||||||
|
GetoptsVariables "${@}"
|
||||||
|
|
||||||
|
# check do we have all critical variables set
|
||||||
|
CheckVariables
|
||||||
|
|
||||||
|
# make reports and outputs directories
|
||||||
|
MakeDir
|
||||||
|
|
||||||
|
RunTests
|
|
@ -0,0 +1,102 @@
|
||||||
|
heat_template_version: 2013-05-23
|
||||||
|
|
||||||
|
description:
|
||||||
|
This Heat template creates a new Neutron network, a router to the external
|
||||||
|
network and plugs instances into this new network. All instances are located
|
||||||
|
in the same L2 domain.
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
image:
|
||||||
|
type: string
|
||||||
|
description: Name of image to use for servers
|
||||||
|
flavor:
|
||||||
|
type: string
|
||||||
|
description: Flavor to use for servers
|
||||||
|
external_net:
|
||||||
|
type: string
|
||||||
|
description: ID or name of external network
|
||||||
|
server_endpoint:
|
||||||
|
type: string
|
||||||
|
description: Server endpoint address
|
||||||
|
dns_nameservers:
|
||||||
|
type: comma_delimited_list
|
||||||
|
description: DNS nameservers for the subnet
|
||||||
|
|
||||||
|
resources:
|
||||||
|
private_net:
|
||||||
|
type: OS::Neutron::Net
|
||||||
|
properties:
|
||||||
|
name: {{ unique }}_net
|
||||||
|
|
||||||
|
private_subnet:
|
||||||
|
type: OS::Neutron::Subnet
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: private_net }
|
||||||
|
cidr: 10.0.0.0/16
|
||||||
|
dns_nameservers: { get_param: dns_nameservers }
|
||||||
|
|
||||||
|
router:
|
||||||
|
type: OS::Neutron::Router
|
||||||
|
properties:
|
||||||
|
external_gateway_info:
|
||||||
|
network: { get_param: external_net }
|
||||||
|
|
||||||
|
router_interface:
|
||||||
|
type: OS::Neutron::RouterInterface
|
||||||
|
properties:
|
||||||
|
router_id: { get_resource: router }
|
||||||
|
subnet_id: { get_resource: private_subnet }
|
||||||
|
|
||||||
|
server_security_group:
|
||||||
|
type: OS::Neutron::SecurityGroup
|
||||||
|
properties:
|
||||||
|
rules: [
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: tcp,
|
||||||
|
port_range_min: 1,
|
||||||
|
port_range_max: 65535},
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: udp,
|
||||||
|
port_range_min: 1,
|
||||||
|
port_range_max: 65535},
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: icmp}]
|
||||||
|
|
||||||
|
{% for agent in agents.values() %}
|
||||||
|
|
||||||
|
{{ agent.id }}:
|
||||||
|
type: OS::Nova::Server
|
||||||
|
properties:
|
||||||
|
name: {{ agent.id }}
|
||||||
|
image: { get_param: image }
|
||||||
|
flavor: { get_param: flavor }
|
||||||
|
availability_zone: "{{ agent.availability_zone }}"
|
||||||
|
networks:
|
||||||
|
- port: { get_resource: {{ agent.id }}_port }
|
||||||
|
user_data_format: RAW
|
||||||
|
user_data:
|
||||||
|
str_replace:
|
||||||
|
template: |
|
||||||
|
#!/bin/sh
|
||||||
|
screen -dmS shaker-agent-screen shaker-agent --server-endpoint=$SERVER_ENDPOINT --agent-id=$AGENT_ID
|
||||||
|
params:
|
||||||
|
"$SERVER_ENDPOINT": { get_param: server_endpoint }
|
||||||
|
"$AGENT_ID": {{ agent.id }}
|
||||||
|
|
||||||
|
{{ agent.id }}_port:
|
||||||
|
type: OS::Neutron::Port
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: private_net }
|
||||||
|
fixed_ips:
|
||||||
|
- subnet_id: { get_resource: private_subnet }
|
||||||
|
security_groups: [{ get_resource: server_security_group }]
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
{% for agent in agents.values() %}
|
||||||
|
{{ agent.id }}_instance_name:
|
||||||
|
value: { get_attr: [ {{ agent.id }}, instance_name ] }
|
||||||
|
{{ agent.id }}_ip:
|
||||||
|
value: { get_attr: [ {{ agent.id }}, networks, { get_attr: [private_net, name] }, 0 ] }
|
||||||
|
{% endfor %}
|
|
@ -0,0 +1,134 @@
|
||||||
|
heat_template_version: 2013-05-23
|
||||||
|
|
||||||
|
description:
|
||||||
|
This Heat template creates a pair of networks plugged into the same router.
|
||||||
|
Master instances and slave instances are connected into different networks.
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
image:
|
||||||
|
type: string
|
||||||
|
description: Name of image to use for servers
|
||||||
|
flavor:
|
||||||
|
type: string
|
||||||
|
description: Flavor to use for servers
|
||||||
|
external_net:
|
||||||
|
type: string
|
||||||
|
description: ID or name of external network for which floating IP addresses will be allocated
|
||||||
|
server_endpoint:
|
||||||
|
type: string
|
||||||
|
description: Server endpoint address
|
||||||
|
dns_nameservers:
|
||||||
|
type: comma_delimited_list
|
||||||
|
description: DNS nameservers for the subnets
|
||||||
|
|
||||||
|
resources:
|
||||||
|
east_private_net:
|
||||||
|
type: OS::Neutron::Net
|
||||||
|
properties:
|
||||||
|
name: {{ unique }}_net_east
|
||||||
|
|
||||||
|
east_private_subnet:
|
||||||
|
type: OS::Neutron::Subnet
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: east_private_net }
|
||||||
|
cidr: 10.1.0.0/16
|
||||||
|
dns_nameservers: { get_param: dns_nameservers }
|
||||||
|
|
||||||
|
router:
|
||||||
|
type: OS::Neutron::Router
|
||||||
|
properties:
|
||||||
|
external_gateway_info:
|
||||||
|
network: { get_param: external_net }
|
||||||
|
|
||||||
|
router_interface:
|
||||||
|
type: OS::Neutron::RouterInterface
|
||||||
|
properties:
|
||||||
|
router_id: { get_resource: router }
|
||||||
|
subnet_id: { get_resource: east_private_subnet }
|
||||||
|
|
||||||
|
west_private_net:
|
||||||
|
type: OS::Neutron::Net
|
||||||
|
properties:
|
||||||
|
name: {{ unique }}_net_west
|
||||||
|
|
||||||
|
west_private_subnet:
|
||||||
|
type: OS::Neutron::Subnet
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: west_private_net }
|
||||||
|
cidr: 10.2.0.0/16
|
||||||
|
dns_nameservers: { get_param: dns_nameservers }
|
||||||
|
|
||||||
|
router_interface_2:
|
||||||
|
type: OS::Neutron::RouterInterface
|
||||||
|
properties:
|
||||||
|
router_id: { get_resource: router }
|
||||||
|
subnet_id: { get_resource: west_private_subnet }
|
||||||
|
|
||||||
|
server_security_group:
|
||||||
|
type: OS::Neutron::SecurityGroup
|
||||||
|
properties:
|
||||||
|
rules: [
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: tcp,
|
||||||
|
port_range_min: 1,
|
||||||
|
port_range_max: 65535},
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: udp,
|
||||||
|
port_range_min: 1,
|
||||||
|
port_range_max: 65535},
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: icmp}]
|
||||||
|
|
||||||
|
{% for agent in agents.values() %}
|
||||||
|
|
||||||
|
{{ agent.id }}:
|
||||||
|
type: OS::Nova::Server
|
||||||
|
properties:
|
||||||
|
name: {{ agent.id }}
|
||||||
|
image: { get_param: image }
|
||||||
|
flavor: { get_param: flavor }
|
||||||
|
availability_zone: "{{ agent.availability_zone }}"
|
||||||
|
networks:
|
||||||
|
- port: { get_resource: {{ agent.id }}_port }
|
||||||
|
user_data_format: RAW
|
||||||
|
user_data:
|
||||||
|
str_replace:
|
||||||
|
template: |
|
||||||
|
#!/bin/sh
|
||||||
|
screen -dmS shaker-agent-screen shaker-agent --server-endpoint=$SERVER_ENDPOINT --agent-id=$AGENT_ID
|
||||||
|
params:
|
||||||
|
"$SERVER_ENDPOINT": { get_param: server_endpoint }
|
||||||
|
"$AGENT_ID": {{ agent.id }}
|
||||||
|
|
||||||
|
{% if agent.mode == 'master' %}
|
||||||
|
{{ agent.id }}_port:
|
||||||
|
type: OS::Neutron::Port
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: east_private_net }
|
||||||
|
fixed_ips:
|
||||||
|
- subnet_id: { get_resource: east_private_subnet }
|
||||||
|
security_groups: [{ get_resource: server_security_group }]
|
||||||
|
{% else %}
|
||||||
|
{{ agent.id }}_port:
|
||||||
|
type: OS::Neutron::Port
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: west_private_net }
|
||||||
|
fixed_ips:
|
||||||
|
- subnet_id: { get_resource: west_private_subnet }
|
||||||
|
security_groups: [{ get_resource: server_security_group }]
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
{% for agent in agents.values() %}
|
||||||
|
{{ agent.id }}_instance_name:
|
||||||
|
value: { get_attr: [ {{ agent.id }}, instance_name ] }
|
||||||
|
{% if agent.mode == 'master' %}
|
||||||
|
{{ agent.id }}_ip:
|
||||||
|
value: { get_attr: [ {{ agent.id }}, networks, { get_attr: [east_private_net, name] }, 0 ] }
|
||||||
|
{% else %}
|
||||||
|
{{ agent.id }}_ip:
|
||||||
|
value: { get_attr: [ {{ agent.id }}, networks, { get_attr: [west_private_net, name] }, 0 ] }
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
|
@ -0,0 +1,147 @@
|
||||||
|
heat_template_version: 2013-05-23
|
||||||
|
|
||||||
|
description: >
|
||||||
|
This Heat template creates a new Neutron network plus a north_router to the
|
||||||
|
external network. The template also assigns floating IP addresses to each
|
||||||
|
instance so they are routable from the external network.
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
image:
|
||||||
|
type: string
|
||||||
|
description: Name of image to use for servers
|
||||||
|
flavor:
|
||||||
|
type: string
|
||||||
|
description: Flavor to use for servers
|
||||||
|
external_net:
|
||||||
|
type: string
|
||||||
|
description: ID or name of external network for which floating IP addresses will be allocated
|
||||||
|
server_endpoint:
|
||||||
|
type: string
|
||||||
|
description: Server endpoint address
|
||||||
|
dns_nameservers:
|
||||||
|
type: comma_delimited_list
|
||||||
|
description: DNS nameservers for the subnets
|
||||||
|
|
||||||
|
resources:
|
||||||
|
north_private_net:
|
||||||
|
type: OS::Neutron::Net
|
||||||
|
properties:
|
||||||
|
name: {{ unique }}_net_north
|
||||||
|
|
||||||
|
north_private_subnet:
|
||||||
|
type: OS::Neutron::Subnet
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: north_private_net }
|
||||||
|
cidr: 10.1.0.0/16
|
||||||
|
dns_nameservers: { get_param: dns_nameservers }
|
||||||
|
|
||||||
|
north_router:
|
||||||
|
type: OS::Neutron::Router
|
||||||
|
properties:
|
||||||
|
external_gateway_info:
|
||||||
|
network: { get_param: external_net }
|
||||||
|
|
||||||
|
router_interface:
|
||||||
|
type: OS::Neutron::RouterInterface
|
||||||
|
properties:
|
||||||
|
router_id: { get_resource: north_router }
|
||||||
|
subnet_id: { get_resource: north_private_subnet }
|
||||||
|
|
||||||
|
south_private_net:
|
||||||
|
type: OS::Neutron::Net
|
||||||
|
properties:
|
||||||
|
name: {{ unique }}_net_south
|
||||||
|
|
||||||
|
south_private_subnet:
|
||||||
|
type: OS::Neutron::Subnet
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: south_private_net }
|
||||||
|
cidr: 10.2.0.0/16
|
||||||
|
dns_nameservers: { get_param: dns_nameservers }
|
||||||
|
|
||||||
|
south_router:
|
||||||
|
type: OS::Neutron::Router
|
||||||
|
properties:
|
||||||
|
external_gateway_info:
|
||||||
|
network: { get_param: external_net }
|
||||||
|
|
||||||
|
router_interface_2:
|
||||||
|
type: OS::Neutron::RouterInterface
|
||||||
|
properties:
|
||||||
|
router_id: { get_resource: south_router }
|
||||||
|
subnet_id: { get_resource: south_private_subnet }
|
||||||
|
|
||||||
|
server_security_group:
|
||||||
|
type: OS::Neutron::SecurityGroup
|
||||||
|
properties:
|
||||||
|
rules: [
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: tcp,
|
||||||
|
port_range_min: 1,
|
||||||
|
port_range_max: 65535},
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: udp,
|
||||||
|
port_range_min: 1,
|
||||||
|
port_range_max: 65535},
|
||||||
|
{remote_ip_prefix: 0.0.0.0/0,
|
||||||
|
protocol: icmp}]
|
||||||
|
|
||||||
|
{% for agent in agents.values() %}
|
||||||
|
|
||||||
|
{{ agent.id }}:
|
||||||
|
type: OS::Nova::Server
|
||||||
|
properties:
|
||||||
|
name: {{ agent.id }}
|
||||||
|
image: { get_param: image }
|
||||||
|
flavor: { get_param: flavor }
|
||||||
|
availability_zone: "{{ agent.availability_zone }}"
|
||||||
|
networks:
|
||||||
|
- port: { get_resource: {{ agent.id }}_port }
|
||||||
|
user_data_format: RAW
|
||||||
|
user_data:
|
||||||
|
str_replace:
|
||||||
|
template: |
|
||||||
|
#!/bin/sh
|
||||||
|
screen -dmS shaker-agent-screen shaker-agent --server-endpoint=$SERVER_ENDPOINT --agent-id=$AGENT_ID
|
||||||
|
params:
|
||||||
|
"$SERVER_ENDPOINT": { get_param: server_endpoint }
|
||||||
|
"$AGENT_ID": {{ agent.id }}
|
||||||
|
|
||||||
|
{% if agent.mode == 'master' %}
|
||||||
|
{{ agent.id }}_port:
|
||||||
|
type: OS::Neutron::Port
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: north_private_net }
|
||||||
|
fixed_ips:
|
||||||
|
- subnet_id: { get_resource: north_private_subnet }
|
||||||
|
security_groups: [{ get_resource: server_security_group }]
|
||||||
|
{% else %}
|
||||||
|
{{ agent.id }}_port:
|
||||||
|
type: OS::Neutron::Port
|
||||||
|
properties:
|
||||||
|
network_id: { get_resource: south_private_net }
|
||||||
|
fixed_ips:
|
||||||
|
- subnet_id: { get_resource: south_private_subnet }
|
||||||
|
security_groups: [{ get_resource: server_security_group }]
|
||||||
|
|
||||||
|
{{ agent.id }}_floating_ip:
|
||||||
|
type: OS::Neutron::FloatingIP
|
||||||
|
properties:
|
||||||
|
floating_network: { get_param: external_net }
|
||||||
|
port_id: { get_resource: {{ agent.id }}_port }
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
{% for agent in agents.values() %}
|
||||||
|
{{ agent.id }}_instance_name:
|
||||||
|
value: { get_attr: [ {{ agent.id }}, instance_name ] }
|
||||||
|
{% if agent.mode == 'master' %}
|
||||||
|
{{ agent.id }}_ip:
|
||||||
|
value: { get_attr: [ {{ agent.id }}, networks, { get_attr: [north_private_net, name] }, 0 ] }
|
||||||
|
{% else %}
|
||||||
|
{{ agent.id }}_ip:
|
||||||
|
value: { get_attr: [ {{ agent.id }}_floating_ip, floating_ip_address ] }
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
|
@ -0,0 +1,55 @@
|
||||||
|
title: OpenStack L2 Nova-AZ Performance
|
||||||
|
|
||||||
|
description:
|
||||||
|
In this scenario Shaker launches 1 pair of instances in the same tenant
|
||||||
|
network. Each instance is hosted on a separate compute node.
|
||||||
|
The master and slave instances are in nova availability zones.
|
||||||
|
|
||||||
|
deployment:
|
||||||
|
template: l2.hot
|
||||||
|
accommodation: [pair, single_room, zones: [nova], compute_nodes: 2]
|
||||||
|
|
||||||
|
execution:
|
||||||
|
tests:
|
||||||
|
-
|
||||||
|
title: Ping
|
||||||
|
class: flent
|
||||||
|
method: ping
|
||||||
|
time: 10
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.ping_icmp.avg < 2.0)"
|
||||||
|
-
|
||||||
|
title: TCP
|
||||||
|
class: iperf3
|
||||||
|
time: 600
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.bandwidth.avg > 5000)"
|
||||||
|
- "[type == 'agent'] >> (stats.retransmits.max < 10)"
|
||||||
|
-
|
||||||
|
title: UDP64
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 0
|
||||||
|
datagram_size: 64
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP1500
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 0
|
||||||
|
datagram_size: 1500
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP_JUMBO
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 1000M
|
||||||
|
buffer_size: 8950
|
||||||
|
datagram_size: 9000
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
|
@ -0,0 +1,56 @@
|
||||||
|
title: OpenStack L2 vcenter-AZ Performance
|
||||||
|
|
||||||
|
description:
|
||||||
|
In this scenario Shaker launches 1 pair of instances in the same tenant
|
||||||
|
network. Each instance is hosted on a separate compute node.
|
||||||
|
The master and slave instances are in vcenter availability zones.
|
||||||
|
|
||||||
|
deployment:
|
||||||
|
template: l2.hot
|
||||||
|
accommodation: [pair, single_room, zones: [vcenter], compute_nodes: 2]
|
||||||
|
|
||||||
|
execution:
|
||||||
|
tests:
|
||||||
|
-
|
||||||
|
title: Ping
|
||||||
|
class: flent
|
||||||
|
method: ping
|
||||||
|
time: 10
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.ping_icmp.avg < 2.0)"
|
||||||
|
-
|
||||||
|
title: TCP
|
||||||
|
class: iperf3
|
||||||
|
time: 600
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.bandwidth.avg > 5000)"
|
||||||
|
- "[type == 'agent'] >> (stats.retransmits.max < 10)"
|
||||||
|
-
|
||||||
|
title: UDP64
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 0
|
||||||
|
datagram_size: 64
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP1500
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 0
|
||||||
|
datagram_size: 1500
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP_JUMBO
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 1000M
|
||||||
|
buffer_size: 8950
|
||||||
|
datagram_size: 9000
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
title: OpenStack L3 East-West nova-AZ Performance
|
||||||
|
|
||||||
|
description:
|
||||||
|
In this scenario Shaker launches 1 pair of instances, each instance on its own
|
||||||
|
compute node. Instances are connected to one of 2 tenant networks, which
|
||||||
|
plugged into single router. The traffic goes from one network to the other
|
||||||
|
(L3 east-west).
|
||||||
|
|
||||||
|
deployment:
|
||||||
|
template: l3_east_west.hot
|
||||||
|
accommodation: [pair, single_room, zones: [nova], compute_nodes: 2]
|
||||||
|
|
||||||
|
execution:
|
||||||
|
tests:
|
||||||
|
-
|
||||||
|
title: Ping
|
||||||
|
class: flent
|
||||||
|
method: ping
|
||||||
|
time: 10
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.ping_icmp.avg < 2.0)"
|
||||||
|
-
|
||||||
|
title: TCP
|
||||||
|
class: iperf3
|
||||||
|
time: 600
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.bandwidth.avg > 5000)"
|
||||||
|
- "[type == 'agent'] >> (stats.retransmits.max < 10)"
|
||||||
|
-
|
||||||
|
title: UDP64
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 0
|
||||||
|
datagram_size: 64
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP1500
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 0
|
||||||
|
datagram_size: 1500
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP_JUMBO
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 1000M
|
||||||
|
buffer_size: 8950
|
||||||
|
datagram_size: 9000
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
|
@ -0,0 +1,56 @@
|
||||||
|
title: OpenStack L3 East-West vcenter-AZ Performance
|
||||||
|
|
||||||
|
description:
|
||||||
|
In this scenario Shaker launches 1 pair of instances, each instance on its own
|
||||||
|
compute node. Instances are connected to one of 2 tenant networks, which
|
||||||
|
plugged into single router. The traffic goes from one network to the other
|
||||||
|
(L3 east-west).
|
||||||
|
|
||||||
|
deployment:
|
||||||
|
template: l3_east_west.hot
|
||||||
|
accommodation: [pair, single_room, zones: [vcenter], compute_nodes: 2]
|
||||||
|
|
||||||
|
execution:
|
||||||
|
tests:
|
||||||
|
-
|
||||||
|
title: Ping
|
||||||
|
class: flent
|
||||||
|
method: ping
|
||||||
|
time: 10
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.ping_icmp.avg < 2.0)"
|
||||||
|
-
|
||||||
|
title: TCP
|
||||||
|
class: iperf3
|
||||||
|
time: 600
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.bandwidth.avg > 5000)"
|
||||||
|
- "[type == 'agent'] >> (stats.retransmits.max < 10)"
|
||||||
|
-
|
||||||
|
title: UDP64
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 0
|
||||||
|
datagram_size: 64
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP1500
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 0
|
||||||
|
datagram_size: 1500
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP_JUMBO
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 1000M
|
||||||
|
buffer_size: 8950
|
||||||
|
datagram_size: 9000
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
|
@ -0,0 +1,57 @@
|
||||||
|
title: OpenStack L3 North-South nova-AZ Performance
|
||||||
|
|
||||||
|
description:
|
||||||
|
In this scenario Shaker launches 1 pair of instances on different compute
|
||||||
|
nodes. Instances are in different networks connected to different routers,
|
||||||
|
master accesses slave by floating ip. The traffic goes from one network
|
||||||
|
via external network to the other network.
|
||||||
|
The master and slave instances are in nova availability zones.
|
||||||
|
|
||||||
|
deployment:
|
||||||
|
template: l3_north_south.hot
|
||||||
|
accommodation: [pair, single_room, zones: [nova], compute_nodes: 2]
|
||||||
|
|
||||||
|
execution:
|
||||||
|
tests:
|
||||||
|
-
|
||||||
|
title: Ping
|
||||||
|
class: flent
|
||||||
|
method: ping
|
||||||
|
time: 10
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.ping_icmp.avg < 2.0)"
|
||||||
|
-
|
||||||
|
title: TCP
|
||||||
|
class: iperf3
|
||||||
|
time: 600
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.bandwidth.avg > 5000)"
|
||||||
|
- "[type == 'agent'] >> (stats.retransmits.max < 10)"
|
||||||
|
-
|
||||||
|
title: UDP64
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 0
|
||||||
|
datagram_size: 32
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP1500
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 0
|
||||||
|
datagram_size: 1500
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP_JUMBO
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 1000M
|
||||||
|
buffer_size: 8950
|
||||||
|
datagram_size: 9000
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
|
@ -0,0 +1,57 @@
|
||||||
|
title: OpenStack L3 North-South vcenter-AZ Performance
|
||||||
|
|
||||||
|
description:
|
||||||
|
In this scenario Shaker launches 1 pair of instances on different compute
|
||||||
|
nodes. Instances are in different networks connected to different routers,
|
||||||
|
master accesses slave by floating ip. The traffic goes from one network
|
||||||
|
via external network to the other network.
|
||||||
|
The master and slave instances are in vcenter availability zones.
|
||||||
|
|
||||||
|
deployment:
|
||||||
|
template: l3_north_south.hot
|
||||||
|
accommodation: [pair, single_room, zones: [vcenter], compute_nodes: 2]
|
||||||
|
|
||||||
|
execution:
|
||||||
|
tests:
|
||||||
|
-
|
||||||
|
title: Ping
|
||||||
|
class: flent
|
||||||
|
method: ping
|
||||||
|
time: 10
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.ping_icmp.avg < 2.0)"
|
||||||
|
-
|
||||||
|
title: TCP
|
||||||
|
class: iperf3
|
||||||
|
time: 600
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.bandwidth.avg > 5000)"
|
||||||
|
- "[type == 'agent'] >> (stats.retransmits.max < 10)"
|
||||||
|
-
|
||||||
|
title: UDP64
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 0
|
||||||
|
datagram_size: 32
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP1500
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 0
|
||||||
|
datagram_size: 1500
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
||||||
|
-
|
||||||
|
title: UDP_JUMBO
|
||||||
|
class: iperf3
|
||||||
|
udp: on
|
||||||
|
time: 600
|
||||||
|
bandwidth: 1000M
|
||||||
|
buffer_size: 8950
|
||||||
|
datagram_size: 9000
|
||||||
|
sla:
|
||||||
|
- "[type == 'agent'] >> (stats.packets.avg > 100000)"
|
Loading…
Reference in New Issue