Skip to content

Commit 703a2e8

Browse files
authored
Add status.requiredDaemons to DirectiveBreakdown (#177)
Signed-off-by: Dean Roehrich <dean.roehrich@hpe.com>
1 parent 85ec1c0 commit 703a2e8

2 files changed

Lines changed: 38 additions & 0 deletions

File tree

docs/guides/data-movement/readme.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,14 @@ The `CreateRequest` API call that is used to create Data Movement with the Copy
9090
options to allow a user to specify some options for that particular Data Movement. These settings
9191
are on a per-request basis.
9292

93+
The Copy Offload API requires the `nnf-dm` daemon to be running on the compute node. This daemon may be configured to run full-time, or it may be left in a disabled state if the WLM is expected to run it only when a user requests it. See [Compute Daemons](../compute-daemons/readme.md) for the systemd service configuration of the daemon. See `RequiredDaemons` in [Directive Breakdown](../directive-breakdown/readme.md) for a description of how the user may request the daemon, in the case where the WLM will run it only on demand.
94+
95+
If the WLM is running the `nnf-dm` daemon only on demand, then the user can request that the daemon be running for their job by specifying `requires=copy-offload` in their `DW` directive. The following is an example:
96+
97+
```bash
98+
#DW jobdw type=xfs capacity=1GB name=stg1 requires=copy-offload
99+
```
100+
93101
See the [DataMovementCreateRequest API](copy-offload-api.html#datamovement.DataMovementCreateRequest)
94102
definition for what can be configured.
95103

docs/guides/directive-breakdown/readme.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,3 +149,33 @@ A location constraint consists of an `access` list and a `reference`.
149149
* `status.compute.constraints.location.access` is a list that specifies what type of access the compute nodes need to have to the storage allocations in the allocation set. An allocation set may have multiple access types that are required
150150
* `status.compute.constraints.location.access.type` specifies the connection type for the storage. This can be `network` or `physical`
151151
* `status.compute.constraints.location.access.priority` specifies how necessary the connection type is. This can be `mandatory` or `bestEffort`
152+
153+
## RequiredDaemons
154+
155+
The `status.requiredDaemons` section of the `DirectiveBreakdown` tells the WLM about any driver-specific daemons it must enable for the job; it is assumed that the WLM knows about the driver-specific daemons and that if the users are specifying these then the WLM knows how to start them. The `status.requiredDaemons` section will exist only for `jobdw` and `persistentdw` directives. An example of the `status.requiredDaemons` section is included below.
156+
157+
```yaml
158+
status:
159+
...
160+
requiredDaemons:
161+
- copy-offload
162+
...
163+
```
164+
165+
The allowed list of required daemons that may be specified is defined in the [nnf-ruleset.yaml for DWS](https://github.com/NearNodeFlash/nnf-sos/blob/master/config/dws/nnf-ruleset.yaml), found in the `nnf-sos` repository. The `ruleDefs.key[requires]` statement is specified in two places in the ruleset, one for `jobdw` and the second for `persistentdw`. The ruleset allows a list of patterns to be specified, allowing one for each of the allowed daemons.
166+
167+
The `DW` directive will include a comma-separated list of daemons after the `requires` keyword. The following is an example:
168+
169+
```bash
170+
#DW jobdw type=xfs capacity=1GB name=stg1 requires=copy-offload
171+
```
172+
173+
The `DWDirectiveRule` resource currently active on the system can be viewed with:
174+
175+
```console
176+
kubectl get -n dws-system dwdirectiverule nnf -o yaml
177+
```
178+
179+
### Valid Daemons
180+
181+
Each site should define the list of daemons that are valid for that site and recognized by that site's WLM. The initial `nnf-ruleset.yaml` defines only one, called `copy-offload`. When a user specifies `copy-offload` in their `DW` directive, they are stating that their compute-node application will use the Copy Offload API Daemon described in the [Data Movement Configuration](../data-movement/readme.md).

0 commit comments

Comments
 (0)