|
| 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