Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lumos

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_CLOUD envinronment 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 of terraform as 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).

Deployment using the Management VM

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-approve

The output of these commands must return the public IP address of the Lumos management VM.

To destroy the VM run:

tofu -chdir=deployment destroy 
Running Lumos
  • 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=5

Create 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.tfvars

Create parallel benchmarking workload using opentofu

go run main.go create --mode=par --batch-size=2 --iterations=4 --wait-interval=5

Deployment without any Management VM

Here 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 (or terraform), 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-approve

The 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.

Destroying everything

Destory resources using opentofu:

go run main.go delete

About

Lumos brings light into our OpenStack Cloud. It creates VMs and deploys containers running sequential or parallel load.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages