Skip to content

Commit 0f94923

Browse files
committed
feat: add draft Lustre How-to
1 parent 5551aae commit 0f94923

1 file changed

Lines changed: 68 additions & 0 deletions

File tree

howto/deploy/deploy-lustre.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
---
2+
myst:
3+
html_meta:
4+
description: Instructions on how to deploy the Lustre parallel filesystem in a Charmed HPC cluster using the lustre-server charm.
5+
relatedlinks: "[Lustre website](https://wiki.lustre.org/), [filesystem-charms repository](https://github.com/canonical/filesystem-charms)"
6+
---
7+
8+
(howto-deploy-deploy-lustre)=
9+
# How to deploy Lustre
10+
11+
This how-to guide shows you how to deploy the Lustre parallel filesystem in your Charmed HPC
12+
cluster using the `lustre-server` charm, and integrate it with compute nodes via the
13+
`filesystem-client` charm.
14+
15+
:::{admonition} Experimental
16+
:class: warning
17+
18+
The `lustre-server` charm is in an experimental state and is not ready for production use.
19+
:::
20+
21+
## Prerequisites
22+
23+
- A [Slurm cluster](#howto-deploy-deploy-slurm).
24+
- The [Juju CLI client](https://documentation.ubuntu.com/juju/latest/user/howto/manage-juju/) installed on your machine.
25+
- Secure boot **disabled** on target machines, as the charm builds DKMS kernel modules.
26+
27+
## Deploy the `lustre-server` charm
28+
29+
To deploy the `lustre-server` charm:
30+
31+
:::{code-block} shell
32+
juju deploy lustre-server \
33+
--channel latest/edge \
34+
-n 2
35+
:::
36+
37+
At least two units are required; a single unit deployment is not supported.
38+
39+
The Juju application leader at deployment time becomes a combined MGS+MDS unit. All additional units become OSSes, each providing one OST.
40+
41+
Wait for all units in the deployment to become active:
42+
43+
:::{code-block} shell
44+
juju status
45+
:::
46+
47+
## Deploy the `filesystem-client` charm
48+
49+
To mount the Lustre filesystem on client nodes, deploy the `filesystem-client` subordinate charm
50+
charm with `mountpoint` configuration set to the path Lustre should be mounted at on each client.
51+
Then integrate with the `lustre-server` application on the `filesystem` endpoint:
52+
53+
:::{code-block} shell
54+
juju deploy filesystem-client \
55+
--channel latest/edge \
56+
--config mountpoint="/mnt/lustre"
57+
58+
juju integrate filesystem-client:filesystem lustre-server:filesystem
59+
:::
60+
61+
Now integrate any deployed primary charm with the `filesystem-client` on the `juju-info` endpoint to
62+
mount Lustre. For example, to mount on all `slurmd` compute nodes of a Slurm cluster deployment:
63+
64+
:::{code-block} shell
65+
juju integrate filesystem-client:juju-info slurm:juju-info
66+
:::
67+
68+
Lustre will then be mounted at `/mnt/lustre` on each compute node.

0 commit comments

Comments
 (0)