Skip to content

Commit 65cb795

Browse files
authored
Merge release v0.1.12
Release v0.1.12
2 parents d6d3359 + b7c8ca7 commit 65cb795

2 files changed

Lines changed: 66 additions & 48 deletions

File tree

docs/guides/storage-profiles/readme.md

Lines changed: 65 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@ DW directives that allocate storage on Rabbit nodes allow a `profile` parameter
1616

1717
The administrator shall choose one profile to be the default profile that is used when a profile parameter is not specified.
1818

19-
# Specifying a Profile
19+
## Specifying a Profile
20+
2021
To specify a profile name on a #DW directive, use the `profile` option
21-
```
22+
23+
```shell
2224
#DW jobdw type=lustre profile=durable capacity=5GB name=example
2325
```
2426

25-
# Setting A Default Profile
27+
## Setting A Default Profile
2628

2729
A default profile must be defined at all times. Any #DW line that does not specify a profile will use the default profile. If a default profile is not defined, then any new workflows will be rejected. If more than one profile is marked as default then any new workflows will be rejected.
2830

@@ -36,16 +38,18 @@ nnf-system performance false 6s
3638
```
3739

3840
To set the default flag on a profile
41+
3942
```shell
40-
$ kubectl patch nnfstorageprofile performance -n nnf-system --type merge -p '{"data":{"default":true}}'
43+
kubectl patch nnfstorageprofile performance -n nnf-system --type merge -p '{"data":{"default":true}}'
4144
```
4245

4346
To clear the default flag on a profile
47+
4448
```shell
45-
$ kubectl patch nnfstorageprofile durable -n nnf-system --type merge -p '{"data":{"default":false}}'
49+
kubectl patch nnfstorageprofile durable -n nnf-system --type merge -p '{"data":{"default":false}}'
4650
```
4751

48-
# Creating The Initial Default Profile
52+
## Creating The Initial Default Profile
4953

5054
Create the initial default profile from scratch or by using the [NnfStorageProfile/template](https://github.com/NearNodeFlash/nnf-sos/blob/master/config/examples/nnf_v1alpha1_nnfstorageprofile.yaml) resource as a template. If `nnf-deploy` was used to install nnf-sos then the default profile described below will have been created automatically.
5155

@@ -87,13 +91,13 @@ nnf-system template false 11s
8791
The administrator should edit the `default` profile to record any cluster-specific settings.
8892
Maintain a copy of this resource YAML in a safe place so it isn't lost across upgrades.
8993

90-
## Keeping The Default Profile Updated
94+
### Keeping The Default Profile Updated
9195

9296
An upgrade of nnf-sos may include updates to the `template` profile. It may be necessary to manually copy these updates into the `default` profile.
9397

94-
# Profile Parameters
98+
## Profile Parameters
9599

96-
## XFS
100+
### XFS
97101

98102
The following shows how to specify command line options for pvcreate, vgcreate, lvcreate, and mkfs for XFS storage. Optional mount options are specified one per line
99103

@@ -118,8 +122,7 @@ data:
118122
[...]
119123
```
120124

121-
122-
## GFS2
125+
### GFS2
123126

124127
The following shows how to specify command line options for pvcreate, lvcreate, and mkfs for GFS2.
125128

@@ -140,7 +143,7 @@ data:
140143
[...]
141144
```
142145

143-
## Lustre / ZFS
146+
### Lustre / ZFS
144147

145148
The following shows how to specify a zpool virtual device (vdev). In this case the default vdev is a stripe. See [zpoolconcepts(7)](https://openzfs.github.io/openzfs-docs/man/7/zpoolconcepts.7.html) for virtual device descriptions.
146149

@@ -168,7 +171,7 @@ data:
168171
[...]
169172
```
170173

171-
### ZFS dataset properties
174+
#### ZFS dataset properties
172175

173176
The following shows how to specify ZFS dataset properties in the `--mkfsoptions` arg for mkfs.lustre. See [zfsprops(7)](https://openzfs.github.io/openzfs-docs/man/7/zfsprops.7.html).
174177

@@ -188,9 +191,10 @@ data:
188191
[...]
189192
```
190193

191-
### Mount Options for Targets
194+
#### Mount Options for Targets
195+
196+
##### Persistent Mount Options
192197

193-
#### Persistent Mount Options
194198
Use the mkfs.lustre `--mountfsoptions` parameter to set persistent mount options for Lustre targets.
195199

196200
```yaml
@@ -209,7 +213,8 @@ data:
209213
[...]
210214
```
211215

212-
#### Non-Persistent Mount Options
216+
##### Non-Persistent Mount Options
217+
213218
Non-persistent mount options can be specified with the ostOptions.mountTarget parameter to the NnfStorageProfile:
214219

215220
```yaml
@@ -232,7 +237,7 @@ data:
232237
[...]
233238
```
234239

235-
### Target Layout
240+
#### Target Layout
236241

237242
Users may want Lustre file systems with different performance characteristics. For example, a user job with a single compute node accessing the Lustre file system would see acceptable performance from a single OSS. An FPP workload might want as many OSSs as posible to avoid contention.
238243

@@ -269,7 +274,7 @@ data:
269274
count: 10
270275
```
271276

272-
#### Example Layouts
277+
##### Example Layouts
273278

274279
`scale` with `colocateComputes=true` will likely be the most common layout type to use for `jobdw` directives. This will result in a Lustre file system whose performance scales with the number of compute nodes in the job.
275280

@@ -281,47 +286,60 @@ The `count` field may be useful when creating a persistent file system since the
281286

282287
In general, `scale` gives a simple way for users to get a filesystem that has performance consistent with their job size. `count` is useful for times when a user wants full control of the file system layout.
283288

284-
# Command Line Variables
289+
## Command Line Variables
290+
291+
### pvcreate
292+
293+
- `$DEVICE` - expands to the `/dev/<path>` value for one device that has been allocated
294+
295+
### vgcreate
296+
297+
- `$VG_NAME` - expands to a volume group name that is controlled by Rabbit software.
298+
- `$DEVICE_LIST` - expands to a list of space-separated `/dev/<path>` devices. This list will contain the devices that were iterated over for the pvcreate step.
285299

286-
## pvcreate
300+
### lvcreate
287301

288-
* `$DEVICE` - expands to the `/dev/<path>` value for one device that has been allocated
302+
- `$VG_NAME` - see vgcreate above.
303+
- `$LV_NAME` - expands to a logical volume name that is controlled by Rabbit software.
304+
- `$DEVICE_NUM` - expands to a number indicating the number of devices allocated for the volume group.
305+
- `$DEVICE1, $DEVICE2, ..., $DEVICEn` - each expands to one of the devices from the `$DEVICE_LIST` above.
289306

290-
## vgcreate
307+
### XFS mkfs
291308

292-
* `$VG_NAME` - expands to a volume group name that is controlled by Rabbit software.
293-
* `$DEVICE_LIST` - expands to a list of space-separated `/dev/<path>` devices. This list will contain the devices that were iterated over for the pvcreate step.
309+
- `$DEVICE` - expands to the `/dev/<path>` value for the logical volume that was created by the lvcreate step above.
294310

295-
## lvcreate
311+
### GFS2 mkfs
296312

297-
* `$VG_NAME` - see vgcreate above.
298-
* `$LV_NAME` - expands to a logical volume name that is controlled by Rabbit software.
299-
* `$DEVICE_NUM` - expands to a number indicating the number of devices allocated for the volume group.
300-
* `$DEVICE1, $DEVICE2, ..., $DEVICEn` - each expands to one of the devices from the `$DEVICE_LIST` above.
313+
- `$DEVICE` - expands to the `/dev/<path>` value for the logical volume that was created by the lvcreate step above.
314+
- `$CLUSTER_NAME` - expands to a cluster name that is controlled by Rabbit Software
315+
- `$LOCK_SPACE` - expands to a lock space key that is controlled by Rabbit Software.
316+
- `$PROTOCOL` - expands to a locking protocol that is controlled by Rabbit Software.
301317

302-
## XFS mkfs
318+
### zpool create
303319

304-
* `$DEVICE` - expands to the `/dev/<path>` value for the logical volume that was created by the lvcreate step above.
320+
- `$DEVICE_LIST` - expands to a list of space-separated `/dev/<path>` devices. This list will contain the devices that were allocated for this storage request.
321+
- `$POOL_NAME` - expands to a pool name that is controlled by Rabbit software.
322+
- `$DEVICE_NUM` - expands to a number indicating the number of devices allocated for this storage request.
323+
- `$DEVICE1, $DEVICE2, ..., $DEVICEn` - each expands to one of the devices from the `$DEVICE_LIST` above.
305324

306-
## GFS2 mkfs
325+
### lustre mkfs
307326

308-
* `$DEVICE` - expands to the `/dev/<path>` value for the logical volume that was created by the lvcreate step above.
309-
* `$CLUSTER_NAME` - expands to a cluster name that is controlled by Rabbit Software
310-
* `$LOCK_SPACE` - expands to a lock space key that is controlled by Rabbit Software.
311-
* `$PROTOCOL` - expands to a locking protocol that is controlled by Rabbit Software.
327+
- `$FS_NAME` - expands to the filesystem name that was passed to Rabbit software from the workflow's #DW line.
328+
- `$MGS_NID` - expands to the NID of the MGS. If the MGS was orchestrated by nnf-sos then an appropriate internal value will be used.
329+
- `$POOL_NAME` - see zpool create above.
330+
- `$VOL_NAME` - expands to the volume name that will be created. This value will be `<pool_name>/<dataset>`, and is controlled by Rabbit software.
331+
- `$INDEX` - expands to the index value of the target and is controlled by Rabbit software.
312332

313-
## zpool create
333+
### PostMount/PreUnmount and PostActivate/PreDeactivate
314334

315-
* `$DEVICE_LIST` - expands to a list of space-separated `/dev/<path>` devices. This list will contain the devices that were allocated for this storage request.
316-
* `$POOL_NAME` - expands to a pool name that is controlled by Rabbit software.
317-
* `$DEVICE_NUM` - expands to a number indicating the number of devices allocated for this storage request.
318-
* `$DEVICE1, $DEVICE2, ..., $DEVICEn` - each expands to one of the devices from the `$DEVICE_LIST` above.
335+
- `$MOUNT_PATH` - expands to the mount path of the fileystem to perform certain actions on the mounted filesystem
319336

320-
## lustre mkfs
337+
#### Lustre Specific
321338

322-
* `$FS_NAME` - expands to the filesystem name that was passed to Rabbit software from the workflow's #DW line.
323-
* `$MGS_NID` - expands to the NID of the MGS. If the MGS was orchestrated by nnf-sos then an appropriate internal value will be used.
324-
* `$POOL_NAME` - see zpool create above.
325-
* `$VOL_NAME` - expands to the volume name that will be created. This value will be `<pool_name>/<dataset>`, and is controlled by Rabbit software.
326-
* `$INDEX` - expands to the index value of the target and is controlled by Rabbit software.
339+
These variables are for lustre only and can be used to perform PostMount activities such are setting lustre striping.
327340

341+
- `$NUM_MDTS` - expands to the number of MDTs for the lustre filesystem
342+
- `$NUM_MGTS` - expands to the number of MGTs for the lustre filesystem
343+
- `$NUM_MGTMDTS` - expands to the number of combined MGTMDTs for the lustre filesystem
344+
- `$NUM_OSTS` - expands to the number of OSTs for the lustre filesystem
345+
- `$NUM_NNFNODES` - expands to the number of NNF Nodes for the lustre filesystem

external/nnf-dm

Submodule nnf-dm updated 88 files

0 commit comments

Comments
 (0)