browbeat/rally/rally-plugins/workloads/crucible/README.rst

2.8 KiB

Browbeat-Crucible Network Workload

Introduction

This document provides instructions for running the Browbeat-Crucible Network workload, which is designed to test network performance using Crucible remotehost endpoint.

Prerequisites

Before running the workload, ensure the following prerequisites are met:

  1. Crucible Controller Setup: Set up a Crucible controller on a bare metal host by following the instructions provided in the repository: crucible. This involves cloning the repository and executing the installation script which is a zero touch installation.

  2. Masquerade Rule Configuration: Enable masquerade rule on the host using the following commands:

    sudo sysctl -w net.ipv4.ip_forward=1

    sudo iptables -t nat -A POSTROUTING -o $(sudo ip r | grep default | awk '{print $5}') -j MASQUERADE

  3. Paramiko Installation: Install Paramiko version 3.2.0 within the Rally virtual environment. Incorrect Paramiko versions may lead to SSH issues with VMs. Activate the virtual environment and install Paramiko as follows:

    cd browbeat

    source .rally-venv/bin/activate

    pip3 uninstall paramiko

    pip3 install paramiko==3.2.0

    deactivate

  4. Image Setup: Download a RHEL qcow2 image and upload it to Glance. Ensure necessary rhel repos are copied to the directory /home/stack/crucible_repos.

Running the Workload

Follow these steps to run the Browbeat-Crucible Network workload:

  1. Edit browbeat-config.yaml to enable the Network workload and configure parameters according to your requirements. Adjust the parameters under the Network section, such as num_provider_networks, cidr_prefix, server_client_pairs_per_network, hostname_or_ip, user, password, crucible_repo_dir_path, and ext_iface.

  2. If you have a custom traffic profile, copy it to the directory ~/browbeat/rally/rally-plugins/workloads/crucible as mv_params.json.

  3. Execute the workload

    ./browbeat.py rally

Parameters

  • num_provider_networks: Number of provider networks to be created for VM attachment.
  • cidr_prefix: CIDR prefix used for the provider networks.
  • server_client_pairs_per_network: Number of server and client pairs created per network.
  • hostname_or_ip: Crucible controller hostname or IP address.
  • user: Username for Crucible controller (root required).
  • password: Root password for Crucible controller.
  • crucible_repo_dir_path: Path to the directory containing .repo files specific to the image.
  • ext_iface: External interface of Crucible controller with connectivity to provider networks.

Adjust these parameters according to your specific requirements.