THIS SCRIPT SET REQUIRES AEROLAB V4.3.7+
Process in a nutshell:
- setup your AWS account
- adjust configure.sh
- run the setup scripts in the order provided below
- follow the steps printed by the last setup script to configure grafana for asbench
- run gimme_url.sh to get the URLs for pretty graphs
- run the run_asbench (adjust if you need to adjust it)
- run stop_ and start_ scripts to your needs
- destroy everything by running destroy scripts
Note on nvme usage:
- edit template_nvme.conf to your needs
- edit configure.sh and change instance type to one that uses nvme disks
- note each instance type may have different nvme disks mapped, check manually by deployinga one-node cluster with aerolab and ls /dev
- in configure.sh also uncomment and edit the PROVISION= line to list the disks that you want provisioned
- note this must match disk names what's in template_nvme as partitions cause otherwise it won't work
Below explains what each file is. Execute shell scripts in the order in which they are listed below as well for a successful demo run.
AWS requirements - one time stup (I should really add some logic to aerolab to allow it to create and administer those...):
- awscli installed
- run: aws configure
- -- if using sales aws account - all is ready, otherwise read on
- us-west-2:
- security group for servers and clients:
- open ports from all sources: 22, 443, 5000-10000
- save group, then edit group and add rule that allows all communications from itself (from sg-...) - all ports
- security group for ams:
- open ports from all sources: 22, 443, 3000
- all ports from server sg-xxx group
- open server sg, and add a rule:
- all ports from ams sg-xxx group
- take note of both security group IDs and 4 subnet IDs for the 4 AZs for that VPC (all SG and Subnets live under a single VPC)
- so we can edit configure.sh later
- security group for servers and clients:
ape.toml ready template for exporter (using username/password)
astools.conf ready template for cluster - using username/password
template.conf ready aerospike.conf template
template_nvme.conf this will be deployed instead of template.conf if configure.sh PROVISION variable is set to a list of disks
asbench.json grafana json file for the asbench dashboard
configure.sh *** ADJUST THIS TO YOUR NEEDS *** configuration - adjust this to your aws account needs if not using sales aws account
**** BELOW SCRIPTS ARE TO BE RAN TO EXECUTE ACTIONS; SETUP SCRIPTS MUST BE RAN IN THE ORDER GIVEN HERE ****
setup_server_ams.sh script which sets up asd and ams and exporter
- note when done, run 'source configure.sh; aerolab client list' to get IP of ams, and visit in browser http://IP:3000
setup_clients.sh script which sets up the client machines
setup_pretty.sh script which sets up the grafana instance for asbench monitoring
gimme_url.sh script that prints all the grafana URLs
run_asbench.sh run asbench on all clients
stat_asbench.sh see if asbench is running on all clients
logs_asbench.sh tail logs of all clients asbench
kill_asbench.sh kill all asbench
stop_last_rack.sh stops aerospike in last rack
start_last_rack.sh starts aerospike in last rack
destroy_pretty.sh destroy the grafana stack for asbench logs
destroy_clients.sh destroy client machines
destroy_server_ams.sh destroy server and ams machines
Manually running stuff afterwards: $ source configure.sh $ aerolab cluster list $ aerolab client list ...