-
Notifications
You must be signed in to change notification settings - Fork 7
1. Getting Started
In this section, we will discuss the jarvis command line interface. We will discuss the basic steps of how to create a deployment pipeline.
We will create a pipeline which does the following:
- Launch OrangeFS
- Launch Hermes
- Intercept POSIX I/O with Hermes
- Launch the IOR benchmark
First we have to collect information about the system.
jarvis resource-graph create \
--hostfile=hostfile.txt
This information will be stored under config/resource_graph.yaml. The command uses SSH to connect to all nodes.
The following command will create an empty pipeline "my_pipeline":
jarvis create my_pipeline
After creating a pipeline, jarvis will focus on that pipeline.
Next, we must make jarvis aware of all environment variables needed to execute applications in the pipeline.
module load hermes
module load orangefs
jarvis build-env
NOTE: this is machine-dependent. You would have to have these modules installed on your machine before-hand.
NOTE: LD_PRELOAD should NOT be one of the environment variables set here. Jarvis has specific "Interceptor" nodes for handling LD_PRELOAD.
To add a node to the pipeline:
jarvis append orangefs
jarvis append hermes
jarvis append hermes-posix
jarvis append ior
Nodes can be configured while appended. For example,
jarvis append orangefs \
server.pvfs2_port=33436 \
sleep=10
This will make the OrangeFS node use port 33436 and sleep for 10 seconds to give it some time to launch.
To start the service for the configured pipeline, do:
jarvis start
To check whether the pipeline is functioning, do:
jarvis status
To stop the pipeline's execution on all nodes, do:
jarvis stop
Pipelines can create a bunch of data. For example, OrangeFS may contain data leftover from a benchmark. To destroy this data, run:
jarvis clean
There may be cases where you need to reconfigure a node in the pipeline. To do this, run configure:
jarvis configure orangefs \
server.pvfs2_port=33436
- Unlinking a node means Jarvis will remove the node from the pipeline, without destroying the node's metadata. This will allow it to be re-appended in the future.
- Removing a node means Jarvis will remove the node from the pipeline AND destroy its metadata.
jarvis unlink [node_id]
jarvis remove [node_id]
To make jarvis start, end, etc. apply to a different pipeline, use jarvis cd
jarvis cd [pipeline_name]
To destroy a pipeline, its nodes, and all metadata associated with it:
jarvis destroy [pipeline_name]
To list all existing pipelines, run:
jarvis list