Introduction to the Scale-test Script Usage
Scale-test can be found in Release Management repo under test directory: https://github.com/ipop-project/Release-Management
Note: Current version only tested on Ubuntu 16.04 VM
Modes
- IPOP GroupVPN test
- Create a separate instance of IPOP-VPN in GroupVPN Mode in each specified lxc container
- IPOP Switch-Mode test (In Development)
- Create instance of IPOP-VPN on host machine which is added to lxc-bridge to connect un-managed containers to IPOP-VPN
Setup for IPOP GroupVPN test
git clone https://github.com/ipop-project/Release-Management
cd ./Release-Management/Test/ipop-scale-test
- Run scale test script, Enter
./scale_test.sh
- When prompted for mode selection, type
classic
- Run
configure
(Install dependencies needed on host machine and for default container from which nodes are cloned from with thecontainers-create
command) - Next
containers-create
(Create and start specified number of containers, build IPOP src, choose IPOP network topology configuration and copy built IPOP files to each container) - If visualizer option was enabled while running
containers-create
command runvisualizer-start
(Starts up two processes on host machine one running Net Visualizer found at http://localhost:8888/IPOP) - Run
ipop-run
(Start up IPOP processes on lxc nodes)
Setup for IPOP Switch-Mode
- The steps for setting up IPOP-VPN in scale test environment are the same as setting up the scale test for GroupVPN Mode with exception to:
- When prompted for mode selection, type
switch
- Between
configure
andcontainers-create
commands runconfigure-external-node
. This command will setup an instance of IPOP switch-mode on the specified host. A xmpp server address must be given which should be the ip address of the current server reachable by the external host. - After IPOP has been run, the ipop-tap network interface must be added to the lxc bridge with
brctl addif lxcbr0 ipop_tap0
- When prompted for mode selection, type
Testing Environment
logs
aggregates controller and tincan logs on host machine under logs directory along with a file with information on the status of each lxc containeripop-test
begins a IPOP scale testing shell to carry out connectivity and performance testing built on tools such as iperf and ping (Currently only for group-vpn testing between lxc-containers). Once in the interactive shell typehelp
for more information about the commands available. Data from tests are stored in local mongodb program.- Instructions for viewing data from tests with Robomongo GUI
- To download and run
wget https://download.robomongo.org/1.1.1/linux/robo3t-1.1.1-linux-x86_64-c93c6b0.tar.gz #Download zipped src tar -xf robo3t-1.1.1-linux-x86_64-c93c6b0.tar.gz #Unzip src to sub directory ./robo3t-1.1.1-linux-x86_64-c93c6b0/bin/robo3t #Run Robomongo
- Create new connection to localhost:27017 and connect. Data will be in ipopdb database under iperf and ping collections
- To download and run
- Instructions for viewing data from tests with Robomongo GUI
Tear Down
- Run
containers-del
(Destroy all lxc node labeled containers) - Run
visualizer-stop
(Stop visualizer processes)
Note: ejabberd and mongodb will be installed on host machine as daemons which will start up automatically. Removal/Disabling of these services must be done manually.
Full Command List
All commands/arguments are optional upon script call. If no command/argument is entered, required input shall be prompted. Arguments are required to be entered in the order they are listed.
configure
- Install dependencies required for scale-test environment. Also sets up a default lxc-container that will be base for node containers
- Arguments:
- [is_external] - Skips installation of mongodb and ejabberd services if true. If not specified or false services will be installed
configure-external-node
- Install and run instance of IPOP-VPN on remote host
- Arguments:
- [username] - username for user on remote host
- [hostname] - address of remote host
- [xmpp_address] - address of xmpp server
containers-create
- Download IPOP-VPN sources, create node containers configure IPOP network topology (default: max successors-> 4, max cords-> 4, max on-demand-links-> 0, max in-bound-links ->4) and start run each container
- Arguments:
- [container_count] - number of containers to create and run
- [controller_repo_url] - URL of Controllers repo to clone
- [tincan_repo_url] - URL of Tincan repo to clone
- [visualizer] - T to enable visualizer F to disable
- [is_external] - true for use on remote
containers-start
- Start up all defined stopped containers.
containers-del
- Delete all node containers. Default container is kept
containers-stop
- Stop all defined running containers
ipop-run
- In group-vpn mode runs selected nodes. In switch-mode runs IPOP-VPN on host
- Arguments:
- [container_to_run] - Only for group-vpn mode. Enter number of node to run IPOP on or # to run IPOP on all nodes.
ipop-kill
- Kill IPOP processes on specified node for group-vpn or on host for switch-mode
- Arguments:
- [container_to_kill] - Only for group-vpn mode. Enter number of node to kill IPOP on or # to kill IPOP on all nodes.
ipop-status
- View status of ipop processes for each container. Currently only for group-vpn mode
ipop-tests
- Run testing shell. Currently only for testing group-vpn mode
logs
- Gives IPOP processes status and aggregates IPOP logs under log directory on host for group-vpn mode
visualizer-start
- Start visualizer on host machine
visualizer-stop
- Stop visualizer process on host machine
visualizer-status
- View status of visualizer