FIREWHEEL Configuration
While we recommend setting a few FIREWHEEL configuration options during installation (see Set Environment Variables).
There are numerous other options to set which are located in src/firewheel/firewheel.yaml
.
This section outlines how to change the configuration and of the available options.
Configuration Options
The main configuration options which must change are modified during installation with install.sh
.
Here are all configuration options which are available to be changed.
attribute_defaults
This setting is a YAML dictionary which enables users to set a default model component if there is more than one which accomplishes the same Attribute.
That is, if Model Components mc.A
and mc.B
both provides the Attribute hostname
, FIREWHEEL will be unable to automatically determine which Model Component should be selected.
To resolve this, the user can either add the Model Component on the command line or use this setting to enable FIREWHEEL to automatically assume the default Model Component, unless overwritten via the command line.
See Dependency Management for more information.
Setting |
Value |
Description |
---|---|---|
|
|
The attribute for which FIREHWEEL should select the given Model Component by default. |
cli
These settings are used by FIREWHEEL’s Command Line Interface.
Setting |
Value Type |
Default |
Description |
---|---|---|---|
|
string |
|
The folder name of the CLI Helper cache. |
|
string |
|
The path to the |
cluster
These settings control the FIREWHEEL Cluster.
Setting |
Value Type |
Default |
Description |
---|---|---|---|
|
list |
|
The list of IP address or hostname for Compute Nodes in the FIREWHEEL Cluster. |
|
list |
|
A list with the ONE IP address or hostname for the Control Node for your FIREWHEEL Cluster. |
discovery
These settings are used for interaction between FIREWHEEL and discovery.
Setting |
Value Type |
Default |
Description |
---|---|---|---|
|
string |
|
The hostname or IP address of the discovery service. |
|
string |
|
The installation directory of discovery. This is used to locate the discovery binary files. |
|
int |
|
The port number for the discovery service. |
grpc
These settings are used by FIREWHEEL’s gRPC service.
Setting |
Value Type |
Default |
Description |
---|---|---|---|
|
string |
|
The folder name of the gRPC database cache. |
|
string |
|
The name of the database to use. We use |
|
string |
|
The hostname or IP address of FIREWHEEL’s gRPC service. This is typically the Control Node. |
|
int |
|
The port number for FIREWHEEL’s gRPC service. |
|
string |
|
The path to the |
|
int |
|
The number of threads used for the gRPC service. If the cluster is larger, the number of threads should be increased to facilitate better performance. |
logging
These settings are used to manage FIREWHEEL’s logging capabilities.
Setting |
Value Type |
Default |
Description |
---|---|---|---|
|
string |
|
The name of the CLI log file. This file contains the responses for all CLI commands issued. |
|
string |
|
The name of the discovery log file. |
|
string |
|
The name of the primary FIREWHEEL log file. |
|
string |
|
The logging level for FIREWHEEL. Valid values are found here. |
|
string |
|
The name of the minimega log file. |
|
string |
|
The path to the log files. If left empty, the |
|
string |
|
The folder name for VM Resource logs. The full path will be |
minimega
These settings are used for interaction between FIREWHEEL and minimega.
Setting |
Value Type |
Default |
Description |
---|---|---|---|
|
string |
|
minimega’s |
|
string |
|
The bridge which is used by minimega to manage communication with the FIREWHEEL Cluster. |
|
int |
|
The minimega degree for the cluster. This specifies the number of other nodes minimega should try to connect to and should be equal to the number of nodes in your FIREWHEEL Cluster. |
|
string |
|
The NIC for the current host for which will be used to connect to other Cluster Nodes. |
|
string |
|
minimega’s |
|
string |
|
The installation directory for minimega. This is set with |
|
string |
|
The name of the minimega namespace. |
|
boolean |
|
minimega defaults to using VLANs to segment traffic between Cluster Nodes, to use GRE tunnels instead of VLAns, set this to |
python
These settings are used to specify the Python version, virtual environment, and executable to be used by FIREWHEEL.
Setting |
Value Type |
Default |
Description |
---|---|---|---|
|
string |
|
The Python executable to use for running FIREWHEEL. This is set with |
|
string |
|
The path to the virtual environment to use for running FIREWHEEL. This is set with |
ssh
These settings are used for SSH/SCP amongst nodes in the FIREWHEEL Cluster.
Setting |
Value Type |
Default |
Description |
---|---|---|---|
|
string |
|
A username for SSH and SCP between Cluster Nodes. This is only needed if it differs from the current user. |
system
These settings are used for system-level interactions.
Setting |
Value Type |
Default |
Description |
---|---|---|---|
|
string |
|
The user group for FIREWHEEL. |
|
string |
|
The default directory for FIREWHEEL outputs (e.g. logs, cached data, etc.). |
|
string |
|
For users installing FIREWHEEL from source code, this is the root directory of the source code repository. |
|
int |
|
The default umask settings, if any. |
test
These settings are used for testing FIREWHEEL without interfering with the production settings.
Setting |
Value Type |
Default |
Description |
---|---|---|---|
|
string |
|
The name of the gRPC database to use. We use |
|
string |
|
The name of the test |
|
string |
|
The name of the test |
|
string |
|
The name of the test |
|
string |
|
The name of the test |
vm_resource_manager
These settings are used with FIREWHEEL’s VM Resource Manager.
Setting |
Value Type |
Default |
Description |
---|---|---|---|
|
string |
|
The default state of VMs after they are launched. |
|
int |
|
The number of seconds after all experiment VMs have been configured to start Positive Time. |
Changing FIREWHEEL Settings
To get and set configuration values, there are two commands: config get and config set.
The config set command enables replacing the entire configuration file or modifying a given setting.
Additionally, config get command enables retrieving the entire configuration file or only a given setting.
When updating or retrieving a single setting, a nested option is indicated with a period separating the keys.
For example, to set the value for the config key {'logging':{'level':'DEBUG'}}
, you can use the command:
firewheel config set -s logging.level INFO
To get the value of {'cluster':{'compute':[]}}
, you can use the command:
firewheel config get cluster.compute
Please see config get and config set for more details.
Changing minimega Settings
Some minimega settings are used by FIREWHEEL (e.g. those used in minimega configuration section above).
However, while FIREWHEEL uses these settings, users have to modify both the underlying minimega settings and the corresponding FIREWHEEL configuration.
Therefore, if you would like to modify where minimega caches files then the minimega configuration file (see Configuring minimega) setting MM_FILEPATH
should be updated then the corresponding FIREWHEEL setting minimega.files_dir
should be updated.
Once both settings have been updated, a simple firewheel restart hard will help the settings take effect.
Default Configuration
The file src/firewheel/firewheel.yaml
contains the settings for FIREWHEEL.
The default file is shown below.
attribute_defaults: {}
cli:
cache_dir: fw_cli
root_dir: ""
cluster:
compute: []
control: []
discovery:
hostname: localhost
install_dir: /opt/discovery
port: 8080
grpc:
cache_dir: fw_grpc
db: prod
hostname: ""
port: 50051
root_dir: ""
threads: 2
logging:
cli_log: cli.log
discovery_log: discovery.log
firewheel_log: firewheel.log
level: DEBUG
minimega_log: minimega.log
root_dir: ""
vmr_log_dir: vm_resource_logs
minimega:
base_dir: /tmp/minimega
control_bridge: mega_bridge
degree: 1
experiment_interface: ""
files_dir: /tmp/minimega/files
install_dir: /opt/minimega
namespace: firewheel
use_gre: false
python:
bin: python3
venv: ""
ssh:
user: null
system:
default_group: minimega
default_output_dir: /tmp/firewheel
umask: 0o0
test:
grpc_db: test
image_db: testImageStoreDb
schedule_test_database: testScheduleDB
vm_resource_store_test_database: testVmResourceDB
vmmapping_test_database: testVmMappingDB
vm_resource_manager:
default_state: uninitialized
experiment_start_buffer_sec: 60