Lumos brings light into our OpenStack Cloud
It creates VMs and deploys containers running sequential load; than collects metrics using turbo stat. This helps us create energy profiles, getting a first glimpse into estimating how the:
- static
- dynamic
Part of the resource utilization changes and accordingly the energy consumption of the machine.
Before moving further make sure to define the
OS_CLOUDenvinronment variable. Please ensure to set this to your desired openstack cloud API credentials. e.g.:export OS_CLOUD=scs-ocp.
This document will use
opentofu(tofu) instead ofterraformas convention; you are free to choose any of these tools. Pick the one you are more comfortable using.
NOTE: This repository uses submodules. In order to check them out please run git submodule update --init --recursive (ensure you are allowed to reach out to the remotes before).
To run Lumos you will need to deploy a VM first on which the binary for the stressor is uploaded to and the results of the benchmarking VMs are sent to. This will change in later revisions when the stressor is a public repository which can directly be installed via a public urls - github repository.
Set any custom variables such as ssh key name, cloud env variable ect inside the deployment/terraform.tfvars file.
To deploy the Lumos VM:
tofu -chdir=deployment init
tofu -chdir=deployment apply -auto-approveThe output of these commands must return the public IP address of the Lumos management VM.
To destroy the VM run:
tofu -chdir=deployment destroy - Override the Number of VMs (Using the -num-vms flag):
- Specify the number of VMs directly from the command line.
Create sequential benchmarking workload run:
go run main.go create --mode=seq --iterations=4 --wait-interval=5Create sequential benchmarking workload using a different working directory and shared variables:
go run main.go create --mode=seq --iterations=2 --wait-interval=2 --path-to-IaC=iac/tf-rosserts --var-file=../shared/common.tfvarsCreate parallel benchmarking workload using opentofu
go run main.go create --mode=par --batch-size=2 --iterations=4 --wait-interval=5Here you can directly call opentofu or terraform to deploy some individual virtual machines.
Should you wish to try provisioning the snitch machines using only
opentofu(orterraform), try the following command:
tofu -chdir=iac/tf-teastore init
tofu -chdir=iac/tf-teastore apply -var-file="../shared/common.tfvars"Should sticking to a single availability zone is necessary (e.g.: compute01-zone), try the following:
tofu -chdir=iac/tf-teastore init
TF_VAR_availability_zone=compute01-zone tofu -chdir=iac/tf-teastore apply -var-file="../shared/common.tfvars" -auto-approveThe spcial directory iac/tf-teastore deploys a machine with a set of containers serving a Tea Store to be benchmarked in order to produce some stress and load for us to monitor the usage of resources in our OpenStack cloud environment.
Destory resources using opentofu:
go run main.go delete